当前位置:   article > 正文

C51单片机独立按键控制LED灯_外部中断控制led灯亮灭c51

外部中断控制led灯亮灭c51

点亮流水灯-CSDN博客

点亮流水灯共有三种方法:51单片机流水灯三种实现方法_crol函数怎么用-CSDN博客

C51单片机可以通过外部中断的方式来检测外部按键,并通过控制GPIO口来控制LED的亮灭。以下是一种实现方法:

  1. 配置中断:将需要检测的按键连接到单片机的外部中断引脚上,例如P3.2。在程序中使能该引脚的中断,使得当按键按下时,中断服务程序会被触发。

  2. 配置GPIO口:将需要控制的LED连接到单片机的GPIO口上,例如P1.0。在程序中配置该GPIO口为输出模式。

  3. 编写中断服务程序:当外部中断触发时,中断服务程序会被执行。在中断服务程序中读取按键状态,如果按键按下,则将LED置高,否则将LED置低。

51单片机独立按键的所在位置:

以下是示例代码

  1. #include <REGX52.H>
  2. void Delay1ms(unsigned int xms) //@12.000MHz
  3. {
  4. unsigned char i, j;
  5. while(xms)
  6. {
  7. i = 2;
  8. j = 239;
  9. do
  10. {
  11. while (--j);
  12. } while (--i);
  13. xms--;
  14. }
  15. }
  16. void main()
  17. {
  18. while(1)
  19. {
  20. if(P2_7 == 0)
  21. {
  22. Delay1ms(20);
  23. while(P2_7 == 0);
  24. Delay1ms(20);
  25. P0_0=~P0_0;
  26. }
  27. }
  28. }

这个程序的工作原理是,当P2_7(假设它连接到一个独立按键)被按下时,LED灯会点亮。然后,当P2_7再次被释放时,LED灯会熄灭。这个过程会一直重复下去2

此外,还有其他几种方式可以实现独立按键控制LED灯的功能,比如:

  1. 独立按键一对一控制LED灯
    1. #include <REGX52.H>
    2. void Delay1ms(unsigned int xms) //@12.000MHz
    3. {
    4. unsigned char i, j;
    5. while(xms)
    6. {
    7. i = 2;
    8. j = 239;
    9. do
    10. {
    11. while (--j);
    12. } while (--i);
    13. xms--;
    14. }
    15. }
    16. void main()
    17. {
    18. unsigned char LEDNum = 0;
    19. while (1)
    20. {
    21. if(P2_7 == 0)
    22. {
    23. Delay1ms(20);
    24. while(P2_7 == 0);
    25. Delay1ms(20);
    26. LEDNum++;
    27. P0 = ~LEDNum;
    28. }
    29. }
    30. }

这个程序的工作原理是,当P2_7被按下时,LED灯会点亮,并且LED灯的状态会随着LEDNum的增加而改变2

   2.独立按键控制LED灯进行二进制显示

  1. #include <REGX52.H>
  2. void Delay1ms(unsigned int xms) //@12.000MHz
  3. {
  4. unsigned char i, j;
  5. while(xms)
  6. {
  7. i = 2;
  8. j = 239;
  9. do
  10. {
  11. while (--j);
  12. } while (--i);
  13. xms--;
  14. }
  15. }
  16. void main()
  17. {
  18. unsigned char LEDNum = 0;
  19. while (1)
  20. {
  21. if(P2_7 == 0)
  22. {
  23. Delay1ms(20);
  24. while(P2_7 == 0);
  25. Delay1ms(20);
  26. LEDNum++;
  27. P0 = ~LEDNum;
  28. }
  29. }
  30. }

这个程序的工作原理是,当P2_7被按下时,LED灯会点亮,并且LED灯的状态会随着LEDNum的增加而改变2

    3.独立按键控制LED灯进行移位

  1. #include <REGX52.H>
  2. void Delay1ms(unsigned int xms) //@12.000MHz
  3. {
  4. unsigned char i, j;
  5. while(xms)
  6. {
  7. i = 2;
  8. j = 239;
  9. do
  10. {
  11. while (--j);
  12. } while (--i);
  13. xms--;
  14. }
  15. }
  16. void main()
  17. {
  18. int LEDNum = 0;
  19. P0 = ~0x01;
  20. while(1)
  21. {
  22. if(P2_7 == 0)
  23. {
  24. Delay1ms(20);
  25. while(P2_7 == 0);
  26. Delay1ms(20);
  27. LEDNum++;
  28. if(LEDNum>7)

这段程序实现的具体功能是,当独立按键受到外力(不松手);LED灯亮。当独立按键不受外力时(松手),LED灯熄灭。

以上就是51单片机独立按键控制LED灯的程序和知识!

目录


1.点亮流水灯的方法

2.51单片机独立按键的所在位置

3.示例代码

4.独立按键一对一控制LED灯

5.独立按键控制LED灯进行二进制显示

6.独立按键控制LED灯进行移位

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/685593
推荐阅读
相关标签
  

闽ICP备14008679号