第十五届蓝桥杯备赛-嵌入式类-2点亮指示灯

1.LED发光原理

LED又名发光二极管,LED内部是一个半导体晶片,晶片一端为负极,另一端为正极,半导体晶片由两部分组成,一部分是P型半导体,空穴占主导地位,另一部分是N型半导体,电子占主导地位,这两种半导体连接起来就形成P-N结,LED是利用P-N结进行发光,当半导体施加正向电压时,电子和空穴就会移动并再次结合,在结合的过程中产生大量的能量,而这些能量以光的形式散发出来。

2.74HC573锁存器

在电路设计过程中使用74HC锁存器能够有效的节约微控制器的IO口,同时这种电路可以驱动大电容或低阻抗的负载,非常适用于缓冲寄存器,I/O口通道,双向总线驱动器和工作寄存器,74HC573芯片引脚介绍如下。

QE引脚为输出使能引脚,低电平有效,LE为锁存使能引脚,高电平有效。下图为真值表

由74HC573真值表可知:

当QE引脚处于低电平,LE引脚处于高电平,输出端与输入端状态保持一致

当QE引脚处于低电平,LE引脚处于低电平,输出状态被锁存,输入状态改变不影响输出

当QE引脚处于高电平,无论LE引脚处于何种状态,输出均为高阻态

因此可以直接将QE引脚接地,通过控制LE引脚高低电平实现”锁存“功能

3.编程实战

实验现象:通过GPIO驱动锁存器,电亮指示灯LED1,LED2

1.首先查看原理图,由原理图可以看出,LED通过74HC573锁存器与STM32G431RBT6微控制器的PC8-PC15号引脚相连,所以显然不能通过直接控制PC8-PC15引脚输出来改变LED的状态

2.指示灯驱动步骤:

(1)控制PC8-PC15端口为输出状态

(2)使能锁存器74HC573,即PD2引脚(LE引脚)输出高电平,将输入状态与输出状态同步
(3)失能锁存器74HC573,即PD2引脚(LE引脚)输出低电平,输出状态“锁存”

3.STM32 Cube MX配置

(1)将PC8-PC15端口配置为GPIO_Output模式

(2)PC8-PC15默认引脚电平为高电平,PD2默认引脚电平为低电平,输出模式均为推挽输出

(3)设置输出Keil工程文件

4.代码编辑部分

(1)将LED进行模块化处理,使用库函数对LED相关引脚进行拉低

(2)将PD2引脚拉高,使能锁存器

(3)将PD2引脚拉低,关闭所锁存器

(4)在主函数里调用LED模块化函数,
5.参考代码

void LED_Disp(uint8_t ucLed)
{
    HAL_GPIO_WritePin(GPIOC,~ucLed<<8);/*LED输出*/
                                                    /*LED锁存*/
    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET);
    HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET);
}

/*如何调用LED模块化函数实现LED点亮、熄灭*/
    LED_Disp(ucLed, |=0x01);//点亮LD1
    LED_Disp(ucLed,&=~0x01);//熄灭LD1

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值