11.4.2 SPI接口显示器设计
1.任务要求
请利用STM32F1的SPI1模块、74LS595芯片和8位LED数码管设计一个显示器,要求显示器能显示数字3210。请设计硬件电路、软件程序,并通用Proteus完成仿真和调试。
2.硬件设计
硬件电路图如图11.9所示,两片74LS595芯片与STM32F1系列MCU的SPI1接口相连,SPI1的SCK(PA5)分别与两片74LS595的时钟SCK相连;SPI1的MOSI(PA7)与第一片74LS595的数据端SER相连,第一片74LS595的Q7'与第二片的数据端SER相连,这样就形成两片74LS595级联;SPI1的片选
(PA4)与74LS595的RCK相连。第一片74LS595的输出端Q1~Q7与LED数据管段码端一一相连,数码管为共阴极结构;第二片74LS595的Q1~Q7与LED位码端相连。

图11.9 硬件电路图
3.软件设计
该项目采用SPI1模块,设置SPI1为主模式且只输出,数据位选用16位(高8位为LED显示器的位码,低8位为LED显示器的字形码),采用低位先发;系统时钟配置为8 MHz,波特率设置为4 Mbit/s,系统时钟2分频;时钟的极性为高,时钟相位设置为第二边沿采样;片选设置为软件方式,无CRC校验。在STM32CubeMX中进行配置,SPI1配置如图11.10所示。(https://www.daowen.com)

图11.10 SPI1配置
在STM32CubeMX中配置好文件后,生成MDK工程文件。在“main.c”文件中添加如下程序。

4.仿真与调试
在Proteus中绘制仿真电路图,LED数码管选用共阳极7SEG-MPX8-CA-BLUE,将A、B、C、D、E、F、G、DP字形码接口与U1(74LS595)的数据输出接口相连,将数码管1、2、3、4、5、6、7、8位接口与U2(74LS595)的数据输出接口相连,加载.hex文件,仿真电路图与调试效果如图11.11所示。

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