您的位置: 网站首页 > 电子与嵌入式 > 单片机原理与应用 > 第8章 单片机的输入/输出接口 > 【8.3 LED显示器及接口】

8.3 LED显示器及接口

 

单片机常用的显示器有发光二极管(LED)和液晶显示器(LCD)两种。

8.3.1  LED显示器的结构与原理

8-10  数码管外形图

LEDLight Emitting Diode)显示器是由若干发光二极管组成的,每个二极管称为一个字段。LED显示器有3种通用格式,可显示数字和十六进制字母的7段(或8段,增加了小数点“dp段)显示管(8字型)、显示数字和全部英文字母的18段显示管(米字型)以及点阵显示器。7段显示管是最经济和最常用的显示器。

LED分为共阴极和共阳极两种结构形式。共阴极LED中发光二极管的阴极连接在一起,通常接地,当某个二极管的阳极为高电平时,相应的段就发光显示。同样,共阳极LED的公共阳极接高电平,某个阴极接低电平时,相应的段被点亮显示。这里以7段显示器为例进行说明,如图8-10所示。

为显示不同的字型,显示器各字段所加的电平不同,编码也随之不同。7段显示器的字型与共阴极时编码的对应关系如表8-2所示。

从原理图可知,把共阴极编码按位求反后,即得到相应的共阳极编码。

“米”字型LED组成的字型比7段显示器更加丰富,而点阵LED还可以显示汉字和图形。显然,上述编码与各字段在字节中的排列顺序有关,即与数据总线和字段的对应关系相关。

8-2  共阴极7段显示器字型编码表

显示字符

共阴极段码

共阳极段码

显示字符

共阴极段码

共阳极段码

0

3FH

C0H

C

39H

C6H

1

06H

F9H

D

5EH

A1H

2

5BH

A4H

E

79H

86H

3

4FH

B0H

F

71H

8EH

4

66H

99H

H

76H

89H

5

6DH

92H

L

38H

C7H

6

7DH

82H

P

73H

8CH

7

07H

F8H

R

31H

CEH

8

7FH

80H

U

3EH

C1H

9

6FH

90H

Y

6EH

9lH

A

77H

88H

无显示

00H

FFH

B

7CH

83H

 

 

 

NLED可组成NLED显示器。通常,控制线分为字位选择线和字型(字段)选择线,位选线为各个LED的公共端,用来控制该LED是否点亮,而段选线确定显示字符的字型。根据不同的显示方式,位选线和段选线的连接方法也有所区别。

LED显示方式分为静态显示和动态显示两种。

8.3.2  LED静态显示方式

在静态显示方式下,LED显示器中各位的公共端(共阴极或共阳极)连接在一起,而每位的段选线分别与8位锁存器输出相连接。每个显示字符经锁存器输出后,LED即保持连续稳定显示,直到输出下一个显示字符。

采用静态显示方式时,编程比较简单,电流始终流过每个点亮的字段,亮度较高,但占用的输出口线较多,消耗功率较大。

在单片机应用系统中,常采用MCl4495芯片作为LED的静态显示接口,它可以和LED显示器直接相连。MCl4495芯片的引脚和内部结构如图8-11所示。它是由4位锁存器、地址译码和笔段ROM阵列以及带有限流电阻的驱动电路(输出电流为10mA)三部分电路组成的。图中,ABCD为二进制码(或BCD码)输入端;为锁存控制端,为低电平时可以输入数据,为高电平时锁存输入数据;hi为输入数据大于等于10指示位,若输入数据大于或等于10,则hi输出高电平,否则输出为低电平;为输入等于15指示位,若输入数据等于15,则输出高电平,否则为高阻状态。

MCl4495芯片的作用是输入被显示字符的二进制码(或BCD码),并把它自动转换成相应字形码,送给LED显示。图8-12为采用MCl4495芯片的4位静态LED显示器接口电路。图中,P1.7P1.4用于输出欲显示字符的二进制码(或BCD码),P1.2=0用于控制二一四译码器工作,P1.1P1.0经译码器输出后控制MCl4495中哪一位接收P1.7P1.4上的代码。

a)引脚                                                    b)逻辑框图

