|
我試寫了一個(gè), 沒有51這樣的板,也沒辦法調(diào)試, 你試一下看有問題沒?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
const uchar table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
void delay(uint ms)
{
uint m,n;
for(m=0;m<ms;m++)
for(n=0;n<1140;n++);
}
void Key_scan(void)
{
uchar temp;
temp=P1;
temp=temp&0xff;
if (temp!=0xff);
{
delay(10);
temp=P1;
temp=temp&0xff;
if (temp!=0xff)
{
temp=P1;
switch (temp)
{
case 0xfe: P2=table[0]; break;
case 0xfd: P2=table[1]; break;
case 0xfb: P2=table[2]; break;
case 0xf7: P2=table[3]; break;
case 0xef: P2=table[4]; break;
case 0xdf: P2=table[5]; break;
case 0xbf: P2=table[6]; break;
case 0x7f: P2=table[7]; break;
default: break;
}
while(temp!=0xff)
{
temp=P1;
temp=temp&0x0f;
}
}
}
}
void main()
{
P1=0xff;
P2=0xff;
while(1)
{
Key_scan();
delay(10);
}
}
|
|