当前位置:文档之家› 范例五汉字点阵

范例五汉字点阵

范例五汉字点阵一.系统概述1.课题背景自上世纪90年代以来,随着LED显示屏的设计制造水平的不断提高,LED显示屏已经在生产和生活中大量使用,如今在证券交易所、飞机场、火车站、体育馆等公共场所LED显示屏随处可见。

现代社会是信息社会,LED显示屏作为视觉传播媒体的主要产品之一无疑会有更大的发展空间。

LED点阵显示屏按照显示的内容可以分为图文显示屏、图像显示屏和视频显示屏。

与图像显示屏相比,图文显示屏的特点就在于无论是单色还是彩色显示屏都没有颜色上的灰度差别,因此图文显示屏也就体现不出色彩的丰富性,而视频显示屏不仅能够显示运动、清晰和全彩色的图像,还能够播放电视和计算机信号。

虽然这三者有一些区别,但它们最基础的显示控制原理都是相似的。

2.设计思路考虑到用LED点阵显示汉字的时候,需要将汉字的字模提取出来。

考虑到成本问题,该设计中字模的解析由PC端完成。

而MCU方则负责将接受PC方发送过来的解析好的汉字,并将它显示出来。

二.硬件设计1.主要构成LED点阵条屏是由12个8*8的LED点阵块组成,形成16*48矩形点阵,可以显示16*16汉字3个。

以飞思卡尔的08系列单片机M68HC908JL8为控制核心。

显示屏的其他主要硬件有:①带锁存输出的8位移位寄存器74HC595,作为LED的列线驱动输入;②四六译码器74LS154,作为LED行线的译码选择;③三极管TIP127,连接四六译码器的十六个输出端,作为开关使用,驱动LED的行线④芯片MAX232起到与PC机进行通讯的作用。

具体的连接方式见图6-39所示。

JL8芯片使用的引脚如下:PA0-PA3与4-16译码器74LS154的输入口A、B、C、D相连接。

PB0-PB3与74HC595的输入口SI、SCK、RCK相连接。

PD6-PD7作为串口通信使用跟RxD、TxD相连接。

4-16译码器74LS154的16个输出端连接到16个三极管TIP127的基极B。

三极管的发射极E连接5V电源。

集电极C连接到三个汉字点阵的16个行控制端。

图6-39 连接框图点阵的48列数据线驱动由6片74HC595级联组成。

前一片74HC595的QH’引脚连接下一片的SI引脚,各片的SCK、RCK、SCLR、G引脚分别并联。

2.LED点阵块8*8的LED点阵为单色行共阳模块,单点的工作电压为正向(Vf)=1.8 v ,正向电流(IF)= 8-10 mA 。

静态点亮器件时(64点全亮)总电流为640mA,总电压为1.8 v,总功率为1.15 W。

动态时取决于扫描频率(1/8或1/16秒),单点瞬间电流可达80-160 mA。

16*16点阵静态时16*16*10mA,动态时单点电流80-160mA。

其具体接线方式如下:当某一行线打高时,某一列线为低时,其行列交叉的点就被点亮;某一列线为高时,其行列交叉的点为暗;当某一行线打低时,无论列线如何,对应这一行的点全部暗。

图6-40 点阵及引脚示意图图6-41 74HC595管脚图图6-40为共阳极的点阵模块,其具体引脚控制行列如下所示。

控制第五行显示接高9 控制第一行显示接高控制第七行显示接高10 控制第四列显示接低控制第二列显示接低11 控制第六列显示接低控制第三列显示接低12 控制第四行显示接高控制 第八行显示 接高 13 控制 第一列显示 接低 控制 第五列显示 接低 14 控制 第二行显示 接高 控制 第六行显示 接高 15 控制 第七列显示 接低 控制 第三行显示 接高 16 控制 第八列显示 接低3.移位寄存器74HC59574HC595是带锁存输出的8位移位寄存器,其管脚见图6-41,其中SI 是串行数据的输入端;VCC 、GND 分别为电源和地;RCK 是存储寄存器的输入时钟,SCK 是移位寄存器的输入时钟,SCLR 是移位寄存器的输入清除,QH ’是串入数据的输出,G 是对输入数据的输出使能控制,QA~QH 串入数据的并行输出。

从SI 口输入的数据在移位寄存器的SCK 脚上升沿的作用下输入到74HC595中,在RCK 脚的上升沿作用下将输入的数据锁存在74HC595中,当G 为低电平时时,数据并行输出。

SCLR 为移位寄存器的输入清除端。

74HC595与JL8的连接:SI 【14脚】,SCK 【11脚】,RCK 【12脚】分别接到JL8的B0【21脚】,B1【20脚】和B2【18脚】上。

图6-42 74LS154引脚图图6-43 主程序流程其他脚连接:G 【13脚】接地,使其始终输出;SCLR 【10脚】接+5V ,使输入数据永不清除;QH ’【9脚】是连接下一片74HC595的SI 脚;QA ,QB 到QH 分别连接到LED 点阵的1至8列的列线脚上,是第一列【13脚】,第二列【3脚】,第三列【4脚】,第四列【10脚】,第五列【6脚】,第六列【11脚】,第七列【15脚】,第八列【16脚】。

4.4-16译码器74LS15474LS154是一个4-16译码器,其管脚如图6-42所示。

A 、B 、C 、D 为译码器的输入端,值的范围从0000到1111,Y1~Y15是对应于A 、B 、C 、D 输入端输入译码后的输出引脚,其中被选中的线输出低电平,没有被选中的输出高电平。

