单片机-数码管
其他
2020-02-07 14:23:03
阅读次数: 0
数码管
- 一个数码管的引脚是10个,显示8字需要7小段,另外还有一个小数点,最后还有一个公共端,生产商为了封装统一,单位数码管都封装10个引脚,其中第3脚和第8脚是连接在一起的
又由公共端可分为共阴极和共阳极
共阴极数码管:发光二极管的阴极全部连接在一起,通常设计电路时将阴极接地;当我们给数码管的任一个阳极加高电平,对应的这个发光二极管就点亮了
共阳极数码管:发光二极管的阳极全部连接在一起,通常设计电路时将阳极接高电平;当我们给数码管的任一个阴极加低电平,对应的这个发光二极管就点亮了
用万用表检测数码管的引脚排列
将数字万用表置于二极管挡,红表笔接在1脚,然后用黑表笔去接触其他各引脚,假设只有当接触到9脚时,数码管的a段发光,而接触其余引脚时则不发光。由此可知,被测数码管为共阴极结构类型,9脚是公共阴极,1脚则是数码管的a段。接下来再检测各段引脚,仍使用数字万用表二极管挡,将黑表笔固定接在9脚,用红表笔依次接2~10引脚时,数码管的其他段先后分别发光,据此便可绘出该数码管的内部结构和引脚排列图。而共阳极需将红、黑表笔对调。
数码管静态显示
- 当多位数码管应用于某一系统时,它们的"位选“是可独立控制的,而“段选“是连接在一起的,我们可以通过位选信号控制哪几个数码管亮,而在同一时刻,位选选通的所有数码管上显示的数字始终都是一样的,因为它们的段选是连接在一起的,所以送入所有数码管的段选信号都是相同的,那么它们显示的数字必定一样,数码管的这种显示方法叫做静态显示
- 在查看原理图时,原理图中标号相同的节点,在实际电路中是物理电气相连的,最上面一排是6个单位数码管,可以看到所有数码管的阳极,即标有a,b,c,d,e,f,g,h的引脚全部连接在一起,然后与下面的U1元件73HC573锁存器的数据输出端相连,锁存器的数据输入端连接单片机的P0口,P0口同时加了上拉电阻。数码管中WEl,WE2,WE3,WE4,WE5,WE6是它们的位选端,每一个数码对应一个位选端,与下面U2元件74HC573的数据输出端的低6位相连,U2的数据输入端也连接到单片机的P0口。两个锁存器的锁存端分别与单片机的P2.6和P2.7相连
- 共阴极:
#include <reg52.h>
sbit dula = P2^6;
sbit wela = P2^7;
void main()
{
wela=1;
P0=0xFE ;
wela=0;
dula=1;
P0=0x7F ;
dula=0;
while(1);
}
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula=P2^6;
sbit wela=P2^7;
sbit HC138A = P2^0;
sbit HC138B = P2^1;
sbit HC138C = P2^2;
uchar num;
void delayms(uint xms){
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
uchar code table[]={0x3f, 0x06, 0x5b, 0x4f,0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71};
void main(){
wela=1;
HC138A = 1;
HC138B = 0;
HC138C = 0;
wela=0;
while(1){
for(num=0;num<16;num++){
dula=1;
P0=table[num];
dula=0;
delayms(1500);
}
}
}
数码管动态显示
- 使六个共阴极数码管一次显示1~6:
- 数码管的动态显示又称为数码管的动态扫描显示,即轮流向各位数码管送出字形码和相应的位选,利用发光二极管的余辉和人眼视觉的暂留作用,使人感觉各位数码管在同时显示
发布了67 篇原创文章 ·
获赞 72 ·
访问量 8264
转载自blog.csdn.net/fangweijiex/article/details/104202134