单片机原理与接口技术第 11章,LED显示器与接口技术
11.1 LED显示器
LED俗称数码管,具有很友好的人机界面,设计简单,价格便宜,通过程序控制还可以拥有静态显示和动态显示两种功能一般常用的有两类:数码管和点阵 。
数码管只能显示数字信息,而点阵可以显示更为复杂的文字和图像信息 。
第 11章,LED显示器与接口技术
11.1.1 数码管结构数码管由 8个发光二极管构成,控制相应的二极管导通,就能显示出各种字符。
通过不同的组合可用来显示数字 0~ 9,字符 A~ F,H,L,P,R,U,Y等符号及小数点,.”
第 11章,LED显示器与接口技术
11.1.1 数码管结构
数码管的结构如图 11-1所示。数码管又分为共阴极和共阳极两种类型,其结构分别如图 11-1
( a)和图 11-1( b)所示。
第 11章,LED显示器与接口技术图 11-1共阴极和共阳极两种类型的结构第 11章,LED显示器与接口技术
11.1.2 数码管工作原理
数码管一般由 8个发光二极管组成,包括了 7个细长型的发光二极管和一个点状的发光二极管。分为 a,b,c,d,e,f,g、
h八段,其中 h是小数点其他七个组成了一个,8”字通过控制具体的 LED发光用来显示 0到 F十六个数字。数码管的内部
LED分布和引脚如图 11-1( c)所示。
第 11章,LED显示器与接口技术
11.1.2 数码管工作原理
如图 11-1所示,数码管一般有十个引脚,
每一段 LED对应一个引脚,另外一个引脚是连到一起的,八根之间互相连通属同一个引脚。数码管有共阳极和共阴极两种结构形式,如图 11-1( a),11-1(b)所示。
第 11章,LED显示器与接口技术
11.1.2 数码管工作原理
共阴极数码管中 8个发光二极管的阴极(二极管负端)连接在一起。通常,共阴极接低电平(一般接地),其它管脚接段驱动电路输出端。当某段驱动电路的输出端为高电平时,该端所连接的字符导通并点亮,
根据发光字段的不同组合可显示出各种数字或字符。
第 11章,LED显示器与接口技术
11.1.2 数码管工作原理设共阴极电平为 Uk,每个字段上所加的电平分别为 Ua,Ub,Uc,Ud,Ue,Uf,Ug、
Uh。设某字段的电平为 Ui,当 Uk为高电平时,整个数码管都不发光;当 Uk为低电平时,若 Ui为高电平 (i=a,b.c…),则该段发光;
当 Uk为低电平时,若 Ui为低电平,则该段不发光。
第 11章,LED显示器与接口技术
11.1.2 数码管工作原理
Uk可以实现对整个数码管是否发光的控制,
称导通控制
Ui可以实现对数码管中某一字段的发光控制,
称笔划信息电平第 11章,LED显示器与接口技术
11.1.2 数码管工作原理数码管可以显示包括小数点的 0到 9十个数字和部分英文字母。为了获得不同的字符,数码管各段所加的电平是不同的,
编码也不一样。字符、笔划信息电平和编码关系如表 11.1所示。
第 11章,LED显示器与接口技术
11.1.2 数码管工作原理表 11.1 共阴极数码管字符、笔划信息电平和编码关系第 11章,LED显示器与接口技术字符 笔 画 信 息 电 平 编码
h g f e d c b a
0 0 0 1 1 1 1 1 1 3f
1 0 0 0 0 0 1 1 0 06
2 0 1 0 1 1 0 1 1 5b
3 0 1 0 0 1 1 1 1 4f
4 0 1 1 0 0 1 1 0 66
5 0 1 1 0 1 1 0 1 6d
6 0 1 1 1 1 1 0 1 7d
7 0 0 0 0 0 1 1 1 07
8 0 1 1 1 1 1 1 1 7f
表 11.1a
第 11章,LED显示器与接口技术字符 笔 画 信 息 电 平 编码
h g f e d c b a
9 0 1 1 0 0 1 1 1 67
a 0 1 1 1 0 1 1 1 77
b 0 1 1 1 1 1 0 0 7c
c 0 0 1 1 1 0 0 1 39
d 0 1 0 1 1 1 1 0 5e
e 0 1 1 1 1 0 0 1 79
f 0 1 1 1 0 0 0 1 71
· 1 0 0 0 0 0 0 0 80
表 11.1b
第 11章,LED显示器与接口技术
11.2 LED显示器和接口单片机驱动 LED数码管的方法有很多,
按显示方法可分为静态显示和动态显示。下面将分别加以介绍。
第 11章,LED显示器与接口技术
11.2.1 静态显示器静态显示是指数码管显示某一字符时,相应的发光二极管恒定导通或恒定截止。这种显示方式的各位数码管相互独立,公共端固定接地(共阴极)或接正电源(共阳极)。每个数码管的 8个字段分别与 8位 I/O
口输出的一位相连。 I/O口只要有段码输出,
相应字符就显示出来,并保持不变,直到
I/O口输出新的段码。
第 11章,LED显示器与接口技术
11.2.1 静态显示器静态显示器的优点,
显示稳定
显示器亮度高
占用 CPU的时间少第 11章,LED显示器与接口技术
11.2.1 静态显示器静态显示器的缺点,
需要 I/O口较多
只适合位数少的场合第 11章,LED显示器与接口技术
11.2.2动态显示器所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),
但利用人眼的视觉暂留效应和发光二极管熄灭时的余辉效应,看到的却是多个字符
“同时”显示第 11章,LED显示器与接口技术
11.2.2动态显示器
动态扫描显示就是用接口电路把所有数码管的笔画字段引脚( a~g和 h)并联起来,
且要做到相同的引脚连到一起。而每个数码管的公共极则受各自的 I/0口控制。
第 11章,LED显示器与接口技术控制数码管
单片机向数码管输出数据的时候,所有的数码管都接收到相同的数据。而由公共极的电平高低来控制到底那个数码管显示输出的数据,单片机据此可控制任意数码管在任意时间显示任意数据。
第 11章,LED显示器与接口技术
11.2.2动态显示器动态显示器的优点,
节省硬件资源
成本较低第 11章,LED显示器与接口技术
11.2.2动态显示器显示器的缺点,
占用 CPU大量时间
显示亮度较静态显示器低第 11章,LED显示器与接口技术
11.2.2动态显示器静态显示和动态显示各有自己的优缺点,
在一般的小型系统中,为了减低成本比较多采用动态显示的方法。
第 11章,LED显示器与接口技术
11.3 数码管动态显示的硬件电路设计在单片机系统中,可分为硬件部分和软件部分。其中硬件部分是整个系统的实体构成,是软件系统的平台和基础,没有硬件做支撑设计出的软件就无法调试也不能得到验证。下面就是动态显示硬件设计例子,我们给出了完整的电路图。
第 11章,LED显示器与接口技术
11.3.1 电路原理图图 11-5 单片机驱动 7段数码管动态显示电路的原理第 11章,LED显示器与接口技术
11.3.1 电路原理图
本电路的 P0做为数据输出口用来输出数码 管的显示数据,由于 P0口的特殊结构故给电路加上了上拉电阻,并使用 74LS244来驱动数码管显示器 。 P2口中的 P2.4,P2.5,P2.6,P2.7脚做为选通脚用来选通不同的数码管使其轮流点亮 。
第 11章,LED显示器与接口技术
11.3.2 软件设计本程序的程序流程图如下所示,
第 11章,LED显示器与接口技术第 11章,LED显示器与接口技术
11.4 LED静态显示及实验
1,题目:
共阴极数码管作为显示器件,P2口输出,数码管显示数字 0,间隔一秒钟输出数字 1,间隔一秒钟输出数字 2,依次增 1,
显示完数字 9后,再显示数字 0。周而复始。
第 11章,LED显示器与接口技术
11.4 LED静态显示及实验
2、分析:
为了让共阴极 LED数码管显示数字 0~9,首先我们要知道段码,数字 0~9对应的段码为,0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0
x7f,0x6f,
要达到一秒钟显示一个数字,我们可以利用定时器 0来完成一秒钟的延时。一秒钟时间一到,
P2口送出相应的段码。
第 11章,LED显示器与接口技术
11.4 LED静态显示及实验
3,原理图:
第 11章,LED显示器与接口技术
11.4 LED静态显示及实验
4,C51源程序
#include <reg51.h>
unsigned char code num[ ]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f};
unsigned char count=20,index=0;
第 11章,LED显示器与接口技术
void timer0(void) interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
--count;
第 11章,LED显示器与接口技术
if(count==0)
{ count=20;
P2=num[index];
++index;
if(index>9)
index=0;
}
}
第 11章,LED显示器与接口技术
void main()
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TMOD=0x01;
EA=1; ET0=1; TR0=1;
P2=0;
while(1);
}
第 11章,LED显示器与接口技术
11.5 74LS164静态显示电路
1、题目:
利用 89C51串行口,和并行输出串行移位寄存器 74LS164,扩展一位数码管,在数码显示器上循环显示 0-9这 10个数字。
第 11章,LED显示器与接口技术
11.5 74LS164静态显示电路
2、分析:
74LS164是 8位串入并出移位寄存器。它的引脚如图所示。
第 11章,LED显示器与接口技术
74LS164的引脚图第 11章,LED显示器与接口技术
11.5 74LS164静态显示电路使用 74LS164做静态显示,可以使用串口方式 0来传递数据 ;即 RXD接 74LS164的 A和 B,
TXD接 74LS164的 CP,接 VCC,74LS164
的输出端接共阴的数码管 。
第 11章,LED显示器与接口技术
11.5 74LS164静态显示电路串行口工作在方式 0时,可通过外接移位寄存器实现串并行转换 。 在这种方式下,数据为 8位,只能从 RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率 1/12。 在 CPU将数据写入
SBUF寄存器后,立即启动发送 。 为了在数码显示器上循环显示 0-9这 10个数字,我们只要循环向 SBUF寄存器中写入 0-9这 10个数字相应的段码即可 。
第 11章,LED显示器与接口技术
11.5 74LS164静态显示电路第 11章,LED显示器与接口技术
11.5 74LS164静态显示电路源程序
#include <reg51.h>
unsigned char code num[ ]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
0x07,0x7f,0x6f};
unsigned char count=20,index=0;
第 11章,LED显示器与接口技术
void time0(void) interrupt 1
{ TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
--count;
第 11章,LED显示器与接口技术
if(count==0)
{ count=20;
SBUF=num[index];
while(!TI);
TI=0;
++index;
if(index>9)
index=0;
}
}
第 11章,LED显示器与接口技术
void main()
{ TH0=(65536-50000)/256; TL0=(65536-
50000)%256;
TMOD=0x01; SCON=0x00;
PCON=0;
EA=1; ET0=1; TR0=1;
P1=0;
while(1);
}
第 11章,LED显示器与接口技术
11.6 LED显示驱动器 MAX7221
MAX7221 是美国 MAXIM 公司研制的紧凑型、串行输入、串行输出、共阴极新型
LED 显示驱动器。它一片芯片可以驱动多达 8 位 7 段 LED 显示器、条型图形、
或 64 个单个 LED。其片内有 BCD 译码器、
多路复用扫描电路、段和数字驱动器、以及存贮每个数字的 8× 8 静态 RAM。所有
LED的段电流设定只需一个外部电阻。
第 11章,LED显示器与接口技术
MAX7221的引脚排列如图第 11章,LED显示器与接口技术
MAX7221的特点接口简单,占用 CPU 的 I/ O 口线少。对外接口只有 3 根
I/ O 口线。
各个寄存器可单独被寻址和更新,不需要全部更新。
允许用户对每个显示位是选择 BCD译码方式还是无译码方式进行定义。
具有 150μA 的低功耗停机方式。
可以模拟和数据控制显示的亮度。
可以进行级连,最多可以级连 8 片 MAX7221,驱动 64
个数码管。
第 11章,LED显示器与接口技术
MAX7221的引脚功能表引脚 名称 功能
1 DIN 串行数据输入。
2,3,5-8,10,11 DIG0- DIG7 8个位选线
4,9 GND 地(两个地必须连接在一起)
12 CS 片选输入。
13 CLK 串行时钟输入。
14-17,20-23 SEG A- SEG G DP 段选线
18 ISET 通过一个电阻连接至 VDD。设置最大的段电流
19 V+ 电源,接至+ 5V
24 DOUT 串行数据输出。
第 11章,LED显示器与接口技术
11.7 LED动态显示及实验
1、题目:
利用 MAX7221,扩展 8位数码管,动态显示 0-7这 8个数字。
第 11章,LED显示器与接口技术
11.7 LED动态显示及实验
2、分析:
MAX7221在使用之前必须进行初始化,即设置 MAX7221的显示模式、译码方式、亮度控制、扫描范围(扫描 LED个数)。当采用 Code B译码方式时,我们只要向数码管 0( digit0)~数码管 7( digit7)送出
0x0~0x7即可。
第 11章,LED显示器与接口技术
LED动态显示实验原理图第 11章,LED显示器与接口技术
11.7 LED动态显示及实验
2、分析:
MAX7221在使用之前必须进行初始化,即设置 MAX7221的显示模式、译码方式、亮度控制、扫描范围(扫描 LED个数)。当采用 Code B译码方式时,我们只要向数码管 0( digit0)~数码管 7( digit7)送出
0x0~0x7即可。
第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析
1、硬件电路数码管的 D1,D2分别显示时钟分种的十位和个位,D3,D4则分别显示时钟秒的十位和各位。
第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析电路图第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析
2、应用程序:
#include <reg52.h> // 引用标准库的头文件
#define uchar unsigned char
#define uint unsigned int
sfr P0=0x80 // P0的 SFR定义
sfr P2=0xA0 // P2的 SFR定义
sbit D1= P2^4 // 定义第一个选通端
sbit D2= P2^5 // 定义第二个选通端
sbit D3= P2^6 // 定义第三个选通端
sbit D4= P2^7 // 定义第四个选通端第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析
unsigned char a,b,c,d
// a,b分别为分钟的十位和个位,c,d分别为秒钟的十位和个位
uchar getcode(uchar i);
// 根据共阴极字型编码表获取字型代码函数
void display(void); // 显示函数第 11章,LED显示器与接口技术
void main()
{ P2 = 0xff; // 关闭显示
for(a=0,a<=5,a++) //设置分钟的十位数
{ for(b=0,b<=9,b++) //设置分钟的个位数
{ for(c=0,c<=5,c++) //设置秒钟的十位数
{ for(d=0,d<=9,d++) //设置秒钟的个位数
{ display(); }
}
}
}
while(1) // 重新开始循环
}
第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析
/* 根据共阴极字型编码表获取 0~9,A~B字型代码
*/
uchar getcode(uchar i)
{ uchar p;
switch (i)
{ case 0,p=0x3f; break; /* 0 */
case 1,p=0x06; break; /* 1 */
case 2,p=0x5B; break; /* 2 */
case 3,p=0x4F; break; /* 3 */
第 11章,LED显示器与接口技术
case 4,p=0x66; break; /* 4 */
case 5,p=0x6D;break; /* 5 */
case 6,p=0x7D;break; /* 6 */
case 7,p=0x07;break; /* 7 */
case 8,p=0x7F;break; /* 8 */
case 9,p=0x67;break; /* 9 */
第 11章,LED显示器与接口技术
case 10,p=0x77;break; /* A */
case 11,p=0x7C;break; /* B */
case 12,p=0x39;break; /* C */
case 13,p=0x5E;break; /* D */
case 14,p=0x79;break; /* E */
case 15,p=0x71;break; /* F */
default,break;
}
return(p);
}
第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析
/* 显示函数 */
void display(void)
{ P2= 0xff; // 关闭显示
P0 = getcode(a); // 送字型码
D1=0 // 选通
dalay1() //延时 2ms
P0 = getcodeb); // 送字型码
D2=0 // 选通
dalay1() //延时 2ms
第 11章,LED显示器与接口技术
P0 = getcode(c); // 送字型码
D3=0 // 选通
dalay1() //延时 2ms
P0 = getcode(d); // 送字型码
D4=0 // 选通
dalay1 () //延时 2ms
dalya() //延时 1s
}
第 11章,LED显示器与接口技术
11.8 实时时钟程序的分析
/*延时 1S的程序 */
/*每执行一次 while(--t);对于时钟为 8MHz的
8751(8051),需要 2μs的时间 */
/*i的最大取值为 492000是因为前面已经有 8ms的延时,为提高精度故设置为此 */
void delay(unsigned char t)
{ t=0;
While (i<492000)
t++;
}
第 11章,LED显示器与接口技术
/*延时 2ms的程序 */
/*每执行一次 while(--t);对于时钟为 8MHz的
8751(8051),需要 2μs的时间 */
void delay(unsigned char i)
{ i=0;
While (i<2000)
t++;
}
第 11章,LED显示器与接口技术
11.9 LED点阵显示屏
LED点阵显示屏( LED panel):
LED就是 light emitting diode,发光二极管的英文缩写,简称 LED。它是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、
动画、行情、视频、录像信号等各种信息的显示屏幕。
第 11章,LED显示器与接口技术
11.9 LED点阵显示屏
LED显示屏分为图文显示屏和视频显示屏,均由 LED矩阵块组成 。 图文显示屏可与计算机同步显示汉字,英文文本和图形;视频显示屏采用微型计算机进行控制,图文,图像并茂,以实时,同步,
清晰的信息传播方式播放各种信息,还可显示二维,三维动画,录像,电视节目以及现场实况 。
第 11章,LED显示器与接口技术
11.9 LED点阵显示屏
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站,码头,机场,商场,医院,宾馆,
银行,证券市场,建筑市场,拍卖行,
工业企业管理,高速公路和其它公共场所 。
第 11章,LED显示器与接口技术
11.9 LED点阵显示屏的优点:
亮度高,工作电压低
功耗小,微型化
易与集成电路匹配
驱动简单,寿命长
耐冲击,性能稳定第 11章,LED显示器与接口技术
11,9,1 LED汉字点阵显示原理
LED点阵显示屏通常有若干块 LED点阵显示模块组成 。 例如显示一个汉字的 16*16显示屏由四块 8*8的点阵显示模块组成 。 每个单色点阵模块由 64个 LED组成 。 而红,绿双色点阵模块由 64个红色 LED和 64个绿色 LED组成 。
通常为了硬件连接上的方便 。 LED点阵显示是行列交叉扫描形式,即一个点要亮必须让其所在的行和列都被扫描到 。
第 11章,LED显示器与接口技术
LED点阵显示屏与单片机的接口由于单片机的总线为 8位,一个字需要拆分成为 4个部分,即 A( 左上角 ),B
( 右上角 ),C( 左下角 ),D( 右下角 ),分别由 8*8点阵组成第 11章,LED显示器与接口技术
LED点阵显示屏与单片机的接口在这个例子中单片机先显示的是第一行的左半部分,即 A第一行的 A11~A18,显示,大,
字的时候由左到右 A11~A17都是灭,A18亮 。
即二进制数为 00000001,十六进制则为 01h。
左上半部分扫描完成后,继续扫描右半部分的第一行,此 时 仍 为 从 左 到 右 扫 描,从
B11~B18方向扫描 。 这一行全部都不亮则编号为 00h.
第 11章,LED显示器与接口技术
LED点阵显示屏与单片机的接口此后单片机转向左半部第二行,仍为
A21~A28,B21~B28。 依此类推继续下面的扫描,一共扫描 32个 8位,可以得出汉字,大,的扫描代码 。
第 11章,LED显示器与接口技术
LED点阵显示屏与单片机的接口用单片机还可以实现 LED显示屏的上下翻滚和左右移动,编程思想大致一样 。
例如做上下翻滚,第一次和上面的显示一样,然后延时 0.8ms( 目的使得人看起来不太闪烁 ),第二次显示的时候第一行显示第二行的数据,第二行显示第三行的数据 …… 依此类推 。 每次显示都延时 8ms这样看起来就很有连续性了 。
第 11章结束