LED点阵显示电路的设计

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LED 点阵显示电路的设计

一、设计内容

1.用四块8×8LED 点阵设计一个16×16点阵字符显示电路,动态扫描显示方式在显示技术中的应用。

2.掌握点阵显示的硬件接口及软件编程。

3.调用字库文件和SJ8002C 驱动函数,编写在LED 点阵上显示任意字符的程序。 二、8 × 8的LED 点阵显示器原理

1.8 × 8的LED 点阵显示器结构 8 × 8的LED 点阵显示器,是由64个LED 组成, 内部电路如图12-4所示。共阳极的8 × 8的LED 点阵显示器的典型连接方式是:每一行的阳极连在一起,由行扫描码锁存器和驱动器的一位控制,总共8行阳极连线由8位分别控制;每一列的8个阴极连在一起,由字形行码锁存器和驱动器的一位控制,总共8列阴极连线由8位分别控制。

133410611151612345678

914812172

5

管脚

管脚00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH

00H 3FH 00H 00H 00H 01H 01H FFH 01H 01H 01H 01H 01H 01H 05H 02H 10H F8H 10H 20H 40H 80H 04H FEH 00H 00H 00H 00H 00H 00H 00H 00H

图12-4 一个8×8LED 点阵块的电路连接 图12-5汉字“子”的字型点阵码图

2.点阵字符的字型码

在写点阵显示的驱动之前,应知道各显示字符的字形码。上图12-5是四块8 × 8的LED 点阵拼成的一个16 × 16点阵(16列16行)作为1位字符显示的点阵码图。(本实验也采用相同的显示方式显示一个字符)。下面列出“电子”2个字符的点阵码。

“电”--- 02H 00H 、02H 00H 、02H 00H 、02H 10H 、7FH F8H 、42H 10H 、42H 10H 、7FH F0H 、

42H 10H 、42H 10H 、7FH F0H 、42H 10H 、02H 04H 、02H 04H 、02H 04H 、01H FCH ;

“子”--- 00H 10H 、3FH F8H 、00H 10H 、00H 20H 、00H 40H 、01H 80H 、01H 04H 、FFH FEH 、

01H 00H 、01H 00H 、01H 00H 、01H 00H 、01H 00H 、01H 00H 、05H 00H 、02H 00H ;

3.点阵字符的驱动

点阵式LED 显示器采用逐行扫描式工作。要使点阵显示出一个的字符的编程方法是:首先向字形行扫描码锁存器输出行扫描码,选通第一行,同时向字符锁存器列写入该行的字型码,完成一行的扫描。然后,按相同的方式选通第二行,写第二行的字型码……由此类推,逐行扫描,直到写完所有行的字型码,完成一个字符的一遍扫描。

如果要使多个点阵循环显示多个字符,只要把显示的各个字符按顺序安排在显示缓冲区,然后根据显示的字符去查表,再按一定的时序向各个字形行码锁存器和行扫描器输入相应的字形行码和行扫描码,便可达到目的。

4.LED 点阵式显示器实验电路

本实验所用的点阵显示板是外接在实验平台并行I/O 扩展插座上,所有的选通地址都来自实验平台上的74LS138地址译码电路。电路每个行的选通信号都加有三极管驱动,以增加电流的驱动能力。行扫描码锁存器的选通地址为70H,行各行选通码为:00H~0FH 。点阵码式16位的,因此需要2个8位的行码锁存器,分别控制字符的左右字型码。其地址分别为71H(左)和72H (右)。如下图所示。

字型右行码锁存器

行扫描码锁存器

LED点阵显示器接口电路图

本设计共用到三个端口地址:

70H:输出口,行扫描码锁存器地址。

71H:输出口,字形行码左锁存器地址。

72H:输出口,字形行码右锁存器地址。

5.字库原理

LED点阵显示的原理和过程都很简单,只是输入每个字符的显示点阵码很繁琐。多字符的显示采用的方法是读字库,查出显示字的点阵码,再显示到显示屏上。

国标对汉字库(区位码字库)的结构作了统一的规定:将汉字库分为若干个区,每个区有94个汉字。每一个汉字在字库中有一个固定的区和位,即每一个汉字有一个区位码。知道了区位码也就相当于知道了汉字在字库中的位置。由于汉字的内码与区位码有一定的关系,所以,只要通过内码就可以得到区位码,从而也就得到了汉字的字模。

由于计算机对西文字符采用一个字节表示,汉字用二个字节(GBK内码)表示。为了保证中西文兼容,因此规定每个字节只用七位,若两个字节的最高位均为1,则该字符为汉字。即计算机中的数字和一些特殊符号按ASCⅡ编码方式,汉字和一些符号是GBK内码编码方式来表示。而点阵显示字库是按区位编码方式排列。因此,读字库之前,要完成ASCⅡ编码与区位编码的转换和GBK内码编码与区位编码之间的转换

6.UCDOS 16点字库文件(HZK16j)

本设计是读 UCDOS 16点字库文件(HZK16j)。字库中的汉字按共阳极16×16点阵模式存储,即每个汉字由16×16=256个点组成,占用16×2=32个连续的字节单元。字节的每一位(bit)表示一个点的属性:1表示亮点,0表示暗点。字符点阵是按照汉字区位码排列的,连续的两个字节表示该汉字字模的一行。

(1)GBK内码与相应区位码的转换

汉字的内码从一些图形字符开始,起始编码为 A1A1H;汉字内码第一位为区码,每区为94 个汉字,第二位为位码。汉字点阵数据在字库中的偏移量为:

((区码-A1H)*94 + (位码-A1H))*32L

由此可编辑偏移量的源代码为:

inter_code.ed[0]=character[count];

count++;

inter_code.ed[1]=character[count];

point_quwei=inter_code.ed;

wei=((point_quwei & 0xff00) >>8 )- 0xa1;

相关文档
最新文档