- 论坛徽章:
- 0
|
电路图:
代码:
- #include <REG52.h>
- unsigned char code table[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- sbit h1=P1^0;
- sbit h2=P1^1;
- sbit h3=P1^2;
- sbit h4=P1^3;
- sbit l1=P1^4;
- sbit l2=P1^5;
- sbit l3=P1^6;
- sbit l4=P1^7;
- void delay(int num)
- {
- int i,j;
- for(i=0;i<num;i++)
- for(j=0;j<150;j++)
- ;
- }
- unsigned char scanfcode()
- {
- unsigned char table_h[]={0xfe, 0xfd, 0xfb, 0xf7};
- unsigned char i;
- for(i=0;i<4;i++)
- {
- P1=table_h[i];
- if(l1==0)
- return i*4+0;
- else if(l2==0)
- return i*4+1;
- else if(l3==0)
- return i*4+2;
- else if(l4==0)
- return i*4+3;
- }
- }
- int main()
- {
- P2=0X02;
- while(1)
- {
- P1=0XF0;
- if(P1!=0XF0)
- {
- delay(20);
- if(P1!=0XF0)
- {
- P0=table[scanfcode()];
- }
- }
- }
- }

|
|