刚刚入手一个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就全亮了。请问这是何故啊?
1:检查按键式是判断为低电平为通,高电平为断,
2:最好是先位定义一下,sbit p1_5=P1^5;我没有位定义,出现了一些问题!
3:按键的消痘最好是如楼上说的10ms---20ms
4:i/o口的初始化注意下!
一周热门 更多>