#include//线反转法 sbit A2=P2^4; sbit A1=P2^3; sbit A0=P2^2; char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; char temp,num,x,y,z; void delay(int ms) { char i; while(ms--) { for(i=0;i<110;i++); } } char keyscan() { P1=0x0f; temp=P1; if(temp!=0x0f) { delay(20); temp=P1; if(temp!=0x0f) { x=P1; P1=0xF0; y=P1; z=x|y; switch(z) { case 0x77:num=0;break; case 0x7b:num=1;break; case 0x7d:num=2;break; case 0x7e:num=3;break; case 0xb7:num=4;break; case 0xbb:num=5;break; case 0xbd:num=6;break; case 0xbe:num=7;break; case 0xd7:num=8;break; case 0xdb:num=9;break; case 0xdd:num=10;break; case 0xde:num=11;break; case 0xe7:num=12;break; case 0xeb:num=13;break; case 0xed:num=14;break; case 0xee:num=15;break; } } } return num; } void main() { A2=0;A1=0;A0=0; while(1) { keyscan(); P0=table[num]; delay(10); } }



