微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 万用板上数码管显示问题

万用板上数码管显示问题

时间:10-02 整理:3721RD 点击:
如图所示原理图,红框是共阳数码管,三极管是9012。东西已经做出来了,数码管显示出现比较诡异的现象。
1、动态显示不好用,一块亮。
2、d段和e段显示异常,d段不亮,e段亮度不均匀。
2、我用外接电源测单个的数码管,第1位和第4位居然同时亮,确定公共端没有接到一起!
刚开始玩,请大神们不吝赐教。



好吧。

首先考虑程序的问题,其次是硬件问题,如单片机端口带数码管的能力,应加245驱动,一四位同时亮肯定有短接。还要考虑数码管必须用同型号,上板前要逐一检测对坏。

你可以检查下电路有没有问题,再者就是编程对数码管单独一个一个控制,看每一个是不是都好使,实在不行你还是买集成的数码管吧

是这六个的e段显示亮度不均匀。应该买集成的,这样布线确实麻烦,还容易接错。d段不亮信号应该是没有问题的,灌电流驱动。

程序是一个一个控制数码管的,结果都是同时亮,电路也没找到毛病。

我再查查电路吧,昨晚查了半天也没看出有短接。线比较多的确可能短接,一系列的问题可能只是一两个地方有短接或者断路。动态扫描,实验程序控制一个一个亮却同时亮,这个可能是哪方面问题?

—是程序问题,二是位选有短路或三极管有问题。

那是程序的问题吗?那感觉就是程序的问题了,你可以把你的程序给我们看看,或许你、大家能帮你找找

我看你的数码管是用三极管驱动的,应该是没有问题的,那可能就是程序的问题你的程序在点亮数码管之间是不是忘关数码管了?

很简单的程序,如下:
                ORG                00H
                MOV                TMOD, #00H
                MOV                P2, #0FFH
                MOV                P0, #0FFH
START:        MOV                P2, #0FEH
                MOV                P0, #11H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0FDH
                MOV                P0, #0D7H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0FBH
                MOV                P0, #32H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0F7H
                MOV                P0, #92H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0EFH
                MOV                P0, #0D4H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0DFH
                MOV                P0, #98H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0FEH
                MOV                P0, #18H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0FDH
                MOV                P0, #0D3H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0FBH
                MOV                P0, #10H
                MOV                R2, #200
                CALL        DELAY
                MOV                P2, #0F7H
                MOV                P0, #90H
                MOV                R2, #200
                CALL        DELAY
                JMP                START
DELAY:        SETB        TR0
AGAIN:        MOV                TL0, #(8192-2000) MOD 32
                MOV                TH0, #(8192-2000) / 32
L_A:        JBC                TF0, L_B
                JMP                L_A
L_B:        DJNZ        R2, AGAIN
                CLR                TR0
                RET
                END

程序我在proteus里面仿真过的。

P2位选,P0是数码管信号。

你试一试在CALL DELAY
                 MOV P2,****
之间加上一条关闭P2口的语句试一下,

程序改了,还是不行。可能是三极管有问题。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top