发布时间 : 星期四 文章武汉理工大学单片机课程设计-2更新完毕开始阅读3a34544d8c9951e79b89680203d8ce2f006665d3
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x84};//数码管代码 char dis_buf;
char i=0,j=0,k=0,inp1=0,inp2=0,inp3=0,on_off=0,disp=0; //初始化控制变量
char temp,key,num,m,n; char a[11][5]; void keydown(void); void keyscan(void); void display(void); void init(void); void delay(int z) {
int x,y; }
void main() {
P0=0xff;
P2=0xff; dis_buf=0xbf; while(1) {
for(m=0;m<10;m++)
for(n=0;n<5;n++)
a[m][n]=0;
for(x=0;x for(y=0;y<110;y++); display(); } } void keydown(void) { P1=0xf0; if(P1!=0xf0) { keyscan(); //扫描函数 while(P1!=0xF0); } } void keyscan(void) { int m,n; //********** 为 每 个按钮设key********************************** P1=0x0f; //低四位输入 delay(1); temp=P1; temp=(~temp)&0x0f; if(temp==1) key=0; else if(temp==2) key=4; else if(temp==4) key=8; else if(temp==8) key=12; P1=0xf0; delay(1); temp=P1; temp=(temp>>4); temp=(~temp)&0x0f; 置一个编号 入 if(temp==1) key=key+0; else if(temp==2) key=key+1; else if(temp==4) key=key+2; else if(temp==8) key=key+3; if(key==3||key==7||key==11||key==12||key>13) { //控制按钮输 if(key==3) { } else if(key==7) { disp=1; num=0; //数据显示按钮 on_off=1; //开数据输入开关 //数据输入按钮 } else if(key==11) //串行通信 { init(); inp2=1,i=0,j=0,inp1=0,on_off=0,disp=0,num=0; for(m=0;m<10;m++) for(n=0;n<5;n++) a[m][n]=0; } else if(key==12) //回车按钮 { inp1++; if(inp1==2) {inp1=0;j=0;} } else if(key==15) //清除按钮 { i=0,j=0,inp1=0,inp2=0,on_off=0,disp=0,num=0; for(m=0;m<10;m++) for(n=0;n<5;n++) a[m][n]=0; } else if(key==14) //输入清除按钮 { for(j=0;j<6;j++) a[i][j]=0; inp1=0; j=0; } //数据按钮输入 }else{ if(key<3) {num=key+1;} //num为1~3 //num为4~6 //num为7~9 //num为0 else if(key>3&&key<7) {num=key;} else if(key>7&&key<11) {num=key-1;} else if(key==13) {num=0;} if(disp==0&&on_off==1){ if(inp1==0){i++; a[i][0]=num;} //数据存储 else if(inp1==1) {j++;a[i][j]=num;} }else if(inp2==1)