既然使用LED点阵显示屏能显示英文的字形,当然也能显示汉字的字形,但是由于汉字的写法比较复杂,用8×8LED点阵显示屏无法表达复杂汉字的细节,所以在一般应用中都用16×16LED点阵显示屏来记录一个汉字的字形。例如,“中”字的字形如图13-15所示。
图13-15 “中”字的点阵显示
图13-15中的黑色点为字形点,灰色点为未用点。若用1表示字形点,用0表示未用点,即可得到“中”的二进制字形码。将其二进制编码以字节为单位,用十六进制形式按从左到右、从上到下的顺序记录下来就得到了“中”的一种字形码。
0x01,0x00,0x01,0x00,0x21,0x08,0x3F,0xFC,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,
0x21,0x08,0x3F,0xF8,0x21,0x08,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00
若想得到其他汉字的字形,也可以使用软件“字模提取V2.1”来生成。
软件在光盘位置:“\Example\Chapter13\字模提取软件\ZIMO21.EXE”。
根据图13-15可知,要显示“中”的字形需要16×16点阵,所以还需要实现对4块8×8LED点阵显示屏的控制。一种常见的连接逻辑如图13-16所示。
图13-16 16×16LED点阵显示屏连接原理图
其中,H0~H15是行选择信号,L0~L15是列数据信号。这样就可以通过扫描法来显示一个汉字了。但是这样就需要32个I/O引脚,而单片机的引脚个数往往十分有限。为了节省I/O引脚资源,在实际项目中不会采用I/O引脚直接扫描的办法,而是通过外接逻辑电路芯片来减少I/O引脚的使用。一般是用译码器芯片实现行选择信号的输入,用移位寄存器芯片实现列信号的输入。下面分别介绍行信号和列信号的产生原理。(www.daowen.com)
可以用两片74HC138实现行选择信号的控制,如图13-17所示。两片74HC138构成了4-16译码器输出16位行选择信号H0:H15。其原理如下。
●当DB3为0时,U10有效,由DB0:DB2决定H0~H7某一位为0,其他位为1,此时U14无效,输出全为1。
●当DB3为1时,U10无效,输出全为1;U14有效,由DB0:DB2决定H8~H15某一位为0,其他位为1。
这样就构成了4-16译码器。CS_N为两片74HC138的公共片选端,低电平有效。
图13-16中的列信号L0:L15可以通过两片74HC595级联进行扩展。其连接方法如图13-18所示。其级联方法是U0的Q7'与U1的DS相连,Q7'是74HC595的最高位移位溢出值。当U0的数据移位溢出时,会在同步移位时钟的驱动下输入到U1中继续移位。这样就用两片74HC595构成了16位的移位寄存器,但两片74HC595的控制信号没有变化,还是用SH_CP(移位时钟脉冲信号)、DS(串行数据信号)和ST_CP(锁存时钟脉冲信号)来控制。这种方式可以扩展到3片、4片,乃至更多。由于数字电路的电流小,级联能力有限,接更多74HC595芯片时需要在适当位置加入级联驱动电路(一般用74HC245),但可以看出这种外加移位芯片的方式极大地节省了单片机的I/O引脚资源并且有利于扩展。
图13-17 用两片74HC138构成4—16译码器原理图
图13-18 两片74HC595级联原理图
下面通过实例来学习如何在以上的驱动方式下显示汉字。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。