新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于SPCE061A的点阵电子显示屏设计

基于SPCE061A的点阵电子显示屏设计

作者:时间:2012-01-07来源:网络收藏

1 引言

在车站、商场、证券交易所、厂矿企业等一些公共场所,经常需要由LED(发光二极管)发布实时多变的信息或进行广告宣传,要求 LED具有修改方便、实时图形和字符混合动态显示、亮度可调等功能。应用计算机对其进行操作和键盘进行设置就显得十分重要。

为了解决以往以8位单片机为核心的LED器速度慢,结构复杂,程序设计困难,功能单一等问题,本系统采用高速SPCE061A单片机,既提高了扫描速度,又保证了动态屏幕字符显示、图形显示、语音播报和语音控制等功能的实现。尤其是本系统增添了屏幕亮度可调功能后,限制了LED中通过的平均电流;又因为SPCE061A的供电电源为3.3~5.0V,这样既可降低功耗、保护LED,又可延长的使用寿命。

2 电子显示屏功能

本文设计的基于SPCE061A的电子显示屏实现了汉字、字符、数字、实时时间

等信息的动态显示,能够做到屏幕信息左右、上下滚屏显示,并可设置显示速度。手动或光敏自动调节LED显示亮度。

通过计算机人机界面和控制屏键盘可以随时设置系统的显示模式。

本系统具有掉电信息保存功能。掉电后主控制器可将显示内容和显示模式等信息保存在Flash中,再次上电后可以继续显示。

此外系统具有语音功能,可以定时播报时间,显示即时内容;使用语音识别技术可以进行简单的语音控制。

3 显示屏硬件电路设计

LED点阵显示由8*8共64个发光二极管组成。控制时,分别控制阳极8个行控制口和阴极8个列控制口。显示时,向阳极送字模,向阴极送选通信号。送出一行的字模,再送选通信号,再送第二行的字模和选通信号,循环扫描8次,就可以在一块点阵上显示一个字符。显示汉字用16*16 LED,所以一个显示单元由4块8*8点阵组成。一次送两个字节的字模,16列选通信号。

该点阵显示系统以凌阳16位单片机SPCE061A为控制核心,由LED点阵电子显示器,电源,电流电路,地址译码电路,串行接口电路,键盘,时钟模块和计算机控制界面组成,系统框图如图1所示。

图1 点阵电子显示屏系统框图

3.1 主控制器功能

本设计采用16位SPCE061A单片机。该单片机主频最高可达49MHz,处理速度很快,且主频可通过软件调整,能有效解决闪屏问题。硬件资源丰富,内部拥有32KB flash闪存和2KB RAM,在不外扩存储器的情况下就能完成较大的数据存储,大大简化了外围接口电路; 32个通用I/O口,专为低功耗设计,在省电模式下,时钟停止,耗电仅为2uA/3.6V。另外,该芯片支持在线仿真,编程接口,可方便实现在线调试。

SPCE061A有丰富的语音功能。1个10位的DAC(数模转换器),麦克输入通道内置麦克风放大器和自动增益(AGC)功能[1];其集成开发环境还配有丰富的语音接口函数API。为本系统扩展语音功能提供了丰富的软硬件环境。

3.2 电路

驱动电路分为行驱动电路和列驱动电路,行驱动电路如图2所示。

图2 行驱动电路

行驱动即LED的阳极,原理是送出电流使二极管发亮,由74HC595和驱动芯片ULN2803组成。主控制器将字模通过串行方式送给控制阳极的串转并器件74HC595。74HC595是CMOS型TTL器件,功耗低,且速度可达到100MHz,适合作LED的显示驱动[2]。每个显示单元,由两片74HC595级联控制,一个显示单元需两片74HC595,字模数据信号由主控制器分别送出,时钟等控制信号则通过同一个I/O口同时送出。这样既能避免互相干扰,又能灵活控制。TTL电平的驱动能力有限,只能驱动8个TTL器件,当显示单元配置较多时,驱动能力不够,信号可能误传,解决的方法是加一级74HC245,将一路信号变成8路输出,提高了驱动能力,保证信号的准确性。由于动态扫描的扫描速度心须达到60HZ以上,否则会产生闪烁现象,因此提高扫描速度至关重要。在程序中将缓冲区内各个单元的字模整合成为一个数并行送出,可以提高扫描速度。74HC595将字模送给 ULN2803驱动LED的阳极。ULN2803是8路达林顿管,驱动能力较强,单路最大输入电流可达500mA;由于ULN2803不能输出高电平,驱动时须加上合适的上拉电阻以获得合适的驱动电流。

