Applied Physics
Vol.4 No.04(2014), Article ID:13546,6 pages DOI:10.12677/APP.2014.44008

一种大屏LED智能显示屏的设计

Chenghui Yang1,2

1College of Electrical Engineering, Northwest University for Nationalities, Lanzhou

2School of Automation & Electrical Engineering, Lanzhou Jiao Tong University, Lanzhou

Email: yangchenghui36@163.com

Copyright © 2014 by author and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

Received: Apr. 8th, 2014; revised: Apr. 30th, 2014; accepted: May 7th, 2014

ABSTRACT

LED display is a new kind of information display media, which is a flat-type display screen consisting of light-emitting diode dot-matrix modules, or pixel units. In recent years, it has been widely applied in the field of information display due to its high luminous efficiency, long service life, environmental adaptability, high performance-price ratio, flexible configuration and rich colors. The design uses AT89C51 microcontroller as the control core, through the hip 74HC154 expansion I/O port and uses ULN2803 to be row, column drivers, to control LED dot matrix display to display different processes of Chinese characters or images under the control of different buttons, realizing the design of large LED display. In this paper, the usage of debugging software Keil C51, the welding and commissioning process of hardware and so on were introduced. The circuit configuration of the whole system is simple and highly reliable.

Keywords:LED Dot-Matrix Screen, AT89C51, Eight Arrays Darlington ULN2803, 74HC154 Decoder

一种大屏LED智能显示屏的设计

杨成慧1,2

1西北民族大学电气工程学院,兰州

2兰州交通大学自动化与电气工程学院,兰州

Email: yangchenghui36@163.com

收稿日期:2014年4月8日;修回日期:2014年4月30日;录用日期:2014年5月7日

摘  要

LED显示屏是一种新型的信息显示媒体,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕,以发光效率高、使用寿命长、环境适应能力强、性价比高、组态灵活、色彩丰富等特点,在短短的十来年中,迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。本设计用AT89C51单片机做控制核心,外围扩展芯片74HC154扩展I/O口并利用ULN2803为行、列驱动,控制LED点阵屏在不同的按键控制下显示不同的汉字或图像的过程,实现了大屏LED显示屏设计。介绍了程序调试软件Keil C51的用法等,及硬件的焊接、调试过程。整个系统的电路结构简单,可靠性高。

关键词

LED点阵屏,AT89C51,八阵列达林顿ULN2803,74HC154译码器

1. 引言

LED显示屏是一种新型的信息显示媒体,它是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕,以发光效率高、使用寿命长、环境适应能力强、性价比高、组态灵活、色彩丰富等特点,在短短的十来年中,迅速成长为平板显示的主流产品,在信息显示领域得到了广泛的应用。LED显示屏的应用涉及到社会经济的许多领域,主要包括:机场、航班、港口、车站旅客引导信息显示。以LED显示屏为主体的信息系统和广播系统、票务信息系统、列车通讯显示系统等共同构成客运枢纽的自动化系统。证券交易、金融信息显示。在证券行情屏、银行汇率屏、利率屏等方面应用占较大比例,是LED显示屏的主要需求行业。邮政、电信、商场购物中心等服务领域的业务宣传及信息显示。道路交通信息显示。随着智能交通系统的兴起,在城市交通、高速公路等领域,LED显示屏作为可变情报板、限速标志等,都有了较大的发展,为最大限度地减少交通事故、维护良好交通管理提供帮助。高校教学管理信息发布显示。为学生、教师提供方便快捷的获取信息的手段为最大限度地减少教学事故、维护良好教学管理提供帮助。室外产品广告及信息发布、广告显示牌等方面均有广泛应用。显示屏产业已经成为新兴的高科技产业[1] 。

2. 系统设计

本次设计以AT89C51单片机为控制核心,通过外围的扩展芯片74HC154扩展I/O口并利用ULN2803为行、列驱动等,控制LED点阵屏在不同的按键控制下显示不同的汉字或图像。

