按键无响应
我是个新手,有个小问题搞了好久实在是不明白问题出在哪里,请各位指教,没有人指导学点东西不容易啊!!#include <reg52.h>
#define KEY_value 0x10 //0001 0000,定义按键鍵值
unsigned char Trg;
unsigned char Cont;
unsigned char Release;
sbit KEY=P1^4; //定义按键端口 1110 1111
void KeyRead( void )
{
unsigned char ReadData;
ReadData = KEY^0xff; // 1 读键值
Trg = ReadData & (ReadData ^ Cont); // 2 得到按下触发值
Release= (ReadData ^ Trg ^ Cont); // 3 得到释放触发值
Cont = ReadData; // 4 得到所有未释放的键值
}
void init (void)
{
KEY=0xff;
}
void KeyProc(void)
{
if (Trg & KEY_value)
{
P2=0x30; //0011 0000
}
else
{
P2=0x0f; //0000 1111
}
}
void main(void)
{
init();
while(1)
{
KeyRead();
KeyProc();
}
}
程序一运行时,四个LED灯点亮,按按键无响应。