2301_79864519 2023-10-31 16:41 采纳率: 94.7%
浏览 8
已结题

静态数码管显示,为什么结果不对

img

img


为什么我这个静态数码管显示不能指哪打哪
为什么结果不对,数字显示的位置不对

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-10-31 18:19
    关注

    【以下回答由 GPT 生成】

    问题分析: 根据问题描述,代码中的函数nixie用于显示数码管上的数字,通过将对应位置的引脚设置为高电平或低电平来控制对应位置的显示。但是在使用中发现,无论将数字显示到哪个位置,都只能在最后一个数码管位置进行显示。

    问题原因: 问题出在nixie函数的switch语句上。在函数中,根据location参数的不同,设置不同位置的引脚。但是编码时将数字0-7对应的位置设置与数码管的位置对应关系弄错了,导致无论设置哪个位置,最后都只显示在最后一个数码管位置。

    解决方案: 1. 修改nixie函数的switch语句,根据nixietable中的位置与数码管的对应关系,设置正确的引脚位置。修改后的代码如下:

    void nixie(unsigned char location, unsigned char number) {
        switch(location) {
            case 1: P24=0; P23=0; P22=1; break;
            case 2: P24=0; P23=1; P22=1; break;
            case 3: P24=0; P23=1; P22=0; break;
            case 4: P24=1; P23=1; P22=1; break;
            case 5: P24=1; P23=1; P22=0; break;
            case 6: P24=1; P23=0; P22=0; break;
            case 7: P24=0; P23=0; P22=0; break;
            case 8: P24=1; P23=0; P22=1; break;
        }
        PO = nixietable[number];
    }
    
    1. 修正nixietable数组中的一个语法错误,将最后的右括号改为右方括号,以保证数组定义正确。

    修改后的代码如下:

    #include<REGX52.H>
    
    unsigned char nixietable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    
    void nixie(unsigned char location, unsigned char number) {
        switch(location) {
            case 1: P24=0; P23=0; P22=1; break;
            case 2: P24=0; P23=1; P22=1; break;
            case 3: P24=0; P23=1; P22=0; break;
            case 4: P24=1; P23=1; P22=1; break;
            case 5: P24=1; P23=1; P22=0; break;
            case 6: P24=1; P23=0; P22=0; break;
            case 7: P24=0; P23=0; P22=0; break;
            case 8: P24=1; P23=0; P22=1; break;
        }
        PO = nixietable[number];
    }
    
    void main() {
        nixie(2, 3);
        while(1);
    }
    

    这样修改后的代码中,nixie函数中的switch语句会根据location参数设置不同位置的引脚,实现在指定位置显示数字。

    清晰易懂的语言告诉你如何解决了你的问题,你满意吗?



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月15日
  • 已采纳回答 11月7日
  • 创建了问题 10月31日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境