51开发板

2019-07-16 05:13发布

刚刚入手一个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就全亮了。请问这是何故啊?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
HOLDDEAN
1楼-- · 2019-07-18 00:43
使得此啊
2楼-- · 2019-07-18 01:21
我在我的开发板上做了一下你的实验与偶以下几个问题:
1:检查按键式是判断为低电平为通,高电平为断,
2:最好是先位定义一下,sbit p1_5=P1^5;我没有位定义,出现了一些问题!
3:按键的消痘最好是如楼上说的10ms---20ms
4:i/o口的初始化注意下!
使得此啊
3楼-- · 2019-07-18 03:08
你的问题主要是集中在2.4两点上!
hobbye501
4楼-- · 2019-07-18 03:23
 精彩回答 2  元偷偷看……
lanxuejun
5楼-- · 2019-07-18 08:26
zhanghaiw
6楼-- · 2019-07-18 08:44
也是啊,理论和实践还是有差距的啊!

一周热门 更多>