



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/8位液晶数码管显示的计算器,代码通俗易懂/用到数码管、矩阵键盘、中断三个模块#includereg52.h#includestdio.htypedef unsigned char uchar;typedef unsigned int uint;sbit Wei = P23;/定义74hc573d锁存器端口,控制数码管位码;sbit Duan = P22;/定义74hc573d锁存器端口,控制数码管段码;code uchar WeiMa = 0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/共阴数码管点亮位,从第0位到第7位,共8个;code u
2、int DuanMa = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/共阴数码管显示的值“09”;uchar DuanMaZhi8;/储存数码管显示值的全局变量;Timer_0();/数码动态扫描的定时器函数;Delay(uint t);/按键去抖的延迟函数;Key_1();/矩阵键盘扫描函数;Key_2();/矩阵键盘返回值函数;main()uchar n,i,L,F,T8,s;uint a = 0,b = 0;Timer_0();DuanMaZhi0 = DuanMa0;/复位后数码管显示“0”while(1)n
3、 = Key_2();/变量n存储函数返回值if(n != 0 xff)/检测到有返回值if(i = 0)for(s = 0;s 8;s+)DuanMaZhis = 0;/清除缓冲区if(8 = i) | (+ = n) | (- = n) | (x = n) | (/ = n) | (= = n)/检测到下列符号则代表输 /入结束;i = 0;if(F = 0) /第一个输入值赋给a;sscanf(T,%d,&a);/输入值存储到变量a,下同;F = 1;elsesscanf(T,%d,&b);for(s = 0;s 8;s+)Ts = 0;/清除缓存区的值; if(n != =)/判断是否
4、为等号,做下标记;L = n;elseF = 0;switch(L)/计算操作case +:a = a + b;break;case -:a = a - b;break;case x:a = a * b;break;case /:a = a / b;break;default:break;sprintf(T,%d,a);for(s = 0;s 8;s+)if(Ts = 0) /如果检测到null,则数码管不显示;DuanMaZhis = 0;else if(Ts = 0 x2d) /如果为负号则在段码显示负号;DuanMaZhis = 0 x40;elseDuanMaZhis = DuanMa
5、Ts - 0;/从ascall码计算数值L = 0; /全部清零;a = b = 0;for(s = 0;s 8;s+)Ts = 0;else if(i 16)Ti = n + 0;DuanMaZhii = DuanMan;/输出数据;i+;Key_1()/矩阵键盘翻转扫描uchar i,j;P1 = 0 x0f;if(P1 != 0 x0f)Delay(4500);/去除按键抖动;if(P1 != 0 x0f)i = P1;P1 = i | 0 xf0;j = P1 & 0 xf0;while(P1 & 0 xf0) != 0 xf0);return (i + j);return(0 xff
6、);Key_2()switch(Key_1()/根据扫描结果返回值给ncase 0 x7e:return 1 ;break;case 0 xbe:return 2 ;break;case 0 xde:return 3 ;break;case 0 xee:return +;break;case 0 x7d:return 4 ;break;case 0 xbd:return 5 ;break;case 0 xdd:return 6 ;break;case 0 xed:return -;break;case 0 x7b:return 7 ;break;case 0 xbb:return 8 ;bre
7、ak;case 0 xdb:return 9 ;break;case 0 xeb:return x;break;case 0 x77:return 0 ;break;case 0 xb7:return .;break;case 0 xd7:return =;break;case 0 xe7:return /;break;default:return 0 xff ;break;Timer_0() /定时器0初始化TMOD = 0 x01;TR0 = 1;ET0 = 1;EA = 1;Interrupt_0() interrupt 1 /数码管中断扫描;static uchar i = 0;TH0 = 0 xf8;TL0 = 0 x30;P0 = 0; /清除数码管缓存;Duan = 1;Duan
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务管理资金运作分析试题及答案在2025年
- 2025年儿童青少年心理健康考试题及答案
- 海安融信面试题库及答案
- 基础医学知识试题库
- 知识经济与公共政策关系试题及答案
- 软件设计师考试反馈与试题及答案总结
- 软考网络工程师试题及答案全媒体传播2025年
- 机电工程2025年成功案例试题及答案
- 前端与后端结合的2025年软件设计师试题及答案
- 网络工程师复习计划及试题及答案
- 第18课《中国人失掉自信力了吗》课件-2024-2025学年统编版语文九年级上册
- 人教版中考物理一轮大单元复习第二单元声现象【中考演练】(原卷版+解析)
- 深圳小孩上学租房合同
- 接地电阻、绝缘电阻和漏电保护器漏电动作参数测定记录表
- 2024-2025学年高中物理1.1质点参考系教学设计新人教版必修第一册
- 高原湿地- 三江源地区说课课件-2023-2024学年人教版地理八年级下册
- SH/T 3046-2024 石油化工立式圆筒形钢制焊接储罐设计规范(正式版)
- (高清版)JTGT D31-06-2017 季节性冻土地区公路设计与施工技术规范
- 机房搬迁服务搬迁实施方案
- DLT电力建设施工及验收技术规范锅炉机组篇
- 高苯丙氨酸(苯丙酮尿症)血症课件
评论
0/150
提交评论