unsigned char code table[]={0x3f,0x06,0x5b,0x4f, //0~f显示表 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71}; unsigned char temp; //变量声明 unsigned char key; unsigned char i,j;
void delay(unsigned char z) //延时1ms子函数 { unsigned char x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }
void main(void) {
while(1) {
P3=0xff; P3_4=0; temp=P3; temp=temp & 0x0f; if (temp!=0x0f) {
delay(10); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e: key=3; break; case 0x0d: key=2; break; case 0x0b: key=1;
break; case 0x07: key=0; break; }
P0=table[key];
} }
P3=0xff; P3_5=0; temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
delay(10); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e: key=7; break; case 0x0d: key=6; break; case 0x0b: key=5; break; case 0x07: key=4; break; }
temp=P3;
P0=table[key];
}
} P3=0xff; P3_6=0; temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
delay(10); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e: key=11; break; case 0x0d: key=10; break; case 0x0b: key=9; break; case 0x07: key=8; break; }
temp=P3;
P0=table[key];
} }
P3=0xff; P3_7=0; temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
delay(10); temp=P3;
temp=temp & 0x0f; if (temp!=0x0f) {
temp=P3;
temp=temp & 0x0f; switch(temp) {
case 0x0e: key=15;
} } }
break; case 0x0d: key=14; break; case 0x0b: key=13; break; case 0x07: key=12; break; }
temp=P3; P0=table[key]; }
因篇幅问题不能全部显示,请点此查看更多更全内容