数码管初学者小问题

[复制链接]
 楼主| 444745317 发表于 2013-2-1 22:09 | 显示全部楼层 |阅读模式
共阴极的数码管,用P0端口控制位,段;2个锁存器,为什么位选选通时为低电平,求大神指点迷津!
NE5532 发表于 2013-2-1 22:23 | 显示全部楼层
请上电路图,看了电路图也许你自己也知道为什么了。
huangxz 发表于 2013-2-2 01:03 | 显示全部楼层
因为是共阴极啊,所以低电平表示选通么,如果共阳极,则是高电平表示选通
dirtwillfly 发表于 2013-2-2 07:45 | 显示全部楼层
这个是根据你所使用的数码管的电路来的
新手呀新手 发表于 2013-2-2 11:13 | 显示全部楼层
二极管,一边正极,一边负极,位选连在负极,当他为低电平时,相当于接地
 楼主| 444745317 发表于 2013-2-2 18:44 | 显示全部楼层
huangxz 发表于 2013-2-2 01:03
因为是共阴极啊,所以低电平表示选通么,如果共阳极,则是高电平表示选通

共阴极数码管显示数字的时候不是高电平有效吗?但位选怎么是低电平有效啊?
huangxz 发表于 2013-2-2 18:59 | 显示全部楼层
444745317 发表于 2013-2-2 18:44
共阴极数码管显示数字的时候不是高电平有效吗?但位选怎么是低电平有效啊? ...

那是段选信号,段选为高电平,位选为低电平,刚好形成一个回路啊
shiyan1532 发表于 2013-2-2 21:12 | 显示全部楼层
上图
wukunshan 发表于 2013-2-3 22:32 | 显示全部楼层
楼主还没有搞清楚数码管的内部结构。赶快找共阴极数码管的资料来看,弄清楚内部机构,你这个问题就不是问题啦。在这里用三言两语说了你也不明白的。
aaron96031 发表于 2013-2-5 09:22 | 显示全部楼层
LZ需要对数码管,驱动电路,和元件手册好好理解哦。看来是完全是没理解。加油
前功尽弃 发表于 2013-2-5 10:05 | 显示全部楼层
上图,就清楚了
21ID 发表于 2013-2-5 16:08 | 显示全部楼层
楼主上图吧~~~
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部