打印

数码管初学者小问题

[复制链接]
2526|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
444745317|  楼主 | 2013-2-1 22:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
NE5532| | 2013-2-1 22:23 | 只看该作者
请上电路图,看了电路图也许你自己也知道为什么了。

使用特权

评论回复
板凳
huangxz| | 2013-2-2 01:03 | 只看该作者
因为是共阴极啊,所以低电平表示选通么,如果共阳极,则是高电平表示选通

使用特权

评论回复
地板
dirtwillfly| | 2013-2-2 07:45 | 只看该作者
这个是根据你所使用的数码管的电路来的

使用特权

评论回复
5
新手呀新手| | 2013-2-2 11:13 | 只看该作者
二极管,一边正极,一边负极,位选连在负极,当他为低电平时,相当于接地

使用特权

评论回复
6
444745317|  楼主 | 2013-2-2 18:44 | 只看该作者
huangxz 发表于 2013-2-2 01:03
因为是共阴极啊,所以低电平表示选通么,如果共阳极,则是高电平表示选通

共阴极数码管显示数字的时候不是高电平有效吗?但位选怎么是低电平有效啊?

使用特权

评论回复
7
huangxz| | 2013-2-2 18:59 | 只看该作者
444745317 发表于 2013-2-2 18:44
共阴极数码管显示数字的时候不是高电平有效吗?但位选怎么是低电平有效啊? ...

那是段选信号,段选为高电平,位选为低电平,刚好形成一个回路啊

使用特权

评论回复
8
shiyan1532| | 2013-2-2 21:12 | 只看该作者
上图

使用特权

评论回复
9
wukunshan| | 2013-2-3 22:32 | 只看该作者
楼主还没有搞清楚数码管的内部结构。赶快找共阴极数码管的资料来看,弄清楚内部机构,你这个问题就不是问题啦。在这里用三言两语说了你也不明白的。

使用特权

评论回复
10
aaron96031| | 2013-2-5 09:22 | 只看该作者
LZ需要对数码管,驱动电路,和元件手册好好理解哦。看来是完全是没理解。加油

使用特权

评论回复
11
前功尽弃| | 2013-2-5 10:05 | 只看该作者
上图,就清楚了

使用特权

评论回复
12
21ID| | 2013-2-5 16:08 | 只看该作者
楼主上图吧~~~

使用特权

评论回复
13
444745317|  楼主 | 2013-3-1 13:19 | 只看该作者
#include<reg52.h>  
#include<intrins.h>
#define uint unsigned int   
#define uchar unsigned char  
sbit dula=P2^6;      
sbit wela=P2^7;      
uchar ge,shi,bai,qian;
uint t,a;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void display(uchar,ucahr,uchar,uchar);
void delay(uint);
void main()
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        t=0;
        a=0;
        while(1)
        {
                if(a==10)
                {       
                        a=0;
                        t++;
                }
                qian=t/1000;
                bai=t/100%10;
                shi=t%100/10;
                ge=t%10;
        display(qian,bai,shi,ge);
        }
}       
void delay(uint z)      
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void exter0() interrupt 1   
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        a++;
}
void display(uchar qian,uchar bai,uchar shi,uchar ge)
{
        dula=1;
                P0=table[qian];   
                dula=0;
                P0=0xff;               
                wela=1;
                P0=0xfe;
                wela=0;
                delay(1);

                dula=1;
                P0=table[bai];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfd;
                wela=0;
                delay(1);

                dula=1;
                P0=table[shi];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xfb;
                wela=0;
                delay(1);
               
                dula=1;
                P0=table[ge];
                dula=0;
                P0=0xff;
                wela=1;
                P0=0xf7;
                wela=0;
                delay(1);
}

怎么个位的数码管只显示0,不加

使用特权

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

本版积分规则

14

主题

60

帖子

0

粉丝