微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 为啥led灯不会亮灭的 如果改成led=~led的话就会亮灭亮灭 求解

为啥led灯不会亮灭的 如果改成led=~led的话就会亮灭亮灭 求解

时间:10-02 整理:3721RD 点击:
#include <REGX51.H>
#define uchar unsigned char
#define led  P1
void main()
{   
      
   
    TMOD = 0x01;
    TH0  = 0x4c;
    TL0 = 0x00;
    TR0 = 1;
   
    while(1)
   {
       uchar n;
   
   if(TF0==1)
   {
    TF0=0;
   TH0 = 0x4c;
         TL0 = 0x00;
   n++;
   }

   if(n==20)
   {
     n=0;
     led=0xaa;
   
   }
   }
}

为啥led灯不会亮灭的  如果改成led=~led的话就会亮灭亮灭 求解

程序中led的值不就是在if(n==20)中赋值的吗?之后这个值有没有改变,所以肯定不会亮灭的。
当改成led=~led时,led的值当满足n==20的时候就会自动改变的。(0x00 0xff 0x00 0xff……)

你的LED一直等于AAH,没用改变他的状态,要亮灭,就得让0变1一变0

LED只等于0XAA  没看到其他赋值

你把n定义放在while里面?把它放到while上面就可以了

小编,这个是使用定时器延时,为什么LED 不会亮灭,主要是在if {}中,P1 赋的是固定的值,而不是变化的值。LED=~LED 这个就是赋值是变化的! 所以才会有亮灭!

朋友,请问下万能板上的地线是如何布置的 ,我不知道地线在万能板上如何设计!

朋友,请问下万能板上的地线是如何布置的 ,我不知道地线在万能板上如何设计!

非常感谢各位 谢谢

你用示波器测测那个引脚输出的波形,一看就知道为什么

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

网站地图

Top