基于AVR的交通诱导屏显示单元控制系统设计
2013-08-08徐道连邓继坤
邢 磊,徐道连,邓继坤,余 建
(重庆大学 光电技术及系统教育部重点实验室,重庆 400030)
LED具有发光亮度强、工作寿命长和耗电低的特点,在可视距离内就算是阳光直射屏幕表面,显示内容也清晰可见。它的亮度可以通过调节工作电流和调节驱动电流的占空比来实现,并且具有超级的灰度调节。交通诱导屏通过显示单元发出红、绿、黄3种不同颜色的光来表示该路段的交通状况,其中红色表示拥堵或事故,绿色表示畅通,黄色表示交通状况一般。本文提出了一种基于两片ATmega8单片机的LED显示单元控制方案,其中单片机A用于接收主控制板的数据并解析,然后通过I/O口发送给单片机B来控制LED显示和亮度的调节。该方案可以实现8级亮度显示,其亮度可以根据光线的强弱自动调节LED的亮度,主要应用于室外交通诱导屏[1-2]。
1 系统整体设计方案
VMS显示单元控制系统采用两片ATmega8单片机的处理方案,其总体设计方案如图1所示。主控制板发送指令和数据,通过RS-485将数据传输到单片机A。单片机A把接收到的数据发送到I/O口同时把数据存储到外部的EEPROM,并通过外部中断的方式通知单片机B读取数据。外部EEPROM用于存储本机RS-485通信地址和接收到的数据,单片机A每次都要把接收的数据存储在EEPROM的指定位置以免断电数据丢失。单片机B把接收到的数据串行发送到74HC595转换成并行的数据输出。单片机B通过不断刷新74HC595的输出数据调节LED驱动电流的占空比以调节其亮度。
图1 系统整体方框图
2 系统硬件设计
2.1 通信模块电路
通信模块采用ATmega8作为控制芯片,采用内部8 MHz晶振,其电路连接图如图2所示。AT24C01A的SCL和SDA分别与ATmega8中的TWI接口相连接,SCL和SDA引脚要接上拉电阻,把不确定信号钳位在高电平,从而提高芯片输入信号的噪声容限增强抗干扰能力。SIN0~SIN11引脚作为两个单片机直接的数据通信口,L0~L2作为光强的数据传输口,这 15个I/O口都要接下拉电阻。RS-485通信芯片采用的是SN75176,其引脚R和D都接到单片机的PD5。
图2 通信和数据处理模块
2.2 显示控制模块电路
显示控制模块由ATmega8和两片74HC595组成,其连接电路图如图3所示。74HC595的串行输入脚SER和移位控制引脚SRCLK分别连接到单片机SPI接口的MOSI和SCK引脚。
图3 显示控制模块
2.3 开关电路模块
开关电路模块由5551三极管和4953组成,其连接图如图4所示。74HC595的输出接到5551三极管的基极,5551的集电极采用+24 V电压供电。LED一般采用24 V电压供电,故红色和黄色与LED可以串联9个并串联一个100 Ω的电阻与4953连接,绿色LED可以串联6个并串联一个 200 Ω电阻连接到 4953。5551三极管的作用是把74HC595的5 V输出电平转换成开关4953需要的24 V电平。4953可以承载LED点亮所需要的电流。
图4 LED开关电路图
图5 数据处理程序和RS-485通信程序
3 系统软件设计
系统软件设计包括通信和数据处理模块以及显示控制模块的两部分。
3.1 通信和数据处理模块程序
单片机A完成数据的处理和RS-485通信,其程序由数据处理程序和RS-485通信程序两部分组成,如图5所示。
3.2 显示控制模块程序
显示控制模块程序由显示主程序和中断服务程序组成。显示子程序控制LED的显示和亮度,中断服务程序用来接收单片机A发出的数据。显示主程序的流程图如图6所示,中断服务程序的流程图如图7所示。显示子模块部分程序代码如下:
SPI初始化函数代码如下:
SPI向74HC595发送数据函数代码如下:
图6 显示主程序
图7 中断服务程序
用脉冲宽度调制来控制LED显示和亮度的控制程序如下所示。其中,变量brt中存储的是LED的亮度控制字,data1和data2存储的是红绿黄LED灯的控制字。
本文以ATmega8单片机为硬件基础,设计了VMS显示单元控制系统的硬件电路和软件,实现了LED的亮度随室外光线的变换而变化。本设计具有很强的扩展性,并且采用了ISP功能,为电路板的调试和系统的维护带来了很大的方便。实验证明,本控制系统可以很好地控制LED的亮度,保证LED点阵显示屏清晰、不刺眼,有很好的应用价值。
[1]王浩然,秦会斌.LED点阵屏显示单元的设计与驱动控制[J].电子器件,2010,33(5):550-552.
[2]廖继海,梁志明,罗广君,等.基于 AVR单片机的 LED显示屏的灰度设计与实现 [J].现代电子技术,2007,30(3):189-191.