4-2 动态数码管显示(SDCC + Notepad++ + STC-ISP/普中ISP)

实现动态数码管显示,就是不同的切换静态数码管就行了。但是这里存在问题,如果让数码管连续显示数字,那么就会出现残影,为了解决残影可以让数码管显示之后短时间清空,但是这样做又会导致数字显示变暗。

完整代码

c 复制代码
#include <mcs51/8051.h>

// 共阴极数码管段码表:0~9
// 每位对应 a~g 段,1 表示该段亮
unsigned char NixieTable[] = {
    0x3F,  // 0: 0011 1111
    0x06,  // 1: 0000 0110
    0x5B,  // 2: 0101 1011
    0x4F,  // 3: 0100 1111
    0x66,  // 4: 0110 0110
    0x6D,  // 5: 0110 1101
    0x7D,  // 6: 0111 1101
    0x07,  // 7: 0000 0111
    0x7F,  // 8: 0111 1111
    0x6F   // 9: 0110 1111
};

// 延迟xms毫秒
void DelayXms(unsigned int xms)
{
    unsigned char i, j;
    if(xms == 0) return;
    do {
        i = 2;
        j = 239;
        do {
            while (--j);
        } while (--i);
    } while (--xms);
}

// 数码管显示函数
// location:第几个数码管(1~8)
// Number:要显示的数字(0~9)
void Nixie(unsigned char location, unsigned char Number)
{
    // 74HC138 译码器:通过 P2.4/P2.3/P2.0 选择第几个数码管
    switch(location)
    {
        case 1: P2_4=1; P2_3=1; P2_2=1; break;  // 111 → Y0
        case 2: P2_4=1; P2_3=1; P2_2=0; break;  // 110 → Y1
        case 3: P2_4=1; P2_3=0; P2_2=1; break;  // 101 → Y2
        case 4: P2_4=1; P2_3=0; P2_2=0; break;  // 100 → Y3
        case 5: P2_4=0; P2_3=1; P2_2=1; break;  // 011 → Y4
        case 6: P2_4=0; P2_3=1; P2_2=0; break;  // 010 → Y5
        case 7: P2_4=0; P2_3=0; P2_2=1; break;  // 001 → Y6
        case 8: P2_4=0; P2_3=0; P2_2=0; break;  // 000 → Y7
    }
    // 输出段码,点亮对应数字
    P0 = NixieTable[Number];
    // 保持显示(这个时间决定了亮度,2~3ms比较合适)
    DelayXms(3);
    // 消影(防止切换时串码,出现"伪8")
    P0 = 0x00;
}

void main(void)
{
   
    while(1) {
        Nixie(1, 2);
        Nixie(2, 4);
        Nixie(4, 8);
    }
}

显示效果

不消影效果

不延时效果

相关推荐
xunyan62348 天前
4-1 静态数码管显示(SDCC + Notepad++ + STC-ISP/普中ISP)
接口隔离原则
xunyan62349 天前
3-1 独立按键控制LED亮灭(SDCC + Notepad++ + STC-ISP/普中ISP)
单片机·嵌入式硬件·接口隔离原则
kyle~10 天前
实时系统通信抖动(Jitter)
计算机视觉·机器人·接口隔离原则·传感器
xunyan623410 天前
3-1 独立按键控制LED状态(SDCC + Notepad++ + STC-ISP/普中ISP)
notepad++·接口隔离原则
xunyan623410 天前
3-3 独立按键控制LED显示二进制(SDCC + Notepad++ + STC-ISP/普中ISP)
接口隔离原则
xunyan623411 天前
51 单片机LED流水灯(SDCC + Notepad++ + STC-ISP/普中ISP)
单片机·嵌入式硬件·接口隔离原则
雪雪爱冲浪12 天前
2026 年网络爬虫领域的Puppeteer vs. Playwright
爬虫·网络协议·测试工具·接口隔离原则
DolitD15 天前
3D应用多实例并发中的GPU隔离技术路径分析
容器·gru·接口隔离原则
xunyan623415 天前
51 单片机LED闪烁(SDCC + Notepad++ + STC-ISP/普中ISP)
单片机·notepad++·接口隔离原则