好玩的单片机——数码管原理(一)
2019-04-15 18:52发布
生成海报
一:数码管内部构造
数码管也称LED数码管,晶美、光电、不同行业人士对数码管的称呼不一样,其实都是同样的产品。
数码管按段数可分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、3位、4位、5位、6位、7位等数码管;
按发光二极管单元连接方式可分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。
如图:
上图就是两个数码管。
让我们来看看它的内部结构:
这是i个数码管的内部以及接线图,我们再来看下4个数码管的接线图。
二:LED数码显示方式及电路
1、 静态显示方式
LED显示器工作方式有两种:静态显示方式和动态显示方式。静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
2、动态显示
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
三:字符表
1、共阳极数码管字符表:
unsigned code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,
};
四:代码实现;
#include//包含头文件
sbit wei1=P1^0;
sbit wei2=P1^1;
sbit wei3=P1^2;
sbit wei4=P1^3;
sbit miao=P1^4;
unsigned code table[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e,
};//共阳数码管码表
void delay(int a)
{
int b,c;
for(b=a;b>0;b--)
for(c=30;c>0;c--);
}
void main()//主程序
{
while(1)//循环
{
wei1=0;//选通第一个数码管的位选,关闭其他数码管位选
wei2=1;
wei3=1;
wei4=1;
miao=1;//打开秒针
P0=table[1];//送入段选信号1
delay(1);//延时
wei1=1;//选通第二个数码管的位选,关闭其他数码管位选
wei2=0;
wei3=1;
wei4=1;
miao=1;//打开秒针
P0=table[2];//送入段选信号2
delay(1);
wei1=1;//选通第三个数码管的位选,关闭其他数码管位选
wei2=1;
wei3=0;
wei4=1;
miao=1;//打开秒针
P0=table[3];//送入段选信号 3
delay(1);
wei1=1;//选通第一个数码管的位选,关闭其他数码管位选
wei2=1;
wei3=1;
wei4=0;
miao=1;//打开秒针
P0=table[4];//送入段选信号 1111 1001
delay(1);
}
}
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