8-11  MCl4495引脚和逻辑框图

8-12  4位静态LED显示器接口

【例8-48031单片机内部RAM20H21H单元中有4位十六进制数(20H中为高两位),请编出能在图8-12电路中自左到右显示出来的程序。

解:相应程序如下。

ORG  1000H

SDISPLAY:   MOVA,20H       ;20H中数送A

             ANLA#0F0H    ;截取高4

             MOVP1,A        ;1MCl4495

             MOVA,20H       ;20H中数送A

             SWAP A          ;4位送高4

             ANL  A,#0F0H    ;去掉低4

             INC  A          ;A1A0指向2MCl4495

             MOV P1,A        ;2MCl4495

             MOV A,21H       ;21H中数送A

            ANL  A,#0F0H    ;截取高4

             ADD  A,#02H     ;A1A0指向3MCl4495

             MOV P1,A        ;3MCl4495

             MOV A,21H       ;21H中数送A

             SWAP A          ;4位送高4

             ANL  A,#0F0H    ;去掉低4

             ADD A,#03       ;A1A0指向4MCl4495

             MOV  P1,A       ;4MCl4495

             RET            

             END            

在本例中,被显字符是由硬件MCl4495转换成字形码的,但也可采用软件法转换成字形码。采用软件法转换时,图8-12MCl4495应由8位锁存器替代。静态显示所需的硬件开销大,CPU也无法预先知道什么时候需要改变LED的被显示字符。

8.3.3  LED动态显示方式

为了减少硬件开销,提高系统可靠性和降低成本,单片机控制系统通常采用动态扫描显示。如图8-13所示为8031通过81556只共阳LED的接口电路。图中,B口和所有LEDabcdefgsp引线相连,各LED控制端G8155 C口相连,故B口为字形口,C口为字位口,CPU可以通过C口控制各LED是否点亮。8155的端口地址分配如下:

8000H   命令/状态口

8001H   A

8002H   B口(字形口)

8003H   C口(字位口)

8004H   定时器低8位口

8005H   定时器高8位口

8000HFFFFH 8155 110重叠地址区

0000H00FFH 8155 RAM基本地址区

0000H7FFFH 8155 RAM重叠地址区

动态显示采用软件法把欲显示的十六进制数(或BCD码)转换为相应字形码,故它通常需要在RAM区建立一个显示缓冲区。显示缓冲区内包含的存储单元个数常和系统中LED显示器个数相等。显示缓冲区的起始地址很重要,它决定了显示缓冲区在RAM中的位置。

8-13  8031通过8155LED的接口电路

8-14  8-5的显示缓冲区

显示缓冲区中的每个存储单元用于存放相应LED显示器欲显示字符的字形码地址偏移量,CPU可以根据这个地址偏移量通过查字形码表来找出所需显示字符的字形码,以便送到字形口显示。

【例8-5请根据图8-13编出能在LED5LED0上显示1995.6的动态显示子程序。

解:设显示缓冲区放在CPU内部RAM中,起始地址为70H,显示缓冲区中被显示字符的字形码表的地址偏移量应预先放入,如图8-14所示。

相应程序为:

         ORG 0600H

DISPLY:MOV A,#06H              ;方式控制字06HA

         MOV  DPTR,#8000H   

         MOVX  @DPTR,A           ;方式控制字送8155命令口

DISPLYl:    MOV R0,#70H             ;显示缓冲区始址送R0

MOV  R3,#0FEH           ;字位码初始值送R0

         MOV  AR3              

LDO:    MOV DPTR,#8003H         ;C口地址送DPTR

         MOVX  @DPTR,A           ;字位码送C

         MOV  DPTR,#8002H        ;B口地址送DPTR

MOV  A,@R0              ;待显字符地址偏移量送A

ADD  A,#13              ;A进行地址修正

MOVC  A,@A+PC           ;查字形码表

MOVX  @DPTR,A           ;字形码送B

ACALL  DELAY            ;延时1ms

INC  R0                 ;修正显示缓冲区指针

MOV  A,R3               ;字位码送A

JNB  ACC.5,LD1          ;若显示完一遍,则LD1

