微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 我按下Key_M1,释放后,为什么led不亮,程序问题

我按下Key_M1,释放后,为什么led不亮,程序问题

时间:10-02 整理:3721RD 点击:
#include<REG52.h>
sbit led=P1^0;
sbit Key_M1=P3^4;
sbit Key_M2=P3^5;
sbit Key_M3=P3^6;
sbit Key_M4=P3^7;
/*sbit Key_M5=P1^4;
sbit Key_M6=P1^5;
sbit Key_Clock=P1^6;
sbit Key_Counterclock=P1^7;
*/
void Delay(unsigned char p);
void main()
{
    while(1)
    {
        if(!Key_M1)
        {
            Delay(20);
            if(!Key_M1)
            {
               while(Key_M1)
               {
                       //P0=0;
                    //P2=0x05;
                    led=0;
               }
            }
   
        }
    }
}

void Delay(unsigned char p)      //延时程序
{
    unsigned char m,n;
    for(m=p;m>0;m--)
        for(n=125;n>0;n--);

问题:我按下Key_M1,释放后,为什么led不亮,大神帮忙看下,小弟不胜感激

你程序有点问题,led无论按键按不按都一直为0.你led是高电平点亮还是低电平点亮?程序要实现什么功能?

LED是低电平点亮,我一开始写了一段测试电机程序,电平一直不对,就写了上面这段LED的程序,也点不亮,以为单片机坏了,现在问题已经解决,感谢您的回复,

不得不说你这个程序逻辑有很大问题
while(Key_M1)应该为while(!Key_M1)这样按下按键后将点亮灯泡。但松键不会自动灭

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top