基于软件开发的LED显示控制系统

当前位置 : 主页 > 万年历 >
基于软件开发的LED显示控制系统
* 来源 :http://www.ama-electronics.com * 作者 : * 发表时间 : 2017-10-26 09:03 * 浏览 :

  控制系统设计是采用单片机AT89C51作为主控制器,采用LED行列阵显示及键盘同步中断请求显示的2种模式,实现串口通信并进行2种模式下的切换控制。系统成功地实现对I/O口通道控制以及键盘的中断请求等功能控制。系统仿真的搭建是基于Vision 3软件在联合开发平台中调试完成的。在调试的过程中,可以从多个方面直接观察程序运行情况和电工作分析,简化了理论程序和设计实验等过程,大大减少了代码的开发周期,降低了硬件成本。

  KeilVision 3是美国Keil SOFtware公司出品的C51系列兼容单片机C语言软件开发系统,其生成目标代码的效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。

  Proteus是英国Labcenter electonICs公司研发的电子设计自动化(EDA)系统,主要由ISIS电设计与仿真平台、Peospite模/数混合仿真器、VSM单片机/嵌入式系统协同仿真和ARES PCB设计构成。在编译调试方面,支持Keil Vision 3和MPLAB等第三方开发工具。

  LED显示控制系统设计由系统原理设计、系统代码开发、硬件电模拟仿真、软硬件联合调试、实物移植等组成。其中,代码开发仿真模拟通过Proteus软件与Keil Vision 3软件之间相互联合仿真进行设计。系统开发设计框架如图1所示。

  系统硬件由单片机AT89C51系统和行列阵LED显示模块、上位机、串行显示键盘模块、晶振电和存储器模块等构成。系统硬件结构如图2所示。

  硬件模块主要完成的功能有:显示屏的驱动,是通过与上位机间的串口通信接收文件信息并保存,通过行列驱动器控制完成LED的驱动。串行显示键盘,为实现键盘输入与显示屏输出实现同步,进行串口输出模式切换,完成对LED的驱动,但由于系统中并行口的I/O资源不够,而串行口又没有其他作用,通过用数据锁存模块74LS164来扩展并行I/O口,节约单片机资源。将AT89C51串行通信口输出的串行数据译码在其并口线上输出,将显示的数据直接送串口发送缓冲器,等待串行中断即可。

  显示部分采用动态扫描方式,实现汉字、图像、数字字符等数据信息的控制以及显示等功能。采用行扫描方式,当选通第1行LED点阵时,对应列数据,由于74HC595器件的特殊性,通过将每个器件的串行数据输入引脚14与下一个器件的串行数据输出引脚9级联,可以把需要显示的数据信息依次存入74HC595器件内,通过其锁存器功能将数据锁存,待40列数据都存入74HC595器件内时,把输出有效引脚13置为低电平,则40列数据一起输出,达到一行显示的效果。依次类推,实现整个显示屏的显示功能。

  该模块用于与人机交互和显示,行列式键盘即矩阵式键盘,由行和列组成,在每个行列的交叉点上放置一个按键。包括8只控制LED的位驱动晶体管,控制数码显示的数据由控制灯亮灭信号和控制位显示的控制信号两部分组成。

  串口接口通过RS 232实现上位机与单片机传输信息。当模块进入串行传输方式,上位机通过同步时钟线SCLK和串行数据线完成数据的传输。在AT89C51片选引脚CS为高电平时,主机时钟线上的时钟信号才能被液晶显示模块接受,当引脚CS为低电平时,显示模块内部寄存器将被复位,即终止数据传输。

  整个系统软件设计语言采用C语言,进行中断控制,其中代码开发编写测试则通过Keil Vision 3软件与Proteus软件之间完成。

  由仿真结果表明,在该模式开发下,有利于各个环节参数变量的调节设定,使得系统软件开发更加容易实现,大大提高了代码开发周期和进度,简化了开发流程。