免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
阿坝师范高等专科学校电子信息工程系课程设计模拟电子秤仿真设计学生姓名樊益明专业名称计算机控制技术班 级计控班学 号20113079阿坝师范高等专科学校电子信息工程系二一三年四月模拟电子秤设计报告1、 设计原理及要求设计原理:电子秤系统设计框图大致如图1所示:四个定值电阻加一个电位器,模拟应变式传感器,采集微小的电压信号利用差分放大电路,对采集到的微小电压放大到05VADC0832:8位2进制模数转换器;将放大的电压信号转化为数值信号,方便单片机的处理MM74C922:键盘解码器,方便了对4x4键盘的扫描。键盘的作用主要在单价的输入上。51单片机:处理和控制单元,整个模拟仿真的灵魂原件。1、将ADC0832转化来的数据处理后存放在重量(Wight)并用LCD显示;2、将键盘输入的数据赋给单价(Price);3、将总价(Total_price)计算出来,并显示图1 系统整体设计框图设计要求:1、 要求单价由键盘输入;2、 重量的精度能够达到十分之一千克;3、 按键有提示音;4、 有去皮的功能;2、 主要硬件及仿真软件硬件:(1) 、ADC0832ADC0832 是一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎。图2.1为ADC0832在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 和 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”时,只对 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 端输出下一位数据。直到第 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:同E1引脚。/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 Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89C51 提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。仿真软件:(1) 、Proteus它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具,在这里完全能够满足我们对电子秤的仿真需要。(2) 、Keil C51Keil C51是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(),它的返回值为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;/(读/写)(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;/写数据模式lcdrw=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()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(i=0; i8;i+)/写前半部分,如果十位为0,空格占位LCDdata(0,number10i*2+j%2);elsefor(i=0; i8;i+)/写前半部分 ,显示单价的十位LCDdata(0,numbera1i*2+j%2);for(i=0; i8;i+)/写前半部分,显示单价的个位LCDdata(0,numbera0i*2+j%2);for(i=0; i8;i+)/写前半部分,空格占位LCDdata(0,number10i*2+j%2);for(i=0; i8;i+)/写前半部分,空格占位LCDdata(0,number10i*2+j%2);for(i=0; i8;i+)/写前半部分,空格占位LCDdata(0,number10i*2+j%2);for(i=0; i5;i+)/写后半部分,显示“W:”LCDdata(0,tem2i*2+j%2);for(i=5; i16;i+)/写后半部分 ,越界处理LCDdata(1,tem2i*2+j%2);if(b/100=0)for(i=0; i8;i+)/写后半部分,如果十位为0,空格占位LCDdata(1,number10i*2+j%2);elsefor(i=0; i8;i+)/写后半部分 ,显示重量的十位LCDdata(1,numberb/100i*2+j%2);for(i=0; i8;i+)/写后半部分 ,显示重量的个位LCDdata(1,number(b/10)%10i*2+j%2);for(i=0; i8;i+)/写后半部分,显示小数点LCDdata(1,number13i*2+j%2);for(i=0; i8;i+)/写后半部分,显示重量的小数位LCDdata(1,numberb%10i*2+j%2);for(i=0; i16;i+)/写后半部分 显示“kg”符号LCDdata(1,number11i*2+j%2);void LCDshow230(uint c)uint i,j;for(j=2;j4;j+)LCDcmd(0xB8|j);/第j页显示LCDcmd(0x00);/设置列开始地址for(i=0; i40;i+)/写前半部分,显示“总价:”LCDdata(0,tem4i*2+j%2);if(c/10000=0)for(i=0; i8;i+)/写前半部分,如果千位为0,千位空格占位LCDdata(0,number10i*2+j%2);elsefor(i=0; i8;i+)/写前半部分 ,显示总价的千位LCDdata(0,numberc/10000i*2+j%2);if(c/1000=0)for(i=0; i8;i+)/写前半部分,在千,百位都为0的情况下,百位空格占位LCDdata(0,number10i*2+j%2);elsefor(i=0; i8;i+)/写前半部分 ,显示总价的百位LCDdata(0,number(c/1000)%10i*2+j%2);if(c/100=0)for(i=0; i5;i+)/写前半部分,在千、百、十位都为0 的情况下,十位空格占位LCDdata(0,number10i*2+j%2);for(i=5; i8;i+)/写后半部分,显示空格占位,因为存在越界LCDdata(1,number10i*2+j%2);elsefor(i=0; i5;i+)/写前半部分,显示总价的十位LCDdata(0,number(c/100)%10i*2+j%2);for(i=5; i8;i+)/写后半部分,显示总价的十位,因为存在越界LCDdata(1,number(c/100)%10i*2+j%2);for(i=0; i8;i+)/写后半部分,显示总价的个位LCDdata(1,number(c/10)%10i*2+j%2);for(i=0; i8;i+)/写后半部分,显示小数点LCDdata(1,number13i*2+j%2);for(i=0; i8;i+)/写后半部分,显示总价的小数位LCDdata(1,numberc%10i*2+j%2);for(i=0; i16;i+)/写后半部分,显示“元”符号LCDdata(1,number14i*2+j%2);ADC0832.c/ADC0832的使用函数sbit ADC_CS =P10;sbit ADC_CLK=P11;sbit ADC_DIO =P12;uchar ReadADC() /把模拟电压值转换成8位二进制数并返回 uchar i,dat1=1,dat2=0;ADC_CS=0;ADC_CLK=0;ADC_DIO=1;_nop_();_nop_(); ADC_CLK=1;_nop_();_nop_();ADC_CLK=0;ADC_DIO=1;_nop_();_nop_();ADC_CLK=1;_nop_();_nop_();ADC_CLK=0;ADC_DIO=0;_nop_();_nop_();ADC_CLK=1;_nop_();_nop_();ADC_CLK=0;ADC_DIO=1;_nop_();_nop_();for(i=0;i8;i+)ADC_CLK=1;_nop_();_nop_();ADC_CLK=0;_nop_();_nop_();dat1=(dat11)|ADC_DIO;for(i=0;i8;i+)dat2=dat2|(uchar)ADC_DIOi);ADC_CLK=1;_nop_();_nop_();ADC_CLK=0;_nop_();_nop_(); ADC_CS=1;return (dat1=dat2)?dat1:0x00;MM74C922.c /MM74C922的使用函数sbit DA=P16;sbit BEEP=P17;uchar Get_key()uint a=16;if(DA)a=P2/16;return a;void Beep()uchar i;for(i=0;i0;i-)ci=ci-1;ci=1;while(DA);Beep();break;case 1:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=2;while(DA);Beep();break;case 2:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=3;while(DA);Beep();break;case 3:Beep();break;case 4:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=4;while(DA);Beep();break;case 5:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=5;while(DA);Beep();break;case 6:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=6;while(DA);Beep();break;case 7:break;case 8:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=7;while(DA);Beep();break;case 9:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=8;while(DA);Beep();break;case 10:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=9;while(DA);Beep();break;case 11:(*h)=e;while(DA);Beep();break;case 12:c0=0;c1=0;(*g)=0;(*h)=0;while(DA);Beep();break;case 13:if(c1!=0)break;for(i=1;i0;i-)ci=ci-1;ci=0;while(DA);Beep();bre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 担保借用合同
- 邯郸钻具项目可行性研究报告
- 钙锌稳定剂项目可行性研究报告建议书范文
- 银川铸钢闸阀项目可行性研究报告范文参考
- 高等数学导数的概念教案
- 鹤壁纳米碳酸钙项目可行性研究报告
- 黑龙江省某镇垃圾处理工程可行性研究报告( P75)
- 单片机设计与开发 教案要点
- 中国计算机设计大赛答辩方案
- 广西中考物理5年(2021-2025)真题分类汇编:专题03 光现象(解析版)
- 云南玉溪新农村数字电影院线有限责任公司招聘笔试题库2025
- 2025海南国投厦港海南拖轮有限公司社会招聘笔试历年典型考点题库附带答案详解试卷2套
- 2025年新疆维吾尔自治区公安招聘辅警考试试题解析及答案
- 2025年百度财务笔试题目及答案
- 人员考试(招标采购专业理论与法律基础初级)试题库及答案2025年嘉峪
- T∕ZZB 0459-2018 铝合金环链紧线器
- 2025广西梧州市检察机关聘用制书记员招聘15人考试笔试模拟试题及答案解析
- 2025云南交投集团下属物流公司人才引进2人笔试历年参考题库附带答案详解
- 2025年每月时政试题库(含答案)
- 2025初级消防证试题题库及答案
- 2024年度浙江省档案职称考试试题及答案
评论
0/150
提交评论