炎魔1206 发表于 2012-4-16 16:02:07

数码管问题,初学者

#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
#define du P0
#define we P2

uint temp ,shi ,ge, numdu,tt ,bai ;
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0
x83,0xc6,0xa1,0x86,0x8e};
sbit control = P3^6 ;

void delay(uint z) ;
void display(uint bai ,uint shi ,uint ge) ;
void init() ;

void main()
{
        init() ;
        while(1)
        {
                if(tt==20)
                {
                        tt=0 ;
                        temp ++ ;
                        if(temp == 100)
                                temp = 0 ;
                        bai = temp/100 ;
                        shi = temp%100/10 ;
                        ge = temp%10 ;
                        display(bai,shi,ge) ;
                }
        }
       
}

void init()
{
        control = 0 ;
        temp = 0 ;
        TMOD = 0x01 ;
        TH0 = (65536-50000)/256 ;
        TL0 = (65536-50000)%256 ;
        EA = 1 ;
        ET0 = 1 ;                       
        TR0 = 1 ;               
}

void display(uint bai ,uint shi ,uint ge)
{               
        control = 1 ;
        du = table ;
        we = 0xfe ;
        delay(5) ;                  
   
        du = table ;
        we = 0xfd ;
        delay(5) ;       

        du = table ;
        we = 0xfb ;
        delay(5) ;                  
}

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

void timer0() interrupt 1
{
    TH0=(65536-50000)/256;
    TL0=(65536-50000)%256;
    tt++;       
}

ps:我的单片机有P3^6同时控制位选和断选,位选为P0,断选为P2

问题:三个数码管不能同时显示,只能轮流跳着显示,即使delay加长也一样,但是用两个锁存器控制断选和位选的打开管脚,复用P0管脚这种设置的单片机不会出现我的情况。求解决办法??

raxb 发表于 2012-4-16 16:22:53

那是你位选送数据的问题啊

炎魔1206 发表于 2012-4-16 17:58:06

raxb 发表于 2012-4-16 16:22 static/image/common/back.gif
那是你位选送数据的问题啊

但是送数据的时候不是因为时间极短而感觉不到数码管的变化吗?

raxb 发表于 2012-4-16 18:19:41

炎魔1206 发表于 2012-4-16 17:58 static/image/common/back.gif
但是送数据的时候不是因为时间极短而感觉不到数码管的变化吗?

该送什么就送什么

lxa0 发表于 2012-4-16 22:04:05

请楼主先了解一下动态扫描的过程

炎魔1206 发表于 2012-4-17 23:23:49

本帖最后由 炎魔1206 于 2012-4-17 23:36 编辑

raxb 发表于 2012-4-16 18:19 static/image/common/back.gif
该送什么就送什么

再请问下,为什么这种单片机用类似上诉的方法不会出现这种问题呢??谢谢

时光黑白 发表于 2012-4-18 13:34:13

没太明白楼主的意思,数码管动态显示不难。你最好查下你用的锁存器的资料。

zhenglu891028 发表于 2012-4-18 13:37:49

锁存器设置有问题

syuan163 发表于 2012-4-18 13:45:04

如果位选同时置位的haunted应该是不可以的吧。
页: [1]
查看完整版本: 数码管问题,初学者