- #include"reg51.h"
- unsigned char num=16;
- unsigned char seg[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40};
- void delay()
- {
- int i,j;
- for(i=0;i<10;i++)
- for(j=0;j<120;j++);
- }
- void key_scan()
- {
- P1=0xf0;
- if(P1!=0xf0)
- {
- delay();
- if(P1!=0xf0)
- {
- switch(P1)
- {
- case(0xe0):num = 0;break;
- case(0xd0):num = 1;break;
- case(0xb0):num = 2;break;
- case(0x70):num = 3;break;
- }
- P1=0x0f;
- switch(P1)
- {
- case(0x0e):num+= 0;break;
- case(0x0d):num+= 4;break;
- case(0x0b):num+= 8;break;
- case(0x07):num+=12;break;
- }
- while(P1!=0x0f);
- }
- }
- }
- void display()
- {
- P2=seg[num];
- }
- void main()
- {
- while(1)
- {
- key_scan();
- display();
- }
- }
复制代码
|