数码管动态显示问题! 在数码管上动态显示13452312值?

发布于 数码 2024-05-27
8个回答
  1. 匿名用户2024-01-29

    我将首先帮助您分析此程序:

    1)至(4)的作用是通过P0端口给出数码管的段码。我猜P0端口和数码管的段线之间有一个锁存器,可以保证当P0端口的数据发生变化时,数码管的编号不会改变。 此时,数码管无法显示相应的数字,因为没有选择位码行。

    5)至(8)是P0口给出数码管位码的功能。此时选择位码行,在段码和位码的同时作用下,激活数码管,显示shi对应的数字。

    然后延迟 (5);

    在执行(10)时,由于P0给出了GE的段码,并且位码没有改变,当然,第二数码管的内容应该显示在第一数码管上。

    执行到(14),位码改变,选择第二数码管,时间码和位码协同工作,第二数码管显示GE对应的编号。

    然后是时间延迟。 由于第一个数码管显示GE的时间很短,不到十个机器周期,而且正常显示时间很长,所以这个时间是延迟(5),所以不清楚GE曾经通过过第一个数码管,所以看起来显示效果是正确的。

    这就是添加延迟程序(8)和(16)的原因。 如果不加,第一个数码管会在ge和shi之间快速“切换”,最终结果是数码管一显示8,数码管二正常显示,可以试试。

    因此,它如下: 问题1:延迟程序的目的是掩盖数码管上的“切换”,给你的眼睛带来“错觉”。

    问题2:是由锁存器的锁存特性引起的,延时程序很好地解决了这个问题。

    楼上很不准确,我不同意。 就算改了总和,如果不加延时程序,问题也存在,不过就是通过数码管二就变成了一个数字的shi。

    郭天翔说话的时候,程序不是现成的,是当时现场写的,出现错误是正常的。

  2. 匿名用户2024-01-28

    1.数码管编码没有错误! 数码管分为普通阴极和普通阳极。

    2.您的程序 count1 是秒,count2 是一分钟。

    display(count1/10,count1%10,count2/10,count2%10);用于显示(10 位秒、个位秒、10 位秒、10 位分钟、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、10 位秒、 10 位秒、10 位秒、10

    char code bit_tab=;影片中选的0xfd选不选,数码管不亮是正常现象。

    4.乱码是什么意思? 数字是错误的还是他们没有显示数字?

  3. 匿名用户2024-01-27

    这是我之前写的,你可以看看。

    #include

    #define uint unsigned int#define uchar unsigned charuchar code tab=;

    uint t1,bai,shi,ge;

    uint shu;

    void display(uchar bai,uchar shi,uchar ge);

    void init()

    void delay(uint z)

    uint x,y;

    for(x=z;x>0;x--)

    for(y=100;y>0;y--)

    void main()

    init();

    while(1)

    display(bai,shi,ge);

    void init() 初始化函数。

    t0=0;t1=0;

    shu=999;

    tmod=0x01;

    th0=(65536-50000)/256;

    tl0=(65536-50000)%256;

    ea=1;打开完全中断;

    et0=1;打开定时器 0 中断。

    tr0=1;

    void timer0() interrupt 1th1=(65536-50000)/256;

    tl1=(65536-50000)%256;

    t1++;if(t1==20)

    t1=0;shu--;

    bai=shu/100;

    shi=shu%100/10;

    ge=shu%10;

    if(shu==0)

    tr0=0;

    tr1=0;

    void display(uchar bai,uchar shi,uchar ge)

    p2=0xfb;

    p0=tab[bai];

    delay(10);

    p2=0xfd;

    p0=tab[shi];

    delay(10);

    p2=0xfe;

    p0=tab[ge];

    delay(10);

    p2=0xff;

  4. 匿名用户2024-01-26

    如果要在数码管上动态显示数字13452312,可以按照以下步骤操作:

    首先,设计一个程序来控制数码管的显示。

    在程序中,设置一个变量来存储要显示的值。

    使用循环语句,定期将变量中 Iwaki Takeshi 的值更新到数字管。

    运行程序,查看数码管是否能够动态显示13452312值。

    这只是一种粗略的能源桥接方法,实施它的确切方法可能因人而异。

  5. 匿名用户2024-01-25

    a.动态显示模式更经济,适用于显示位数较多的场合。

    b.硬件电路比静态显示和穿透模式更简单,使用更少的元器件,硬件开销低。

    c.每个数码管轮流显示,树桩的亮度和稳定脊不如静态显示模式。

    正确答案:ABC

  6. 匿名用户2024-01-24

    品牌型号:华为MateBook D15

    系统: Windows 11

    多个数码管的段码连接在一起,位码单独控制,因为段码连接在一起; 如果数码管完全亮起,显示的数据是一样的,所以为了显示不同的数字,任何时候只能显示一个数码管,其余的不显示。 使用软件使这些数码管轮流显示所需的数字。 只要更新频率足够快(>100Hz),肉眼来看,这些数码管就会同时显示所需的数字。

    数码管,也称为发光管,是一种可以显示数字和其他信息的电子设备。 玻璃管由金属丝网和阴极制成的阳极组成。 大多数数码管阴极都是数字形状的。

    管子里充满了低压气体,通常主要是氖气加上一些汞和/或氩气。 给阴极充电时,数码管会发出彩色光,通常是橙色或绿色,具体取决于管中的气体。

  7. 匿名用户2024-01-23

    单片机的IO口驱动能力很弱,因为里面有一个大的上拉电阻。

    与公共阳极一起使用的数字管应由 9012 晶体管驱动。

    其实可以用一个普通的阴极数码管,用595作为阳极,就可以驱动了,单片机的IO口就是阴极,单片机的IO口驱动能力有限,但吸收电流的能力还是有可能的。

  8. 匿名用户2024-01-22

    看来驱动能力还不够。

相关回答
3个回答2024-05-27

#include

char disp_buff =;显示缓冲单元。 >>>More

13个回答2024-05-27

有很多库,所以只需搜索它们即可。

9个回答2024-05-27

中文: 15 在第一段中,作者为什么要写樱花的盛开和“我”对樱桃的向往? (2 分)。 >>>More