当前位置:   article > 正文

蓝桥杯省赛/单片机笔记-LED灯点亮_在ct107d开发板上实现单灯闪烁任务,要求利用定时器实现,发光二极管led亮400ms

在ct107d开发板上实现单灯闪烁任务,要求利用定时器实现,发光二极管led亮400ms
  • LED电路图原理

LED电路原理图

74HC138译码器P25、P26、P27作为端口输入,Y4作为输出口低电平,连接到74HC02或非门,或非门wr口与J13接地口相连接,因此,两个输入端都为低电平,先或后非输出高电平(1)。

74HC573锁存器LE口接入高电平,使P控制输入端输入命令正常在Q输出端输出,控制LED灯的亮灭。

  • 代码编译

  1. 打开keil5编译器,新建工程文件

编辑窗口

  1. 引入头文件

#include"reg52.h"
  1. 写程序框架

  • 主函数入口

  1. void main()
  2. {
  3.     while(1)//while循环
  4.     {
  5.     }
  6. }
  • 定义端口

  1. sbit HC138_A = P2^5;
  2. sbit HC138_B = P2^6;
  3. sbit HC138_C = P2^7;
  • 添加延时函数

  1. void Delay(unsigned int t)
  2. {
  3. while(t--);
  4. while(t--);
  5. }
  • 控制led灯

①检测led灯

  1. void led()
  2. {
  3. HC138_A = 0;
  4. HC138_B = 0;
  5. HC138_C = 1;
  6. P0 = ox00;
  7. Delay(60000);
  8. Delay(60000);
  9. P0 = oxff;
  10. Delay(60000);
  11. Delay(60000);
  12. }

②利用for循环简化完成题目

题目:

在CT107D单片机综合训练平台上实现LED的基本控制,首先让8路LED 指示灯闪烁3遍然后熄灭, 接着依次点亮LED指示灯,最后依次熄灭指示灯,程序循环实现上述功能。

  1. void led()
  2. {
  3. unsigned char i;
  4. HC138_A = 0;
  5. HC138_B = 0;
  6. HC138_C = 1;
  7. for(i = 1; i <= 8; i++)
  8. {
  9. P0 = 0xff << i;
  10. Delay(60000);
  11. Delay(60000);
  12. }
  13. for(i = 1; i <= 8; i++)
  14. {
  15. P0 = ~(0xff << i);
  16. Delay(60000);
  17. Delay(60000);
  18. }
  19. }
  1. 编译运行,烧入开发板。

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

闽ICP备14008679号