1、本 科 毕 业 设 计基于单片机的智能电子秤设计Design of intelligent electronic scale based on MCU学 院: 电子工程学院 专业班级: 电子信息工程 DZ电子091班 学生姓名: 孙 昕 学 号: 2011140603 指导教师: 韩晓春(高级实验师) 2013年 6 月毕业设计中文摘要基于单片机的是能电子秤设计摘要:伴随着广泛应用的微电子技术,人们对电子秤的要求越来越高。本电路的控制核心为AT89S52单片机,和称重电路,显示电路,键盘电路一起构成的智能称重系统,自动称重系统,以实现各种不同的控制功能。这个系统是为了电子称的称重、计算价格还有
2、数据处理进行钻研的。为了详细说明如何用单片机对采样的数据进行处理,本实验研究了对数据采集、转换、计算等问题。并且讨论了单片机系统中最重要的计算问题,讨论的结果表明用本系统用软件设计的话将会是系统更加完美。本文给出了智能电子硬件设计,详细的分析了基础上已知软件的电子控制方法。可以说,本设计完成的电子秤在最大程度上满足了应用的需求。本设计中的电子秤有很多特点,如功耗低、性价格比高、简单方便的系统设计、速度快、测量的数据准确等特点。因为单片机控制的电子称不仅构造一目了然,而且制造的资金也很少,因此大部分的人们都很喜爱,本文将对于这些进行详细讨论。关键词:AT89S52,压力传感器,单片机,A/D转换
3、毕业设计外文摘要Design of intelligent electronic scale based on MCUAbstract: With the extensive application of microelectronics technology, people have become increasingly demanding electronic scales. The core of the control circuit for the AT89S52 microcontroller, and weighing circuit, display circuit, key
4、board circuit together constitute the intelligent weighing system, automatic weighing system, in order to achieve a variety of control functions. This system is known for electronic weighing, calculating prices have to delve into the data processing. For detailed instructions on how to use microcont
5、roller sampled data processing, this experimental study on data acquisition, conversion, calculation and other issues. SCM system and discusses the most important calculation discussed results show the system used with the software design, then the system will be more perfect. In this paper, intelli
6、gent electronic hardware design, based on a detailed analysis of the electronic control method known software. It can be said, the design is completed electronic scales to the maximum extent to meet the application requirements. The design of the electronic scale has many characteristics, such as lo
7、w power consumption, sexual price is high, the system design is simple and convenient, fast, and accurate measurement data characteristics. Because microprocessor controlled electronics, said not only construct a glance, and made very little money, so most of the people were like, this article will
8、discuss these in detail.Keywords: AT89S52;pressure sensor;microcontroller;A/D conversion目 录1.绪论61.1电子秤的发展现状和发展趋势61.2 项目研究的意义71.3 可行性分析72.系统方案论证与选型72.1设计要求72.2 整体功能82.3 电子秤的工作原理82.4总体设计方案93. 系统硬件设计93.1单片机概述93.2 AT89S52单片机简介93.3 最小系统电路113.4 键盘电路123.5 时钟电路153.6 液晶显示电路163.7压力感应电路183.8 电源电路203.9本章小结214 系
9、统软件设计214.1 编程语言及开发工具的选择214.2 主程序设计224.3显示模块流程图及子程序的设计234.4 按键处理程序254.5本章小结265 系统仿真及调试265.1 Proteus ISIS简介8265.2 keil简介275.3出现的问题和解决方法275.4 keil与proteus联合仿真及调试285.5 本章小结31致谢33参考文献341.绪论1.1电子秤的发展现状和发展趋势1.1.1 电子秤的发展现状1这几年来,我们的电子称重系统发展的很快。已经从最初的机电结合,发展至如今的数字和智能。电子称重技术从静态到动态称重发展,从模拟到数字测量发展,从单一到多参数测量发展。现在
10、在很多的发达国家在电子称重力这方面有了很大的提高。他们不断有创新的品种和结构,不断扩大应用范围和技术功能。在信息时代正在逼近的时候,数字化电子秤和数字称重系统在各个高端系统中的应用范围是越来越广泛了。它作为一种称重计量方式,丰富的应用于各大中型市场、物流配置中心、工厂等,而且作为工组成了工业控制和商业管理系统的一个重要部分,它的作用有:缩短工作时间,改良操作的条件,减少能源和材料的消耗,加强和改善企业管理与经营管理等多个方面,称重设备已经应用到国民经济领域,并取得了明显的经济效益。1.1.2 电子秤的发展趋势2台式的电子秤在买卖中的相当高的使用率,但是它只能应用在特定的地点。电子秤的应用程序性
11、能的产品往往有更多的集成和组合性。(1)小型化新研制的电子秤的发展方向逐渐趋向于体积小、高度低、重量轻。那些量程比较小的电子秤,为了能提高了稳定性和可靠性并且减少投入资金。应该采用薄型或超薄型的圆形称重传感器 3。然而,对于那些对所称重量要求中等或者较大的电子秤,开始采用方形或长方形闭合截面的薄型钢焊接而成的秤体,这种秤体结构的发展前途是很可观的。(2)模块化对于那些大型或超大型的载体结构,所采用的模块的标准结构有很多长度可供选择的。先是分开然后再通过组合去产生一些新的产品规格。这样的构成,不但是提高了产品的通用性、互换性和可靠性,而且也提升了产品的生产效率和产品质量4。与此同时也减少了材料本
12、身所需的成本,并且加强了企业的竞争力。 (3)综合性电子称重技术的发展规律是不断的加强基础研究并扩大应用,扩展新技术领域,向相邻学科和行业渗透,综合各种技术去解决称重计量、自动控制、信息处理等问题5。例如在统计流量这个专业,假如使用称重法,只要测量精准的重量和时间,测量大流量的问题自然而然就解开了。现代商业系统还要求商用电子计价秤能提供各种销售信息,把称重与管理自动化紧密结合,实现管理自动化。这就要求电子计价秤能与电子计一算机联网,把称重系统与计算机系统组成一个完整的综合控制系统2。1.2 项目研究的意义随着社会的不断发展和科技的不断进步,各式各样的电子新科技走进了我们的日常生活,让我们的生活
13、变得越来越方便。以前出现的量具多是杆秤或盘秤,1970年代开始出现了电子秤。之前的电子秤大部分都是用模拟电路去实现,现在电子技术日新月异,古老的称重系统在功能、精度、智能化、性价比等方面是很难达到人们的要求的。数字芯片的成本也一年比一年少,模拟控制已渐渐地被数字控制替代,电子秤的模式也大多数都围绕着微处理器来设计,使精度和可靠性都有了明显的提高。同时,也提高了仪器设备的可操作性和可维护性,使用价值也很高。综上所述,有计划有目标地制定出一套电子秤系统并且让他能有实用的价值,尽量地克服系统的不对的地方,对于减少电子秤在系统应用中的缺点,具有现实意义。1.3 可行性分析理论可行性:理论上来讲,电子秤
14、是有由以下部分组成:称重传感器,放大器,显示器,键盘。并且,每一部分都相对应有相关的元器件,而且,会有相关的技术去履行它,而且现在相关单片机的系统运用技术也已很成熟,在很多地方能用得到。经济可行性:因为我们做的电子秤是个简易器件,所以不需要很多的金钱投放,而且有易实行,性价比高,能够方便日常生活。技术可行性:应用C语言开发计算器,可以得心应手,为用户提供非常友好、易实行的用户界面、具有完整和强大的数据操作能力。社会可行性:电子秤是在社会生活中的运用非常多,大家都不能缺少它。2.系统方案论证与选型2.1设计要求本设计,需要用单片机作为内核,加上一定的外围电路和软件设计,实现智能电子秤系统的设计,
15、本设计任务可以分为硬件设计和软件设计。硬件部分包括:键盘模块、系统控制模块、显示模块等。设计技术要求:(1)熟练的使用protues和keil软件;(2)选择恰当的单片机并且配以外围电路设计。最终能仿真实现。其他要求:能实现计算、显示和调整数值等多种功能,具有准确度高、实时性好等特点。2.2 整体功能(1) 采用高精度电阻应变式压力传感器,测量量程0-100kg,测量准确度可达5g。(2) 采用电子秤专用A/D转换器芯片对传感器信号进行调整和转换。(3) 采用ATC89S52单片机作为控制核心,实现称重、计算价格等主控功能。(4) 采用LCD液晶屏去显示称重重量、单价、总价等信息。(5) 采用
16、计算器键盘进行人机交互,计算器的键盘容量大,而且运用很方便。2.3 电子秤的工作原理如果要进行对电子秤的探讨,就必须要从它的工作原理说起。电子秤中的压力传感器的作用是非常重要的,通常情况下压力传感器常采用电阻应变式,这时候,传感器有点像是中间人的感觉,即当把要称的东西摆放在秤台的那一刻,它的重量就会传达到压力传感器中,传感器随后便会使这个物件有多重就都会转成电信号。放大电路将该信号进行放大,滤波后由A/D转换器开始转变,然后将数字信号传送到微处器的CPU处理,CPU它就会不停地检测键盘,然后辨别和分析被打入键盘里的内容,由其软件部分来控制各种运算 6。根据本设计对功能的要求,系统由5个部分组成
17、:时钟电路,复位电路,键盘电路,液晶显示电路,称重电路。本系统的设计框图如图2-1所示。图2-1 电子秤结构框图2.4总体设计方案本设计中,处理前端信号的时候,选用的措施有放大、A/D转换等,尤其在液晶显示这块采用LCD显示器。这几点紧紧抓住了这个设计的重中之重,也能够显示那个被称东西的重量及价格。LCD显示器的使用大大节省了I/O口的使用。目前单片机技术已经比较成熟,功能也更强大,测得的信号被放大转入单片机,由单片机根据相应的数据关系,处理测量信号显示被测物体的重量。单片机适用的控制系统它实现的功能一定不能很复杂。它优点有有很多。但它也有缺点,就是外面的电路不简单,而且,编写的程序比较繁琐。
18、结果就是,如果使用这一个方案就会给自己的设计添加难度。3. 系统硬件设计3.1单片机概述单片机又称单片为控制机器。它是计算机技术的在不断发展过程中的一个重要的标志,它标志着计算机正式发展为通用计算机系统和嵌入式计算机系统两大分支。3.1.1 单片机的发展状况7单片机有着简短精湛的历史,它的产生与发展基本上和微处理器同步。它具有轻质量、小体积、成本低等优点,这也为它的发展做了铺垫。并且,通过研究单片机有利于学习计算机原理与结构,它最早是被用在工业控制领域。3.1.2 单片机的发展趋势(1)低功耗CMOS化。CMOS电路有着非常多的优点,如极宽的工作范围、极佳的本质低功耗及功耗管理特性等,形成了嵌
19、入式系统独特的低功耗及管理应用技术。随着对单片机功耗要求越来越低,单片机逐渐都要采用CMOS。(2)主流与多品种共同存在。在特定的一段时期内,某一种单片机的垄断局面将会不在存在,而是走向相互补充相互依靠、相互促进、共同发展之路。(3)基于串行方式的外围设备扩展。(4)微型单片机。现在的产品要求占地方少、拿起来不费力的现象有很多,这就要求MCU除了强大的功能和消耗少以外,也要求其占地方少。单片机构造的系统正逐步向小型化、微型化的方向发展7。3.2 AT89S52单片机简介AT89S52单片机是ATMEL公司推出的高档、增强型产品。它是一个消耗低性能却很高的CMOS位微控制器,其片内含有通用8位C
20、PU和 ISP Flash存储单元,8k Bytes ISP(In-system programmable)是可反复擦写1000次的Flash只读程序存储器,片上Flash允许程序存储器在系统可参与编程,它也适用于常规编程器。ATMEL公司的高密度、非易失性内存技术被用在制造器件上,兼容标准MCS-51指令系统及80C51引脚结构,在单个芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为许多嵌入式控制应用系统提供高灵活、具有高成本效益的解决方案8。3.2.1 主要特性兼容MCS-51指令系统 它工作的电压基本上是4.5-5.5V3个16位可编程定时/计数器式 时钟频率O
21、-24MHz2个全双工UART串行中断通道 256x8BIT内部RAM2个外部中断源 低功耗空闲和掉电模式中断唤醒掉电模式 三级加密程序存储器灵活的ISP字节和分页编程 电源关闭标识3.2.3 AT89S52管脚结构AT89S52有PDIP、PLCC和TQFP等三种封装形式(其管脚的结构如图3-1所示)。图3-1 AT89S52引脚图3.2.4 AT89S52组成框图AT89S52结构框图如图3-2所示。图中VCC表示+5V的电源, GND 是接地。图3-2 AT89S52型单片机结构框图P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p3 输出缓冲器能驱动4 个 TTL 逻辑
22、电平。在flash编程和校验时,P3口也接收一些控制信号。P3口亦作为AT89S52特殊功能(第二功能)使用,如表3-2所示。表3-2 P3口特殊功能引脚号第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外中断0)P3.3INT0(外中断0)P3.4T0(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)。3.3 最小系统电路最小系统电路包括复位电路和晶振电路。其系统如图3-3所示。在单片机片内部每种操作所需的时间信号由单片机的时钟信号来供给,复位操作能够让单片机的内部的电路回到最初状态,
23、让单片机能够从开始运行的时候以一种准确的初始状态 9。所有微机系统每次一开始运行就会复位,它能够使整个控制芯片返回到最开始的状态下。51单片机的复位是通过RST引脚去控制的,这个引脚与HL连接超过一定标准之后,51单片机就进入到整个控制中心内部的复位状态。并一直在这个状态下等待,直到RST引脚转为LL后,才检查EA引脚是HL或LL,假如是HL就执行芯片的内部程序代码,如果是LL便会执行外部程序的代码。图3-3 最小系统电路3.4 键盘电路电子秤的称重数值的输入用到按键,在这种情况下,如果采用独立按键的方式,编程会很简单,但是会占用大量的I/O口资源,所以在大多数的情况下一般不会用这个方式,取而
24、代之的是使用矩阵键盘。矩阵键盘使用四条I/O线作为行线,四条I/O线作为列线,最终组成键盘,在每一个行列线的交叉点上放置一个按键。最终就知道键盘上的按键个数就是4*4个。这样的行列式的键盘结构可以快速的增加单片机系统中I/O口的利用率。矩阵键盘的工作原理:当按键没有被按下时,整个输出端接的是高电位,表示没有键按下。当行线输出是低电位,如果有键被按下,那么输入线将会被拉低,所以,只要知道读入输入线的状态就能判别有无按键被按下。3-4矩阵键盘布局图矩阵键盘内部电路图如图3- 5所示:图3-5矩阵键盘内部电路为了更好的利用单片机的I/O口资源,在系统中,我选择了MM74C922芯片。它是一款可以扫描
25、4*4键盘的IC,它可以感受到与它接在一起的4*4键盘上的操作,并且通过数据输出口使按键相应的编码输出。它的引脚图就如下图3-6所示:图3-6 MM94C22硬件图MM74C922对各按键的响应如下表所示如图3-7所示,在这个设计里。在仿真图中,键盘的行线A、B、C、D分别和MM74C922的X1、X2、X3、X4引脚相连。键盘的列线则分别和MM74C92的Y1、Y2、Y3、Y4;键盘的其中一端是先连接电阻再连接到电源上,不同的是,接地是利用程序输出“0”完成的。当这个期间感受到有按键输入的时候,DA端就会产生HL,与它相连的端口感受到LL。图3-7键盘接口电路图3.5 时钟电路时钟电路的核心
26、是个比较稳定的振荡器(一般都用晶体振荡器),振荡器所产生的是正弦波,频率不一定是电路工作的时钟频率,因此就要把这正弦波进行分频,处理,最后形成时钟脉冲,然后分配到需要的地方。如下图3-8所示,XTAL1和XTAL2这两个引脚端外接晶体振荡器和电容去构成内部的振荡方式,片内的高增益的反向放大器和作为反馈元件的片外晶体谐振器,它们一起构成自激振荡器,并且能产生振荡时钟脉冲。电容器的最重要的作用就是帮助振荡器起振。电容器容量的大小对振荡频率有轻微调控的作用,它的值一般情况下大概是30pF,振荡的频率重点由石英晶振的频率确定,振荡电路的频率也就是晶体的固有频率。照目前来看,单片机的晶振频率f的范围为1
27、.260MHz。晶振频率常12MHz/6MHz。图3-8 时钟电路3.6 液晶显示电路液晶,通过名字我们就可以猜到,它不同于固态和液态这两种类别,是处于这两种类别之间的一种中间类别。LCD液晶显示屏是被动式的因为它本身并不能发光,而是在电压的作用下液晶能够改变光线通过的方向,从而达到了显示的目的。液晶显示器因为功耗比较低,所以适用于使用电池的电子设备,一直倍受人们的青睐。在本系统中,要求对重量、价格及总价进行显示,因而选择液晶显示屏1602。LCD1602的消耗少,而且价格合算,功能也齐全。LCD1602采用14条引脚线,其中有数据引脚线为D0至D7、控制引脚线分别是RS,R/W和E、对比调整
28、电压引脚线(VDD)、电源和地引脚线。但还有2条引脚线是用来接到背光电源正负极的,平时很少会使用到10。LCD1602主要引脚的功能如表3-3所示。表3-3 LCD1602主要引脚的功能LCD1602的主要管脚介绍LCD1602可以通过VEE端去调控整个显示器的对比度。对比度是最大的时候就是接电源的地端,对比度是最小的时候就是接电源正端,对比度大的时候就会产生鬼影,但是对比度较低就显示的不清楚。R/W为读、写选择端,运行写操作的时候为低电平,很显然运行读操作的时候就为高电平。RS为数据、指令寄存器选择端,为低电平的时候可以选择指令寄存器,而高电平的时候可以选择数据寄存器。E端为信号使能端,在E
29、端脉冲有下降沿出现的时候,液晶模块开始工作。LCD1602的内部control器的指令总的来说有11个11:指令1:将显示屏清除干净,光标归位的同时AC=0。指令2:光标归位、AC=0、DDRAM里的内容保持不变。指令3:当I/D=1的时候,进行数据读和写的操作后,光标右移,反之左移。当S=1的时候,进行数据读和写的操作后,显示屏整体右移1字符,反之,显示屏不移动。指令4:当D=1的时候显示功能开,反之,关显示屏。当C=1的时候有光标,反之,无光标。当B=1的时候光标不闪烁,反之,光标闪烁。指令5:设定光标、字符移动方向。当S/C和R/L的值为00H的时候光标右移一格。值是01H时光标左移一格
30、。指令6:当N=1有2显示,当N=0有1显示。DL=1的时候数据总线为8位,DL=0的时候数据总线为4位。指令9:读取忙标志BF的值、AC的值。BF=1时显示屏忙,反之,表示显示屏准备好。指令10:将数据写到RAM。指令11:从RAM中读取数据。将LCD1602的各端口与单片机相连好,如果E端为HL,此时的RS端为LL,同时R/W端为LL的时候,液晶显示屏就会显示出用户想要显示的数据。单片机与1602液晶显示屏的硬件连接图如图3-9所示。图3-9 单片机与1602液晶显示屏硬件连线图3.7压力感应电路现代的传感技术发展的越来越快,大家都已经从用传统的杠杆原理去测量物体的重量,发展到至今的用电子
31、秤电子称重,即利用压力传感器把压力的信号转变成为电信号,运用单片机本身的技术,根据电信号和重力信号的数学模型,就能够间接的计算出物体的重量,目前普遍使用的是电阻应变片式称重传感器。电阻应变式压力传感器是把电阻应变计粘贴在弹性敏感元件上,然后以适当方式组成电桥的一种将力转换成电信号的转换元件12。压力感应电路是由气压传感器MPX4115、A/D转换器等组成。如图3-9图3-9 压力感应电路3.7.1气压传感器MPX4115的原理气压传感器MPX4115的管脚如图3-9 ,管脚说明如表3-4所示图3-9 MPX4115实物图表3-4 气压传感器MPX4115的管脚说明123456VOUTGNDVS
32、N/SN/SN/S气压传感器MPX4114的特性参数如表3-5所示:参数符号最小典型最大单位压力范围Pop15-115KPa供电电压Vs4.855.15.35Vdc供电电流Lo-7.010mAdc最大压力偏置 (085)Vs=5.0VVpss0.1350.2040.273Vdc满量程输出 (085)Vs=5.0VVoff4.7254.7944.863Vdc满量程比例 (085)Vs=5.0VVFSS4.5214.5904.695Vdc精度(085)-1.5%CPSS灵敏度V/P-45.9-mV/KPa响应时间(10%90%)tR-1.0-ms上升报警时间-20-ms偏置稳定性-0.5-%VFS
33、S3.7.2转换器ADC0808 转换器ADC0808构成引脚图如图3-9所示。图3-9 ADC0808引脚图(2) 转换器ADC0808工作原理A、B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择见表3-4。表3-4 ADC0807通道选择表CBA选择的通道000INT0001INT1010INT2011INT3100INT4101INT5110INT6111INT73.8 电源电路本实验所需要的工作电压为+5V,由于该系统不仅要接220V电压还有可能要与USB相连,USB的接口所需的电压为12V。所以,先利用适配器把220V的交流电压通过降压、整流、滤波转变为少一点的直
34、流电压。最后达到5V的电压供给整个电路 13。变压器输出端的电压经桥式整流,电容滤波,在电容C6两端大约会有高一点的电压,如果在电容两端接上负载,如果出现负载变化或者交流电源有波动情况,那么会对C6电压产生较大的影响,所以,当你想要一个稳定的电压源就必须要接上一个稳压器。它是由若干电阻和三极管构成的一种集成电路元器件,在你研究电路的时候,可以把它当作是一个能够调节电阻大小的元件,如果经过负载的电流变大大,那么,其内部的电阻会变小,同样道理,如果电流变小,那么电阻就会变大。只有这样才能够使电压更加稳定。7805三端稳压集成电路有三个引脚,1号引脚是输入端,2号引脚是接地端,3号引脚是输出端。通过
35、7805的个位数字我们可以知道输出电压是5V。TR1是电源变压器,通过TR1把220v交流电变为12v交流电。然后再通过桥式整流电路,把12V交流电变为12V直流电。电路如图3-10所示。图3-10 电源电路3.9本章小结本章简单的介绍了单片机的硬件部分的组成。并且介绍单片机选用了8051系列单片机里的AT89S52,按键的部分明智选择了矩阵键盘,液晶显示电路的部分则选择了LCD1602。4 系统软件设计该软件设计的大致思路是:根据自己所编写的程序对系统中的测量进行控制,使其自动完成逻辑判断以及重量的测量:本设计软件的主要的目标如下:(1)设置单价;(2)显示质量、单价及总价;(2)超量程指示
36、。4.1 编程语言及开发工具的选择4.1.1编程语言的选择对8051单片机而言,现在最常用的就是汇编语言和C语言。每种语言都有各自的优缺点。在51系列单片机下,C语言和汇编语言相比,有很多的优点,具体叙述如下14:(1) 不要求对单片机的指令系统有所了解,如需使用它只要对51系列单片机的存储器结构有简单了解就可以;(2)寄存器分配、不同存储器的寻址及数据类型等细节可由编译器管理;(3)其本身所提供的库中有许多的程序,数据的处理有很强大的能力;(4)由于他本身的编程技术运用很便利,已经编写好的程序就可以很方便的复制粘贴去其他地方。结合上面的几点叙述,本设计应该选择的编程语言为C语言,并且采用模块
37、化编程方式进行编程。4.1.2 开发环境的选择单片机的开发环境是多种多样的,有很多家公司都研发了单片机的开发软件,如American Automation、瑞典的IAR、Avocet和Keil等。开发环境的优劣直接影响单片机应用产品的开发效率7。本设计基于51系列单片机AT89S52,而且选用C语言进行编程,因此选用来自德国的主流开发软件Keil进行编程。Keil在代码生成方面相比较于其它几款软件很显然是处于先前地位的,它能够产生最少的代码。4.2 主程序设计4.2.1 主程序设计思想称重是电子秤最基础的功能,所以该程序设计的主要出发点就是一定要保证准确的称重。因为这个是虚拟电路,没有实在的重
38、量。所以为了这个,在本系统中还是设置了一个初始的值。然后通过MPX4115去调它的值,而且它被设了一个上限的值,当重量到达那个点时,显示器就会显示出“over”字样。通过MPX4115上的“+,”按键就可以实现调整重量大小的功能,但是重量就通过矩阵键盘来调整。只要按下键盘上的“=”键,就能够算出总价格,并显示出来,计算的使用增加按键的使用,使键盘的使用丰富起来。液晶显示模块采用的液晶显示器,它能够显示那些字符。这样使程序的编写简单了很多,再通过矩阵键盘上的按键实现价格计算和调整等功能。单片机系统按照程序控制所设定操作方式开始运行,系统上电后,会使系统自动回到最初状态。初始化程序主要完成对单片机
39、内专用寄存器的设定,并规定单片机的工作方式,顺便也规定每个端口的工作形态。主程序流程图如图 4-1 所示。图4-1 系统流程图4.3显示模块流程图及子程序的设计显示模块子程序最重要的功能是来断定是不是需要,以及怎么样去将数值显示出来,因此,显示模块子程序是一段很重要的设计,在设计时要注重这个模块。首先开始显示初始化界面,完后判断有无按键,如果没有返回到上一步,如果有按键则显示出来按键的功能,例如预置的单价等,检测是否有重物,如果没有返回上一步,如果有按键则显示出物重、总价等信息,显示结束返回。显示子程序的流程图如下图4-2所示。图4-2显示子程序流程图显示电路程序分析(取段)void Int(
40、)LcdInt(); /调用LCD初始化函数 TMOD=0x22;/定时器0自动从转载模式EA=1; /开总中断ET0=1; /允许定时器0中断TH0=0X14; /赋值 TL0=0X00;TR0=1; /开定时器0BKeyCount=0; /计数器初始化4.4 按键处理程序键盘电路使用4*4矩阵式键盘,一共有16个按键,主要用到的包括: 0 9、确认键、清零键、计算键。在按键程序中应该先开始判断按键的编码,然后将其所表示的数值传送到相对应的存储单元,再开展功能的判断或数据的整理。主要是判断有无按键,如果没有原地跳转,如果有按键则通过LCD显示出其按键功能,然后判断是否有清零键按下,如果没有则
41、原地跳转,如果有清零键按下,说明键盘输入重新开始,返回到字符界面显示继续后面的操作。键盘子程序的流程图如图4-3所示。图4-3键盘子程序流程键盘显示模块的一段程序分析:void main() Int(); Write_NO1(0x00,PC_Data); Write_NO2(0x00,Price); while(1) if(MMC74C992=0)while(MMC74C992=0); /MMC74C992=0时,说明有按键按下,很重要,必须有。 BKey=(P2&0Xf0)4; /将高4位的BCD码一到低4位,便于计算 /将BKey的BCD码转换成相应的按键值,便于计算。 /改转换只转换了0
42、-9数字键和“=”按键,其他暂时涉及不到,所以未进行转换 switch(BKey) case 0:BKeyNum=7;break; /按键7的识别case 1:BKeyNum=4;break; /按键4的识别case 11:BKeyNum=10;break; /实则为=按键识别default :BKeyNum=11;break; /其他按键键值为11,无效按键 if(BKeyNum=10,说明不是数字键,无需存取 Write_NO2(0x00,Price); /显示单价 Total_priceBKeyCount+=BKeyNum; /存放价钱 WriteAddress(0x46); / Wri
43、teData( );起到站空位的作用,清除原来无用显示的数据。4.5本章小结本章对主程序进行了整体说明,这包括主程序里设计思想和主程序内容解析。接着对于按键调节和按键切换、显示部分的程序作了具体说明及分析。5 系统仿真及调试5.1 Proteus ISIS简介15Proteus ISIS是英国Labcenter公司所开发的一个软件。它能够对电路进行分析和实物仿真。它已经出现快20年了,在全世界拥有非常多的企业用户群,也是目前唯一一个对每一种处理器都能进行迅速的仿真、调试和测试的EDA工具,准确的履行了没有实物就能够对系统进行设计、测试和验证的作用。Proteus的作用真的有很多,是近年来备受电
44、子设计爱好者青睐的一款新型电子线路设计与仿真软件。5.1.1 Protues运行流程(1)首先,在电脑里下载正确的软件版本,此软件主要是对硬件部分进行模拟。(2)其次,进入软件后蓝色框内就是工作区域,可以在里面随意选择元器件,拖动元器件。根据原理图进行正确的连线。(3)再次,完成所有连接后,双击单片机把生成的HEX文件进行导入。(4)最后,如果程序和连好的图都没有问题就可以进行仿真了。5.2 keil简介Keil支持51系列的单片机的仿真,可通过系统设置生成51可执行的hex文件。Keil提供了一个完善开发案本,通过一个集成的开发环境将所有组合在一起。还有最关键的是,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势16
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100