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);
    }
}

后记

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

相关推荐
森利威尔电子-1 小时前
森利威尔SL3075 脚位完全兼容 TPS54560 65V降压恒压芯片5A电流能力
单片机·嵌入式硬件·集成电路·芯片·电源芯片
神一样的老师2 小时前
【兆易创新GD32VW553开发板试用】 BSP 从 GitHub 下载与编译指南
单片机·github·rt-thread
VBsemi-专注于MOSFET研发定制3 小时前
协作机器人螺丝锁付系统功率MOSFET选型方案——高效、精准与安全驱动系统设计指南
单片机·安全·机器人
風清掦3 小时前
【江科大STM32学习笔记-11】SPI通信协议 - 11.2 软件SPI读写W25Q64
笔记·stm32·单片机·嵌入式硬件·学习
LCG元4 小时前
STM32实战:基于STM32F103的智能饮水机温度控制
stm32·单片机·嵌入式硬件
EVERSPIN4 小时前
MCU单片机FOC汽车水泵方案
单片机·嵌入式硬件·mcu·汽车·mcu单片机
yongui478344 小时前
STM32 上实现 SPI 自发自收(Loopback)
stm32·单片机·嵌入式硬件
弘毅 失败的 mian4 小时前
STM32 时钟详解
经验分享·笔记·stm32·单片机·嵌入式硬件·嵌入式
VBsemi-专注于MOSFET研发定制4 小时前
面向AI管道检测机器人的功率MOSFET选型分析——以高集成度、高可靠电源与驱动系统为例
人工智能·单片机·机器人
jghhh014 小时前
STM32 控制 3 个步进电机方案
stm32·单片机·嵌入式硬件