基于STC89C55RD+单片机的LED点阵显示系统的设计

发布者:代码律动最新更新时间:2011-09-26 关键字:STC89C55RD  LED点阵显示 手机看文章 扫描二维码
随时随地手机看文章

  1 引言

  在车站、商场、学校等一些需要发布多变的实时信息或进行广告宣传的场所,黑板、纸张或是霓虹灯广告牌这些传统的媒介手段,不论是在显示效果还是可修改性上都已无法满足当前的需求。而 LED点阵显示屏具有耗电省、成本低、寿命长、占用空间小以及能够实时显示等特点,而且显示内容的信息量大,用户可随时任意自行编辑修改显示内容,因此,近年来已得到了广泛应用。

  2 总体设计

  系统采用了上位机——下位机的结构构建,上位机为 PC机,通过串行通信接口与下位机显示系统进行通信[1],以实现对显示内容的实时擦除、更新等操作;下位机系统主要包括单片机控制电路和显示电路两部分,汉字显示采用 16x16点阵模式,通过单片机的控制,实现字符从右往左滚动的动态显示效果。基本框图如图 1所示。


  3 系统的硬件结构

  3.1 MCU的选择

  MCU是整个下位机系统的核心部件,其性能和片内资源很大程度上决定了该系统工作的灵活性、先进性和稳定性。基于此,本系统选用了 STC公司生产的 STC89C55RD+增强型 51单片机。

  STC89C55RD+单片机的指令系统、硬件结构以及片内资源与标准8052单片机完全兼容,采用DIP40封装形式;支持的最高时钟频率为80M,能最大限度地提高MCU的运行速度;片内包含大容量的20KBFLASH程序存储器和1KB的数据存储器,其内部可用Data FLASH达58个扇区共29KB;具有在系统可编程(ISP)功能和在应用可编程(IAP)功能,可实现远程软件升级,无需编程器,从而大大缩短开发复杂度,同时可节省购买编程器的额外投入。

  3.2 串行通信

  系统上位机和下位机通过串行通信接口进行联系。 STC89C55RD+单片机内部含有一个可编程的全双工串行通信接口,即 RXD(P3.0)和TXD(P3.1),具有 UART的全部功能,该接口电路能同时进行数据发送和接收。一般情况下只要通过RXD、TXD和GND三根线就可以实现与上位机PC的串行通信,根据通信距离的远近,可以选择RS232或RS485通信方式,由于本系统中显示屏控制电路与上位机PC的距离较近,故选用了RS-232标准总线接口。具体电路图如图2所示。


  3.3 驱动及扫描电路

  LED点阵选用8x8模块,每 4块排列成一个16x16的点阵,用于显示一个汉字。点阵每一行的所有LED共阴极,每一列的所有LED共阳极。

  因为单片机I/O口的驱动能力有限,所以每一行LED阴极通过一个三极管8550与电源相连,I/O口仅需要提供几个毫安的灌入电流即可控制其通断。考虑到本系统可以同时显示六个汉字,故每一列 LED的阳极都通过一个限流电阻和一个三极管8550与电源相连,当六个汉字的同一行汉字字模(即12个字节)通过锁存器74HC377并行送出后,由移位寄存器 74HC595输出行选通信号,来点亮该行的LED,接着再送下一行数据,再选中下一行有效,直到16行全被扫描过一遍。至此,一幅完整的文字信息就显现出来,然后按这种方式反复扫描,借助于程序的控制,即可实现信息从右至左的动态显示了。具体电路图如图3所示。


  该系统的软件主要实现的功能包括:上位机信息(或命令)的发送和下位机点阵显示内容及方式的控制两部分。

  4.1上位机软件

  上位机信息(或命令)的发送使用普通的字模提取软件和串口调试软件即可,在与下位机进行通信时,须保证双方具有相同的数据格式和波特率,本设计采用 RS232通信,波特率为9600bit/s。同时,制定了上下位机之间的通信协议,信息包格式如图4所示。


  4.2下位机软件

  LED点阵的显示内容及方式主要由单片机的程序进行控制。程序采用模块化结构,主要包括有主程序、串口中断服务子程序以及扫描显示子程序等。

  (1)主程序为顺序结构,主要完成系统对 I/O口和一些变量的初始化,定时器初始值、串行通信工作方式、以及波特率的设置[2],然后循环调用扫描显示子程序,显示原来Data FLASH区中已存在的汉字信息。

  (2)串口中断服务子程序采用接收中断启动[3],主要负责接收来自上位机 PC发送的信息,包括欲显示的内容以及命令字节,并根据命令完成相应的信息写入、擦除等操作,最后开中断返回主程序。其流程图入图5所示。


  其中信息的写入、擦除等操作主要由单片机的IAP功能来完成。 IAP,即在应用可编程,是指在程序运行时程序存储器可由程序自身进行擦写。通过IAP功能的相关指令,既可以将 欲显示的数据写入到程序存储器指定的扇区中,也可以根据需要擦除相应扇区中的数据。这样,数据就如同烧入的程序一样,掉电不会丢失。当然写入数据的区域与程序存储区是分开的,以使程序不会遭到破坏。

  (3)扫描显示子程序则负责从显示缓冲区取出字模,输出行选通信号和列扫描信号,进行动态扫描显示。

  5 结束语

  本点阵显示系统无需外扩程序存储器和数据存储器,通过STC89C55RD+单片机的IAP功能实现信息的实时发布和更新。该系统外形美观、工作稳定、字符清晰且字体可自由设定,现已实际应用于我院作为信息发布的主要平台。另外,可对系统稍加改进,便可实现通过一台计算机来控制多块显示屏,以适应不同场所、不同时间显示不同信息的需要。如果在该系统的基础上添加无线通讯模块[4],就可以开发出基于无线数据传输的 LED显示系统。

  本文作者创新点:该系统电路结构简单,没有外扩程序存储器和数据存储器,充分发挥了STC89C55RD+单片机的IAP功能,利用软件实现了信息的随时发布和更新

关键字:STC89C55RD  LED点阵显示 引用地址:基于STC89C55RD+单片机的LED点阵显示系统的设计

上一篇:采用VB软件与AT89S51单片机的温度测控系统设计
下一篇:C51跟atmega64的串行通信及PROTEUS仿真设计

推荐阅读最新更新时间:2024-03-16 12:42

用STC12C5A60S2直驱一个16*16LED点阵显示
看到51hei的坛子有坛友做的16X16LED汉字显示屏,作为生日礼物表情意,我也想着做一个!以满足动手爱好! 用AT89C52的,驱动电路复杂得不得了,32个三极管,32个电阻啊!焊得头到晕啊!还要个4-16译码电路!!!!!! 幸好有爱情的力量,为那个哥们辛苦为感动! 我呢,有STC12C5A60S2这个单片机的 神器 ,比AVR的还好.价不贵,才7元/片!有AD,PWM,端口四态,可最大驱动20MA电流!60KB的程序FLASH ROM.爽YY啊.一个简单电路就可以做成16X16的LED了. 8X8的双色是我2元/片淘来的!只用到了红色的! 电路简洁无比,就是一个单片机,四片8*8LED点阵,一个12M晶振
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved