标题: 单片机数码管消隐问题,求大神帮忙解决一下 [打印本页]

作者: kisstheain    时间: 2020-2-23 12:55
标题: 单片机数码管消隐问题,求大神帮忙解决一下
                P0=0xff;
                WE=1;
                P0=0XFE;
                WE=0;
?为什么不加,不会造成乱码吗。
                DU=1;
                P0=0X0F;
                DU=0;
                delay(5)
当数码管动态显示时,需要加入延迟函数还要清除断码,否则会因为循环时打开位选寄存器,P0值赋给位选,导致其他数码管亮。但为什么不在位选和段选中间不加延迟函数?清除断码的原理是什么,



作者: wsnfly    时间: 2020-2-23 14:23
你好,你的提问非常的读不同,我理解的意思是两端代码加了延迟和不加延迟数码管所显示我的位置不同。
这个原因是没有上一段代码中没有清除位选,直接带入下一个循环导致
作者: wulin    时间: 2020-2-23 15:20
以共阴数码管,段/位共用P0为例,只传消隐码不锁存,起不到消隐作用。
        //显示第一位
        P0=0x00;//消隐段码
        DU=1;        //送段码到锁存器
        DU=0;        //锁存
        //在段码消隐期间更改位码
        P0=0XFE;//位码
        WE=1;        //送位码到锁存器
        WE=0;        //锁存
        //此时显示位已改变
        P0=0x06;//要显示的段码,例'1'
        DU=1;        //送段码到锁存器
        DU=0;        //锁存
        delay(5)//延时(保持一小段时间显示内容)
        //显示第二位
        P0=0x00;//消隐段码
        DU=1;        //送段码到锁存器
        DU=0;        //锁存
        //在段码消隐期间更改位码
        P0=0XFD;//位码
        WE=1;        //送位码到锁存器
        WE=0;        //锁存
        //此时显示位已改变
        P0=0x5b;//要显示的段码,例'2'
        DU=1;        //送段码到锁存器
        DU=0;        //锁存
        delay(5)//延时(保持一小段时间显示内容)

        //显示第N位,以此类推
        ......
作者: zwf33    时间: 2021-1-15 15:35
                WE=1;
                P0=0XFE;
                WE=0;
?为什么不加,不会造成乱码吗。

//上面是送位选,下面是送段选,不会出现乱码(但会有轻微串光现象),
这个位加延时后数码管会出现串光(也就是大家说的要消隐问题)//

                DU=1;
                P0=0X0F;
                DU=0;
                delay(5)



你可以试程序改成这样,就完全不会出现串光问题。

                P0=0xff;      //消隐(解决串光)
                DU=1;
                DU=0;
            
                P0=0XFE;    //送位选
                WE=1;
                WE=0;

                P0=0X0F;   //送段选
                DU=1;
                DU=0;
                delay(5)      //延时
作者: jchrui    时间: 2021-1-25 17:15
上面是送位选,下面是送段选,不会出现乱码(但会有轻微串光现象),这个位加延时后数码管会出现串光(也就是大家说的要消隐问题这个原因是没有上一段代码中没有清除位选,直接带入下一个循环导致,意思是两端代码加了延迟和不加延迟数码管所显示我的位置不同。

作者: munuc_w    时间: 2021-1-26 09:24
动态显示的工作过程是对数码管逐个扫面的,就是每时每刻只有一个数码管亮,至于串光,由于人的视觉反应有延迟,单片机工作速度快,人是看不到的。当扫描时间慢到一定程度,就能看到数码管一个一个在亮,至于其他的现象也是看不到。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1