当前位置:文档之家› 51单片机反转法扫描键盘

51单片机反转法扫描键盘

#include
unsigned char a,b,c,num;
unsigned char code dx[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

void delay(unsigned int x)
{
unsigned int i,j;
for(i=x;i>0;i--)
for(j=120;j>0;j--);
}
void keyscan()
{
P1=0xf0;
if(P1!=0xf0)
{
delay(10);
if(P1!=0xf0)
{
a=P1;
P1=0x0f;
b=P1;
}
}
c=a|b;
switch(c)
{
case 0xee: num=0;P2=0;break;
case 0xde: num=1;P2=0;break;
case 0xbe: num=2;P2=0;break;
case 0x7e: num=3;P2=0;break;
case 0xed: num=4;P2=0;break;
case 0xdd: num=5;P2=0;break;
case 0xbd: num=6;P2=0;break;
case 0x7d: num=7;P2=0;break;
case 0xeb: num=8;P2=0;break;
}
}

void display(unsigned char n)
{
P0=dx[n];
P0=0xff;
}

void main()
{
while(1)
{
keyscan();
display(num);
}
}

相关主题
文本预览
相关文档 最新文档