芯源半导体CW32
直播中

jinglixixi

8年用户 1590经验值
擅长:嵌入式技术 光电显示 接口/总线/驱动 控制/MCU
私信 关注
[经验]

【武汉芯源CW32F030CX STARTKIT开发板免费试用体验】串行数码管显示模块的显示驱动

串行数码管显示模块是以MAX7219芯片来控制8位的7段数码管,它在芯片内部集成了一个B型的BCD码编码多路扫描回路、段字驱动器。而且还含有一个8*8的静态RAM来存储显示数据,且有一个外部寄存器用来设置各LED的段电流。它也同样允许用户对每个数据选择编码或是不编码。在显示过程中,它没有抖动和闪烁现象,支持级联方式进行显示位数的扩展。

该模块的外观如图1所示,在使用时只需3个GPIO口即可驱动其显示。

image.png

图1 8位串行数码管模块

要使用CW32F030来驱动串行数码管模块,其首要要确定开发板与显示模块的连接关系,其引脚使用情况如下:

DIN--- PB4

CLK--- PB5

CS --- PB3

其中:DIN为串行数据输入端、CLK为串行时钟输入端、CS为片选引脚。

使引脚输出高低电平的引脚定义为:

#define SMG_CLK_Set()   PB05_SETHIGH()
#define SMG_CLK_Clr()   PB05_SETLOW()
#define SMG_DIN_Set()   PB04_SETHIGH()
#define SMG_DIN_Clr()   PB04_SETLOW()
#define SMG_CS_Set()    PB03_SETHIGH()
#define SMG_CS_Clr()    PB03_SETLOW()

由于是以GPIO口来模拟串行数据发送,其串行数据发送的函数为:

image.png

向寄存器写入数据的函数为:

image.png

该模块的初始化函数为:

image.png

利用串行数码管显示模块实现计时器模拟显示的主程序为:

image.png

经程序的编译和下载,其运行效果如图2所示。

image.png

图2计数状态

若在主程序中添加ADC的配置函数ADC_Test_Init(),则可进行A/D数据采集。

通过对函数ADC_Test()的效果,则可显示数据采集值,效果后的内容如下:

image.png

经程序的编译和下载,其运行效果如图3所示。其中,左侧的为电压值,右侧为采集值。

image.png

图3电压检测

相较于常规的数码管显示,该显示模块具有占用引脚资源少的特点,故适用于工业控制方面。

回帖(1)

电子爱好者88

2022-8-11 14:06:04
你写了好多帖子,优秀!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分