用单片机怎么控制二位共阳数码管?我这个两边都是一样的

用单片机怎么控制二位共阳数码管?我这个两边都是一样的,怎么控制二位共阳数码管呀,我这个两边都是一样的,求指导 89655d9eb7387c4f10004a3b593db30.jpg…

用单片机怎么控制二位共阳数码管?我这个两边都是一样的,怎么控制二位共阳数码管呀,我这个两边都是一样的,求指导


用单片机怎么控制二位共阳数码管?我这个两边都是一样的插图



用单片机怎么控制二位共阳数码管?我这个两边都是一样的插图(1)

,难道老师连这个也未教?,程序在哪里?
第一:好好看看你的数码管的管脚,共十脚,为什么呢?每个数码管的八个LED的阴极——八个脚,另外两脚就是每个数码管的共阳了,电路如图

用单片机怎么控制二位共阳数码管?我这个两边都是一样的插图(2)

看清楚了,这两个数码管的阴极是并联在一起的,所以你给段码后,两个数码管显示内容当然是一样的!
这样做对新手是很难的,但节约了单片机的IO口啊——10个IO口控制两个数码管,12个IO口可以控制四个数码管……用的数码管越多,节约的IO口就越多。
第二:这样的数码管显示方法是:利用视觉暂留现象,开一个数码管,显示一下,就关了,马上开另一个数码管,人眼还没有感觉第一个数码管已经关了,第二个又开了,人就认为——是认为,两个数码管都是亮的,四个、八个数码管都是这样显示的举个例子程序吧:
假设:上面这两个数码管是这样和单片机连接的:ABCDEFG和DP接在P0口,A在最低位,DP在最高位;DIG1、DIG2分别接在P20、P21上,那么,显示子函数应该是这样的:
void XS(void)//显示子函数
{
    DIG1=1;//开第一个数码管
    P0=0x55;//这个0x55是我随便写的,表示你要显示的第一个内容
    void Delay10ms();//软件延时
    DIG1=0;//关第一个数码管
    DIG2=1;//开第二个数码管
    P0=0xaa;//这个0xaa是我随便写的,表示你要显示的第一个内容
    void Delay10ms();//软件延时
    DIG2=0;//关第二个数码管
}

你试试看
,只要懂得引脚与数码管字面上之间的关系,想用什么电路控制都行,

HC6800-ES-V2.0 发表于 2019-3-9 14:43

程序在哪里?

第一:好好看看你的数码管的管脚,共十脚,为什么呢?每个数码管的八个LED的阴极——八个脚 …

可以了,多谢指点


用单片机怎么控制二位共阳数码管?我这个两边都是一样的插图(3)

,把8个引脚分别接上单片机,编程把一个一个引脚的送低电平,就可以试出来了,

  

字符

  

  

0

  

  

1

  

  

2

  

  

3

  

  

4

  

  

5

  

  

6

  

  

7

  

  

数值

  

  

0xC0

  

  

0xF9

  

  

0xA4

  

  

0xB0

  

  

0x99

  

  

0x92

  

  

0x82

  

  

0xF8

  

  

字符

  

  

8

  

  

9

  

  

A

  

  

B

  

  

C

  

  

D

  

  

E

  

  

F

  

  

数值

  

  

0x80

  

  

0x90

  

  

0x88

  

  

0x83

  

  

0xC6

  

  

0xA1

  

  

0x86

  

  

0x8E

  

共阳com口接5V,abcdefg接Px.0-Px.7(x可以为0,1,2…),利用上面的真值表,配置Px就可以得到不同的显示效果,dp是小数点的效果,要想得到动态的数码管,要用定时器中断,不断刷新数码管显示。
,用电源引线,串电阻,一对对引脚测试,就能找出来,请问  单片机89C51接 这个共阳数码管 的话是不是要在8个端口都接上大约200Ω的电阻,

LTX~LTX 发表于 2019-3-9 18:54

可以了,多谢指点

延时要多少啊?

作者: soufei

为您推荐


Fatal error: Can't use function return value in write context in /www/wwwroot/www.qianrushi.com.cn/wp-content/themes/news/footer.php on line 115