刚刚入手一个51
开发板,兴致勃勃的编起了程序,很是胸有成竹。因为之前在
proteus上
仿真了不少。可是在开发板上却是处处碰壁啊。就说一个简单的检测按键是否按下,然后点亮相应的led灯。就永远达不到我要的预期效果啊。请高手们不吝赐教。程序如下:
#include <reg52.h>
#define uchar unsigned char
/*1MS为单位的延时程序*/
void delay_1ms(uchar x)
{
uchar j;
while(x--) { for(j=0;j<125;j++); }
}
void main()
{
while(1)
{
if(P3^5==1)
{
delay_1ms(2);
if(P3^5==1)
{
P2=0x00;
}
}
}
}
程序没问题吧?
led是共阳接法,按键是独立对地键盘,可是只要把程序导入,所有的led就全亮了。请问这是何故啊?
2、你的按键程序响应后就一直把LED点亮,没有关LED,所以响应一次键后,P2就一直输出0,没有回到1;
按照上面两步处理了,应该就没有问题了!
这里应该改成 0 if(P3^5==0)
一周热门 更多>