目前常见的电子指示牌大多为静态型的(如马路路牌、宾馆或医院里的禁止吸烟牌等),有些还没有发光功能,夜晚或光线暗淡的环境下人们就看不到了。最重要的是,静态型指示牌的信息容量非常有限,仅能显示简单的图案或几个字符。本文介绍的“汉字点阵滚动指示牌”,设计先进,显示活泼,可动态滚动显示多达40个字符或图案(使用单片机AT89C2051),若将单片机型号改为AT89C4051,则显示的字符数将超过100个。
读者通过实际制作调试,可以通过本文学会利用单片机进行汉字点阵的扫描显示及控制的基本知识。
电路原理
汉字点阵指示牌电路见图1,这里为两个汉字的显示电路。

IC1~IC8(74HC595)为带锁存的8位串入并出移位寄存器,它们负责将单片机(AT89C2051)发送的串行数据转换为并行数据,并驱动点阵发光管的列线X1~X16。图1中仅画出一个汉字的点阵屏,由4个8×8点阵管LED2088BX(LED1~LED4)构成,行线为Y1~Y16,列线为X1~X16。另一个汉字的点阵屏构成也一样,只是行线为Y1~Y16,列线为X33~X64。
IC12为单片机控制器,负责发送数据点亮点阵屏并控制汉字左移滚动。IC12的OSER、OSCLK、ORCLK用于将列扫描数据串行输出,通过74HC595进行高速串-并转换。而IC12的OIA~OID则为四位行数据线输出,经IC9、IC10(两个3-8线译码器74HC138构成一个4-16线译码器)译码后驱动VT1~VT16共16个PNP大功率管作行驱动。
IC12的KEY1~KEY3端可外接三个功能按键,进行一些应用中的功能选择。由于我们这里仅将此系统作为一个汉字滚动指示牌使用,因此并未使用这些按键。
实际使用时若觉得两个字的指示牌不够长,也可从级连控制信号输出口进行扩展,如扩展成4个字或6个字的汉字指示牌等。
图2为74HC595的逻辑结构图。74HC595由一个8位串行移位寄存器和一个带3态并行输出的8位D型锁存器所构成。该移位寄存器接收串行数据并提供串行输出,同时移位寄存器还向8位锁存器提供并行数据。移位寄存器和锁存器具有单独的时钟输入端。该器件还有一个用于移位寄存器的异步复位端。
74HC595的引脚功能说明:14脚为串行数据输入端; 11脚为移位时钟输入端,该端在脉冲上升沿时使串行输入端的数据移入8位移位寄存器;10脚为复位端,低电平有效,该端的低电平仅使该器件的移位寄存器部分复位,8位锁存器不受影响;12脚为锁存时钟输入端,该输入端在脉冲上升沿时将移位寄存器数据锁存起来;13脚为输出允许端,该端为低电平时允许锁存器数据出现在输出端(QA~QH),该端为高电平时迫使输出端呈高阻态; 串行输出不受该控制端的影响;15脚、1~7脚为同相/三态/锁存输出端;9脚为同相/串行数据输出端,这是8位移位寄存器中的第8级的输出端,该端无三态能力。
软件设计思路及方案
编程思路为:1.先对相关变量进行初始化。2.循环扫描点亮16行LED(称点亮一帧图像)。3.一帧图像扫描完毕后,列指针向右移动1位,再扫描下一帧图像。为了控制汉字滚动的速度,有时候要对一帧图像扫描数次后才将列指针移位……依次类推,列指针共向右移动16位。这样,主观上感觉到图像向左滚(移)动。4.移动一个汉字(列指针右移16位)后,字指针指向下一个汉字。再重复2~4过程。这样,我们就能在显示屏上看到持续不断的滚动汉字信息了。

图3为主程序状态流程。完整的程序见本期配刊光盘。
汉字点阵码的生成需借助专用软件,这类软件网上很多,读者可自行搜索下载。这里笔者推荐一款Zimo21取字模软件供大家参考。该软件不仅可取汉字的字模,也可对图像取模,因此,我们的这个“汉字点阵指示牌”不仅可滚动显示汉字,也可显示动画图案,增添了显示的乐趣。该“汉字点阵指示牌”使用5V/1A的开关稳压电源供电。
文/周兴华