当前位置: 首页 > article >正文

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

文章目录

    • 前言
    • 解决方法
    • 后记

前言

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

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

image

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

这里记录一下:

解决方法

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

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进行延时。

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

后记

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


http://www.kler.cn/a/392699.html

相关文章:

  • [CKS] K8S NetworkPolicy Set Up
  • 设计模式之责任链模式(Chain Of Responsibility)
  • 【pytorch】常用强化学习算法实现(持续更新)
  • 【真题笔记】21年系统架构设计师案例理论点总结
  • Vite初始化Vue3+Typescrpt项目
  • MySQL数据库:SQL语言入门 【上】(学习笔记)
  • 微积分复习笔记 Calculus Volume 1 - 5.3 The Fundamental Theorem of Calculus
  • 【ChatGPT】通过Prompt技巧优化ChatGPT的营销文案输出
  • 【优选算法篇】化繁为简,见素抱朴:从乱象中重构秩序的艺术
  • 用于在 .NET 中构建 Web API 的 FastEndpoints 入门
  • python私有化get和set的使用
  • 【实用教程】使用思维导图增强 JavaScript甘特图项目工作流程的可见性
  • 如何制作代购系统的用户管理模块
  • 免费白嫖:数据分析常用软件安装视频
  • http(s)接口设计注意事项
  • 【大数据学习 | HBASE】hbase的读数据流程与hbase读取数据
  • 下载并安装Cmake3.29.5 windows安装包
  • HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?
  • cmake生成器表达式
  • WordPress 6.7 “Rollins”发布
  • 成本400元,DIY一个高刷新率热成像相机
  • 使用 scipy 计算置信区间
  • 第N7周:调用Gensim库训练Word2Vec模型
  • 网络编程示例之开发板测试
  • java常用工具介绍
  • Prometheus面试内容整理-Metrics 类型