个P口输出列码(行数据,行数据为将列数据的点阵旋转90度的数据),决定该行上哪个LED亮(相当于段码)。能亮的行从上到下扫描完16行(相当于位码循环移动16次)即显示一个完整图像。
以8×8点阵模块为例显示字符“B”的过程如图4所示:
图4字符B
动态扫描以16×16 LED为例:
(1) 卷帘输出:在16×16点阵屏中,我们可以把点阵屏看成16行LED组成,且每行有16个LED灯。首先显示的是左上角的第一行的左半部分进行扫描,左边第一行完成后,继续扫描右边的第一行,接着再显示第二行左边部分,后右边部分,依次类推继续进行下面的扫描,一共扫描32个8位,可以得出汉字最终点阵屏在视觉上的显示效果是字卷帘出现。
(2) 上移输出:在16×16点阵屏中,我们可以把点阵屏看成16行LED组成,且每行有16个LED灯。首先将第二行的显示信息给第一行,使第一行显示图像变成第二行所要显示,接着将第一行的信息给第十六行,第三行的信息给第二行,第四行的信息给第三行,依此类推,继续进行下面的扫描最终点阵屏在视觉上的显示效果是字慢慢往上移出现。
(3) 左移输出:在16×16点阵屏中,我们可以把点阵屏看成16行LED组成,且每行有16个LED灯。首先将第二列的显示信息给第一列,使第一行显示图像变成第二行所要显示的内容,接着将第一列的信息给第十六列,第三列的信息给第二列,第四列的信息给第三列,依此类推,继续进行下面的扫描最终点阵屏在视觉上的显示效果是字慢慢往左移出现。
5
3总体设计
3.1 方案选择 3.1.1 主控单元的选择
方案一:以FPGA(复杂可编程逻辑门阵列)为控制器的LED显示屏。FPGA以高速、并行著称。是近年来新兴的可编程逻辑器件。用他作为LED显示屏的控制器,能够高速的处理色阶PWM信号、高速的完成动态扫描逻辑、高速的完成字符移动算法。因此被运用于双基色、三基色的显示系统。但是其成本较高,开发难度较大。
方案二:以PC机与单片机通信控制显示屏。PC机承担主控任务,通过上位软件可进行在线修改显示内容、参数和显示方式。同时PC机能向单片机传送显示内容,下位机按接收到的指令工作。如果主控机发出错误的指令,将不做任何控制,并显示Error提示,1秒钟后自动返回。这种方案简便灵活,对于大的显示屏简单实用,但是PC机的成本较高,语言设计要精通等多种要求。
方案三:以传统8051单片机为控制器的LED显示屏。采用Flash ROM,内部具有4KB ROM 存储空间,可多次擦写,而且与MCS-51系列单片机完全兼容。而且8051单片机具有价格低、变成灵活和布线简单等特点,降低了整个系统的成本,而且支持在线编程,缩短了开发周期。
所以 该控制系统采用第三种方案。 3.1.2 扫描方式选择
方案一:静态显示,所谓的静态显示就是对LED电子显示屏中的每一像素点都通过硬件单独控制,整个LED显示屏所有的LED的同时显示。此方式最大优点是程序设计简单,且画面无闪烁。但这种设计存在致命的缺点:电路复杂,硬件利用率低,浪费单片机的端口。16?16的点阵共有256个发光二极管,单片机没有那么多的端口,如果用锁存器来扩展端口,按8位锁存器来计算,也需要32个锁存器。两位显示就需要64个锁存器。所以此方式一般不被采用。
方案二:采用动态扫描,所谓的动态扫描是利用人眼的视觉暂留特点而实现的一种显示方法,即当刷新速率足够高时,人眼就察觉不出显示屏画面更迭的闪烁,成本不是很高,此次设计是16?16点阵显示,采用动态显示,扫描电路就可以实现多行的同名列共用一套驱动器而且充分利用了单片机的I/O口[4]。
6
3.1.3 扫描芯片的选择
74LS138 为3 -8 线译码器,当一个选通端(G1)为高电平,另两个选通端(/(G2)和(G2)为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。利用G1、G2、G3可级成多线译码器。对于16?16LED点阵需要两块级联。
74LS154为4 线-16 线译码器 ,当选通端(G1、G2)均为低电平时,可将地址端(ABCD)的二进制编码在一个对应的输出端,以低电平译出。对于16?16LED点阵只需一块芯片。
根据电路图硬件少,连线少,占用面积小,成本低等特点所以采用74LS154扫描芯片。 3.2 设计思路
本设计采用四块8×8 LED组成的16×16点阵显示屏,采用动态逐列扫描法,利用74HC595作为驱动电路,74LS154译码器扫描,软件设计左移、上移、卷屏等显示“延安大学西安创新学院”。
如果对16×16 点阵显示进行扩展只需对74HC595和74LS154进行级联就可。 3.3 总体框图
16×16点阵显示屏以单片机为控制核心,进行行列扫描显示的总体框图如图5所示:
时钟电路
复位电路 单片机 行扫描电路 16×16点阵 列扫描电路 图5总体框图
7
4 芯片介绍和各系统设计
4.1 芯片介绍
4.1.1 AT89C51单片机介绍
AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含有4K bytes的可反复擦写的只读程序存储器和128的随机存取数据存储器,器件采用AEMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和FLASH存储单元,功能强大,可灵活应用于各种控制领域[3]。图6为AT89C51外部引脚图。
图6 AT89C51引脚图
AT89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或 输入。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
8
相关推荐: