这篇文章记录的是我学习动态数码管获得的知识和学习笔记。我手上的单片机是普中51-单核-A2开发板。

单片机静态数码管显示实验总结(单片机动态数码管模块学习笔记)(1)

数码管动态扫描

一、硬件方面

动态数码管模块是由多个发光二极管排列成 8. 形状。发光二极管的阳极接高电平阴极接低电平才会点亮。当需要显示特定的形状,只需设置特定的段发光即可。

从商家给的原理图可以看出这是个共阳极的数码管,8节的同一段阳极都是接在一起的通过74hc245芯片由P00至P07管脚控制。每一节的8段发光二极管阴极都连在一起通过74hc138译码器由P22至P24管脚控制。

单片机静态数码管显示实验总结(单片机动态数码管模块学习笔记)(2)

138译码器输出端与数码管阴极连接,输入端由P22,P23,P24控制

单片机静态数码管显示实验总结(单片机动态数码管模块学习笔记)(3)

数码管阳极由P0管脚控制

74HC138译码器的工作原理

A,B,C是输入端与P22,P23,P24相连。

Y0至Y7是输出管脚与数码管阴极连接。

其中的输入输出关系由下图可以看出。其大致描述就是A,B,C代表1,2,4,其中高电平的相加结果的值是多少,对应的输出端就输出低电平,其余的输出端输出高电平。

单片机静态数码管显示实验总结(单片机动态数码管模块学习笔记)(4)

138译码器的真值表

74HC245芯片

我在百度上了解到,DIR脚的作用是输入输出端口转换,高电平时信号由A端输入,B端输出。OE脚控制A与B端的信号能否导通。个人感觉这个芯片好像没有作用,两边就直接连上了。最终P00至P07还是直接控制数码管段的阳极高低电平。详细信息建议百度。

如何让数码管显示指定的值

比如说让最左边的数码管 a段发光,那么a的阴极就应该接低电平,那么就应该设置LED7为低电平,由74HC138译码器输入输入关系P22,P23,P24就都应该设置为高电平。a段的阳极就应接高电平,对应的P00就应该设置为高电平。

由此推出数码管表示0-9 ,P0对应值为{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

二、软件层面

为了能让数码管显示指定的值,就需要控制其阳极和阴极。

操控数码管阴极函数

单片机静态数码管显示实验总结(单片机动态数码管模块学习笔记)(5)

知道了硬件原理就比较容易写代码了,写这个函数是为了方便的控制数码管阴极电平。

操控数码管阳极

由于排出了数码管显示0-9对应的值,所以只需将要显示的数字作为下标对应的值传给P0即可设置阳极。

单片机静态数码管显示实验总结(单片机动态数码管模块学习笔记)(6)

到这里就能够控制数码管的显示了。

小编学了硬件之后觉得这种数码管不能静态的显示不同的值,对么?

,