版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于51单片机的简易计算器制作一:设计任务本系统选用AT89C52单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计,具体设计如下:(1)由于设计的计算器要进行四则运算,为了得到较好的显示效果,经综合分析后,最后采用LED 显示数据和结果。(2)采用键盘输入方式,键盘包括数字键(09)、符号键(+、-、×、÷)、清除键(onc)和等号键(=),故只需要16 个按键即可,设计中采用集成的计算键盘。(3)在执行过程中,开机显示零,等待键入数值,当键入数字,通过LED显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值
2、后将显示键入的数值,按等号就会在LED上输出运算结果。(4)错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LED上提示八个0;当除数为0时,计算器会在LED上会提示八个负号。设计要求:分别对键盘输入检测模块;LED显示模块;算术运算模块;错误处理及提示模块进行设计,并用Visio画系统方框图,keil与protues仿真分析其设计结果。2 硬件设计单片机最小系统CPU:AT89C52 显示模块:两个4位7段共阴极数码管输入模块:4*4矩阵键盘1. 电路图电路图说明 本电路图采用AT89C52作为中处理器,以4
3、*4矩阵键盘扫描输入,用两个74HC573(锁存器)控制分别控制数码管的位于段,并以动态显示的方式显示键盘输入结果及运算结果。为编程方便,以一个一位共阴极数码管显示负号。三,程序设计#include<reg52.h>#define Lint long int #define uint unsigned int #define uchar unsigned charsbit dula=P26; /锁存器段选sbit wela=P27;sbit display_g=P20; /负号段选sbit display_w=P21; /负号位选 uchar code table=0x3f,0x0
4、6,0x5b,0x4f, /0,1,2,3 0x66,0x6d,0x7d,0x07, /4,5,6,7 0x7f,0x6f,/0x77,0x7c, /8,9 /0x39,0x5e,0x79,0x71 ; /数码管段码表uchar code table1=0x7f,0xbf,0xdf,0xef, 0xf7,0xfb,0xfd,0xfe ; /数码管位码表/*定义全局变量*/Lint store2=0; /存取按键值和结果的数组uchar flag_op=0; /+,-,*,/操作符标志符uchar flag_order=0; /输入数的顺序标志符uchar flag_equal=0; /等于号标
5、志符uchar key=16; /按键值/*延时函数*/void delay(uint x) uint i,j;for(i=x;i>0;i-)for(j=110;j>0;j-);/*显示函数*/void display(Lint temp)uint buf1,buf2,i=0;buf1=temp/10000000;if(buf1>=10|temp<-9999999)/数据溢出,显示错误00000000display_w=1;/关负号位选dula=1;P0=0x3f;dula=0;P0=0xff;wela=1;P0=0x00;wela=0;delay(1);else if
6、(temp<0&&temp>=-99999999) /显示负数display_w=0;/开负号位选temp=-temp;dobuf2=temp%10;dula=1;P0=tablebuf2;dula=0;P0=0xff;wela=1;P0=table1i;wela=0;i+;P0=0x00;temp=temp/10;delay(1);while(temp!=0);elsedisplay_w=1;/关负号位选dodula=1;buf2=temp%10;P0=tablebuf2;dula=0;P0=0xff;wela=1;P0=table1i;wela=0;i+;P0=
7、0x00;temp=temp/10;delay(1);while(temp!=0);/*键盘扫描函数*/uchar KeyScan()uchar temp;P3=0xfe;/扫描第一行temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(5);P3=0xfe;temp=P3;temp=temp&0xf0;if(temp!=0xf0)switch(temp)case 0xe0:key=0;break;case 0xd0:key=1;break;case 0xb0:key=2;break;case 0x70:key=3;break;while(tem
8、p!=0xf0)/等待按键被释放temp=P3;temp=temp&0xf0;P3=0xfd;/扫描第二行temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(5);P3=0xfd;temp=P3;temp=temp&0xf0;if(temp!=0xf0)switch(temp)case 0xe0:key=4;break;case 0xd0:key=5;break;case 0xb0:key=6;break;case 0x70:key=7;break;while(temp!=0xf0)/等待按键释放temp=P3;temp=temp&am
9、p;0xf0;P3=0xfb;/扫描第二行temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(5);P3=0xfb;temp=P3;temp=temp&0xf0;if(temp!=0xf0)switch(temp)case 0xe0:key=8;break;case 0xd0:key=9;break;case 0xb0:key=10;flag_order=1;flag_op=1;break;/+case 0x70:key=11;flag_order=1;flag_op=2;break;/-while(temp!=0xf0)/等待按键释放temp
10、=P3;temp=temp&0xf0;P3=0xf7;/扫描第四行temp=P3;temp=temp&0xf0;if(temp!=0xf0)delay(5);P3=0xf7;temp=P3;temp=temp&0xf0;if(temp!=0xf0)switch(temp)case 0xe0:key=12;flag_order=1;flag_op=3;break; /*case 0xd0:key=13;flag_order=1;flag_op=4;break; /case 0xb0:key=14;break;case 0x70:key=15;flag_equal=1;br
11、eak; /=while(temp!=0xf0) /等待按键释放temp=P3;temp=temp&0xf0;return key;/*运算函数*/void YunSuan()if(flag_equal=1)switch(flag_op)case 1:/加法运算 store0=store0+store1; flag_op=0; flag_order=0;store1=0;/输入的第二个数清零 break;case 2:/减法运算store0=store0-store1;flag_op=0;flag_order=0;store1=0;/输入的第二个数清零 break;case 3: /乘
12、法运算store0=store0*store1; flag_op=0; flag_order=0;store1=0;/输入的第二个数清零 break;case 4:/除法运算 store0=store0/store1; /计算结果,存入第一个数 flag_op=0;/操作符清零flag_order=0;/输入顺序标识符清零,显示结果store1=0;/输入的第二个数清零 break; flag_equal=0; /*主函数*/void main()while(1)display_g=1;/开负号段选key=KeyScan();/键盘扫描if(key>=0&&key<=9)/如果key在0到9之间,证明键盘按下的是数值if(storeflag_order<10000000)st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年在线销售技术服务合同
- 2026年医院锅炉房运营管理合同
- 2025年水体污染治理项目可行性研究报告
- 2025年无纸化办公解决方案可行性研究报告
- 2025年数字化转型对企业影响可行性研究报告
- 美国谈判平协议书
- 2025年农业气象服务平台建设项目可行性研究报告
- 高一历史下册期中考试卷及答案
- 滴专车司机专业技能面试题及解答手册参考
- 大型跨国企业高管面试题
- 2025中原农业保险股份有限公司招聘67人笔试备考重点试题及答案解析
- 2025中原农业保险股份有限公司招聘67人备考考试试题及答案解析
- 2025年度河北省机关事业单位技术工人晋升高级工考试练习题附正确答案
- 交通运输布局及其对区域发展的影响课时教案
- 2025年中医院护理核心制度理论知识考核试题及答案
- GB/T 17981-2025空气调节系统经济运行
- 比亚迪储能项目介绍
- 2025年9月广东深圳市福田区事业单位选聘博士11人备考题库附答案
- 糖尿病足溃疡VSD治疗创面氧自由基清除方案
- 《公司治理》期末考试复习题库(含答案)
- 自由职业者项目合作合同协议2025年
评论
0/150
提交评论