基于at89c51的数字电子秤的设计_第1页
基于at89c51的数字电子秤的设计_第2页
基于at89c51的数字电子秤的设计_第3页
基于at89c51的数字电子秤的设计_第4页
基于at89c51的数字电子秤的设计_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

综合课程设计报告基于AT89C51的数字电子秤的设计学生姓名苏超超、刘煜、傅赟指导教师张辉所在系电子信息系所学专业电子信息工程年级10电子一班2013年6月目录1、设计目的12、设计的主要内容和要求13、整体设计方案231设计方案232工作原理24、硬件电路的设计45、软件设计551主程序设计652LM4229液晶显示653ADC0832采样程序85444键盘程序96、系统仿真97、使用说明138、设计总结149、元器件1410、参考文献14附录A15附录B24基于AT89C51的数字电子秤的设计1、设计目的单片机以其功能强,体积小,功耗低,易开发等很多优势被广泛应用。但单片机不是万能的,也存在不适合的场合,我们要充分利用单片机的内部资源和选择合适的单片机来完成我们的设计。本数字电子秤的设计过程中需要用到A/D转换、键盘、液晶显示、复位电路和蜂鸣器报警驱动电路的知识,同时在软件的设计过程中需要用到键盘扫描、液晶显示驱动、模数转换程序及汉字库的的设计,可以很好的将数电、模电、单片机知识进行综合应用。在综合应用中进一步熟悉单片机设计的开发各个流程,最终达到“巩固基础、注重设计、培养技能、追求创新、走向实用“的目的。2、设计的主要内容和要求本文主要完成一个简单实用数字电子秤的硬件电路部分和软件部分的设计。在设计的过程学会使用单片机对数字电子秤的各种功能进行控制。本设计中的数字电子秤要求能够显示商品的名称、价格、总量、总价等;能够自动完成商品的价格计算;能够储存几种简单商品的价格;能够具有超重提醒功能,一旦重量超出了自身重量的测量的范围,发出警报;同时对数字电子秤的测量范围要达到5KG,测量精度要求达到0001。3、整体设计方案31设计方案整个数字电子秤电路由电源电路、单片机主控制电路、LM4229显示电路、蜂鸣器报警电路、44键盘电路和压力传感电路ADC0832采样)6个部分组成。如图31所示。32工作原理打开电源开关,数字电子秤开始工作。接通电源时,数字电子秤进入欢迎界面“欢迎使用电子秤设计”。此时数字电子秤上MCU开始工作,键盘不断进行扫描,同时通过ADC0832也不断进行外部称量数据采样,LCD上显示“实用电子秤名称单价”。当载物台上放有物体时,ADC0832立即将数据收集送给单片机处理。此时工作人员只要输入对应商品的代码编号,在240128的LCD上可以看到相应商品的名称,单价,总重,总价格等信息。在称量的过程中,一旦物体自身的重量超出电子秤的称量范围,蜂鸣器立即会发出“滴滴”警报声告诉工作人员,所称量物品超重。图31整体设计方框图4、硬件电路的设计数字电子秤采用AT89C51单片机作为微处理器,接口电路由晶振、LM4229显示电路、44按键电路、ADC0832电路、报警电路、存储器等组成。控制器系统的硬件电路原理图如图41所示。控制器系统硬件电路的工作过程是打开电源时,MCU及各个部分电路开始工作,MCU调用内部存储数据对各部分接口电路初始化。200MS后LM4229进入欢迎界面,ADC0832不断对外部数据进行采样交给MCU进行处理,一旦有物品放入载物台,ADC0832立即发送中断请求,并将本次采集数据交给MCU处理,之后LM4229显示相应数据量。在此过程中,键盘也在不断进行扫描,一旦有键按下,单片机也会对其数据进行相应处理,然后将对LM4229进行写操作。图41数字电子秤硬件电路图5、软件设计本设计中的程序由主控制程序、LM4229液晶显示驱动程序、ADC0832采样程序和44键盘程序组成。51主程序设计整个设计中采用由下向上的设计思路。主程序中主要完成对LCM4229、ADC0832、及键盘扫描程序的调用。在编写程序的过程中,各变量统一采用全局变量方式命名,同时考虑到电子秤对精度的要求,本设计中的价格及总量相关的变量全部采用浮点数。主程序流程图如图51所示图51主程序流程图52LM4229液晶显示图52LM4229液晶显示驱动程序流程图LM4229液晶能够显示比较复杂的汉字和图形,首先必须对其写入控制操作字,包括图形的显示方式,字体的模式。然后写入初始行地址,指针自动左移,直到写完全部数据为止。WRITE_DATAPLACE/写入地址高位WRITE_DATAPLACE/256/写入地址低位WRITE_COM0X24/地址设置WRITE_COM0XB0/设置数据自动写WRITE_DATAASC_MSKC10X2016K/例如0的ASCII码为0X30,在ASC_MSK中的位置为0X101616字节字码依次写入LCD/WRITE_COM0XB2/自动复位PLACEPLACE3053ADC0832采样程序图53ADC0832采样程序程序流程图MCU通过拉低CS、拉高CLK来启动ADC0832进行外部压力传感转换后的电压信号进行采样,每产生8个CLK脉冲,DATA获得一位完整的8BIT数据,此时MCU发送中断请求,拉高CS,拉低CLK,并将数据DAT返回。5444键盘程序图5444键盘程序本设计中采用了44矩阵式键盘,单片机定时进行查询。首先单片机发送行扫描代码,然后进行列扫描,当发现某一列出现了低电平时,即返回相应的键盘值。若没有发现则说明当前行没有键按下,行扫描右移一位,继续执行列扫描。MCU根据相应的键值,即可确定被按下的键。6、系统仿真在PROTUES的ISIS74SP2软件环境下画出电路原理图,接下来就是将设计的程序在KEILC51VISION3开发集成环境上编译成机器语言,进入PROTUES的ISIS,双击AT89C51,在“PROGRAMFILE中“添加“MAINHEX“文件到AT89C51中,如图61所示。图61数字电子秤仿真设置图该仿真验证的过程首先按开始按,此时数字电子秤进入欢迎界面。LM4229上显示“欢迎使用电子秤“。如图62所示如下。接下来调节压力传感模拟电路电压,将电压设为000表示此时载物台上没有物体。此时LM4229切换到称量画面。显示指示“实用电子秤名称单价0000元/千克总重量0000千克总价00000元”。如图63所示。图63数字电子秤模拟空载图注同组成员傅赟同学姓名在汉字中较为复杂在LM4229屏幕中无法显示,未予写入最后,上调压力传感电压表示已载有商品,同时按下“5”号键,表示选择6号商品“苹果”。此时LM4229上显示“名称苹果单价6800元/千克总重量3652千克总价“24835元”。达到基本要求。如图64所示图64数字电子秤模拟载物显示仿真图图65数字电子秤最大载物显示仿真图7、使用说明在使用仿真的过程中,首先打开仿真电路图,并加载好“HEX”文件到单片机中。后将压力传感电压调制000,点击按钮,开始仿真。(为了能够看到清晰的演示过程,请将电路的背景设为无。)整个电子秤设置了“015”个按键,其中的“0”键表示取消,其他键代表15种可供选择商品价格。8、设计总结通过本次电子技能课程数字电子秤的设计,让我更加熟悉了单片机的整个设计流程。在设计过程中,我也意识到好的编程书写习惯对软件设计的重要性。刚刚开始由于自己变量大部分采用的是局部变量,导致程序仿真出错,给自己的修改创造不小的麻烦。经过一天的努力,统一采用全局变量终于实现最终的仿真结果和设计的全部任务和要求。当然本数字电子秤还有很多可以改进的地方,例如可以改进按键功能方便工作人员随时对各数据进行修改等等。由于设计时间有限,只能在以后的学习过程中做更进一步的改进。9、元器件ATMEL89C52一只,蜂鸣器一只,44键盘一只,压力传感器一只(最大5KG),LM4229显示器一只,晶振一只,ADC0832一只,22PF电容两只,22F电解电容一只,10K电阻一只,510电阻一只,排阻一只10、参考文献1戴佳,戴卫恒,刘博文51单片机C语言应用程序设计实例精讲第二版电子工业出版社2008122徐爱钧单片机原理实用教程基于PROTEUS虚拟仿真【M】北京电子工业出版社,20093侯玉宝,陈忠平,李成群基于PROTEUS的51系列单片机设计与仿真【J】北京电子工业出版社,20084赵建领,薛园园51单片机开发与应用技术详解【N】北京电子工业出版社,20095单片机原理及应用技术(第一版)中国矿业大学出版社,20086阎石数字电子技术基础(第四版)M高等教育出版社1998117张毅刚等MCS51单片机应用设计哈尔滨工业电子出版社,19968何立民单片机应用技术选编北京航空航天大学出版社,20009张友德等单片微型机原理应用与实验,复旦大学出版社,199610邬宽明单片机外围器件实用手册北京航空航天大学出版社,1998附录AINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTSBITADCSP35SBITADDIP37SBITADDOP37SBITADCLKP36UINTX1,Y1,Z10,W1UCHARAD_DATA,K,N,M,E,NUM,S/采样值存储UINTTEMP1SBITBEEPP30CHARPRESS_DATA/标度变换存储单元FLOATPRESSUNSIGNEDCHARAD_ALARM,TEMP/报警值存储单元UNSIGNEDCHARABC548,46,48,48,48UNSIGNEDCHARPRICE_ALL648,48,46,48,48,48FLOATPRICE_UNIT1055,28,36,45,58,68,79,80,95,0/商品初始单价UCHARPRICE_DANJIA548,46,48,48,48FLOATPRICEUINTPRICE_TEMP1,PRICE_TEMP2/商品总价UCHARADC0832UNSIGNEDCHARCHANNELVOIDALARMVOIDVOIDDATA_PROVOIDVOIDDELAYUINTKVOIDKEYSCANVOIDDISP_INITVOIDPRICE_JISUAN/主函数/VOIDMAINVOIDDELAY500/系统延时500MS启动/AD_DATA0/采样值存储单元初始化为0LCD_INIT/显示初始化DISP_INIT/开始进入欢迎界面DELAY100/延时进入称量画面CLEAR_LCD0,4,40CLEAR_LCD16,0,100CLEAR_LCD28,0,40CLEAR_LCD44,0,100CLEAR_LCD56,0,40CLEAR_LCD72,0,100CLEAR_LCD84,0,40CLEAR_LCD100,0,100CLEAR_LCD112,0,40WRITE_LCD0,8,“实用电子秤“WHILE1AD_DATAADC08320/采样值存储单元初始化为0ALARMDATA_PRO/读取重量KEYSCAN/查询商品种类WRITE_LCD40,0,“WRITE_LCD56,0,“单价“WRITE_LCD56,11,PRICE_DANJIAWRITE_LCD56,20,“元/千克“WRITE_LCD72,0,“总重量“WRITE_LCD72,11,ABCWRITE_LCD72,20,“千克“WRITE_LCD88,0,“总价“PRICE_JISUAN/计算出价格WRITE_LCD88,10,PRICE_ALLWRITE_LCD88,20,“元“WRITE_LCD112,0,“作者刘煜苏超超“/读ADC0832函数/采集并返回UCHARADC0832UNSIGNEDCHARCHANNEL/AD转换,返回结果UCHARI0UCHARJUINTDAT0UCHARNDAT0IFCHANNEL0CHANNEL2IFCHANNEL1CHANNEL3ADDI1_NOP_NOP_ADCS0/拉低CS端_NOP_NOP_ADCLK1/拉高CLK端_NOP_NOP_ADCLK0/拉低CLK端,形成下降沿1_NOP_NOP_ADCLK1/拉高CLK端ADDICHANNEL_NOP_NOP_ADCLK0/拉低CLK端,形成下降沿2_NOP_NOP_ADCLK1/拉高CLK端ADDICHANNEL1_NOP_NOP_ADCLK0/拉低CLK端,形成下降沿3ADDI1/控制命令结束_NOP_NOP_DAT0FORI0I1ADCS1/拉搞CS端ADCLK0/拉低CLK端ADDO1/拉高数据端,回到初始状态DAT230BEEP0/则启动报警ELSEBEEP1VOIDDELAYUINTKUINTI,JFORI0IKIFORJ0J100J/开机欢迎界面VOIDDISP_INITWRITE_LCD0,8,“欢迎使用电子秤“WRITE_LCD16,0,“WRITE_LCD28,0,“WRITE_LCD44,0,“WRITE_LCD56,0,“WRITE_LCD72,0,“WRITE_LCD84,0,“指导老师张辉“WRITE_LCD100,0,“WRITE_LCD112,0,“设计日期2013年6月8日“/键盘服务程序VOIDKEYSCANP10XFETEMPP1TEMPTEMPWHILETEMP0XF0DELAY5TEMPP1TEMPTEMPWHILETEMP0XF0TEMPP1SWITCHTEMPCASE0XEENUM1,PRICEPRICE_UNIT0,WRITE_LCD24,0,“名称杏仁“BREAKCASE0XDENUM2,PRICEPRICE_UNIT1,WRITE_LCD24,0,“名称李子“BREAKCASE0XBENUM3,PRICEPRICE_UNIT2,WRITE_LCD24,0,“名称草莓“BREAKCASE0X7ENUM4,PRICEPRICE_UNIT3,WRITE_LCD24,0,“名称葡萄“BREAKWHILETEMP0XF0TEMPP1TEMPTEMPP10XFDTEMPP1TEMPTEMPWHILETEMP0XF0DELAY5TEMPP1TEMPTEMPWHILETEMP0XF0TEMPP1SWITCHTEMPCASE0XEDNUM5,PRICEPRICE_UNIT4,WRITE_LCD24,0,“名称西瓜“BREAKCASE0XDDNUM6,PRICEPRICE_UNIT5,WRITE_LCD24,0,“名称苹果“BREAKCASE0XBDNUM7,PRICEPRICE_UNIT6,WRITE_LCD24,0,“名称雪梨“BREAKCASE0X7DNUM8,PRICEPRICE_UNIT7,WRITE_LCD24,0,“名称核桃“BREAKWHILETEMP0XF0TEMPP1TEMPTEMPP10XFBTEMPP1TEMPTEMPWHILETEMP0XF0DELAY5TEMPP1TEMPTEMPWHILETEMP0XF0TEMPP1SWITCHTEMPCASE0XEBNUM9,PRICEPRICE_UNIT8,WRITE_LCD24,0,“名称香蕉“BREAKCASE0XDBNUM10,PRICEPRICE_UNIT9,WRITE_LCD24,0,“名称商品代码“BREAKCASE0XBBNUM11,PRICEPRICE_UNIT1BREAKCASE0X7BNUM12,PRICEPRICE_UNIT2BREAKWHILETEMP0XF0TEMPP1TEMPTEMPP10XF7TEMPP1TEMPTEM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论