单片机课程设计__简易计算器

单片机课程设计__简易计算器

ID:18885273

大小:2.56 MB

页数:14页

时间:2018-09-26

单片机课程设计__简易计算器_第1页
单片机课程设计__简易计算器_第2页
单片机课程设计__简易计算器_第3页
单片机课程设计__简易计算器_第4页
单片机课程设计__简易计算器_第5页
资源描述:

《单片机课程设计__简易计算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、4×4键盘的简易计算器和LED数码管的显示1、设计要求1、设计一个十六个按键的矩阵式计算器的模拟系统。2、该系统具有加减乘除等功能。3、用Proteus7仿真工作的全过程。4、有相应的实物图5、掌握4×4矩阵式键盘程序识别原理,掌握4×4矩阵式键盘按键的设计方法。2、设计思想2.1硬件设计思想用单片机的并行口P1连接4×4矩阵键盘,并以单片机的P1.0-P1.7各管脚作输入线,以单片机的P2.0-P2.7和P0.0—P0.7各管脚作输出线,在数码管上显示每个按键“0-9”的序号。键盘中对应按键的序号排列如图(1)所示。数字0、

2、1、2、3接X0;4、5、6、7接X1;8、9、10、11接X2;12、13、14、15接X3。即16个按钮空接,即十六个键一端低电平,另一端接高电平;当按下任意一个按钮时显示对应数字。该系统可以实现四则运算,当分别按下2个数字,再按任意一个功能键即可实现相应的运算。2.2软件设计思想整个程序可以实现十进制内的加减乘除,其中包含了延时子程序(去抖动),加法、减法、除法、乘法等子程序。(1)按键的识别判断键盘上有无按键闭合,先判断行线X0—X3输出低电平“0”,然后判断列线Y0—Y3的状态,若为全1,即列线全为高电平,说明键盘上

3、没有按键闭合,若Y0—Y3不全为1,说明有键按下。(2)消抖处理14当判断有键按下后,需要进行消除抖动,这里使用了软件方法即程序中采用时间延时0.5秒,待信号稳定后再判别键盘的状态,若有键按下,则再进行键号的计算。(3)判别键号先判断行线X0—X3是否有输出低电平“0”,若有键按下,则相应的列线也为低电平“0”,例如行线X1输出为低电平“0”,且列线Y2为低电平,即X1与Y2相交的键被按下,进行键号=行号*4+列号的计算。(4)显示结果显示器接高电频,左边显示器接P0,右边显示接P2,当按下一个数字时右显示器显示相应的数字,按

4、第2个数字时左边显示器显示相应数字;当进行除法运算时,除的的数据要看接口P0.7接高还是低电频,低电频则结果为几点几,为高电频则几十几。其它运算直接看数据即可。3、电路原理与电路图3.1电路原理单片机最小系统。一个AT89C51单片机做为控制电路,运用其P0、P1口来控制数码管和键盘,通过P0和P2口来显示键值(0~9)。通过P1口来控制键盘。3.2电路原理图图3.1电路原理图4、流程图与算法描述4.1流程图14开始P1口高四位置一扫描键盘按下键?消除抖动计算键入的值十进制?送入P2口显示第一次键入的值消除抖动计算键入的值十进

5、制?送入A按下键?NNYYYYNN送入P0显示第二次送入的值再按一次键加法?减法?乘法?除法?结束NNYYYYN把结果送入P0,P2口,P0存十位,P2存个位图4.1主程序流程图14开始R7送100R5送10R6送250R5减一为0?R6减一为0?R7减一为0?返回NNNYYY图4.2延时子程序流程图Y4.2算法描述1、设计一个延时子程序,延时0.5s。本程序通过两个DJNZ的语句来实现。延时程序的代码段如下:DELAY:MOVR7,#100DDEL1:MOVR6,#250DDEL2:MOVR5,#10DDJNZR5,$DJN

6、ZR6,DEL2DJNZR7,DEL1RET2、仅实现十进制的加减乘除运算。CJNE是判断两个数是否相等,不想等则转移,代码段如下:M0:CJNER1,#10D,M114LJMPL1M1:CJNER1,#11D,M2LJMPL1M2:CJNER1,#12D,M3LJMPL1M3:CJNER1,#13D,M4LJMPL1M4:CJNER1,#14D,M5LJMPL1M5:CJNER1,#15D,M6LJMPL1M6:RET;返回重新按入新的键号5、仿真结果5.1仿真结果1、加法仿真如下:(1加2)图5.1加法仿真结果图14图5.

7、2加法仿真结果图2、减法仿真如下:(2减3)图5.3减法仿真结果图14图5.4减法仿真结果图3、乘法仿真如下:(3乘以2)图5.5乘法仿真结果图14申图5.6乘法仿真结果图4、除法仿真如下:(2除以4)图5.7除法仿真结果图14图5.8除法仿真结果图5、复位仿真如下:图5.10复位仿真结果图146、源程序ORG0000HL1:LCALLSCANMOV40H,32H;将键号保存在40HMOVR1,40H;暂存在R1LCALLM0LCALLXY1MOVP0,#0FFH;使P0口置1LCALLSCANMOV41H,32H;将键号保存

8、在41HMOVR1,41H;暂存在R1LCALLM0LCALLXY2L2:LCALLSCANMOV42H,32HMOVR7,42HCJNER7,#10D,L3;是否进行加法运算MOVA,40HADDA,41HMOVB,#10DDIVAB;商存在A中即十位,余数存在B中即个位C

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。