想问问为什么数码管不亮

想设计最大计数范围0-9的可预置计数器,最后显示在数码管上,帮忙看看为什么不亮一—连悬赏可加

img

U1的74LS161的ABCD引脚是不是应该接地啊,不接地,怎么从0开始计数呢?

可以参考下

#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
 
uchar code count[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x00,0x90};//数码管段码表   
 
sbit key1=P3^2;
sbit key2=P3^3;//定义按键端口  
 
void DelayMS(uint x)//延时 
{
    uchar t;
    while(x--){        
        for(t=0;t<120;t++);
    }
}
 
void main()
{
    uchar i=0;
    P0=0x00;
    while(1)
    {
        P0=count[i];        
        if(key1==0)
        {
            DelayMS(50);
            while(!key1);//按键松手检测,!key1为非零时为真    
            i++;
        }
        if(i>9){i=0;}
        if(key2==0)
        {
            DelayMS(50);
            i=0;
        }
    }
}


数码管不显示,应该是个别地方的引脚没有连接好,建议逐个排查下。

逐个引脚排查一下,看是否有的没有连接好

设计可预置计数器需要考虑以下几个方面:

  1. 选择适当的计数器芯片:常用的计数器芯片有74HC161、74HC163、74HC193等,这些芯片均可实现0-9的计数范围。你需要根据具体的设计要求选择适当的芯片。
  2. 连接数码管:将计数器芯片的输出引脚连接至数码管的控制引脚,以显示当前计数值。需要注意的是,不同型号的数码管控制引脚的连接方式可能有所不同,需要仔细查看数码管的数据手册。
  3. 预置计数器:如果需要预置计数器的初始值,可以使用芯片的预置输入引脚。预置输入引脚需要连接至一个可编程的开关或微控制器等,以设置初始计数值。
  4. 电源供应:需要给计数器芯片和数码管提供适当的电源供应,以保证正常工作。
    如果你的计数器不亮,可能存在以下几个问题:
  5. 电源问题:计数器芯片和数码管需要稳定的电源供应,如果电源电压不稳定或电源接线不正确,可能导致计数器无法正常工作。
  6. 连接问题:计数器芯片和数码管的引脚连接需要正确,如果连接不良或连接错误,可能导致计数器无法正常工作。
  7. 预置问题:如果预置计数器的初始值不正确,可能导致计数器无法正常工作。
  8. 芯片损坏:如果计数器芯片损坏,可能导致计数器无法正常工作。
    你需要逐一排查以上问题,找出问题所在并进行修复。如果问题仍然存在,可以尝试重新设计或更换计数器芯片和数码管。