基于AT89C51单片机的电子计价秤的设计与实现
3.4、键盘专用芯片74C922及12个按键矩阵组设置。
在电子计价秤中,带有12个按键矩阵组设置,其中0—9数字键用于输入单价,DEL用于单价清空,累计键用于费用累计,鉴于此,我们采用专用键盘管理芯片74C922。74C922为CMOS工艺技术制造,工作电压为3—15V,“二键锁定”功能,编码输出为三芯输出,可直接与微处理器数据线相连,内部振荡器完成4×4矩形键盘扫描,有 按键时,DA变高,通过非门接到AT89C51的INT0口,并且设INT0为边沿触发方式,当DA变高时,经过非门变为低电平跳变产生INT0外部中断,通知AT89C51从数据总线读键值,判断键值从而完成相应的散转程序功能。根据接线图及74C922芯片真值表,我们知道,键0—9对应ABCD 输出(0000—1001),键DEL对应ABCD输出(1010),键累计对应ABCD输出(1011),接线图见图3.4另外在电子计价秤的面盘上有电源开关POWER和手动复位按键RESET,此外不多述。
3.5 越限(超出6kg)报警电路和看门狗自动复位电路。
当承重越限(超出6kg)时,全桥放大电路输出电压大于6V,报警电路由电压比较电路和三级管驱动蜂鸣器电路组成,此处不多赘述。看门狗自动复位电路由可重触发单稳触发器4538设计而成,4538内部有两个单稳触发器功能部件,采用软件置位AT89C51的P1.7管脚定时喂狗,如软件跑飞,则软件不能及时喂狗,第一个单稳触发器不能及时触发,延时τ=RC秒后,其达稳态,利用此下降沿触发另外一个单稳触发器(其输出接AT89C51的RESET 端),只要有10秒的暂稳态高电平,即可复位单片机。可见,本次设计的电子计价秤除设手动复位键外,还配备看门狗自动复位电路, 防止软件跑飞,双重保险,抗干扰性能强.
电子计价秤软件设计均采用模块化设计,整个程序包括主程序、定时中断程序、INT0中断程序按键散转程序、数据处理子程序(双字节乘法、二—十进制转换程序及逆转换程序)、LCD十六位液晶静态显示子程序等模块。所有程序均采用汇编语言编写。电子计价秤的软件设计思路说明如下:主程序的作用为程序初始化,计算单价*单重(单价和单重分别在定时中断程序和INT0外部中断程序中获得),并时时显示十进制的单重,单价,总价。设定T0为计数工作方式,T1为定时工作方式。其中R0为标志位寄存器当为00H时为正常显示方式,当为01H时为累计显示方式,在T1定时中断程序中,一秒钟采样物料重量(已转成脉冲频率),并赋值重量计算RAM区和显示 RAM区。在INT0外部中断程序中,采样单价并赋值单价计算RAM区和显示RAM区。其中设R1为标志位寄存器,表示单价最大为99.9元,最多只能送三位,若再按键,则无效。设R2为标志位寄存器,表示累计金额时为最多50次,超过50次最后的显示为第50次累计金额。内部30H-5FHRAM分配为单价,单重,总价,累计总价的计算和显示RAM区,此处不多赘述。由于篇幅所限,此处只给出主程序流程图如图4.1所示:
评论