#include "reg52.h"
#define u8 unsigned char
#define u16 unsigned int
#define KEY P2
unsigned int keypros();
void delay(u16);
void chuankou(u8 a)//´®¿ÚͨÐųÌÐò
{
SBUF=a;
while(!TI);
TI=0;
}
main()
{
TMOD=0x20;
TH1=0xFD;
TL1=0xFD;
PCON=0x00;
SCON=0x50;
EA=1;
TR1=1;
ES=1;
while(1)
{ unsigned char keynum ;
keynum=keypros();
switch(keynum)
{
case(0x7f):chuankou(0x00);break;
case(0xbf):chuankou(0x01);break;
case(0xdf):chuankou(0x02);break;
case(0xef):chuankou(0x03);break;
default:break;
}
}
}
//ÑÓʱº¯Êý
void delay(u16 i)
{
while(i--);
}
unsigned int keypros()
{
unsigned char i ,keyvalue=0x00;
KEY=0xff;
if(KEY!=0xff) //????K1????
{
delay(1000); //???? ????10ms
if(KEY!=0xff) //??????????
{
keyvalue=KEY;
while((i<50)&&(KEY!=0xff))
{
i++;
delay(500);
}
}
}
return keyvalue;
}
|