数显简易计算器.doc

上传人:11****ws 文档编号:3205563 上传时间:2019-05-25 格式:DOC 页数:11 大小:52.50KB
下载 相关 举报
数显简易计算器.doc_第1页
第1页 / 共11页
数显简易计算器.doc_第2页
第2页 / 共11页
数显简易计算器.doc_第3页
第3页 / 共11页
数显简易计算器.doc_第4页
第4页 / 共11页
数显简易计算器.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、/*可以连算不需反复清零,但每次输入参数后必须输入“等于“ 此问题有待解决.立编*/#include#define uchar unsigned charuchar a0=16,b0=16,c0=16,d0=16,e0=16,s0,s1,s2,s3,s4,s5,f0=16,wei,temp,key,i,j,k,jian0,jia0,cheng0,chu0;uchar jia,jian,cheng,chu,dengyu,qingling,yunsuan; unsigned long num,M;sbit dula=P26;sbit wela=P27;sbit beep=P23;unsigned

2、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,uchar 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;du

3、la=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=tablee;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=tempif(te

4、mp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xee:key=1;wei+;break;case 0xde:key=2;wei+;break;case 0xbe:key=3;wei+;break;case 0x7e:jia=1;break;while(temp!=0xf0) temp=P3;temp=tempbeep=0;beep=1;P3=0xfd;temp=P3;temp=tempif(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xed:ke

5、y=4;wei+;break;case 0xdd:key=5;wei+;break;case 0xbd:key=6;wei+;break;case 0x7d:jian=1;break;while(temp!=0xf0)temp=P3;temp=tempbeep=0;beep=1;P3=0xfb;temp=P3;temp=tempif(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xeb:key=7;wei+;break;case 0xdb:key=8;wei+;break;case 0xbb:key=9;wei+;br

6、eak;case 0x7b:cheng=1;break;while(temp!=0xf0)temp=P3;temp=tempbeep=0;beep=1;P3=0xf7;temp=P3;temp=tempif(temp!=0xf0)delay(10);if(temp!=0xf0)temp=P3;switch(temp)case 0xe7:qingling=1; break;case 0xd7:key=0;wei+;break;case 0xb7:dengyu=1;break;case 0x77:chu=1;break;while(temp!=0xf0)temp=P3;temp=tempbeep=

7、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; break;case 6: f0=key;break;key=20;display(a0,b0,c0,d0,e0,f0);if(

8、a0!=16) s5=a0;/不能直接操作 a0 必须将 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 liansuan()M=num;if(jia)jia=0;jia0=1;else if(jiadengyu=1;else if(jian)jian=0;jian0=1;else if(jiandengyu=1;else if(cheng)cheng=0;cheng0=1;else if(chengdengyu=1;else

9、 if(chu)chu=0;chu0=1;else if(chudengyu=1;void main()uchar yunsuan;while(1)keyscan();yunsuan=jia|jian|cheng|chu|dengyu;if(yunsuan=0)/注意:将 yunsuan 赋值写于键盘检测之后display0();elseyunsuan=jia|jian|cheng|chu;/无此句不能输出结果if(yunsuan)/dengyu 时需检测 jia|jian|cheng|chu 键以按过 /才能确定运算结果a0=16;b0=16;c0=16;d0=16;e0=16;f0=16;

10、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:M=s5*100000+s4*10000+s3*1000+s2*100+s1*10+s0;break;case 5:M=s5*10000+s4*1000+s3*1

11、00+s2*10+s1;break;case 4:M=s5*1000+s4*100+s3*10+s2;break;case 3:M=s5*100+s4*10+s3;break;case 2:M=s5*10+s4;break;case 1:M=s5;break;wei=0;s0=0;s1=0;s2=0;s3=0;s4=0;s5=0;display(a0,b0,c0,d0,e0,f0);if(dengyu=1)dengyu=0;switch(wei)/输出参数的表示方法case 6:num=s5*100000+s4*10000+s3*1000+s2*100+s1*10+s0;break;case

12、5:num=s5*10000+s4*1000+s3*100+s2*10+s1;break;case 4:num=s5*1000+s4*100+s3*10+s2;break;case 3:num=s5*100+s4*10+s3;break;case 2:num=s5*10+s4;break;case 1:num=s5;break;wei=0;s0=0;s1=0;s2=0;s3=0;s4=0;s5=0;if(jia0)jia0=0;num=M+num;/判断 jia 键按过,下类同if(jian0)jian0=0;num=M-num;if(cheng0)cheng0=0;num=M*num;if(chu0)chu0=0;num=M/num;if(num9)b0=num%100000/10000;c0=num%10000/1000;d0=num%1000/100;e0=num%100/10;f0=num%10;display(a0,b0,c0,d0,e0,f0);liansuan();if(qingling=1)a0=16;b0=16;c0=16;d0=16;e0=16;f0=16;jia=0;jian=0;cheng=0;chu=0,num=0,M=0;qingling=0;dengyu=0;wei=0;display(a0,b0,c0,d0,e0,f0);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。