微 处 理 机
M I CROPROCESS ORS
嵌入式LE D 点阵汉字显示系统的驱动与编码
汪 建,张丽娟
(华中科技大学电气与电子工程学院,武汉430074)
摘 要:论述了一种小型嵌入式LE D 点阵显示系统的驱动电路和汉字编码方法;驱动电路采含水的成语
警察局简笔画用行驱动芯片74LS273和9013,列驱动芯片74LS374,结合寻址电路,对每个LE D 点动态驱动;显示程序采用行扫描,列顺序输出码值的方法,结合四段式汉字编码方法,无间断和延迟的在LED 阵上输出汉字。整个系统试验后运行稳定美观,功耗低,且有很大的扩展空间。
关键词:嵌入式系统;LE D 点阵;汉字显示系统;8098单片机中图分类号:TP368.1 文献标识码:B 文章编号:1002-2279(2007)01-0119-03
D riving and Co d ing o n Em bedded LED A rray C hine -C ha racte r D isp laying System
WANG J ian,ZHANG L i -juan
(College of Electrical and Electronic Engineering,Huazhong U niversity of Science and Technology,W uhan 430074,China )
Abstract:The driving circuit and a method of Chine character coding in an embedded LE D array dis p lay syste m are discusd in this paper .74LS273and 9013work as r ow driving chi p,and 74LS374works as line driving chi p;they work with the address -eking circuit,dyna m ically drive each LED dot;in dis p lay p r ogra m ,the app r oach of r ow -scanning,out put code in line order,with 4-g ment coding,dis p lay Chine character in a LE D array without pau and delay .The syste m runs steadily and aesthetically with l ow cost .It has r oom for extending functi ons .
Key words:E mbedded syste m;LE D array;Chine -Character D is p laying Syste m;8098single -chi p contr oller
1 引 言
LED 点阵显示系统基本原理是使用高亮度LED 发光管构成点阵,通过编程控制显示中英文字
符、图形及视频动态图形。LED 显示以其组构方式灵活、亮度高、成本低廉等特点在各种室内外显示
场
所得到广泛的应用[1]
邦的组词。目前使用的大规模点阵显示系统采用专用大规模集成电路和专业软件实现对汉字的显示,价格昂贵且不易精简使用或开发其它可扩展功能。因此一种可运用于小型嵌入式LE D 屏幕信息系统的研制对于实现用户灵活开发使用LED 点阵显示汉字具有重大意义。
显示字符的点阵数据可以自行编写,也可从标
耳石病准字库(如ASC16、HZ16)[2]
中提取。但不管是自己编写字库还是直接调用字库,都需要正确掌握汉字
的编码方法和寻址技巧[2]
。目前单片机和嵌入式系统初学者对LED 点阵显示的基本原理理解还不够深入,对其与单片机的接口和驱动等尚不很清楚。他们急切需要一个结构清晰、易于上手学习的LE D 点阵显示试验单元来巩固所学到的书本知识。
基于实际应用和教学的需要,设计了这个高效
可靠的基于8098单片机的汉字点阵式显示模块[3]
。一方面,用户可以自行编制汉字代码甚至组成字库来灵活显示所需要的语句;另一方面,可用于学生实验,使学生动手学习后深刻理解单片机对点阵式LE D 的控制原理,掌握文中所述的汉字编码方法,并同时提高搭制硬件电路的动手能力。
2 系统总述
使用4块L MM -2088AE 组成16×16点阵,以满足汉字显示的要求。点阵显示模块的列输入线接至内部LED 的阴极端,行输入线接至内部LED 的阳极端。若某行的阳极端输入高电平,某列的阴极端输入低电平,则对应该LED 点亮。发光点的分布如图1所示
。
图1 LMM -2088AE LE D 的发光点分布
汪建(1958-),男,湖北人,教授。主研方向:智能仪器,自动检测和控制,电工理论及新技术。收稿日期:2005-09-08
第1期2007年2月
No .1
Feb .,2007
微 处 理 机 如图2所示,本系统使用74LS374来控制列输
入线的电平值。将74LS374的某输出置0,则对应的LED 阴极端被置低;使用74LS273来控制行输入线,并通过9013提供电流驱动。将74LS273的某输出置1,则对应的LED 阳极端被置高。每次系统总清后,74LS273输出为全0,LED 熄灭。编程控制各显示点对应LE D 阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
图2 点阵汉字显示系统框图
3 地址译码电路
本实验模块为了方便的控制四个LMM2088AE 单元,使用了一片74LS139结合8253计数器,产生四个地址片选信号:CLKR1=CS LED,CLKR2=CS LE D +2,用于行控制的两片74LS273,分别接74LS139的4、5脚;CLKC1=CS LE D +4,CLKC2=CS LE D +6,用于列控制的两片74LS374,分别接74LS139的6、7脚,如图3所示
。
图3 地址译码电路
4 汉字的编码与显示程序模块
我国汉字数量繁多,构形迥异,给单片机控制显示系统带来了困难。目前一般采用软件字库法和字
库芯片法。这两种方法将单片机的软硬件进行扩展后可以显示更多的汉字,适用于大型的LED 显示系统
[4]
。然而,这两种方法如果应用于小型系统中,
必然会占用大量软硬件资源,给用户的维护和灵活利用带来了困难。
另一方面,任何字库的基础都是单个汉字的编码。研究一种简便适用的汉字编码方法,也为编制
大型的标准字库提供了坚实的基础。我们基于小型汉字显示系统的需要,开发出了一种美观、易于学习的16×16汉字编码方法。试验表明此编码方法非常适用于制作醒目的小型欢迎标语等,价格低廉,性能可靠。
我们采用的方法是:行扫描,列顺序输出码值。由于16×16点阵是由4块8×8点阵组成,所以我们理论上的一行或一列实际上是两块芯片一行或一列的合并。如果只为了程序逻辑上的简洁,码表就会编制的很紊乱,甚至会出现LE D 点亮的时间不一致的情况。为了解决这个问题我们使用了4段字码表,前两段是按列顺序分别输出左右两边的行码值,后两段是按行顺序分别输出上下两边的列码值。而程序中索引码值时则采用每次读取每段码值的一个值,这种方法保证了LE D 每一列点亮时间的一致,行顺
序上也因为相隔时间只有μs 级而人眼觉察不到不一致;另一方面,汉字码表的编制清晰明了,便于扩充字库。下面我们以汉字“华”为例来说明这种编码方法。
按左上、右上、左下、右下的顺序,分别以1、2、3、4标识这四块LMM -2088AE 。段码T ABR1按列顺序记录1、2两块的行码值,即上8行;段码T ABR2按列顺序记录3、4两块的行码值,即下8行;T ABR1和T ABR2这两段码都以高电平记录发光点段码,列顺序上的从左到右对应码值的高位到低位。T ABC1按行顺序记录1、3两块每列的码值,即左8列;T ABC2按行顺序记录2,4两块每列的码值,即右8列。T ABC1和T ABC2这两段码都以低
・021・2007年
汪建等:嵌入式LE D 点阵汉字显示系统的驱动与编码
电平记录发光点所在的行,行顺序上的从上到下对应码值的高位到低位。由于是按行顺序输出点阵,所以这两段字码对于任何汉字都是一样的,扩充字库时可重复使用。参考图4,下面是汉字“华”的编码:
忘记qq密码怎么办 T ABR1:DB #00H,#00H,#02H,#06H,#08H,
#3FH,#22H,#02H
DB #3FH,#05H,#09H,#11H,#01H,#00H,#00H,#00H
c语言学习心得
T ABR2:DB #00H,#00H,#20H,#20H,#20H,
#0A0H,#20H,#0F8H
DB #20H,#20H,#20H,#20H,#20H,#00H,#00H,#00H
T ABC1:DB #7FH,#0BFH,#0DFH,#0EFH,#
0F7H,#0F BH,#0F DH,#0FEH
DB #0FFH,#0FFH,#0FFH,#0FFH,#0FFH,#0FFH,#0FFH,#0FFH
T ABC2:DB #0FFH,#0FFH,#0FFH,#0FFH,#
战略沟通0FFH,#0FFH,#0FFH,#0FFH
DB #7FH,#0BFH,#0DFH,#0EFH,#0F7H,#0F BH,#0F DH,#0FEH
图4 汉字“华”的16×16显示
寻找码值时,程序采用的不是顺序读完一段码
值后再读下一段,而是每次读取每段的一个值,在一个循环中显示点阵的一行。图5
是显示模块软件流程和用MCS -96汇编语言编制的显示程序。土家
图5 显示模块程序流程图
ST ART:LD CX,#T ABR1;初始化
LD DX,#T ABR2 LD EX,#T ABC1 LD FX,#T ABC2
CD I SP:CLRB BH ;清除显示
LDB BL,#0FFH ST B BH,CLKR1[0] ST B BH,CLKR2[0] ST B BL,CLKC1[0] ST B BL,CLKC2[0]
SET_H:LDB AH,#10H ;设置循环次数LOOP:;“显示”程序段
ST B BL,CLKC1[0];将所有列置高,清除上一次扫描的显示,以免干扰 ST B BL,CLKC2[0]
LDB AL,[CX ]+;送第一行左八列的码值到74LS237
ST B AL,CLKR1[0]
LDB AL,[DX ]+;送第一行右八列的码值到74LS237
ST B AL,CLKR2[0]
LDB AL,[EX ]+;送第一列上八行的码值到74LS374
ST B AL,CLKC1[0]
LDB AL,[FX ]+;送第一列下八行的码值到74LS374
ST B AL,CLKC2[0] LCALL DE LAY ;延时 LCALL CD I SP2;清除显示 DJNZ AH,LOOP
以上只是举例说明了单个汉字的静态显示,本系统也可以实现多个汉字的动态显示,即在扩展的寻址空间内,依次把下一个要显示的汉字送入一个16×16点阵块,使几个汉字点阵保持“同速不同相”的显示,就可以灵活的实现用户所需的左移右移等功能。鉴于篇幅所限,在此不作详述。
5 结 论
对一种可靠、新颖、易于扩充开发的16×16LE D 点阵汉字显示系统的驱动与编码进行了论述。其驱动硬件结构清晰、功耗低、成本低;软件结构和汉字的编码新颖,占用存储空间少,可灵活扩充功能;整个显示系统在爱迪克8098实验开发系统上试验后运行可靠,显示清晰美观,此成果已制作成电路板用于单片机实验室的电子标语。
参考文献:[1] 阳进.基于单片机的LE D 显示屏的汉字显示[J ].中国
科技信息,2005(12):112-113.[2] 王保君.51单片机的13×14点阵缩码汉卡[J ].单片
机与嵌入式系统应用,2005(3):69-71.[3] 汪建等.MCS -96系列单片机原理与应用技术[M ].
武汉:华中科技大学出版社,2003.[4] 刘红,覃光华,汪道辉.基于不带字库的图形LCD 模块
汉字显示解决方案[J ].微计算机信息,2004(12):91-93.
・
121・ 1期