蓝桥杯单片机学习---LED篇

目录

前言

1.LED灯的硬件原理图

2.LED的延时流水灯

3.LED的定时器流水灯

4.LED的PWM呼吸灯


前言

         博主是一名大二的电子信息科学与技术专业的一名本科生,曾参加第十四届蓝桥杯大赛单片机设计与开发组,获得了省级一等奖,所以我想在这里分享一下我的关于蓝桥杯的学习,希望能帮到大家,如果有我的不足的地方希望大佬能指出来,我定会虚心求教。

        博主在学习蓝桥杯单片机期间学的是蚂蚁工厂的教学视频以及模板,所以会基于蚂蚁工厂的模板和代码进行分享。


1.LED灯的硬件原理图

        从图中可以看出8个LED灯左边连接了一个CH573锁存器,右边接了300Ω的电阻并且8个LED灯并接在一起连了一个VCC,所以锁存器的Q(数据输出端)输出低电平时,LED灯就会被点亮,那么想让锁存器的Q(数据输出端)输出低电平就需要满足三个条件:OE(使能端)接入低电平,LE(锁存控制端)接入高电平,D(数据输入端)接入低电平。

        从图中可以看出OE(使能端)接了GND所以OE(使能端)接入低电平满足其中之一的条件,LE(锁存控制端)接入了Y4C所以我们就要在蓝桥杯开发板上找到Y4C

        从上图中的右侧芯片74HC02我们找到了Y4C,如果想让Y4C接入高电平,则需要通过74HC138译码器使P25 = 1、P26 = 0、P27 = 0通过这样的操作就能使Y4引脚输出低电平。

        我们在代码中的操作是这样的:

        P2(P25、P26、P27) & 0X1F这行代码是让P2引脚的高三位置零,(0X1F也可改为0X0F)最后|上0X80这是为了让高三位的值变为:100,这样就能使Y4引脚输出低电平,Y4在经过74C02的或非门使Y4C引脚输出高电平。

        P0 = (~ucLed)这行代码是为了让P0中的一个引脚等于0的时候亮起,比如我们想让第一个LED灯点亮我们可以写一行代码:ucLed = 0x01;这样我们就实现了第一个LED灯的点亮。

        P2 &= 0X1F;最后这行代码是为了让译码器的所有输出端为高电平,此时没有74HC402的输出端被选中起到关闭译码器的作用。


2.LED的延时流水灯

        LED的延时函数可以用STC_ISP软件的软件延时计算器来生成,下图生成了1毫秒的延时。

        

        结合上述代码就完成了第一个LED灯到第四个LED灯的每隔5秒的延时流水灯。


3.LED的定时器流水灯

        LED的定时器流水灯的相关配置,博主喜欢用数组来实现流水灯,所以会将想要点亮的Led灯放到数组里。

        将定时器的滴答变量放到定时器1的中断里实现上电后每隔1ms记一次数

        下面这段代码实现了每隔5s从第一个LED灯到第四个LED灯的每隔5秒的定时器流水灯

4.LED的PWM呼吸灯

        我们可以通过自己写一个PWM来实现灯亮度的改变,就是在周期一定时改变高电平所占时间的值,博主设定周期为1s。

        下面是我自己写的一个改变第一个LED灯不同亮度的PWM的代码,希望能帮助到大家。

         

        通过按键7改变PWM的值:

        对灯的亮度进行PWM的改变:

        以上,就是博主掌握的蓝桥杯单片机的LED的内容,希望能对大家有所帮助。

  • 27
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值