福州大学 吴芳琴
计算器为人们的学习、生活提供了很大的便利,市场大,应用范围广,是办公应用不可缺少的器件。常见的计算器类型主要有:算术型计算器,能够进行加、减、乘、除等简单的四则运算。科学型计算器,能够进行指数、对数、平方、开方等的运算。程序计算器,可通过编程将较复杂的运算步骤储存起来,再进行多次运算。一般的计算器包括显示部分(显示器)、键盘、存储、控制等部。分利用硬件和软件设计的计算器更为实用,同时也是电子领域的一个重要课题。
本系统通过单片机与外围扩展器件连接实现简易计算器的设计。本系统设计目标有:
(1)能够进行8位整数的四则运算,计算的结果由8个数码显示管显示。
(2)计算器键盘有以下功能键分别是:10个数字键(0-9)、4个符号键(+、-、*、/)、删除键和等号键,
系统实现的具体功能有:
(1)系统上电时,8个数码管都显示为“0”。
(2)当按下某个数字键时,该数字显示在数码管的最低位,原数码管显示的数字依次向高位移动一位。
(3)当按下删除键时,8个数码管的最低位被删除,同时其它高位向低位依次移动一位,最高位由数字0填充。
可进行8位整数的四则运算,计算的结果由8个数码显示管显示。
(1)本设计采用的主控芯片是STC89C52单片机,是一种低功耗、高性能的芯片。
STC89C52单片机具有以下功能:512字节RAM,8K字节Fl ash,内置4KBEEPROM,32位I/O口线,全双工串行口,3个16位定时器/计数器,4个外部中断等。相对来说该主控芯片功能较强大,且编程较为灵活,适应性强,适合很系统的计算器设计。STC89C52的P3口作为键盘的输入口,实现数据的输入;P0口:作为输出口,控制数码显示管显示数据的结果,P1口的D0位和D1位分别连接集成块的锁存位LE。电路图如图1所示。
(2)矩阵键盘电路,该键盘的线路设计为矩阵式,行线与P3口的低4位连接,列线连接P3口的高4位,再分别连接10K电阻与5V电源连接。数码显示电路,8个数码管为共阴极数码管,由于显示电路有八个数码管,每个数码管有8个引脚,需要的I/O口数量多,本系统采用两个片集成块74HC573,该集成块是拥有八路输出的透明锁存器,输出为三态门,是一种高性能硅栅CMOS器件共20个。D1~D8为数据输入端,Q1~Q8为数据输出端,LE为锁存控制端;OE为使能端。其中一块74HC573通过P0口控制8个数码管的位选(即8个数码管的COM端),另外一块74HC573通过P0口连接每个数码管的8个数码段。P1口的D0位和D1位分别连接集成块的锁存位LE端。
系统包括以下三个功能模块:主程序,读取判断键码程序并运算子程序、数码管显示子程序。流程图如图2、图3所示。
键盘模块的程序设计。采用线反转法来判断按键,若判断有键按下,须去抖动,再读出键码值(即读出P3口的低四位,若有键按下延时15ms,再读取键码判断有键按下,即有键按下),再读取键码值。根据键码值进行相应的操作,若是数字键码值,则换算成其相应的十进制数;若是删除键码值,则删除数码管低位数字,最高位填充零,其余高位向低位移动一位;若为“+、—、*、/”键,则进行相应的四则运算。
图1 数码管连接电路
显示模块的程序设计。数码管显示采用动态扫描显示方法,先将要显示数字的段码通过P0口送到负责锁存段码的74HC573后,将该集成块的LE端置为高电平,锁存后再置为低电平。要点亮的数码管COM端为低电平,其它数码的COM端为高电平,将8个数码管的位选通过P0口送到负责位选的74HC57,再将该芯片的LE端设为高电平,锁存后再置为低电平,相应的数码管显示数字,延时5ms。如此依次循环点亮相应数码管。
图2 主程序
图3 键盘扫描子程序流程图
主程序设计。该主程序主要包括上电初始化部分,数码管全部显示为0,再采用死循环调用键盘扫描子程序和数码管显示程序。
本设计显示部分硬件采用2片74HC595负责锁存数码管的段码和位选码的方法,并用P0口来驱动,键盘采用16个矩阵键盘。在软件设计中,本设计用C语言来编写程序,采用模块化设计,主要分为数码管显示子程序,键盘扫描子程序,主程序循环调用各个子程序。
本系统设计计算器设计方案有简单、可靠、成本低等有电。经过大量运算操作,本设计经达到了设计要求,可以正确输出运算结果。
[1]胡辉.单片机原理与应用[M].北京:中国水利水电出版社,2007.
[2]郭天祥. 51单片机C语言教程[M].北京:电子工业出版社,2012.
[3]龚运新.单片机C语言开发技术[M].北京:北京清华大学.出版社,2006.
[4]柴钰.单片机原理及应用[M].西安电子科技大学出版社,2009.2.