计算器程序完美版单片机.doc

计算器程序完美版单片机.doc

ID:56280613

大小:52.50 KB

页数:11页

时间:2020-06-05

计算器程序完美版单片机.doc_第1页
计算器程序完美版单片机.doc_第2页
计算器程序完美版单片机.doc_第3页
计算器程序完美版单片机.doc_第4页
计算器程序完美版单片机.doc_第5页
资源描述:

《计算器程序完美版单片机.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#include#include#defineuintunsignedint#defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};ucharsign=0;charifnum=0,ifcount=0,dian=0,dian1=0;longlen=10;floatresult=0,b

2、=0,key;voiddelay(uintz);ucharkeyscan();voiddisplay(longaa);voidyunsuan();chartable1[8]={0x00,0x00,0x00,0x00,0x00,0x3f};voidmain(){inti;dula=1;P0=0;dula=0;wela=1;P0=0xff;wela=0;//display(0);//delay(3000);while(1){charh=0xfe,k,j=0;for(k=6;k>0;k--){dula=1;P0=table1[j++];dula=0;P0=0xff;

3、wela=1;P0=h;h=(h<<1);h=h+1;delay(3);}key=keyscan();if(key>=1&&key<=16)while(1){if(key>=1&&key<=10)//在0到9之间,证明按下的是数值{if(result<1000000){if(ifnum==0&&dian1==0)result=(key-1);elseif(ifnum!=0&&dian1==0)result=result*10+(key-1);elseif(ifnum!=0&&dian1!=0){result=result+(key-1)/len;len=len

4、*10;}}result=result*100;//取result的整数部分和小数点后两位display(result);ifcount=0;ifnum=1;//当前按键为数字}elseif(key>=11&&key<=14)//在11到1之间,证明按下的是符号{if(ifcount==1)sign=key;//标记为1,已显示结果,只改变运算符elseif(sign==0&&ifnum==0);//之前无按键elseif(sign==0&&ifnum==1)//之前只按过数字键{sign=key;b=result;result=0;}elseif(sign!

5、=0&&ifnum==0)//之前按过数字键和符号键sign=key;else//之前按过数字键和符号键及数字键{yunsuan();sign=key;b=result;result=b;}ifnum=0;dian1=0;len=10;}elseif(key==15&&dian1==0)//按下小数点键{dian=1;dian1=1;len=10;}elseif(key==16)//按下等于键{if(ifcount==0)if(sign!=0&&ifnum==1){yunsuan();b=result;result=b;sign=0;}ifnum=0;dian

6、1=0;len=10;}for(i=0;i<2000;i++);result=result*100;display(result);key=keyscan();}}}voidyunsuan(){switch(sign){case11:result=b+result;result=result*100;display(result);break;case12:result=b-result;result=result*100;display(result);break;case13:result=b*result;result=result*100;displa

7、y(result);break;case14:result=b/result;result=result*100;display(result);break;default:break;}ifcount=1;}ucharkeyscan(){ucharnum=0,temp;P3=0x01;temp=P3;temp=temp

8、0x0f;while(temp!=0x0f)//判断是否有键按下{delay(3);temp=P3;temp=temp

9、0x0f;while(temp!=0x0f)//确认是否有键按下{temp=P3;switch(temp){case0x1

10、1:num=1;break;case0

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

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

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