本设计以ATMEL公司的AT89C51为控制核心,以4个8*8LED点阵显示单元拼接成简易16*16点阵屏幕,可显示一个16*16像素的汉字。由于考虑到AT89C51的I/O接口有限,如果把32个I/O口全部占用,将不利于往后显示屏幕的扩展,所以用4线–16线译码器74HC154扩展I/O口,行、列驱动用ULN2803。整个设计构思为:系统上电以后先后分别显示“欢迎使用”,按键KEY2按下以后屏幕分别显示“西北民大”,按键KEY3按下以后分别显示显示“2014自动化”。在实际应用中可以在程序中根据需要更改想要显示的字符或者图像,整个系统设计与实际相结合,有较强的实用价值。

3. 系统工作原理

确定如下方案:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器。可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器[2] 。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。所以此设计以AT89C51为控制核心,根据需要通过它来控制外围显示器件的显示。

3.1. 控制电路

控制电路如图1所示。

VCC:5 V供电电压。GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位[3] 。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。本设计中,P0口用于行数据输出,输出的数据送入行驱动电路。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。这里P1.6、P1.7用于接按键,以便控制显示器的输出状态,P1.0~P1.4分别接74HC154的A、B、C、D、/G1。

P2口:P2口为一个内部上拉电阻的8I/口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。本设计中,P0口用于行数据输出,输出的数据送入行驱动电路。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入

Figure 1. Control circuit figure

图1. 控制电路图

“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,P3口管脚备选功能如下所示:P3.0 RXD(串行输入口),P3.1 TXD(串行输出口),P3.2/INT0(外部中断0),P3.3/INT1(外部中断1),P3.4 T0(记时器0外部输入),P3.5 T1(记时器1外部输入),P3.6/WR(外部数据存储器写选通),P3.7/RD(外部数据存储器读选通),P3口同时为闪烁编程和编程校验接收一些控制信号。本课题P3口悬空。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。此引脚悬空。

/EA/VPP:当/EA保持低电平时,访问内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。此引脚接VCC,保持高电平。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。

3.1.1. 简单按键

图2所示,这是最简单的键盘电路,每个键独立地接入一根数据输入线。平时,所有的数据输入线都被连接成高电。当任何一个键按下时,与之相连的输入线将被拉成低电平。要判断是否有键按下,只要用位处理指令即可。这种键盘的优点是结构简单、适用方便,但随着键数的增多所占用的I/O口线也增加。

3.1.2. 复位电路

图3是一种简单的上电复位和按钮复位电路的组合,当接通电源的瞬间,RST端与VCC同电位,随着电容C上的电压逐渐上升,RST端的电压逐渐下降,于是在RST端便形成了一个正脉冲,只要该正脉冲足够宽就可以实现系统自动复位,但在实际应用中还要考虑系统电源的上升时间和震荡器起振时间。假设系统电源的上升时间和振荡器起震时间为20 ms,为了使系统可靠复位,RST引脚在上电自复位是

Figure 2. Simple key figure

图2. 简单按键图

Figure 3. Simple key figure

图3. 复位电路

应保持20 ms以上的高电平[4] 。也就是说,RC充电时常数要足够大,因此一般取R > 1 K,C > 22 uf。当按下人工复位按钮时,使电容C通过电阻迅速放电,待按钮抬起,C再次充电,实现人工复位。

3.2. 驱动、显示电路

3.2.1. 驱动电路

推动级可以选择ULN2803系列的8路达林顿管阵列,ULN2803的输出为低(接地)。ULN 2803双列直插芯片的管脚排列完全相同,它有8个输入控制端,8个输出端,一个接地端GND和一个偏置电压输入端C0M。l-8脚是其控制信号的输入端。外电路电源高电位端通过大功率负载接在1-8脚上,同时,通过偏置电阻与10脚相连。当控制信号1为低电平时,对应输出端1电位与偏置电压相当,被驱动器件两端电压差很小,器件不工作;当其为高电平时,1端电压下降,外电路电源为被驱动器件供电。ULN2803是高电压大电流八达林顿晶体管阵列,该阵列中的NPN达林顿连接晶体管是低逻辑电平数字电路(如TTL,CMOS或PMOS/NMOS)和大电流高电压要求的灯、继电器、打印机锤和其他类似负载间的接口理想器件。广泛应用于计算机,工业和消费类产品中。所有器件有集电极开路输出和用于瞬变抑制的继流钳位二极管。ULN2803的设计与标准的TTL系列兼容。ULN2803内部集成了8组达林顿管,输出只有下拉电流的能力,当输入为高电平时,输出端的下拉电流可以达500 mA。行扫描信号经P0、P2口以及从74HC154送出的列信号经ULN2803放大,将行扫描信号和列驱动信号送入LED点阵屏,从而点亮屏幕。

