演示视频:
【开源】STM32驱动四位八段数码管
在电子显示领域,数码管凭借其简单直观、成本低廉的优势,被广泛应用于各类数字显示场景,如电子表、仪器仪表显示等。其中,四位数码管能够同时显示多位数字,实用性很强。本文将深入剖析无控制芯片、8 段数码管直接接单片机 IO 口且通过三极管控制四位位选信号的四位数码管的原理与控制方法。
一、四位数码管的结构与显示原理
(一)8 段数码管的组成
常见的数码管为 8 段结构(包含小数点),由 7 个笔画段(a、b、c、d、e、f、g)和 1 个小数点段(dp)组成,通过不同段的亮灭组合,可显示0 - 9、A - F等数字或字符。每个段对应一个发光二极管(LED),当给某段 LED 施加正向电压时,该段便会发光。
(二)四位数码管的 “静态” 与 “动态” 显示逻辑
四位数码管从物理结构上看,是将四个独立的 8 段数码管的同名段(如四个数码管的a段、b段等)连接在一起,引出一个公共的段控制端;同时,每个数码管有独立的 “位选端”,用于选择哪一个数码管被点亮。
由于要控制四个数码管,若采用 “静态显示”(每个数码管都单独用一组 IO 口控制段和位),会占用大量单片机 IO 资源。因此,实际应用中多采用 **“动态扫描显示”**:利用人眼的 “视觉暂留” 效应,快速轮流点亮四个数码管,让每个数码管在极短时间内依次显示对应数字,只要扫描频率足够高(通常大于 24Hz),人眼就会认为四个数码管是 “同时亮着” 的。
二、四位数码管的硬件连接逻辑
(一)段控制:8 段直接接单片机 IO 口
四个数码管的同名段(a - g、dp)被连接在一起,然后直接与单片机的 IO 口相连。例如,单片机的P0口(或其他 IO 口组)的 8 个引脚,可分别对应数码管的a - g和dp段。当单片机 IO 口输出特定电平(高或低,取决于数码管是共阳还是共阴型,共阳数码管需段脚接低电平、公共端接高电平发光;共阴则相反)时,就能控制对应段的亮灭,进而组合出要显示的字符。
(二)位选控制:三极管驱动位选信号
每个数码管的 “位选端” 需独立控制,以选择当前点亮的数码管。但单片机 IO 口的驱动能力有限,无法直接为数码管提供足够的电流使其稳定点亮,因此引入三极管来增强驱动能力。
具体来说,四个数码管的位选端分别连接到四个三极管(如 NPN 型三极管)的集电极(或发射极,需根据电路逻辑调整),三极管的基极由单片机 IO 口控制。当单片机某一位选控制 IO 口输出高电平时,三极管导通,对应数码管的位选端获得足够电流,该数码管被 “选中”;当输出低电平时,三极管截止,对应数码管的位选端无电流,该数码管 “熄灭”。
三、四位数码管的控制方法核心逻辑
动态扫描显示的核心在于 **“段码更新” 与 “位选切换” 的同步配合 **,步骤如下:
- 确定段码:根据要显示的数字(如第一个数码管显示1,第二个显示2等),预先定义好每个数字对应的段码(即a - g、dp的电平组合)。例如,显示0时,段码需让a、b、c、d、e、f亮,g和dp灭(共阴数码管下,对应 IO 口输出01111110,具体需根据段与 IO 口的连接调整)。
- 位选切换与段码输出:单片机先将某一数码管对应的段码输出到段控制 IO 口,再通过控制位选端的三极管,“选中” 该数码管(使三极管导通,位选端有效)。保持极短时间(如 1ms)后,关闭该数码管的位选(三极管截止),再对下一个数码管重复 “输出段码 - 选通位选” 的操作,依次循环扫描四个数码管。
通过快速循环这一过程,利用视觉暂留,四个数码管就会呈现出稳定的多位数字显示效果。
四、总结
四位数码管的核心是 “动态扫描”,其巧妙利用硬件连接(同名段共线、三极管增强位选驱动)和人眼视觉暂留效应,在节省单片机 IO 资源的同时,实现了多位数字的清晰显示。理解其 “段码控制显示内容,位选控制显示对象,动态扫描实现视觉连续” 的逻辑,是掌握四位数码管应用的关键,也为更复杂的显示系统(如多位数码管级联、与其他显示设备配合)奠定了基础。