基于AT89C51单片机的十进制计算器系统设计

出处:EDN China电子技术设计 发布于:2014-07-24 11:37:52

      本设计是基于AT89C51 单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除4 位无符号数字的简单四则运算,并在LED 上相应的显示结果。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51 单片机,输入采用4×4 矩阵键盘。显示采用4 位7 段共阳极LED 动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。

      引言

      本系统采用AT89C51 单片机作为控制器,用来实现实现四位数的“+”,“-”,“*”,“/”运算,运算结果通过数码管显示,并具有有清零功能。AT89C51 具有如下特点:40 个引脚,4k BytesFlash 片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32 个外部双向输入/ 输出(I/O)口,5 个中断优先级2层中断嵌套中断,2 个16 位可编程定时计数器,2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器

      1 总体设计方案

      1.1 系统组成与工作原理

      本系统以51 单片机为主控,与矩阵键盘、晶振、LED 显示管模块一起组合而成。其工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,得出按键值,单片机则对数据进行储存与相应的处理转换,之后送入数码管动态显示。将运算结果送入数码管动态显示。本设计只能进行结果不超过四位数的运算,其功能如下:

      (1)数字键“0”到“9”用数码管显示。

      (2)加法运算: 加数与被加数均不能超过9999,加法终结果不能超过9999。

      (3)减法运算: 减法运算正常逻辑为大的数值减去小的数值,本计算器亦如此,只能进行正常逻辑的运算,如为小的数值减去大的数值,则将得到的负数与535 相加,得到相应的结果,即如果想进行小数减大数的运算,则把得到的结果减去535 即得到负数的正确结果。

      (4)乘法运算: 与上述方法一样,计算结果不能超出9999,如溢出则显示结果只有后三位。

      (5)除法运算: 除数与被除数均不能超过9999,计算结果只显示整数部分。

      (6)等于键: 只有按下等于键才能将运算结果显示出来,否则一直显示上一个数。

      (7)清零功能:程序不稳定或出现错误时,运用清零键回到初始状态,也可用复位键清零。

      2 系统硬件设计

      2.1 系统硬件总体设计

      本系统由键盘矩阵、LED 显示管、这几个部分组成,键盘输入键值,LED 显示管显示当前按键及结果。硬件总体设计图1 如下:

图1 硬件总体设计图
                                      图1 硬件总体设计图

      2.2 矩阵扫描显示当前按键模块

      利用AT89S51 单片机的P0 端口的P0.0 - P0.7 连接到一个七段数码管的a - h 的笔段上,数码管的公共端接电源。矩阵扫描显示当前按键模块见图2。

图2 矩阵扫描显示当前按键模块
                                     图2 矩阵扫描显示当前按键模块

      2.3 键盘布局模块

      矩阵键盘的工作原理:计算器的键盘布局如图3 所示:一般有16 个键组成,在单片机中正好可以用一个P 口实现16 个按键功能,这种形式在单片机系统中也常用。

图3 计算器的键盘布局模块
                                  图3 计算器的键盘布局模块

      3 系统软件设计

      3.1 系统软件总体设计

      本系统的软件流程如图4 所示。

图4 系统的软件流程图
                                  图4 系统的软件流程图

      3.2 显示程序模块

      显示程序将要显示数值的千位、百位、十位与个位分别计算出来,通过P0 段选口输出数值,通过位选口P3^3、P3^4、 P3^5、P3^6 实现动态显示。

      LED 数码管,实现七段数码管的显示四位十进制数。通过段选来显示按键及计算结果的数值。由于本硬件设计选用的是共阳接法,所以对应的段码表如下3.3 键盘扫描模块。

      本次键盘扫描程序采用的是行列翻转法扫描键盘,即先置行为0,读列值,存在变量1 中,然后把列置为0,读行值,存在变量2 中,把变量1 和变量2 相加即为按键对应的键值,下表为相应按键对应的键值。

      4 结束语

      本计算器是以51 系列单片机为构成计算器系统,该设计为能进行简易算术运算的计算器,在现有的硬件条件下只能进行结果不超过四位数的运算,能实现加减乘除的运算功能与数字清零功能,以及系统的复位功能。

关键词:基于AT89C51单片机的十进制计算器系统设计单片机AT89C51十进制计算器

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

我司代理分销MOS管,单片机,电源IC,驱动IC,PD协议IC等,专业提供各种电子元器件!
广告
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:
技术客服:

0571-85317607

网站技术支持

13606545031

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!