基于单片机的简易电子称毕业论文(35页).doc
-基于单片机的简易电子称毕业论文西安邮电大学毕业论文基于单片机的简易电子称作 者:梁忠涛院 系:自动化学院专 业:测控技术与仪器班 级:测控1103指导老师:周有-第 37 页摘要 此次设计主要是以单片机AT89S52为核心设计的简易电子秤。本设计主要分为传感器部分、单片机中央处理部分、LCD显示部分、键盘输入部分。利用压力传感器采集信号,DS1602显示单价和质量。输出信号输入到中央处理部分AT89S52的芯片,通过信号放大和AD转换,编程对信号进行处理传送到1602液晶显示屏显示相关数据,按键电路通过按键对单价进行设置。本设计结构简单,具有抗干扰能力强、成本便宜、可扩展性强等特点。关键词:单片机 压力传感器 液晶显示 电子秤Topic: Hardware Design of Electronic Scale Based on Single Chip MicrocomputerCai Liming2008926068, Automation majorAbstract This hardware design of electronic scale is mainly based on the 51 series single-chip AT89S52 as control core, realizes the basic control function of electronic scale. In the design of the system, in order to make better use of the modular design method, the design of each unit step function module, the hardware of the system can be divided into the smallest system, data acquisition, man-machine interface and power supply system four parts. Minimum system consists of AT89S52 and extension of the external data memory; data acquisition part consists of pressure sensor, signal pre-processing and A / D conversion parts, includes an operational amplifier ADC0832; man-machine interface for keyboard input and liquid crystal display, the main use of matrix keyboard and LCD1602 display, can easily input data and intuitive display value. Software design of single-chip C programming language, to achieve the design of the whole control function. The electronic scale can realize the basic function of weighing, weighing range for 0.5-10kg.The whole system has the advantages of simple structure, convenient use, complete function, high precision, has the certain development value.Keywords:microcontroller pressure sensor liquid crystal display electronic scale目 录第1章 引言11.1选题的目的和意义11.1.1目的11.1.2意义11.2研究现状综述2第2章 系统总体设计42.1系统设计要求42.2系统设计思想42.3设计要完成的任务5第3章.系统硬件电路设计63.1 数据采集模块电路的设计113.2 控制模块的选型与研究63.2.1 选择单片机63.2.2 AT89S52单片机芯片的学习73.3 A/D转换器ADC0832与AT89S52单片机的接口电路133.3.1 ADC0832的介绍133.3.2 ADC0832与单片机接口电路设计153.4 显示模块的设计163.4.1 显示模块的选择与介绍163.4.2 LCD1602与AT89S52单片机接口电路的设计173.5 键盘电路与AT89S52单片机接口电路的设计183.5.1 键盘与单片机的连接方式选择183.5.2 单片机对键盘的扫描203.5.3 键盘接口和键输入软件中应解决的一个问题21第4章 系统软件程序设计234.1 主程序流程图:234.2 AD转换流程图244.3 液晶显示流程图254.4 单片机对矩阵式键盘接口处理过程如下图所示:264.5 系统原理电路图27第5章 结 论28参考文献29致 谢30附录:软件程序设计31第1章 引 言1.1选题的目的和意义如今,电子产品变得越来越丰富,给人们带来了很多很多的方便,其中电子秤成了人们生活中不可缺少的一部分。大大小小的市场电子秤能够完成许多工作,为人们节省了时间,提高了工作效率。电子秤不但能很精确的称出商品的重量,还能去除皮重,累计所称物品重量,输入物品单价可快速的计算出金额,可以说非常的智能化,而且非常的精确。由此,顾客在购物的时候非常的放心,商家的效益也提高了,所以有了电子秤,顾客买的放心,商家也卖的开心了。而目前市场上电子秤产品的整体水平不高,部分小型企业产品质量差且技术力量薄弱,设备不全,缺乏产品的开发能力,产品质量在低水平徘徊。因此,本设计的目的在于有针对性地开发出一套有实用价值的电子秤系统,从技术上克服上述诸多缺点,改善电子秤系统在应用中的不足之处。本设计的控制功能包括基本的称重功能,显示功能,和计算功能。由于系统资源丰富,还可以方便的拓展其他应用。 在本次设计中,涉及到传感器技术,单片机技术,模拟电子技术,数字电子技术等的多种学科知识的综合运用。通过本设计,能提高本专业各个学科综合知识的实际运用能力,提高实际动手能力,提高自身的科学性、系统性、及全面性的综合设计素质。并且,可以通过此次的毕业设计,较好的掌握硬件开发的工作流程及步骤,学会使用汇编语言、C语言编写程序,我相信通过这次对电子秤控制系统的设计,一定能够学到丰富的知识并对电子产品有更深一层的了解,为将来参加实际工作做好充分的准备。1.2研究现状综述 1.2.1 国内发展情况50年代中期电子技术的渗入推动了衡器制造业的发展。60年代初期出现机电结合式电子衡器以来,经过40多年的不断改进与完善,我国电子衡器从最初的机电结合型发展到现在的全电子型和数字智能型。电子衡器制造技术及应用得到了新发展。电子称重技术从静态称重向动态称重发展:计量方法从模拟测量向数字测量发展;测量特点从单参数测量向多参数测量发展,特别是对快速称重和动态称重的研究与应用。电子称重技术基本达到国际上20世纪90年代中期的水平,少数产品的技术已处于国际领先水平。国内的电子秤市场中,1009左右量程的电子秤精度一般为0.019即10mg。在研究方法上,电子称重系统的工作原理一般是将作用在承载器上的质量或力的大小,通过压力传感器转换为电信号,并通过控制电路来处理该电信号。但就总体而言,我国电子衡器产品的数量和质量与工业发达国家相比还有较大差距,其主要差距是技术与工艺不够先进、工艺装备与测试仪表老化、开发能力不足、产品的品种规格较少、功能不全、稳定性和可靠性较差等。1.2.2 发展趋势通过分析近年来电子衡器产品的发展情况及国内外市场的需求,电子衡器总的发展趋势是小型化、模块化、集成化、智能化;其技术性能趋向是速率高、准确度高、稳定性高、可靠性高;其功能趋向是称重计量的控制信息和非控制信息并重的“智能化”功能;其应用性能趋向于综合性和组合性。1.3论文主要研究内容本文主要是设计的内容是简易电子秤,它用单片机作为处理核心,信号由压力传感器感受后经放大器放大和模数转换后输入到单片机处理,同时该电子秤具有LCD显示和键盘输入。该电子秤具体实现的功能是能够测量一定质量内物体的质量,能够利用键盘输入价格,具有清零,可以计算总价,并能通过LCD直接显示出来,超过所测重量时能够报警。第2章 系统总体设计2.1系统设计要求设计系统实现的功能如下:1) 要求电子秤可称体重范围0.5-10kg;2) 具有键盘输入;3) 价格计算功能;2.2系统设计思想本设计采用压力传感器作信号采集部分,AT89S52做中央处理器,液晶屏显示。设计满足市场需求的实用数显电子称。利用单片机,对压力传感器传来的信号进行放大和A/D转换,误差修正处理并在液晶上形成质量显示。前端信号处理时,选用放大、A/D转换等措施,尤其在显示方面采用液晶显示器。这种方案不仅加强了人机交换的能力,而且满足设计要求。可以显示所称量的物体信息相关内容。目前单片机技术比较成熟,功能也比较强大,被测信号经放大整形后送入单片机,由单片机对测量信号进行处理并根据相应的数据关系显示出被测物体的重量。由于系统需要的按键较多,因此要采用4*4矩阵键盘。单片机控制适合于功能比较简单的控制系统,而且其具有成本低,功耗低,体积小算术运算功能强,技术成熟等优点。放大电路传感器A/D转换器报警电路主控制器LCD显示键盘输入图1系统原理框图2.3设计要完成的任务根据单片机最小系统、外围电路的要求和整体设计思路,本设计要做的具体的工作主要有一下几个方面:1)按照初步方案画出硬件框图、电路图及制板。2)根据系统设计要求及硬件框图确定软件流程图并编写相应软件。3)焊接电路以及功能电路的软硬件调试。4)系统软硬件联调。第3章.系统硬件电路设计3.1 数据采集模块电路的设计数据采集模块电路包括:(1)、压力传感器输出信号的放大电路部分,压力传感器将接收到的压力信号转变为电信号输出,放大电路的作用就是将其电信号进行放大处理。(2)、A/D转换器模块,因为单片机只能接收数字信号,而前面输出的是模拟信号,A/D转换器的作用就是将模拟信号转变为数字信号,送入单片机进行处理。此外还包括A/D转换器与单片机的接口电路部分。采用传感器方案: 电阻应变式传感器 电阻应变式称重传感器是利用电阻应变片变形时其电阻也随之改变的原理工作的, 根据传感器理论可知,设长为L、截面积为S、电阻率为的电阻丝,已知其阻值为: (2-1) 当电阻丝两端有机械应力F时,、L、S都会发生变化,从而导致电阻发生变化。这种应变片式传感器是基于材料的电阻应变效应,电阻应变片即可单独作为传感器使用,又能作为敏感元件结合弹性元件构成力学量传感器。电阻应变片把机械应变信号转换为R/R后,由于应变量及相应电阻变化一般都很微小,难以直接精确测量,且不便处理。因此,要采用转换电路把应变片的R/R变化转换成电压或电流变化。其转换电路常用测量电桥4。如图2-2所示为常见的直流供电的平衡差动测量电桥:图22 直流供电的平衡差动测量电桥图中,为供桥电源电压,当初始有时,则电桥输出电压或电流为零,这时电桥处于平衡状态。其测量原理:用应变片测量时,将其粘贴在弹性体上。当弹性体受力变形时,应变片的敏感栅也随同变形,其电阻值发生相应变化,通过转换电路转换为电压或电流的变化。由于内部线路采用惠更斯电桥,当弹性体承受载荷产生变形时,输出信号电压可由下式给出: (2-2) 本文的目的是设计一简易电子秤,最大称重约为5千克,考虑到与其相配置的各种电路的设计的难易程度和设计性价比,最终选择了CZAF-6058电阻应变式称重传感器,其称重规模为5kg。 本设计中选用最终方案我们选择的是NS-TH1系列压力传感器,额定载荷10Kg,该压力传感器均采用全桥式等臂电桥。本设计采用的惠斯登电桥具有很多优点,如可以抑制温度变化的影响,可以抑制侧向力干扰,可以比较方便的解决称重传感器的补偿问题等,又因为全桥式等臂电桥的灵敏度最高,各臂参数一致,各种干扰的影响容易相互抵消。压力传感器实际上是一种将质量信号转变为可测量的电信号输出的装置4。用传压感器首先要考虑传感器所处的实际工作环境,这点对本系统的正确使用传感器至关重要,它关系到整个系统能否正常工作以及它的安全和使用寿命,乃至整个衡器的可靠性和安全性。而传感器检测电路的功能是把电阻应变片的电阻变化转变为电压输出。3.2.控制模块的选型与研究3.2.1 选择单片机选择单片机型号的出发点有以下几个方面:1、市场货源 系统设计者只能在市场上能够提供的单片机中选择,特别是作为产品大批量生产的应用系统,所选的单片机型号必须有稳定、充足的货源。 2、单片机性能 应根据系统的功能要求和各种单片机的性能,选择最容易实现系统技术指标的型号,而且能达到较高的性能价格比。单片机性能包括片内硬件资源、运行速度、可靠性、指令系统功能、体积和封装形式等方面。影响性能价格比的因素除单片机的性能价格外,还包括硬件和软件设计的容易程度、相应的工作量大小,以及开发工具的性能价格比。 3、研制周期 在研制任务重、时间紧的情况下,还要考虑所选的单片机型号是否熟悉,是否能马上着手进行系统的设计。与研制周期有关的另一个重要因素是开发工具,性能优良的开发工具能加快系统地研制进程。 AT89S系列单片机是继AT89C系列之后推出的功能更强的新产品。AT89S系列与AT89C系列相比,运算速度有了较大的提高,它的静态工作频率为033MHz,片内集成有双数据指针DPTR、定时监视器(看门狗)、低功耗休闲状态及关电方式、关电方式下的中断恢复等诸多功能,极大地满足了各种不同的应用要求。AT89S52单片机是AT89S系列中的增强型高档机产品,它片内存储器容量是AT89S51的一倍,即片内8KB的Flash序存储器和256B的RAM。另外,它还增加了一个功能极强的、具有独特应用的16位定时计数器等多种功能。在工程应用中AT89S52有一显著的优势:不需要烧写器,只借助PC 机的并口输出和极为简单的下载电路,便可将程序通过串行方式写入单片机。并且下载电路可设计在系统中,可以随时修改单片机的软件而不对硬件做任何改动。 由此,通过对目前主流型号的比较,我们最终选择了AT89S52通用的普通单片机来实现系统设计。3.2.2 AT89S52单片机芯片的学习Ø 功能特征描述AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。Ø 引脚功能VCC:电源GND: 接地P0口: P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在flash编程和校验时,P1口接收低8位地址字节。表1:引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3 口是一个有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。表2:引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2 (外部中断0)P3.3 (外部中断1)P3.4T0(定时器0外部输入)P3.5T1定时器1外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器写选通)RST:复位输入。晶振工作时,RST脚持续2 个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出96 个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。 ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE 将被微弱拉高。这个ALE 使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H 到FFFFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12伏VPP电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。Ø AT89S52的最小系统电路AT89S52的最小系统电路 AT89S52单片机的最小系统由时钟电路、复位电路等与单片机构成。单片机的时钟信号用来提供单片机片内各种操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。 本次设计使用AT89S52单片机的时钟振荡功能,因为时钟电路为单片机提供时钟周期,如果没有时钟电路,单片机就没有时钟周期,就无法执行程序代码,单片机就无法工作。AT89S52中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入和输出端。这个放大器与作为反馈元件的片外石英晶体或者陶瓷谐振器一起构成自激振荡器3。如图2所示,外接石英晶体或者陶瓷谐振器以及电容C1,C2接在放大器的反馈电路中构成并联谐振电路。谐振器本身对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度以及温度的稳定性,所以本设计使用石英晶体,每个电容大小为30pF。晶振的振荡频率是1.2MHz12MHZ之间,本设计选择12MHZ,因为晶振的频率越高,则系统的时钟频率也就越高,单片机的运行速度也就越快。 图2 时钟振荡电路因为很多用户设计完单片机系统,并在调试的过程中,可能会出现“死机”或“程序走飞”等现象,所以本设计需要采用复位电路来使单片机复位,来防止这一现象的发生,复位电路设计的好坏,将直接影响系统的可靠性。复位电路通常采用上电自动复位和按钮复位两种方式,复位是单片机的初始化操作,除进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。只需给单片机的复位引脚RST加上大于2个机器周期的高电平就可使单片机复位3,本设计采用的是上电复位电路,其主要特点是简单,适用于简单的电路,做起来还是比较方便的。本设计采用的上电复位电路如图3所示,上电复位电路是通过外部复位电路的电容充电来实现的。当电源接通时只要VCC的上升时间不超过1ms。就可以实现自动上电复位。本设计采用时钟频率为6MHz,电容取22f,电阻取1K。 图3 上电复位电路在本设计中,当电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。单片机的复位操作使单片机进入初始化状态。系统复位对于本系统是执行的第一步,使整个控制芯片回到默认的硬件状态下。单片机的复位是由RESET引脚来控制的,此引脚与高电平相接超过24个振荡周期后,51单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到RESET引脚转为低电平后,再检查EA引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。3.3 A/D转换器ADC0832与AT89S52单片机的接口电路3.3.1 ADC0832的介绍ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。ADC0832具有以下特点: 8位分辨率; 双通道A/D转换; 输入输出电平与TTL/CMOS相兼容; 5V电源供电时输入电压在05V之间; 工作频率为250KHZ,转换时间为32S; 一般功耗仅为15mW; 8P、14PDIP(双列直插)、PICC多种封装; 商用级芯片温宽为0°C to +70°C?,工业级芯片温宽为40 to +85 下面介绍0832的引脚功能:² CS 片选使能,低电平芯片使能² CH0 模拟输入通道0,或作为IN+/-使用² CH1 模拟输入通道1,或作为IN+/-使用² GND 芯片参考0电位(接地)² DO 数据信号输出,转换数据输出² DI 数据信号输入,选择通道控制² CLK 芯片时钟输入² Vcc/REF 电源输入及参考电压输入(复用) 图5 ADC0832芯片ADC0832为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI数据输入端,可以轻易的实现通道功能的选择。这是我选择ADC0832的主要原因。 3.3.2 ADC0832与单片机接口电路设计ADC0832的CS作为选通信号,在时序图中可以看到,以CS置为低电平开始,一直到置为高电平结束。CLK提供时钟信号,我们要注意看CLK的信号的箭头指向,向上为上升沿有效,向下为下降沿有效。DI、DO作为数据端口。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK和DO/DI的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2位数据(SGL、Odd)用于选择通道功能,当此2位数据为“1”、“0”时,只对CH0进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1作为正输入端IN+进行输入。在完成输入启动位、通道选择之后,就可以开始读出数据,转换得到的数据会被送出二次,一次高位在前传送,一次低位在前传送,连续送出。在程序读取二个数据后,我们可以加上检验来看看数据是否被正确读取。ADC0832与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。图6 ADC0832与AT89S52的接口电路3.4 显示模块的设计3.4.1 显示模块的选择与介绍本设计所设计的电子秤系统需要显示一些数据,例如商品的重量,单价及其总价等等,所以本设计得采用显示模块达到其功能指标,数据显示部分可以有以下两种方案供选择。的组成有以下两种方案可供选择:一是 LED数码管显示,二是采用可以设置显示重量,单价,金额等的LCD,它具有低功耗、可视面大及抗干扰能力强等功能,其显示技术已得到广泛应用。所以本设计采用LCD1602,LCD1602的主要技术参数:显示容量:16×2个字符,芯片工作电压:4.55.5V,电流:2.0mA(5.0V),模块最佳工作电压:5.0V,字符尺寸:2.95×4.35(W×H)mm。其引脚图如图6所示。图7 LCD1602引脚图LCD 显示器的工作原理:液晶显示器的主要材料是液态晶体。它在特定的温度范围内,既具有液体的流动性,又具有晶体的某些光学特性,其透明度和颜色随电场、磁场、光照度等外界条件变化而变化。因此,用液晶做成显示器件,就可以把上诉外界条件的变化反映出来从而形成现实的效果。液晶显示模块具有体积小、功耗低、显示内容丰富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。3.4.2 LCD1602与AT89S52单片机接口电路的设计本设计中的LCD液晶显示模块采用LCD1602型号,具有很低的功耗,正常工作时电流仅2.0mA/5.0V。通过编程实现自动关闭屏幕能够更有效的降低功耗。LCD1602分两行显示,每行可显示多达16个字符。LCD1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,通过内部指令可实现对其显示多样的控制,并且还能利用空余的空间自定义字符。这些都比较符合本系统的要求。本设计中AT89S52的P0.0 P0.7口分别与LCD1602的DB0 DB7口相接作为数据线,每个口接上拉电阻后接+5V电源,要求从电源高电平引出的电阻接到输出。上拉电阻同时也起稳定信号的作用,如果太小那么功耗比较大,太大的话就起不到上拉的作用了,所以本设计选择上拉电阻阻值为1K。系统中的VSS和E1接地电源,VDD和E2接+5V电源,E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令,RS为寄存器选择,RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。LCD1602与AT89S52的接线图如图7所示。图8 LCD1602与AT89S52的接线图3.5 键盘电路与AT89S52单片机接口电路的设计3.5.1 键盘与单片机的连接方式选择通常,键盘有编码和非编码两种。编码键盘通过硬件电路产生被按按键的键码和一个选通脉冲。选通脉冲可作为CPU的中断请求信号。这种键盘使用方便,所需程序简单,但硬件电路复杂,常不被单片机采用。非编码键盘按组成结构又可分为独立式键盘和矩阵式键盘。独立式键盘的工作过程与矩阵式键盘类似,无论是硬件结构还是软件设计都比较简单。S4S3S2 P1.4 P1.5 P1.6 P1.7 89S52+5v图9 独立式键盘接口 S1独立式键盘接口特点:每个按键占用一条I/O线,当按键数量较多时,I/O口利用率不高,但程序编制简单。适用于所需按键较少的场合。本设计中需要预置单价,所以需要采用键盘电路模块来预置单价,本设计中键盘电路模块采用键盘专用芯片74C922及16个按键矩阵组。在本设计的电子秤系统中,带有16个按键矩阵组设置,其中09数字键用于输入单价,还有确认,点,删除和清零的功能,确认用于确认出入的单价,点是用来输入小数点,删除用于删除错误的输入,当计算完一种物品的价格后清除所有的结果,这是用到清零键,此外还设有2个备用键。本设计采用专用键盘管理芯片74C922。74C922为CMOS工艺技术制造,工作电压为315V,“二键锁定”功能,编码输出为三芯输出,可直接与微处理器数据线相连,内部振荡器完成4×4矩形键盘扫描。键盘电路模块与AT89S52单片机得接口电路如图9所示。图10 矩阵键盘电路模块与AT89S52单片机接口电路图矩阵键盘的特点:电路连接复杂,但提高了I/O口利用率,软件编程较复杂。适用于需使用大量按键的场合。3.5.2 单片机对键盘的扫描在单片机的运行过程中,何时进行键盘扫描和处理,可有下列三种情况:1.查询方式:单片机通过调用键盘扫描子程序,查询有无键按下。2.定时扫描方式:每隔一定时间执行一次键盘扫描子程序。3.中断方式:每当有键闭合时才向CPU发出中断请求,中断服务时进行键盘扫描和处理。单片机通过键盘扫描判断有无键按下,当扫描到有键按下时再进行下一步处理,否则退出键盘处理程序。独立式键盘扫描只需读取IO口状态,而矩阵式键盘描通常有两种实现方法:逐行扫描法和线反转法。² 逐行扫描法。依次从第一至最末行线上发出低电平信号, 如果该行线所连接的键没有按下的话, 则列线所接的端口得到的是全“1”信号, 如果有键按下的话, 则得到非全“1”信号。 ² 线反转法。 线反转法也是识别闭合键的一种常用方法, 该法比行扫描速度快, 但在硬件上要求行线与列线外接上拉电阻。先将行线作为输出线, 列线作为输入线, 行线输出全“0”信号, 读入列线的值, 那么在闭合键所在的列线上的值必为0;然后从列线输出全“0”信号,再读取行线的输入值,闭合键所在的行线值必为 0。这样,当一个键被按下时, 必定可读到一对唯一的行列值。再由这一对行列值可以求出闭合键所在的位置。 3.5.3 键盘接口和键输入软件中应解决的一个问题键盘接口和键输入软件中应注意消抖。由于按键按下时的机械动作,在按键被按下或松开的瞬间,其输出电压会产生波动,称为键的抖动。键稳定键按下后沿抖动前沿抖动图11 键合断时的电压抖动为确保每按一次键单片机只进行一次处理,使键盘可靠地工作,必须消除按键抖动。消抖方法有硬件消抖和软件延时两种。Ø 硬件消抖法:就是在键盘中附加去抖动电路,从根上消除抖动产生的可能性。 右图所示电路实际上是由R-S触发器构成的单脉冲电路。当按钮开关按下时Q端输出低电平,当开关松开时Q端恢复高电平,即输出一个负脉冲,以此消除抖动。Q图12 硬件去抖动电路+5V&&QØ 软件消抖法:键按下的时间与操作者的按键动作有关,约为十分之几到几秒不等。而键抖动时间与按键的机械特性有关,一般为510ms不等。软件消抖法即是采用延时(一般延时1020ms)的方法,以避开按键的抖动,即在按键已稳定地闭合或断开时才读出其状态。 100ms10ms10ms图13 软件消抖法延时区间示意图键抖动时间3.6过载报警部分的方案智能仪器一般都具有报警和通讯功能,报警主要用于系统运行出错、当测量的数据超过仪表量程或者是超过用户设置的上下限时为提醒用户而设置。在本系统中,设置报警的目的就是在超出电子秤测量范围时,发出声光报警信号,提示用户,防止损坏仪器。超限报警电路是由单片机的I/O口来控制的,当称重物体重量超过系统设计所允许的重量时,通过程序使单片机的I/O值为高电平,从而三极管导通,使蜂鸣器SPEAKER发出报警声,同时使二极管发光。第4章 系统软件程序设计程序设计是一件复杂的工作,为了把复杂的工作条理化,就要有相应的步骤和方法。其步骤可概括为以下三点:首先需要分析系统控制要求,确定算法:对复杂的问题进行具体的分析,找出合理的计算方法及适当的数据结构,从而确定编写程序的步骤。这是能否编制出高质量程序的关键。其次是根据算法画流程图:画程序框图可以把