简单的51单片机计算器程序

简单的51单片机计算器程序

ID:39563458

大小:50.50 KB

页数:6页

时间:2019-07-06

简单的51单片机计算器程序_第1页
简单的51单片机计算器程序_第2页
简单的51单片机计算器程序_第3页
简单的51单片机计算器程序_第4页
简单的51单片机计算器程序_第5页
资源描述:

《简单的51单片机计算器程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、请支持原创,谢谢1、电路图2、程序:/***********************************************************************************************************designbyDXfromGDOU**************************************************************************************/#include#include#defineuint8unsign

2、edcharsbitled1=P1^0;sbitled2=P1^1;sbitled3=P1^2;sbitled4=P1^3;longintcount1,count2;//存放上次的输入和现在的输入uint8symbol,p;//存放符号的数值p用于多数输入清屏作用longintoutputcount;//存放结果uint8KeyCodeTable[]={0x28,0x14,0x24,0x44,0x12,0x22,0x42,0x11,0x21,0x41,0x18,0x88,0x84,0x82,0x81,0x48};//键盘按键特征表inttable[]={0XC0,

3、0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};//不懂uint8a[4];voidinit(){uint8j;a[0]=0xc0;for(j=1;j<4;j++){a[j]=0xff;}count1=0;count2=0;symbol=0;p=0;outputcount=0;}voiddelayms(intx)//延时程序{uint8i;while(x--)for(i=0;i<120;i++);}voiddisplay()//LED显示{P0=a[0];led1=0;delayms(5);led1=1;P0=a[1];

4、led2=0;delayms(5);led2=1;P0=a[2];led3=0;delayms(5);led3=1;P0=a[3];led4=0;delayms(5);led4=1;}uint8keyscan()//键盘扫描{uint8sCode,kCode,i,k;P2=0xf0;if((P2&0xf0)!=0xf0){delayms(2);//软件去抖if((P2&0xf0)!=0xf0){sCode=0xfe;for(k=0;k<4;k++){P2=sCode;delayms(12);if((P2&0xf0)!=0xf0){kCode=~P2;for(i=0

5、;i<16;i++)if(kCode==KeyCodeTable[i])return(i);}elsesCode=_crol_(sCode,1);}}}return(100);//没按键输入}voidoutput(longintx){inti;uint8j=0;uint8z[3]={0,0,0};if(x>=1000){i=x/1000;z[0]=i;a[j]=table[i];j++;}if(x>=100){i=(x-z[0]*1000)/100;z[1]=i;a[j]=table[i];j++;}if(x>=10){i=(x-z[0]*1000-z[1]*10

6、0)/10;z[2]=i;a[j]=table[i];j++;}i=x%10;a[j]=table[i];}voidCalculate(uint8key)//计算程序并显示LED{uint8i,j;statick=0;if(key<10){if(p){p=0;for(j=0;j<4;j++){a[j]=0xff;}}a[k]=table[key];k=++k%4;count2*=10;count2+=key;outputcount=count2;//把当前按下的值先赋给outputcount}elseif(key==10)//清零键{k=0;init();}els

7、eif(key<15){k=0;p=1;switch(symbol)//多则运算时用于把之前的结果赋给COUNT1{case0:count1=count2;break;case11:count1+=count2;break;case12:count1-=count2;break;case13:count1*=count2;break;case14:count1/=count2;break;default:break;}count2=0;//有符号输入时把之前的值赋给count1,并把符号标号赋给symbol;symbol=key;}else{switch(symb

8、ol){c

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

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

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