基于单片机的LED显示系统的设计
2017-07-12兰聪花
兰聪花
摘要:根据字模提取原理,以单片机为核心,设计了一款16*64LED点阵显示屏系统。系统通过VB软件设计用户界面,用户通过上位机实现汉字字模的提取和显示方式的选择;上位机通过串口RS-232接口建立与单片机的通信;行译码器74HC154以低电平选通点阵的某一行;列译码器74HC595传送给该行16字节的数据,从而實现了点阵屏显示内容的更新。
关键词:单片机;LED显示屏;上位机;汉字字模;串口通信
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2017)13-0218-02
LED显示屏自20世纪90年代兴起以来,在各个领域得到了广泛的应用,成为了重要的信息显示传播媒体。它由数量不定的发光二极管按一定规则排列组成,可以通过一定的编程实现汉字、图形的静态和动态显示。本文设计一个以单片机为核心,上位机更新点阵内容和显示方式的16*64LED点阵显示屏系统。
1系统总体设计
系统采用上位机向单片机发送控制命令和上位机所提取的字模,单片机通过串口通信接收并处理上位机传输的信息,并由显示驱动模块驱动一个16*64的LED点阵显示屏进行动态扫描,从而实现点阵显示字符图像,如图1所示。
实现的功能如下:
1)点阵屏并排显示4个汉字;2)点阵屏上、下、左、右移动的动态显示;3)按键控制移动方式;4)上位机和单片机通信;5)上位机更新点阵显示内容;6)上位机控制点阵屏的移动方式和移动速度。
2系统核心模块设计
本设计的硬件电路包括单片机最小系统电路、按键电路、LED点阵屏的驱动电路和串口通信电路。驱动电路驱动LED点阵屏显示四个汉字,一个汉字占据一个16"16的点阵屏,上位机通过串口发送字模数据和控制命令到下位机(单片机)中,单片机相应的发出行、列控制信号,逐行扫描显示完成。
2.1行列驱动模块设计
在设计中使用74HC154作行译码器,74HC595被用作列译码器,共用到了8个74HC595芯片,它们之间进行串联,相邻两片74HC595就选定一片16*16点阵的每一列。
当75HC154选通点阵屏中的任何一行为低电平,那么这一行的列如果有高电平输人,它所对应的二极管将会导通点亮。按照这种扫描原理,扫描完8行,就可以显示出相应的行字图像。74HC154译码器在本设计中主要工作是在经过极短的时间去自上而下的依次选通显示屏16行,给以该行低电平,配合列译码器的列扫描,使得点阵屏显示内容。74HC595芯片是8位串行输入/输出的芯片,单片机发送汉字字模的一个8位数据到译码器寄存器中,从SH_CP每输入一位数据,进位标志位CY有效一次,直到八位数据输入结束,输出时钟上升沿有效一次。这时,输入的数据就被送到了74HC595存储器中。ST_CP上升沿有效一次,发送一位数据到输出端口,直到八位数据输入完毕,输出时钟上升沿有效一次,此时,输入的数据就被送到了输出端,原数据位数从高到低分别对应的接口是Q7-Q0,遵循先进后出的原则。
2.2汉字字模的提取
在计算机中所有的数据都是以0和1存储的,提取的汉字字模其实就是一些二进制数据。计算机要显示汉字,第一步需得到汉字的内码,以16进制数存储;第二步是由内码计算得出汉字的区位码;第三步由区位码得到汉字点阵的真实位置;第四步就是按点阵显示的信息得到汉字的字模。取汉字字模的关键是得到汉字的区位码。对于不同的字库,汉字代码起始位置的计算方法不同,但只要找到汉字代码的起始位置,利用区位码就可以正确提取汉字点阵信息。
本设计中的每个汉字将显示在16*16的点阵屏上显示,所以得到汉字的字模为32字节,调用字库,获取汉字的区位码才可以得到相应的汉字字模数,程序设计就是获取区位码的过程。汉字字模的提取经历汉字字数的统计存储、字库调用等过程。
字模提取的算法思想:第一步是将文本框输入的字去除空格和英文字符后存储到数组中,获取文本框中字(包括汉字和西文字符、空格等)的个数,利用字库中汉字的ASCIL码小于0,即最高位为1这一特点,得到汉字的个数,然后定义各个数组将这些汉字存储到数组中;第二步是调用字库,获取首地址,得到汉字的字模。在本地存储中找到汉字字库文件,以二进制打开字库文件,获取字库文件的长度(以字节计算),重新定义存放字库数组的长度,将整个汉字存入数组中,并关闭,以防止发生错误;接着就是一个一个汉字的提取字模了,即获取汉字的区位码,判断区位码是否为四位,汉字的区位码为四位,从而获取汉字在字库中的地址,每个汉字32字节,将点阵数据存人数组。
3结束语
本文主要介绍了一个基于单片机16*64显示屏系统的设计,LED显示屏能够并排显示4个汉字,通过按键可以实现显示内容向上、下、左、右的移动效果,而且用户通过上位机就可以更新LED点阵显示的内容和显示方式,使用方便,易于操作和扩展,更新点阵内容方便。