5.5.1 流水灯设计

更新于 2026年10月10日 版权声明
5.5.1 流水灯设计

1.任务要求

利用STM32F1控制器的GPIO接口输出高电平和低电平,控制发光二极管(Light Emitting Diode,LED)的亮灭,实现4只LED有规律地依次流水显示,设计硬件电路和程序代码,并通过Proteus完成仿真和调试。

2.硬件设计

硬件电路图如图5.4所示,LED1~LED4的阳极与3.3 V电源相连,阴极通过限流保护电阻分别连接到STM32F1控制器的PB12~PB15接口,给PB12~PB15接口置逻辑低电平使LED发光,置逻辑高电平使LED熄灭。

3.软件设计

要实现上述LED流水发光,方法是将接口PB12~PB15初始化配置成输出模式;先使PB12=0(开启LED1),延时500 ms,使PB12=1(关闭LED1),再依次将PB13、PB14、PB15采用同样的方法操作,从而实现依次流水显示。

图示

图5.4 硬件电路图

软件设计步骤如下。

(1)创建工程。启动STM32CubeMX,单击“File”→“New Project”选项,创建工程,如图5.5所示。选择设计采用的芯片“STM32F103 RBT6”及其相应的封装。双击芯片,进入下一步设置引脚。

图示

图5.5 创建工程

(2)GPIO引脚设置。在“Pinout&Configuration”窗口中选择“System Core”选项,再选择“GPIO”选项,设置引脚PB12~PB15为推挽输出,如图5.6所示。

图示

图5.6 GPIO引脚设置(https://www.daowen.com)

(3)时钟设置。在“Clock Configuration”窗口中设置时钟,本例采用内部HSI时钟,时钟倍频到64 MHz。

(4)保存工程文件。选择“Project Manager”选项卡,在“Project”配置界面中,在“Project Name”后设置工程名称;在“Project Location”后设置工程要保存的路径;在“Toolchain/IDE”后选择“MDK-ARM”选项。在“Code Generator”配置界面中,可设置必要的库文件和分别生成外设初始化文件。工程配置如图5.7所示,完成后单击“GENERATE CODE”按钮,保存MDK工程文件。用Keil-MDK打开工程文件,文件结构如图5.8所示。

图示

图5.7 工程配置

图示

图5.8 文件结构

(5)程序设计。

在MDK工程文件中,“gpio.c”文件是对PB12~PB15接口的初始化,自动生成,无须修改。

在MDK工程文件的“main.c”文件中的int main()函数中添加以下循环程序代码。

图示

4.仿真与调试

在Keil-MDK中编译生成.hex可执行文件,在Proteus中绘制仿真电路图,将可执行文件加载到工程中,启动仿真调试,可直观地观察4只LED的流水显示过程,仿真电路图与调试效果如图5.9所示。

图示

图5.9 仿真电路图与调试效果

↑上一章 ↓下一章
关注公众号获取验证码
复制内容需要验证码(7.99元/天)