APP下载

基于STC15F2K61S2的计算器设计

2015-07-07韩光江孙鹏何梦雪余晓铭

科技与创新 2015年10期
关键词:数码管计算器单片机

韩光江+孙鹏+何梦雪+余晓铭

摘 要:提出了一种可进行连续四则运算的计算器设计方案,主要从硬件部分和软件部分两方面介绍此设计方案。在硬件部分中,说明了所选用的STC公司最新的STC15F2K61S2微控制器相比于传统C51单片机的优势,提出了仅用3个引脚驱动8位数码管的方法,并介绍了4×4矩阵键盘的驱动方案;在软件部分中,给出了计算器程序执行流程图,并提出了一种实现计算器四则运算的算法。

关键词:计算器;单片机;驱动方案;数码管

中图分类号:TP368.1 文献标识码:A DOI:10.15913/j.cnki.kjycx.2015.10.101

随着嵌入式技术的不断发展,计算器在生活中的应用越来越广泛,便携式计算器日益成为人们工作、学习中不可或缺的工具。因此,采用STC公司最新的STC15F2K61S2单片机,并结合数码管、矩阵键盘等模块完成了一种可进行8位数以内四则运算的计算器设计。其能进行连续的四则运算,并能实时显示当前输入数据和输出结果,具有计算可靠、制作简单、集成度高、成本低等优点。

1 计算器硬件设计部分

1.1 微控制器

STC15F2K61S2系列单片机是STC生产的单时钟/机器周期(1T)的单片机,是高速、高可靠性的新一代8051单片机,ISP编程时时钟频率可设置为5~35 MHz,可彻底省掉外部晶振。其内部已集成了高可靠性的复位电路,无需再设计外部复位电路。

此外,STC15F2K61S2相比于传统的C51系列单片机而言,具有良好的在线仿真功能,可直接在集成开发环境Keil中进行在线仿真调试,极大地提高了软件开发的效率。

1.2 数码管显示模块

本模块包含8个数码管。在传统的数码管驱动方法中,需要采用8个引脚段选,极大地浪费了微控制器的引脚资源。因此,本设计采用2片74HC595芯片,实现了采用3个引脚就能完成8位数码管的驱动,很好地节省了有限的控制器资源。

设计采用2片74HC595串联,第一级(U1)的串行输出口(QH)与第二级(U2)的串行输入口(SER)相连。这样在串行输入时钟的作用下,可一次性更新16位数据。其中,U1输出的8位数据为数码管的段选,控制数码管显示数字;U2输出的8位数据用于选中数码管以循环刷新。在C语言程序代码中,会预先存储所需要的数码管显示编码,包括段选编码和位选编码,显示数字时只需输出相应编码即可。

1.3 矩阵键盘

用户输入采用4×4矩阵键盘,依次表示阿拉伯数字“0~9”“+”“-”“×”“÷”“=”和“清零(CLR)”。采用8个I/O口进行驱动,其中,4个为输入口,4个为输出口。驱动时,在主函数中对矩阵键盘轮询进行扫描。扫描时控制行的4个I/O置高作为输入,控制列的4个I/O置低为输出模式。当读取到控制行I/O的状态发生改变,即有按键按下,且处于状态发生改变的一行4个按键之中。此时,可进一步判断具体被按下的按键,将控制行的I/0置低,控制列的I/O口置高,查询控制列的I/O状态,即可找到具体被按下的按键。

2 计算器软件设计部分

计算器在上电复位后进行相关外设的初始化,设置定时器的中断时间为5 ms。在中断函数中,读取数码管缓冲区中的数据,通过74HC595串行输入并行输出进行显示,每次刷新1个数码管,利用二极管的余辉效应可达到同时显示8个数字的效果。具体过程如图1所示。

在主函数中,利用轮询法判断是否有按键被按下。在判断

有按键按下后,更新按键编码缓冲区的数据,并利用此数据确定按键动作函数。如果输入的是“0~9”,则临时缓冲区中的数据将“×10+按键所代表的数字”。比如,临时缓冲区的数据为2,按下按键“5”,则进行“2×10+5”的操作。此时,临时缓冲区的数据更新为25.

当按下运算符按键时,将运算符标志修改为相应的运算符编码,结果缓冲区会复制临时缓冲区的数据。比如,按下“+”,则记录运算符标志symbol修改为1,当输入下一个数字按下“=”键或其他运算符按键,根据运算符标志位,结果缓冲区和临时缓冲区进行相应运算,并将结果缓冲区的内容复制到数码管缓冲区,以便数码管及时更新。

3 结束语

设计方案采用的微控制器是STC公司最新的STC15F2K61S2微控制器,相比于传统的51单片机,其能进行在线仿真调试,且无需外部晶振和复位电路,降低了制作的成本和复杂度。显示部分采用2片74HC595串联的方法,仅使用3个引脚便可完成8位数码管的驱动。在软件设计中,提出的算法严谨、可靠,可按照预定的要求进行连续的四则运算。因此,文章中的计算器设计方案具有使用可靠、成本低廉、集成度高和制作简单等一系列优点。在制作完成后,通过大量的运算验证证明,本设计能达到设计要求,可正确输出计算结果。此外,此设计对理解单片机的原理、学习单片机的控制具有很大帮助。

参考文献

[1]张建强.电子制作基础[M].西安:西安电子科技大学出版社,2010.

〔编辑:张思楠〕

猜你喜欢

数码管计算器单片机
物理项目教学设计,用单片机控制四位数码管显示
蓝桥杯树莓派模拟题解析三:“电子测距仪”
Arduino编程
[计算器不是万能的]
MC9S08FL16单片机数码管静态显示分析
一个损坏的计算器
计算器游戏
计算器
C8051F020与80C51单片机的异同点
单片机I/O口模拟串行通讯的C51实现方法