▪ 基本简介
一个1位数码管共有8段:ABCDEFG+小数点,如下图:

按照我们常规的设计方案一个 IO 口控制一个段,一个1位数码管那么就需要8个IO。当然我们也可以使用扩展 IO 芯片(例如 74HC164、74HC595),那么这种方案就占用单片机2~3个IO和一个扩展IO芯片。
现在我们需要控制一个3位的数码管:
- 采用IO口直控:那么需要单片机 IO 口24个
- 采用扩展 IO 芯片控制:那么需要单片机 IO 口 2~3 个
但是市面上有些 3 位的数码管只有 6 个接口,如下图:

这种元件就不是我们常规的控制方法了,这种是基于 查理复用算法 封装的数码管,只需要 6 个IO就能控制 3位数码管(3*8 个LED灯)。所以在使用这个元件时,你需要先了解查理复用算法,具体请参考我的《复用 IO 口:查理复用算法(Charlieplexing)》文章,或者直接百度搜索查看:查理复用算法(Charlieplexing)。
▪ 原理分析
不同厂家对于3位6脚的数码管可能设计不同的电路和针脚定义,具体咨询购买的厂家或其数据手册。这里我们取其中一种作为例子讲解,其数据手册图如下:

根据上面的数据手册,我们画出其对应的原理图,如下:

如上图所示,同时基于查理复用算法,我们可以分析出:
- 数码管2脚高电平,3脚低电平,其余脚高阻态;那么 1A 会被点亮(Dig.1 数码管的第一个二极管灯亮)
- 数码管1脚高电平,4脚低电平,其余脚高阻态;那么 DP2 会被点亮(Dig.2 数码管的小数点二极管灯亮)
- .....

博客介绍了数码管控制方案,常规1位数码管需8个IO或用扩展芯片。控制3位数码管,直控需24个IO,用扩展芯片需2 - 3个IO。而3位6脚数码管基于查理复用算法,只需6个IO。还进行了原理分析,并给出基于STM8库函数的实现代码。
1万+

被折叠的 条评论
为什么被折叠?



