共阳数码管怎么用

共阳数码管怎么用,第1张

共阳数码管怎么用?共阳数码管怎么连接?下面是共阳数码管连接经验与体会,为大家提供参考。

1.用数字万用表,二极管测量档位,找出4个共阳引脚。

用红表笔一个一个碰每个引脚,然后用黑表笔刮其他引脚,当看到数码管有闪烁,说明红表笔碰到的就是闪烁的那一位数码管的共阳脚。以此类推,找出其他三个,并记录。

2.用4个PNP三极管连接扫描。

4个E极全部并联接在电源5V,

4个B极分别用4个1K的电阻串联接在P0口以外的四个I/O口,

为了编程方便可以接在P1.0,P1.1,P1.2,P1.3

4个C极分别接第一步找到的4个共阳引脚。

当P1.0,P1.1,P1.2,P1.3,分别为0(低电平)时 对应的共阳引脚被供电,数码管对应的位会显示。

3.数码管的`8个字段引脚

abcdef 每个引脚串联一个200欧姆的电阻,直接接到P0口的8个I/O口,当P0口引脚为0(低电平)相应字段发光,前提是该位数码管对应当共阳口要供电,就是P1.0,P1.1,P1.2,P1.3 其中一个要为0,若P1.0,P1.1,P1.2,P1.3全为0 ,四个数码管显示相同的字段,其中一个为0,数码管其中一个现实P0口输出的字段。

4.扫描程序:

a。P1.0,P1.1,P1.2,P1.3 全输出1 四个数码管不被供电。

b。对P0口输出数码管字段要显示的数据(先接好电路,至于该输出什么,试试你就知道了。)

c。对P1.0,输出0 第一个数码管显示相应字段。

d。对P1.0,P1.1,P1.2,P1.3 输出1 隐藏显示 并且对P0口输出第二个数码管的数据

e。对PP1.1,输出0 第二个数码管显示 相应字段。

f。对P1.0,P1.1,P1.2,P1.3输出1 隐藏显示,并对P0口输出第三个数码管的数据

g。对P1.2,输出0 (后面的和前面一样,直到第四个显示完毕,如此循环)

不清楚你的电路构成如何,因此先按下面的假设执行段码及位码的输出;

其中,延时值可根据实验效果予以调整;

设 P0 为输出七段码(共阳极数据);

四位数码管有4个阳极,设位码分别与P2.4--P2.7对应,并且=1时表示可点亮数码管;

sbit wma1=b2^4//对应左起第1个数码管的阳极

sbit wma2=b2^5//对应左起第2个数码管的阳极

sbit wma3=b2^6

sbit wma4=b2^7

void main()

{

wma1=0 wma2=0 wma3=0 wma4=0

while(1)

{

P0=table[0] wma1=1 delay(10) wma1=0

P0=table[1] wma1=2 delay(10) wma2=0 P0=table[2] wma1=3 delay(10) wma3=0 P0=table[3] wma1=4 delay(10) wma4=0 P0=table[4] wma1=1 delay(10) wma1=0 P0=table[5] wma1=2 delay(10) wma2=0 P0=table[6] wma1=3 delay(10) wma3=0 P0=table[7] wma1=4 delay(10) wma4=0

}

}

下面程序中P0接段码,P2接位选,共阳极。

#include <reg52.h>

#include <intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar code DSY_CODE[]=

{

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90

}

void DelayMS(uint x)

{

uchar i

while(x--)

{

for(i=200i>0i--)

}

}

void main()

{

uchar i,k=0x80

while(1)

{

for(i=8i>0i--)

{

P2=0xff

k=_crol_(k,1)

P0=DSY_CODE[8-i]

P2=k

DelayMS(3)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11079279.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存