好玩的单片机——数码管原理(一)

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); } }