基于软件开发的LED显示控制系统
LED显示控制系统设计是采用单片机AT89C51作为主控制器,采用LED行列阵显示及键盘同步中断请求显示的2种模式,实现串口通信并进行2种模式下的切换控制。系统成功地实现对I/O口通道控制以及键盘的中断请求等功能控制。系统仿真环境的搭建是基于Proteus与Keil μVision 3软件在联合开发平台中调试完成的。在调试的过程中,可以从多个方面直接观察程序运行情况和电路工作分析,简化了理论程序和设计实验等过程,大大减少了代码的开发周期,降低了硬件成本。 1 Keil μVision 3与protues简介 Keil μVision 3是美国Keil SOFtware公司出品的C51系列兼容单片机C语言软件开发系统,其生成目标代码的效率非常高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 Proteus是英国Labcenter electonICs公司研发的电子设计自动化(EDA)系统,主要由ISIS电路设计与仿真平台、Peospite模/数混合仿真器、VSM单片机/嵌入式系统协同仿真和ARES PCB设计构成。在编译调试方面,支持Keil μVision 3和MPLAB等第三方开发工具。 2 系统设计 2.1 系统开发框架 LED显示控制系统设计由系统原理设计、系统代码开发、硬件电路模拟仿真、软硬件联合调试、实物移植等组成。其中,代码开发仿真模拟通过Proteus软件与Keil μVision 3软件之间相互联合仿真进行设计。系统开发设计框架如图1所示。 2.2 硬件结构设计 系统硬件由单片机AT89C51系统和行列阵LED显示模块、上位机、串行显示键盘模块、晶振电路和存储器模块等构成。系统硬件结构如图2所示。 硬件模块主要完成的功能有:显示屏的驱动,是通过与上位机间的串口通信接收文件信息并保存,通过行列驱动器控制完成LED的驱动。串行显示键盘,为实现键盘输入与显示屏输出实现同步,进行串口输出模式切换,完成对LED的驱动,但由于系统中并行口的I/O资源不够,而串行口又没有其他作用,通过用数据锁存模块74LS164来扩展并行I/O口,节约单片机资源。将AT89C51串行通信口输出的串行数据译码在其并口线上输出,将显示的数据直接送串口发送缓冲器,等待串行中断即可。 2.2.1 LED显示模块 显示部分采用动态扫描方式,实现汉字、图像、数字字符等数据信息的控制以及显示等功能。采用行扫描方式,当选通第1行LED点阵时,对应列数据,由于74HC595器件的特殊性,通过将每个器件的串行数据输入引脚14与下一个器件的串行数据输出引脚9级联,可以把需要显示的数据信息依次存入74HC595器件内,通过其锁存器功能将数据锁存,待40列数据都存入74HC595器件内时,把输出有效引脚13置为低电平,则40列数据一起输出,达到一行显示的效果。依次类推,实现整个显示屏的显示功能。 2.2.2 串行显示键盘 该模块用于与人机交互和显示,行列式键盘即矩阵式键盘,由行和列组成,在每个行列的交叉点上放置一个按键。包括8只控制LED的位驱动晶体管,控制数码显示的数据由控制灯亮灭信号和控制位显示的控制信号两部分组成。 2.2.3 串口通信 串口接口通过RS 232实现上位机与单片机传输信息。当模块进入串行传输方式,上位机通过同步时钟线SCLK和串行数据线完成数据的传输。在AT89C51片选引脚CS为高电平时,主机时钟线上的时钟信号才能被液晶显示模块接受,当引脚CS为低电平时,显示模块内部寄存器将被复位,即终止数据传输。 2.3 软件设计 整个系统软件设计语言采用C语言,进行中断控制,其中代码开发编写测试则通过Keil μVision 3软件与Proteus软件之间完成。 软件实现代码流程如图3所示。 由于软件开发代码复杂,现给出键盘输入程序部分代码如下:
3 Proteus与Keil软件的联调设置 系统采用Keil μVision 3与Proteus联调的方式来实现。首先需要安装Keil驱动软件vDMAgdi.exe,然后Keil目录下的bin中的VDM51. dll拷贝到Proteus下面的bin中,打开Keil UVision 3软件,创建项目,并单击option for targetl,在打开对话框,选择output选项卡,在creat hex file前面打勾,以便产生HEX文件,同时在debug选项卡中选择proteus vsmsimulator,将Keil生成。HEX文件如图4所示。 在Proteus软件中,双击AT89C51单片机,在其属性下面的Program file中加载由Keil μVision 3产生的。HEX文件,然后点击ok退出,同时在debug菜单下面选择use remote debug monitor,这样就完成了Proteus与Keil的联调准备工作如图5所示。 4 结语 由仿真结果表明,在该模式开发环境下,有利于各个环节参数变量的调节设定,使得系统软件开发更加容易实现,大大提高了代码开发周期和进度,简化了开发流程。 |