3.2.2. 显示控制电路

当CPU对内部总线进行控制时,从内部RAM中取出显示数据,经串行口送至74HC154转换成并行数据(即显示内容),再通过ULN2803输出列驱动信号。行扫描数据则从P0、P2口输出,经过ULN2803驱动LED点阵显示器的行选通端。

3.3. 硬件调试

所谓的硬件调试就是对所有的电路板进行检查及测量,以保证硬件电路的正确性。

3.4. 键盘设计

3.4.1. 非编码独立式键盘

独立式键盘往往是在系统中扮演程序分支选择的角色,对于不同的按键输入实现不同的功能,在程序中也就是不同的按键实现不同的程序段的执行[5] ,当KEY2按下时会执行处理程序1,KEY3按下时会执行处理程序2,一般一个独立式按键对应一个功能。此设计为:KEY2按下后实现“电气学院”显示,KEY3按下后实现“2014自动化”显示。KEY2接AT89C51的P1.6,KEY3接P1.7。

3.4.2. 按键去抖

本次采用软件去抖,就是在检测到按键按下时,执行一段延时子程序后,再确认该键电平是否仍保持键按下时的状态电平,若是,则认为有键按下[6] 。子程序的延时时间应大于按键的抖动时间,通常在10 ms以上,从而消除了抖动的影响。

3.5. 主程序设计

3.5.1. 主程序流程图

流程图4说明:系统开机上电后运行“欢迎使用”。(①②等概率)

①检测KEY2是否按下,若是,则运行“电气学院”;若否,检测KEY3是否按下,若是,则显示“2014自动化”,若否,则返回上电运行状态。

②检测KEY3是否按下,若是,则运行“电气学院”;若否,检测KEY2是否按下,若是,则显示“2014自动化”,若否,则返回上电运行状态。

3.5.2. 软件系统设置

本系统是在Keil C51下编写调试[7] 完成的。

调试:1个LED灯循环亮、灭。

这个测试是用来测试.HEX文件是否下载到单片机中,将程序用Keil C51调试编译后生成1LED.HEX文件,按上述下载过程将它写入单片机中[8] ,然后给系统上电,看是否能够运行,正常运行时LED会周期性的亮、灭、亮、灭。无限循环。程序如下:

Figure 4. Flow chart

图4. 流程图

#include

#include

void main(void)

{

unsigned int a;

do{

for (a=0; a<50000; a++);

P1_0 = 0; //P1.0口为低电平,点亮LED for (a=0; a<50000; a++);

P1_0 = 1; //设 P1.0口为高电平,熄灭LED

}

while(1);

}

4. 结论

本系统以AT89C51单片机为核心部件,本系统以AT89C51单片机为核心部件,是在Keil C51下编写调试完成的,包括硬件电路的焊接、程序的编写、结果的调试等。在实际应用中可以在程序中根据需要更改想要显示的字符或者图像,整个系统设计与实际相结合,有较强的实用价值。

参考文献 (References)

  1. 关积珍, 陆家和 (2004) 我国LED显示屏技术和产业发展及展望. 现代显示, 2, 5-10.

  2. 宋彩利 (2005) 单片机原理与C51编程. 西安交通大学出版社, 西安, 17-20.

  3. 闫玉德, 俞虹 (2002) MCS-51系列单片机原理与应用(C语言版). 北京机械工业出版社, 北京, 76-83.

  4. 李朝青 (2000) PC机及单片机数据通信技术. 北京航空航天大学出版社, 北京, 88-92.

  5. 李东生 (2002) Protel 99SE电路设计技术入门与应用. 电子工业出版社, 北京, 167-172.

  6. 宗光华, 李大寨 (2003) 多单片机系统应用技术. 国防工业出版社, 西安, 84-95.

  7. 王海华 (2009) 基于Proteus和Keil的单片机实验教学探究. 科技信息, 3, 35-36.

  8. 王法杰 (2008) 基于Proteus和Keil仿真实验平台在单片机教学中的应用. 大众科技, 6, 169.

期刊菜单