Proteus中数码管动态扫描显示不全(已解决)

文章目录

前言

我是直接把以前写的 51 数码管程序复制过来的,当时看的郭天祥的视频,先送段选,消隐后送位选,最后来个 1ms 的延时。

代码在 Proteus 中数码管静态是可以的,动态显示出了问题------显示不全,我在网上搜的说是 Proteus 的 Bug,需要先送位选再送段选,我试了试也不行。

最后在我多次实验下,终于让我解决了,可以完全显示,而且显示的非常平稳。

这里记录一下:

解决方法

Proteus 中不需要任何设置,只需要将消隐的顺序换一下,把消隐放在送完位选之后,然会延时即可。

c 复制代码
for(i = 0;i < 8;i++)
{
    // 送段选
    NIXIE_TUBE_D = 1;
    P0 = d_table[i];
    NIXIE_TUBE_D = 0;
    // 送位选
    NIXIE_TUBE_W = 1;
    P0 = w_table[i];
    NIXIE_TUBE_W = 0;
    // 消隐
    P0 = 0xff;
    // 延时
    bsp_DelayMS(1);
}

下面是 51 单片机在晶振为 11.0592MHz 时毫秒级的延时函数,STM32 单片机可以使用 HAL 库自带的HAL_Delay进行延时。

c 复制代码
void bsp_DelayMS(uint32_t n)    //@11.0592MHz
{
    uint8_t data i, j;

    if (n == 0)
    {
        return;
    }

    while(n--)
    {
        _nop_();
        i = 2;
        j = 199;
        do
        {
            while (--j);
        } while (--i);
    }
}

后记

对你有所帮助的话,可以点赞支持一下。

相关推荐
西城微科方案开发7 小时前
华润微CS98P171(SOP8):高性价比8位通用MCU
单片机·嵌入式硬件
lularible8 小时前
PTP协议精讲(4.4):从时钟程序实现——时间的“追随者“
网络·网络协议·开源·嵌入式·ptp
LingLong_roar8 小时前
普冉单片机PY32F002AF15P6TU + 0.96寸TFT ST7735s 80*160显示屏,使用软件SPI显示字符串“Hello World!”
单片机·嵌入式硬件
飞凌嵌入式8 小时前
工业运维救星!飞凌嵌入式 FCU1501 自带物理复位键,IP 输错再也不用跑现场
嵌入式
踏着七彩祥云的小丑8 小时前
嵌入式测试学习第 10天:主控、外设、传感器、通信模块
单片机·嵌入式硬件
三佛科技-134163842129 小时前
FT32F072系列 FT32F072RBAT7/CBAT7/KBBT7/KBBU7/KBCW7单片机共性与区别详细分析
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
星夜夏空999 小时前
STM32单片机学习(11)——GPIO输入实验
stm32·单片机·学习
青天喵喵9 小时前
Linux WiFi 架构解析:从用户态到驱动与硬件(基础篇)
linux·运维·arm开发·架构·wifi·嵌入式
lularible9 小时前
PTP协议精讲(4.2):消息结构与编码——PTP报文的“DNA“
网络·网络协议·开源·嵌入式·ptp
LingLong_roar9 小时前
手搓温湿度仪(单片机普冉PY32F002AF15P6TU + 温湿度传感器 SHT40-AD1B-R2 + 0.96寸TFT IPS 显示屏)软件实现
单片机·嵌入式硬件