2301_80740641 2024-06-14 13:57 采纳率: 50%
浏览 7
已结题

为什么数码管显示不完全

img

img


为什么数码管显示不完全啊有没有人给我解释一下 求解释感谢!请知道的朋友帮我解答一下

  • 写回答

4条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-14 13:57
    关注

    引自免费微信小程序:皆我百晓生

    从提供的代码来看,有几个可能的原因导致数码管显示不完全:

    1. 锁存器控制问题:在display1函数中,对于每个数码管,你先将公共端置为低电平,然后控制锁存器使能端,发送数据到锁存器,之后关闭锁存器,并将公共端置高电平。然而,在处理不同数码管时,你似乎没有正确地控制对应的锁存器使能端。例如,当更新第二个数码管时,你使用了lel而不是le2

    2. 代码逻辑错误:在main函数中的定时器初始化部分,你使用了注释符//来注释掉一些关键的初始化语句,这可能导致定时器无法正常工作,从而影响数码管的刷新频率,最终导致显示不全。

    3. 数码管连接错误:硬件连接也可能是一个原因。根据图2所示,你使用了74HC573作为锁存器,但未提供具体的连接方式。确保数码管的连接与代码中的控制信号相匹配。

    解决方案:

    1. 修改锁存器控制逻辑:

    display1函数中,确保你使用正确的锁存器控制信号。例如,更新第二个数码管时,应该使用le2而非lel

    we2=0;
    le2=1;
    P0=tabl[ge];
    delayms(2);
    le2=0;
    

    2. 确保定时器正确初始化:

    移除main函数中定时器初始化部分的注释,确保以下代码有效执行:

    TMOD=0X01;
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    EA=1;
    ET0=1;
    

    3. 核实硬件连接:

    检查数码管与锁存器之间的连接是否正确。确认锁存器的输出端与数码管的输入端匹配,且锁存器的使能端被正确控制。

    4. 调整显示代码:

    确保display1函数中的所有数码管都遵循相同的显示逻辑,且每次只更新一个数码管。

    5. 测试与调试:

    使用示波器或逻辑分析仪检查锁存器的使能信号,确保它们按照预期工作。同时,检查数码管的输入信号,确保数据被正确传输。

    通过上述步骤,你应该能够定位并解决数码管显示不完全的问题。如果问题仍然存在,建议进一步检查电源电压、接地情况以及是否存在其他电路干扰。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月14日

悬赏问题

  • ¥15 Windows下部署Asmjit
  • ¥15 请问双层规划模型的上下层目标函数不一致,是如何保证迭代收敛性的
  • ¥15 微信小程序 前端页面内容搜索
  • ¥15 cpu是如何判断当前指令已经执行完毕,然后去执行下条指令的
  • ¥15 安装visual studio2022时visualstudiosetup启动不了,闪退。问题代号0x0和0x1389
  • ¥30 java spring boot2.5.3版本websocket连不上
  • ¥15 angular js调外部链接查看pdf
  • ¥15 openFOAM DPMFoam
  • ¥15 将查询到的值,赋值到table指定行中
  • ¥50 docker容器内部启动shell脚本多命令