|
按照以前学习51时候的思路,写了一个独立按键的测试程序,发现PIND.6按键按下后,有时PA口输出没有反应。
用PROTEUS仿真和在试验板测试,都是这个现象。怀疑按键问题,但用万用表测量PD.6引脚的电压,每次按键按下都变为0,
说明按键没问题。请各位高手指点啊
#include <mega16.h>
#include <delay.h>
unsigned char da;
void main(void)
{
PORTA=0x00;
DDRA=0xff; //设置输出
PORTD=0xff;
DDRD=0x00; //设置为输入,
while (1)
{
if(PIND.6==0) //如果PIND.6按键按下
{
delay_ms(10); //10ms的消抖时间
if(PIND.6==0)//确认PIND.6按键按下
{ da++;
PORTA=da; //通过PA口的变化,检测按键是否按下
}
}
while(PIND.6==0); //等待按键松开
} ;
}
本贴被 wb5846410 编辑过,最后修改时间:2008-12-03,21:56:44. |
|