基于51单片机的简易计算器-本科毕业设计

基于51单片机的简易计算器-本科毕业设计

ID:39915043

大小:317.03 KB

页数:17页

时间:2019-07-14

基于51单片机的简易计算器-本科毕业设计_第1页
基于51单片机的简易计算器-本科毕业设计_第2页
基于51单片机的简易计算器-本科毕业设计_第3页
基于51单片机的简易计算器-本科毕业设计_第4页
基于51单片机的简易计算器-本科毕业设计_第5页
资源描述:

《基于51单片机的简易计算器-本科毕业设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于51单片机的简易计算器设计原理本计算器是以MCS-51系列8051单片机为核心构成的简易计算器系统。该系统通过单片机控制,实现对4*4键盘扫描进行实时的按键检测,并把检测数据存储下来。整个计算器系统的工作过程为:首先存储单元初始化,显示初始值和键盘扫描,判断按键位置,查表得出按键值,单片机则对数据进行储存与相应处理转换,之后送入数码管动态显示。整个系统可分为三个主要功能模块:功能模块一,实时键盘扫描;功能模块二,数据转换为了数码管显示;功能模块三,数码管动态显示。所需器件MCS-51系列单片机数码管显示矩阵按键计算器系统设计 1 计算器硬件电路设计 805

2、1单片机一片,4*4键盘一个,4位共阳极的七段数码管一个,连线和电阻和开关若干。8051单片机的P2口作键盘口,其中P2.4-P2.7为键盘扫描输出线,P2.0-P2.3为键盘扫描输入线。键盘由4*4共16个按键组成,10个数字键(由0-9组成)5个运算符号(加减乘除等于)组成,1个清除键(作用相当于整体复位)。4个数码管用于显示当前数值的千,百,十,个,采用动态显示方式,P1口接4个数码管的七段,P0口分别接4个数码管的公共端,P1口输出数码管的字形码,P0口输出数码管的字位码。 2计算器程序设计 2.1存储单元分配  30H单元:数值个位显示单元;31H单

3、元:数值十位显示单元;32H单元:数值百位显示单元;33H单元:数值千位显示单元;23H单元:第一操作数存储单元;24H单元:第二操作数存储单元;25H单元:键值暂存单元;27H单元:清除键状态;34H-37H单元:结果数据转换暂存单元;38H-39H单元:结果高低8位暂存单元;R5单元:操作数计数单元;R4单元:操作数数值位数计数单元;R3单元:运算符号存储单元。 2.2主程序设计 主程序进行程序中用到的一些存储单元的初始化,数值显示和4*4键盘扫描。首先,进行存储单元初始化,给数码管显示单元30H-33H赋予“0000”字形数据,将数值计数单元,存储单元,

4、23H-25H,34H-37H,38H,39H,3AH,3BH,3CH,赋予初值零。之后,调用键盘扫描子程序,和数码管显示数据转换程序,数码管动态显示子程序。主程序不断进行键盘扫描,数码管显示数据转换子程序和动态显示子程序。 2.3数码管显示数据转换子程序  由于数值单元存放的是二进制数,而用户熟悉的是十进制数,所以应将数值单元中的二进制转换为十进制数,即BCD码。要通过数码管显示出当前数值,还必须将BCD码进一步转换为七段码,转换的最终结果数据存放于显示缓冲区30H-33H单元中,其中30H单元存放数值的个位七段码,31H单元存放数值的十位七段码,32H单元

5、存放数值的百位七段码,33H单元存放数值的千位七段码。 2.4数码管动态显示子程序 本任务由P1口输出字形码,P0口输出字位码。先将存放于30H单元的数值个位七段码由P1口输出,同时P0口输出使数值个位显示数码管点亮的字位码。由于采用的是共阳数码管,所以只有该位数码管对应的P0.0为1,其他位P0.1-P0.3位0,点亮延时10MS。然后P1口输出数值十位七段码,P0.1位1,数值十位数码管点亮,延时10MS。接着P1口输出数值百位七段码,P0.2为1,数值百位数码管点亮,延时10MS。最后P1口输出数值千位七段码,P0.3为1,数值千位数码管点亮,延时10M

6、S。 系统总框图:程序源代码: DISPBUFEQU30H         显示缓冲区首地址定义ORG0000H            主程序的入口地址START:MOVDISPBUF,#0C0H 4个数码管显示“0000”字形数据MOVDISPBUF+1,#0C0H MOVDISPBUF+2,#0C0H MOVDISPBUF+3,#0C0H MOV37H,#00H              数值初始化MOV27H,#00HMOV26H,#00H MOV25H,#00H MOV24H,#00H MOV23H,#00H MOVR3,#00H MOVR5,#00H

7、MOVR4,#00H LOOP:LCALLKEY          调用键盘扫描子程序MOVR6,27H CJNER6,#00H,START        清除键判断MOVR6,26H CJNER6,#00H,FA         显示数据转换子程序选择LCALLCONV       调用数码管显示数据转换子程序FA:LCALLDISPSCAN     调用数码管动态显示子程序SJMPLOOP KEY:MOVP2,#0FH           盘扫描子程序MOVA,P2 ANLA,#0FH CJNEA,#0FH,K10RET K10:JBP2.0,K20K11

8、:MOVP2,#0EFH JBP2.0

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

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

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