列驱动即控制LED的阴极,原理是输入电流也采用ULN2803做列驱动器。点阵显示必须用动态显示,任何时刻只能有一列选通,特别设计将各个显示单元的对应列接在一起,这样扫描一个显示单元的周期就完成了整个显示屏扫描,提高了扫描速度。一个显示单元的16路选通信号首先由4-16译码器 74154送出,再送给列驱动器,由于ULN2803为反向驱动,故在74154和ULN2803之间加7406作为反向。

3.3 亮度调节电路

显示屏的亮度调节是通过改变VCC的电压,从而调整流经LED的电流来实现的。亮度自动调节是利用光敏电阻或光电三极管来检测外部的光强,根据光强来自动调节LED亮度。亮度可调电路如图3所示。

图3 亮度可调电路

第一部分是亮度自动调节电路。RW1/ RW2控制自动调节的最高/最低输出电压。RW3控制对外界感光的灵敏度。R2,C2组成一阶低通滤波器,滤除外界干扰光线(如日光灯)对系统的高频干扰。第二部分是手动亮度调节电路。RW5为后面的LM317调整段提供一个可调的电压。第三部分是最高输出电压保护电路调节RW4设定最高的输出电压。用一个三态开关SW1做两种工作方式的切换。选择工作方式1时,可以对亮度进行手动调节;选择工作方式2时,钳位电路起作用,LM317输出最大电压,此时亮度最亮;选择工作方式3时,进行亮度自动调节。

3.4 时钟模块

时钟模块采用DS1302。这是一种高性能、低功耗、带RAM的实时时钟芯片,它提供秒、分、小时、日、星期、月、年(带闰年)等信息。能够以24 小时或12小时模式工作,并且提供AM/PM指示。与单片机间通过简单串行接口通信,只需3根线便可以和单片机以同步串行方式通信。该芯片同时提供了对后备电源进行涓流充电的能力[3],可以掉电保存时间。

4 程序设计

整个软件分为三部分,即显示部分、控制部分和通信部分。通信部分采用Visual C++编程语言。VC在标准串口通信方面提供功能强大的通信控件MSCOMM,该控件可设置串行通信的数据发送和接收,对串口状态及串口通信的信息格式和协议进行设置,直接利用PC机的RS-232串口发送数据。为实现单片机与PC机的可靠通信,须保证双方具有相同的数据格式和波特率,这里波特率设为 115200bps。

程序组成框图如图4所示。

图4 程序组成框图

显示电路部分程序如下:

void display(unsigned int key)

{ unsigned int i,k,temp[4],dd,

data_high[4],data_low[4];

for(k=0;k10;k++)

{*P_Watchdog_Clear=0x01;

for(i=0;i16;i++) // "i" 表示列

{switch(key)

{case 0:

temp[0]=encoding_00[i]; //字模存在数组encoding_00[]中

temp[1]=encoding_01[i];

temp[2]=encoding_02[i];

temp[3]=clear_00[i];

break;......} //省略

data_high[0]=temp[0]0xff00; //以下四句是送出一个字的字模

data_high[0]=data_high[0]>>8;

data_low[0]=temp[0]0x00ff;

shiftbit(data_high[0]); //8位数据串行输出到74595上

shiftbit(data_low[0]);

oe154=1;

latch0=1; //74595的数据并行送出使能

latch0=0;

dd= *P_IOA_Data;

dd=dd0xff0f;

*P_IOA_Data=(i4)dd; //74154的译码程序

oe154=0;} //打开74154 的使能

}

oe154=1; //return to main,close 74154 display

} // end of display

5 结论

此电子点阵显示屏采用性能优越的SPCE061A单片机为控制核心,实现汉字、字符及数字的预存显示,同时完成按键多功能切换,实现左右滚动控制,预存数据显示。具有亮度连续可调、亮度感光可调、计算机控制、掉电保护和语音识别等功能。显示8个汉字时显示扫描频率可达120Hz,显示质量良好。在系统设计中还加强了驱动的可靠性,稳定性,能够有效地保护系统运行。

本文作者创新点:以单片机SPCE061A为控制核心以及廉价可靠的驱动电路实现了能图形和字符混合动态显示等多种功能的显示系统,可语音控制,并设计实现了屏幕亮度可调电路。

参考文献:

[1] 黄涛,胡宾. 基于SPCE061A单片机的非特定人语音识别设计[J],微计算机信息,2005, 8:19-21.

[2] 翟震, 张春玲. 用74HC595芯片驱动LED的电路设计[J],机床与液压,2004, 151(12):151-152.

[3] 朱路, 朱清慧. 连续补充充电实时时钟芯片DS1302及其应用[J], 现代电子技术,2006,234(19):116-118.



评论


相关推荐

技术专区

关闭