|
atmega128两个按键同时按下为什么不能改变端口输出的值?
[复制链接]
下面是我修改的一个简单的LED 显示程序,我希望同时按下两个按键的时候,改变A端口的输出,可事实上是按着的时候就有显示,
而松开按键就没有显示呢?请哪位高手能给与指点,将不胜感激。我是新手因为喜欢单片机,所以才开始学习。
#include
#include
#define led PORTA
#define uchar unsigned char
uchar key_press(void)
{
uchar key;
if(((PIND&0xC0)==0x40)&((PINE&0xC0)==0x40))
key=0x01;
else if(((PIND&0xC0)==0x40)&((PINE&0xC0)==0x80))
key=0x02;
else if(((PIND&0xC0)==0x80)&((PINE&0xC0)==0x40))
key=0x04;
else if(((PIND&0xC0)==0x80)&((PINE&0xC0)==0x80))
key=0x08;
else
key=0xff;
return(key);
}
int main(void)
{
// uchar showcode;
DDRD =0X00;
DDRE =0X00;
PORTD = 0xff;
PORTE = 0xff;
DDRA = 0xff;
PORTA = 0x88;
while(1)
{
led=key_press();
// _delay_ms(100);
}
}
|
|