




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、/**按键说明S6-S11 数字0-9的输入S12清零S13等于S14-S17加减乘除程序功能:本程序为简易计算器。可以算整数且正数类型的运算。但是暂时没有实现其连算功能,故在每次运算之后,请按下清零键。*/#include#define uchar unsigned charuchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k;uchar jia,jian,cheng,chu,dengyu,jia0,jian0,cheng0,chu0,qingling;uchar s0,s1
2、,s2,s3,s4,s5; /参加运算的各个位unsigned long qian,hou;/定义参于运算的第一个数和第二个数。sbit dula=P26;sbit wela=P27;sbit beep=P23;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00;void delay(uchar i)for(j=i;j0;j-)for(k=125;k0;k-);void display(uchar a,uchar b,ucha
3、r c,uchar d,uchar e,uchar f) dula=0; P0=tablea; dula=1; dula=0; wela=0; P0=0xfe; wela=1; wela=0; delay(5); P0=tableb; dula=1; dula=0; P0=0xfd; wela=1; wela=0; delay(5); P0=tablec; dula=1; dula=0; P0=0xfb; wela=1; wela=0; delay(5); P0=tabled; dula=1; dula=0; P0=0xf7; wela=1; wela=0; delay(5); P0=tabl
4、ee; dula=1; dula=0; P0=0xef; wela=1; wela=0; delay(5); P0=tablef; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(5);void keyscan() P3=0xfe; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xee: key=0; wei+; break; case 0xde: key=1; wei+; break; case 0xbe:
5、 key=2; wei+; break; case 0x7e: key=3; wei+; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xfd; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xed: key=4; wei+; break; case 0xdd: key=5; wei+; break; case 0xbd: key=6; wei+; break;
6、 case 0x7d: key=7; wei+; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xfb; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xeb: key=8; wei+; break; case 0xdb: key=9; wei+; break; case 0xbb: qingling=1; /key=10; /wei+; break; case
7、 0x7b: dengyu=1; /key=11; /wei+; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; P3=0xf7; temp=P3; temp=temp&0xf0; if(temp!=0xf0) delay(10); if(temp!=0xf0) temp=P3; switch(temp) case 0xe7: jia=1; /key=12; / wei+; break; case 0xd7: jian=1; break; case 0xb7: cheng=1; break; case 0x77
8、: chu=1; break; while(temp!=0xf0) temp=P3; temp=temp&0xf0; beep=0; beep=1; void display0()if(key!=20)switch(wei)case 1: a0=key;b0=16;c0=16;d0=16;e0=16;f0=16;break;case 2: b0=key;c0=16;d0=16;e0=16;f0=16;break;case 3: c0=key;d0=16;e0=16;f0=16;break;case 4: d0=key;e0=16;f0=16;break;case 5: e0=key;f0=16
9、; break;case 6: f0=key;/wei=0;break;key=20;display(a0,b0,c0,d0,e0,f0);if(a0!=16) s5=a0;if(b0!=16) s4=b0;if(c0!=16) s3=c0;if(d0!=16) s2=d0;if(e0!=16) s1=e0;if(f0!=16) s0=f0;void main()uchar gongneng,yunsuan; while(1) keyscan();gongneng=jia|jian|cheng|chu|dengyu|qingling;if(gongneng=0)display0();else
10、yunsuan=jia|jian|cheng|chu;if(yunsuan)a0=16;b0=16;c0=16;d0=16;e0=16;f0=16;/wei=0;if(jia)jia=0;jia0=1;jian0=0;cheng0=0;chu0=0;if(jian)jian=0;jia0=0;jian0=1;cheng0=0;chu0=0;if(cheng)cheng=0;jia0=0;jian0=0;cheng0=1;chu0=0;if(chu)chu=0;jia0=0;jian0=0;cheng0=0;chu0=1;switch(wei)case 6:qian=s5*+s4*10000+s
11、3*1000+s2*100+s1*10+s0;break;case 5:qian=s5*10000+s4*1000+s3*100+s2*10+s1;break;case 4:qian=s5*1000+s4*100+s3*10+s2;break;case 3:qian=s5*100+s4*10+s3;break;case 2:qian=s5*10+s4;break;case 1:qian=s5;break;wei=0;s0=0;s1=0;s2=0;s3=0;s4=0;s5=0;display(a0,b0,c0,d0,e0,f0);/P1=0x55;if(dengyu) dengyu=0; /di
12、splay(16,16,16,16,16,16); switch(wei)case 6:hou=s5*+s4*10000+s3*1000+s2*100+s1*10+s0;break;case 5:hou=s5*10000+s4*1000+s3*100+s2*10+s1;break;case 4:hou=s5*1000+s4*100+s3*10+s2;break;case 3:hou=s5*100+s4*10+s3;break;case 2:hou=s5*10+s4;break;case 1:hou=s5;break;wei=0;s0=0;s1=0;s2=0;s3=0;s4=0;s5=0; if
13、(jia0) jia0=0;hou=qian+hou; if(jian0) jian0=0;hou=qian-hou; if(cheng0) cheng0=0;hou=qian*hou; if(chu0) chu0=0;hou=qian/hou; if(hou10) a0=hou;b0=16;c0=16;d0=16;e0=16;f0=16; else if(hou100)a0=hou/10;b0=hou%10;c0=16;d0=16;e0=16;f0=16;elseif(hou1000)a0=hou/100;b0=hou%100/10;c0=hou%10;d0=16;e0=16;f0=16;elseif(hou10000)a0=hou/1000;b0=hou%1000/100;c0=hou%100/10;d0=hou%10;e0=16;f0=16;elseif(hou)a0=hou/10000;b0=hou%10000/1000;c0=hou%1000/100;d0=hou%100/10;e0=hou%10;f0=16;elseif(hou)a0=hou/;b0=hou%/10000;c0=hou%10000/1000;d0=hou%1000/100;e0=hou%100/10;f0=hou%10; display(a0,b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务审计保密协议
- 汽车吊机租赁合同
- 房地产经纪行业客户信息保密合同
- 货车运输合同协议书
- 户外运动安全责任豁免合同
- 建筑工程大清包合同新
- 智能制造生产线建设合同
- 金融行业投资产品风险提示协议
- 保洁卫生承包合同
- 第十二章第三节《机械效率》教学设计 -2023-2024学年人教版八年级物理下册
- 220kVGIS安装施工方案
- CRISPR-Cas9-基因编辑技术简介
- 山东省潍坊市2023-2024学年高二下学期期末考试 历史 含解析
- 2024-2025学年高中数学选择性必修第二册湘教版(2019)教学设计合集
- 第12课 Python的函数 教案
- 《现代企业管理》自考复习试题库(含答案)
- DG-TJ 08-2409-2022 老旧住宅小区消防改造技术标准
- 08SS704 混凝土模块式化粪池
- 皮内注射并发症的预防及处理
- CNC加工中心作业指导书全套
- HJ 193-2013 环境空气气态污染物(SO2、NO2、O3、CO)连续自动监测系统安装验收技术规范
评论
0/150
提交评论