单片机中常用的显示器有LED发光二极管显示器、LCD液晶显示器以及CRT阴极射线显示器等等,LED显示器的显示结构为段显示即7位段显示、8位段显示、米字型等产品,8位段显示比7位段显示多一位小数点显示位dp,例如:在单片机技术应用中常用的LED显示器如数码管,有一位数码管、两位数码、四位数码管。LCD显示器的显示结构为点阵显示即8×8、16×16、32×32等产品,点阵的位数越多则显示的效果越好。常用的LCD液晶显示器有LCD1602等等。
一、LED数码管的结构与工作原理
LED数码管的基本构成单位为半导体发光二极管,7段的LED数码管是将7个长条形的发光二极管排成“日”字,按照从最上边的横开始,顺时针排列用字母a~g表示,可以显示0~9十位数字,还可以显示简单的英文字母如l、o、a、g等等。8段的LED数码管就是在7段的基础上再在数码管的右下角加个点用字母dp表示,用来显示小数位。
根据8个发光二极管的不同连接形式,可以将LED数码管分成共阳极和共阴极两种,将8个发光二极管的阳极都连在一起的称之为共阳极LED数码管;将8个发光二极管的阴极都连在一起的,称之为共阴极LED数码管。为了使LED数码管的发光二极管发光显数字或字母,对于共阴极LED数码管就要在输入端输入高电平即输入为“1”,则发光二极管发光,在输入端输入低电平即输入为“0”,则发光二极管不发光,而对于共阳极的LED数码管正好相反。例如:以共阴极LED数码管为例,如果让LED数码管显示数字“5”时,即让b、c、f、g段的发光二极管发光,赋值为“1”,而其它段a、d、e、dp段的发光二极管不发光,赋值为“0”,按照dp、g、f、e、d、c、b、a顺序进行赋值结果为01101101B,转换成十六进制数为0x5bH。
二、锁存器的原理与作用
锁存器都是透明的D型锁存器,当使能(G)为高时,Q输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上,输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。
如果使用LED数码管时不添加锁存器,特别是在动态显示的情况下,LED数码管的显示有可能发生不规则的跳动。此外,利用锁存器可以使CPU的时间占用率较低,占用单片机的输出端口较少,并且能够支持端口复用。所以为了保证LED数码管的显示信号效果,在使用LED数码管时,一般采用锁存器,常用的锁存器有74LS373、74HC573等等。
三、功能实现
利用美国ATMEL公司生产的AT89C52单片机、2个74HC573锁存器、3个两位数码管、复位电路、晶振电路构成。采用P0口分别与位选、段选锁存器的D口相连接,段选的Q端口分别与LED数码管的a~dp相连接,位选的Q端口分别与LED数码管的片选端口相连接。位选端与单片机P2.0相连接,段选端与单片机P2.1相连接。
(一)LED数码管的静态显示
LED数码管的静态显示是指在系统中多个LED数码管位选端独立,段选端连接在一起。在同一时间内,段选端的信号都是相同的,显示的符号也应该是相同的,但是位选端可以控制哪个LED数码管发光。例如:以共阴极LED数码管为例,位选、段选端为“1”时打开,为“0”时关闭,共阴极数码管为“1”时发光,为“0”时不发光。
…… //52系列单片机头文件
sbitduan=P2^1,wei=P2^0; //声明段选端、位选端锁存器的锁存端
voidmain()
{wei=1;//打开位选端
P0=0xFE;//送入信号11111110B,即使第一个LED数码管发光
wei=0; //关闭位选端
duan=1;//打开段选端
P0=0x5bH;//送入信号01101101B,即让LED数码管显示数字“5”
duan=0;//关闭段选端}
(二)LED数码管的动态显示
LED数码管的动态显示又叫做LED数码管的动态扫描显示,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时显示,而实际上某一瞬时只有一个数码管在显示数据,且显示时间较短,一般都在1~10MS之间。LED数码管的动态显示,CPU要定时扫描刷新显示,一般适用于显示位数较多的场合,占用端口少,电路设计比较简单,但是编辑较复杂一些。