ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:654.64KB ,
资源ID:2483495      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2483495.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(模拟电子秤仿真实验报告.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

模拟电子秤仿真实验报告.docx

1、模拟电子秤仿真实验报告阿坝师范高等专科学校电子信息工程系课程设计模拟电子秤仿真设计学生姓名樊益明专业名称计算机控制技术班 级计控班学 号20113079阿坝师范高等专科学校电子信息工程系二一三年四月模拟电子秤设计报告1、设计原理及要求设计原理:电子秤系统设计框图大致如图1所示:图1 系统整体设计框图设计要求:1、要求单价由键盘输入;2、重量的精度能够达到十分之一千克;3、按键有提示音;4、有去皮的功能;2、主要硬件及仿真软件硬件:(1)、ADC0832ADC0832 是一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎。图2.1为ADC0832在

2、Proteus中的逻辑符号图2.1 ADC0832逻辑符号芯片接口说明:CS片选使能,低电平芯片使能;CH0 模拟输入通道0,或作为IN+/-使用。CH1 模拟输入通道1,或作为IN+/-使用。GND 芯片参考0 电位(地)。DI 数据信号输入,选择通道控制。DO 数据信号输出,转换数据输出。CLK 芯片时钟输入。Vcc/REF 电源输入及参考电压输入(复用)。单片机对 ADC0832 的控制原理: 正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是 CS、CLK、DO、DI但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将 DO

3、和 DI 并联在一根数据线上使用。(见图 3.6)当 ADC0832 未工作时其 CS 输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行 A/D 转换时,须先将 CS 使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的数据信号。在第 1 个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。在第 2、3 个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能,其功能项见表 1。表 1如表 1 所示,当此 2 位数据为“1”、“0”时,只对

4、CH0 进行单通道转换。当 2 位数据为“1”、“1”时,只对 CH1 进行单通道转换。当 2 位数据为“0”、“0”时,将 CH0 作为正输入端 IN+,CH1 作为负输入端 IN-进行输入。当 2 位数据为“0”、“1”时,将 CH0 作为负输入端 IN-,CH1 作为正输入端 IN+进行输入。所以我们利用前12个脉冲来设置ADC0832的通道选择,到第 3 个脉冲的下沉之后 DI 端的输入电平就失去输入作用,此后 DO/DI端则开始利用数据输出 DO 进行转换数据的读取。从第 4 个脉冲下沉开始由 DO端输出转换数据最高位 DATA7,随后每一个脉冲下沉 DO 端输出下一位数据。直到第

5、11 个脉冲时发出最低位数据 DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第 11 个字节的下沉输出 DATD0。随后输出 8 位数据,到第 19 个脉冲时数据输出完成,也标志着一次 A/D 转换的结束。最后将 CS 置高电平禁用芯片,直接将转换后的数据进行处理就可以了。更详细的时序说明请见图 2.2(图2.2为ADC0832的时序图)。图2.2 ADC0832时序图(2)、LCD12232图2.3 LCD12232逻辑符号管脚说明:VDD:逻辑电源正GND(VSS): 逻辑电源地VO(VEE):LCD驱动电源RESET:复位端。E1:读写使能。E2:同E

6、1引脚。/RD:读允许,低电平有效。/WR:写允许,低电平有效。R/W:读写选择A0:数据/指令选择 高电平:数据D0-D7将送入显示RAM;低电平:数据D0-D7将送入指令执行器执行。D0-D7:数据输入输出引脚。图2.4为LCD的时序图图2.4 LCD12232时序图图2.5为显示存储器(DDRAM)与地址的对应关系(显示设定为1/32DUTY,显示起始行为10th)图2.5(3)、AT89C51在Protues中AT89C51的逻辑符号如图2.6所示:图2.6 AT89C51逻辑符号AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and

7、Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 提供以下标准功能:4k字节Flash闪速存储器,128

8、字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。仿真软件:(1)、Proteus它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具,在这里完全能够满足我们对电子秤的仿真需要。(2)、Keil C51Keil C

9、51是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,因为我们在此次模拟仿真中使用C语言编程,所以Keil几乎就是我们的不二之选。3、设计步骤(1)、软件设计1、延时函数delay()的编写(Delay.c):在这个C文件中,只有一个函数void delay(uint x),该函数的作用 是,延时100*x(微秒)。2、ADC0832的驱动代码编写(ADC0832.c):在这个C文件中,只有一个函数uchar ReadADC(

10、),它的返回值为8位2进制数,表示的放大后的电压值。图3.1为uchar ReadADC()的程序设计流程图各种赋值语句,作读取数据时的初始化dat1=(dat11)|ADC_DIO;读取第411,共8个正向数据dat2=dat2|(uchar)ADC_DIO0; i-);LCD12232.c/LCD12232的使用函数sfr DATAport=0x80;/定义LCD12232数据口(0x80表示P0口)sbit lcda0=P20;/写(数据/指令)(1/0)选择sbit lcde1=P21;/LCD左边使能sbit lcde2=P22;/LCD右边使能sbit lcdrw=P23;/(读/

11、写)(1/0)状态选择sbit lcdbusy=P07;/忙状态检测位(即数据口最高位)void LCDcmd(uchar temp) delay(2); lcde1=0; /禁止控制器 lcde2=0; lcda0=0; /写指令模式 lcdrw=0; /写使能 lcde1=1; /控制器使能 lcde2=1; DATAport=temp; /写指令 lcde1=0; /写完后,禁止控制器 lcde2=0;/*写数据*/void LCDdata(bit lcde,uchar temp) delay(2); lcde1=0; /禁止控制器 lcde2=0; lcda0=1; /写数据模式 lc

12、drw=0; /写使能 lcde1=lcde; /(lcde=0/1)(左/右)控制器使能 lcde2=lcde; DATAport=temp; /写数据 lcde1=0; /写完后,禁止主控制器 lcde2=0;/*LCD清屏*/void LCDclr(uint Page) unsigned char i; LCDcmd(0xB8|Page); /设置主控制器页地址 LCDcmd(0x00); /设置主控制器列地址 for(i=0;i61;i+) LCDdata(0,0x00); for(i=0;i61;i+) LCDdata(1,0x00); /*LCD初始化*/void LCDrst()

13、 LCDcmd(0xE2);/复位 LCDcmd(0xAE);/关显示 LCDcmd(0xA4);/正常驱动模式 LCDcmd(0xA9);/占空比为1/32(即32行液晶显示驱动) LCDcmd(0xA1);/设定列驱动与液晶列数据口连接方式 LCDcmd(0xEE);/正常读写模式(读/写数据后列地址+1) LCDclr(0); /擦除0页 LCDclr(1); /擦除1页 LCDclr(2); /擦除2页 LCDclr(3); /擦除3页 LCDcmd(0xAF);/开显示/*写LCD字符串*/*写指令*/ void LCDshow010(uint *a,uint b) uint i,j; for(j=0;j2;j+) LCDcmd(0xB8|j); /第j页显示 LCDcmd(0x00); /设置列开始地址 for(i=0; i16;i+) /写前半部分,显示“P:” LCDdata(0,tem0i*2+j%2); if(a1=0) for(

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2