1 / 16
文档名称:

51单片机计算器程序.doc

格式:doc   页数:16页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

51单片机计算器程序.doc

上传人:fy3986758 2016/6/19 文件大小:0 KB

下载得到文件列表

51单片机计算器程序.doc

文档介绍

文档介绍:51 单片机计算器程序#include<> #define uint unsigned int #define uchar unsigned char #define ulint unsigned long int uchar i,i1,j,k,d,d1,n,n1,m,r,key,temp,num,num1; ulint s,s1,s2,s3; sbit we1=P2^0; sbit we2=P2^1; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x27,0x7f,0x67 }; uchar code table1[]={ 0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe }; uchar code table3[]= { 0x40,0x40,0x40,0x40,0x40,0x40 }; uchar table2[]={0,0,0,0,0,0,0,0,1}; uchar code table4[]= { 0x76,0x79,0x38,0x38,0x3f }; void delay(uint); void display(); void init(); void keys(); void sorry1(); void yuan(); void main() { init(); while(1) { display(); keys(); if(s>99999999) { sorry1(); }; }} void init() { we1=0; we2=0; key=0; num=0; s=0; m=5; } void display() { for(i=m;i>0;i--) { num1=m-i; i1=i-1; if(r==0) { we1=1; P0=table1[num1]; we1=0; P0=0x00; we2=1; P0=table4[i1]; delay(2); we2=0; P0=0xff; } else { j=table2[i1]; we1=1; P0=table1[num1]; we1=0; P0=0x00; we2=1; P0=table[j]; delay(2); we2=0; P0=0xff; }}} void delay(uint x) { uint y,z; for(y=x;y>0;y--) for(z=110;z>0;z--); } void keys() { P1=0xfe; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { r=1; delay(5); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xee: key=10; break; case 0xde: key=3; break; case 0xbe: key=2; break; case 0x7e: key=1; break; }; if(key==10) { s1=s; s=0; n=1; d1=d; d=0; n1=1; } else { if(n1==1) { m=num; num=0; n1--; } table2[num]=key; if(num>6) { sorry1(); }; s=s*10+table2[num]; s3=s; num++; m=num; } while(temp!=0xfe) { temp=P1; display(); }}} P1=0xfd; temp=P1; temp=temp&0xf0; if(temp!=0xf0) { r=1; delay(5); temp=P1; temp=temp&0xf0; if(temp!=0xf0) { temp=P1; switch(temp) { case 0xed: key=11; break; case 0xdd: key=6; break; case 0xbd: key=5; break; case 0x7d: key=4; break; } if(key==11) { s1=s; s=0; n=2; d1=d; d=0; n1=1; } else { if(num>6) { sorry1(); } else { if(n1==1) { m=num; num=0; n1--; } table2[num]=key; s=s*10+table2[num]; s3=s; num++; m=num; }} while(temp!=0xfd) { temp=P1; display(); }}} P1=0xfb; temp=P1