RL  A                   ;字位码左移一位

MOV  R3,A               ;送回R3

AJMP  LD0               ;显示下一个数码

LDl:    RET

DTAB:   DB  0C0H,0F9H,0A4H,0B0H,99H

        DB  92H,  82H,0F8H,80H,90H

        DB  88H,  83H,0C6H,0A1H,86H

        DB  8EH,0FFH,0CH,89H,7FH

        DB  0BFH

DELAY:  MOV R,#02H               ;延时1ms程序

DELAY1:MOV  R 6,#0FFH

DELAY2:DJNZ  R6,DELAY2

        DJNZ  R7,DELAYl

        RET

        END

8.3.4  液晶显示器(LCD)概述

1LCD原理和分类

LCDLiquid Crystal Display)是液晶显示器的缩写,它是在两片玻璃之间夹上10μm12μm的薄层液晶流体制成的。LCD是一种被动式显示器,利用液晶能改变光线通过方向的特性,来达到显示的目的。LCD的工作电流为μA级,寿命长,厚度约为LED1/3,显示清晰美观,具有功耗低、抗干扰能力强的优点,广泛应用于仪器仪表、控制系统以及笔记本计算机和手持电子产品。

LCD有各种分类方式,按显示排列形式可分为笔段型、字符型和点阵图形型。

笔段型类似于LED显示,是以长条状显示像素组成一位显示,主要用于显示数字,也可显示英文字母或特殊字符,通常有六段、七段、八段、九段、十四段和十六段等,其中七段显示最常用,广泛用于万用表等数字仪表、计算器、电子表等电子产品中。

点阵字符型LCD模块由若干个5×75×10点阵组成,每个点阵用来显示一个字符,专门用来显示字母、数字、符号等,常用在各种单片机系统中。

点阵图形型是在一块液晶板上排列了多行或多列矩阵形式的晶格点,点的大小可根据显示的清晰度来设计,广泛用于计算机、液晶电视、游戏机等设备。

LED的驱动方式不同,由于直流驱动LCD会使液晶体产生电解和电极老化,大大降低使用寿命,因此LCD的驱动信号多是交流电压,通常为30Hz150Hz的方波,其工作时的静态直流电压不能大于50 mV,一般采用CMOS门电路来驱动LCD

2LCD接口技术概述

LCD电路工作时,必须有相应的控制器、驱动器,还需要有存储命令和字符的RAMROM。目前,这些电路已被设计组合在一块电路板上,称为液晶显示模块LCMLiquid Crystal Module)。这样,LCM与单片机接口大大简化,只需按照液晶模块的时序,写入命令和显示内容即可完成显示。LCM包括字符型和图形型两种。

常用的液晶模块有Intersil公司的ICM系列,以及日本HITACHI(日立)和韩国SAMSUNG(三星)等公司的不同种类的产品,国产的LCM系列也很丰富。LCD与单片机的接口有并行方式和串行方式两种。

1LCD与单片机的并行接口。

设计接口电路首先应选择译码驱动电路,并使其具有输入锁存功能。并行接口芯片有4LCD驱动器40544线—7段译码器(BCD输入)CD4055/4056MCl4543/14544等。

LCD/LCM与单片机的硬件接口电路主要包括正确连接其片选控制、读、写和并行数据总线。此外,LCD通常还有亮度调节等辅助功能。

一般地,软件编程应注意两点:第一,应先对LCD进行初始化;第二,每次向LCD写显示内容前,应检查LCD的状态,在空闲时才能写入数据。

并行LCD模块产品非常丰富,目前应用广泛的产品有基于HITACHI公司HD系列LCD控制器/驱动器的液晶模块,如HD44780/44100,内置字符发生器ROM可显示192种字符;并有64B的自定义字符RAM80B内部RAM;接口特性适配Motoro1a公司M6800系列CPU的操作时序;单+5V电源供电。

2LCD与单片机的串行接口。

目前,串行接口的LCD已得到越来越多的应用,典型的接口芯片如Philips公司的PCF 8577/8578/8579 LCD驱动器等。LCD串行接口的协议有多种,从应用数量来看,符合12C总线串行接口的LCD产品相对还比较少。