1G 、2G 是使能端,只有输入相应D 低电平才能使译码器正常工作。

74LS154与JL8的连接:A 【23脚】,B 【22脚】,C 【21脚】,D 【20脚】分别接到JL8的A0【2脚】,A1【6脚】,A2【8脚】和A3【9脚】上。

其他脚连接:G1【18脚】,G2【19脚】接地,使芯片工作;Y1【1脚】~Y15【17脚】连接到电阻上;其中GND【12脚】,VCC【24脚】。

三.软件设计该设计中软件部分由MCU方和PC方组成。

MCU方主要负责数据的接收、存储和扫描显示三大功能。

而PC方则主要实现两大功能。

一是汉字字库的提取。

另一个是通过串口将提取的汉字发送到MCU,以便LED显示。

图6-44 串行中断程序流程图6-45 串行传送数据子程序1.MCU方主程序刚开机时主程序主要完成整个硬件系统的初始化,包括对CONFIG的初始化、堆栈初始化、I/O口的定义和初始化、串行口的定义和设置、擦写程序的初始化设置和默认显示时各个参数的设置。

主程序从上电一开始显示的是原来设置好的汉字,然后根据接收的数据,调用相应子程序显示,程序流程如图6-43所示2.串行通信程序每当向PC机方应用程序里输入新显示内容并发送给单片机时,单片机就产生串行中断,接收待显示的点阵数据。

进入中断后,首先关闭中断,防止接收数据出错,然后将收到的显示信息数据存入变量,接收到的点阵数据在反馈给PC机确认后依次写入指定FLASH空间内,同时根据标记位判断数据接收是否全部结束,最后开中断返回主程序。

程序流程如图6-44所示。

3.串行移动子程序设计这是一个通用子程序,在显示子程序中都要被调用,功能是移位寄存器74HC595接收单片机发出的点阵行数据,逐位移动到对应位置后再进行锁存和输出工作,同时对四六译码器进行开关工作,控制屏幕的显示,流程图如图6-45所示。

4.显示子程序设计静止显示是所有显示方式中最简单的一种。

在发送点阵数据给单片机时,根据已经制作好的显示屏的结构特征,即一屏能显示3个汉字,将汉字每3个分为一组,按组发送。

而单片机接收汉字时是将一组汉字按行的顺序存储后再按组依次存储下去,其存储的结构如图6-46所示。

显示时是将按组顺序存储的点阵数据,按行扫描依次取出,逐行点亮LED。

在一屏汉字显示完毕后,循环显示一段时间后,点阵地址偏移96个字节,接着显示下一屏数据,其流程图如图6-47所示。

5.汉字字库的提取(1)汉字的表示及编码原理计算机用编码的方式来处理和使用字符,英文在计算机机内是用一个ASCII码来表示,而中文汉字则由两个ASCII码表示。

1981年我国正式发布国家标准-—《信息交换用汉字编码字符集--基本集》[GB2312-80]。

在这个标准中共收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。

另外,GB2312规定“对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示”,GB2312将汉字分为94个区,每个区用一个区码表示;每个区又对应有94个汉字,用位码加以表示,因此也称为区位码。

01-09区为符号、数字区,16-87区为汉字区,10-15区、88-94区是有待进一步标准化的空白区。

GB2312还将收录的汉字分成两级:第一级是常用汉字计3755个,置于16-55区,按汉语拼音字母/笔形顺序排列;第二级汉字是次常用汉字计3008个,置于56-87区,按部首/笔画顺序排列,故而GB2312最多能表示6763个汉字。

图6-46 静止显示时FLASH中汉字字模的存储结构图6-47 静止显示子程序为了解决区位码与西文字符相混淆的问题,就规定汉字在计算机中用内码表示,内码为两个字节,而且为了保证中西文兼容,即与ASCII码的使用不发生冲突,所以汉字的两个字节的最高位均为1 。

所以汉字内码与区位码之间的关系公式为:机内码高位=区码+A0H;机内码低位=位码+A0H。

只要通过某个汉字的内码就可得到该汉字的区位码,也就得到了该汉字的字模。

在软件设计中选用了UCDOS 5.0汉字系统中的16×16点阵字库Hzk16作为提取汉字字模的标准字库,其中每个汉字占有32个字节的空间,汉字在字库中位置的计算公式为:Location = [(机内码高位-&HA1)×94 + (机内码低位-&HA1)]×32。

图6-48 汉字点阵的提取(2)提取汉字的软件设计及实现汉字点阵的提取程序是用VB实现的。

其中以何种方式从字库文件中读取这32个字节也是一个关键问题。

由于二进制(Binary)方式访问文件可以直接查看文件中指定的字节,而且二进制方式也是唯一支持用户到文件的任何位置读写任意长度数据的方法,因而以二进制方式打开汉字字库文件是最适合的。

而且程序也支持西文字符的显示,显示时也让其占用一个汉字的空间,不过它的点阵16x8的,所以不足部分就补零数据,流程图如图6-48所示。

6.与MCU方通信的实现在PC端编写串口收发程序时,可以使用MsComm控件。

MsComm控件的使用可以参考串口实验部分或其他相应参考书。

在具体的发送过程中,需要将显示类型,点阵数据等直接发送到单片机,但是由于单片机所能接收数据的缓冲空间有限,所以要分批发送,而且要对单片机反馈数据进行校验,防止传输出错。

四.小结在本设计方案中,汉字字库的提取是由PC端完成的,这样简化了MCU端所做的工作。

而MCU则负责接收并显示的任务。

相关主题