欢迎来到天天文库
浏览记录
ID:6695783
大小:681.00 KB
页数:18页
时间:2018-01-22
《基于at89c51的数字电子秤的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、电子称设计方案目录电子技能课程设计报告书1基于AT89C51的数字电子秤的设计11、设计目的12、设计的主要内容和要求13、整体设计方案13.1设计方案13.2工作原理14、硬件电路的设计25、软件设计35.1主程序设计35.2LM4229液晶显示驱动程序45.3ADC0832采样程序55.44*4键盘程序66、系统仿真67、使用说明98、设计总结9参考文献9附录A10-16-基于AT89C51的数字电子秤的设计1、设计目的单片机以其功能强,体积小,功耗低,易开发等很多优势被广泛应用。但单片机不是万能的,也存在不适合的
2、场合,我们要充分利用单片机的内部资源和选择合适的单片机来完成我们的设计。本数字电子秤的设计过程中需要用到A/D转换、键盘、液晶显示、复位电路和蜂鸣器报警驱动电路的知识,同时在软件的设计过程中需要用到键盘扫描、液晶显示驱动、模数转换程序及汉字库的的设计,可以很好的将数电、模电、单片机知识进行综合应用。在综合应用中进一步熟悉单片机设计的开发各个流程,最终达到"巩固基础、注重设计、培养技能、追求创新、走向实用"的目的。2、设计的主要内容和要求本文主要完成一个简单实用数字电子秤的硬件电路部分和软件部分的设计。在设计的过程学会使
3、用单片机对数字电子秤的各种功能进行控制。本设计中的数字电子秤要求能够显示商品的名称、价格、总量、总价等;能够自动完成商品的价格计算;能够储存几种简单商品的价格;能够具有超重提醒功能,一旦重量超出了自身重量的测量的范围,发出警报;同时对数字电子秤的测量范围要达到5KG,测量精度要求达到0.001。3、整体设计方案3.1设计方案整个数字电子秤电路由电源电路、单片机主控制电路、LM4229显示电路、蜂鸣器报警电路、4*4键盘电路和压力传感电路(ADC0832采样)6个部分组成。如图3.1所示。3.2工作原理打开电源开关,数字
4、电子秤开始工作。接通电源时,数字电子秤进入欢迎界面“欢迎使用电子秤设计······”。此时数字电子秤上MCU开始工作,键盘不断进行扫描,同时-16-通过ADC0832也不断进行外部称量数据采样,LCD上显示“实用电子秤名称单价······”。当载物台上放有物体时,ADC0832立即将数据收集送给单片机处理。此时工作人员只要输入对应商品的代码编号,在240*128的LCD上可以看到相应商品的名称,单价,总重,总价格等信息。在称量的过程中,一旦物体自身的重量超出电子秤的称量范围,蜂鸣器立即会发出“滴滴····”警报声告诉工
5、作人员,所称量物品超重。图3.1整体设计方框图3、硬件电路的设计数字电子秤采用AT89C51单片机作为微处理器,接口电路由晶振、LM4229显示电路、4*4按键电路、ADC0832电路、报警电路、存储器等组成。控制器系统的硬件电路原理图如图4.1所示。控制器系统硬件电路的工作过程是:打开电源时,MCU及各个部分电路开始工作,MCU调用内部存储数据对各部分接口电路初始化。200ms后LM4229进入欢迎界面,ADC0832不断对外部数据进行采样交给MCU进行处理,一旦有物品放入载物台,ADC0832立即发送中断请求,并将
6、本次采集数据交给MCU处理,之后LM4229显示相应数据量。在此过程中,键盘也在不断进行扫描,一旦有键按下,单片机也会对其数据进行相应处理,然后将对LM4229进行写操作。-16-图4.1数字电子秤硬件电路图5、软件设计本设计中的程序由主控制程序、LM4229液晶显示驱动程序、ADC0832采样程序和4*4键盘程序组成。5.1主程序设计整个设计中采用由下向上的设计思路。主程序中主要完成对LCM4229、ADC0832、及键盘扫描程序的调用。在编写程序的过程中,各变量统一采用全局变量方式命名,同时考虑到电子秤对精度的要求
7、,本设计中的价格及总量相关的变量全部采用浮点数。主程序流程图如图5.1所示。-16-图5.1主程序流程图5.2LM4229液晶显示驱动程序图5.2LM4229液晶显示驱动程序流程图-16-LM4229液晶能够显示比较复杂的汉字和图形,首先必须对其写入控制操作字,包括图形的显示方式,字体的模式。然后写入初始行地址,指针自动左移,直到写完全部数据为止。write_data(place&0xff);//写入地址高位write_data(place/256);//写入地址低位write_com(0x24);//地址设置writ
8、e_com(0xb0);//设置数据自动写write_data(ASC_MSK[(c1-0x20)*16+k]);/*---例如:0的ASCII码为0x30,在ASC_MSK中的位置为0x10*16---16字节字码依次写入LCD---*/write_com(0xb2);//自动复位place=place+30;5.3ADC083
此文档下载收益归作者所有