发新帖我要提问
12
返回列表
打印

数码管十位显示微弱,个位显示正常。是什么原因?

[复制链接]
楼主: 剑之士
手机看帖
扫描二维码
随时随地手机跟帖
21
shcshc1234| | 2016-7-13 17:29 | 只看该作者 回帖奖励 |倒序浏览
你把刷新和计算显示数据分开不然的话3个数码管点亮时间不一致会导致亮度不一致

使用特权

评论回复
22
剑之士|  楼主 | 2016-7-13 18:49 | 只看该作者
shcshc1234 发表于 2016-7-13 17:29
你把刷新和计算显示数据分开不然的话3个数码管点亮时间不一致会导致亮度不一致
...

#include <msp430.h>
#define uchar unsigned char
#define uint unsigned int
uchar duan[]={0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8,
                      0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e};
uchar num=0,ge,shi;

void delay(uint x)
{
                uint y,z;
                for(y=x;y>0;y--)
                for(z=12000;z>0;z--);
}

void main(void)
{

    WDTCTL = WDTHOLD + WDTPW ;
    P6DIR |= 0xff;
    P2DIR |= BIT4+BIT5;
    P2DS  |= BIT4;

    TA0CCTL0 = CCIE;                 /* Capture/compare interrupt enable */
    TA0CCR0  = 32768;
    TA0CTL=TASSEL_1+MC_1;
    _BIS_SR(GIE);
    while(1)
    {

            shi=num/10;
            P6OUT  =  duan[shi];
            P2OUT &=~ BIT4;
            P2OUT  |=  BIT5;
            //delay(200);

            ge=num%10;
            P6OUT   =   duan[ge];
            P2OUT  &=~  BIT5;
            P2OUT  |= BIT4;
            //delay(200);



    }

}

#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
        num++;
        if(num==99)
                        {
                                num=0;
                        }


}

使用特权

评论回复
23
剑之士|  楼主 | 2016-7-13 18:50 | 只看该作者
shcshc1234 发表于 2016-7-13 17:29
你把刷新和计算显示数据分开不然的话3个数码管点亮时间不一致会导致亮度不一致
...

的确,好多了,谢谢大神,但是消影还有点问题

使用特权

评论回复
24
1988020566| | 2016-7-13 20:39 | 只看该作者
延长一下延时看看。

使用特权

评论回复
25
1988020566| | 2016-7-13 20:39 | 只看该作者
也可能跟你的电路有关系的。

使用特权

评论回复
26
baimiaocun2015| | 2016-7-13 21:00 | 只看该作者
数码管显示的时候间隔延时的要够的。

使用特权

评论回复
27
zhangbo1985| | 2016-7-13 21:49 | 只看该作者
这个注意循环显示与时间延时的配合。

使用特权

评论回复
28
study1234| | 2016-7-14 09:23 | 只看该作者
剑之士 发表于 2016-7-13 18:50
的确,好多了,谢谢大神,但是消影还有点问题

消影就是昨天跟你说的,中间加延时
电路上是否采用的三极管?这不是一条语句马上就可以关断的

使用特权

评论回复
29
liurongbin1111| | 2016-7-14 14:36 | 只看该作者
这个应该是中断中 个位不断改变 十位为各位的10倍  就是各位不断被刷新  十位刷新慢 看起来就不闪    在说了 你的刷新频率要大于24HZ 才看着不闪  你看你那个延时 100mS

使用特权

评论回复
30
vibra2016| | 2016-7-14 21:07 | 只看该作者
这个跟现实的时间延时有关系的。。

使用特权

评论回复
31
Varus| | 2016-7-15 18:54 | 只看该作者
此时应该查看寄存器的值是多少,看看十位上应不应该显示

使用特权

评论回复
32
sgq151679| | 2016-7-17 11:20 | 只看该作者
调整下刷新时间试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则