基于C8051F020单片机的任意排列LED灯具控制系统的设计

时间:2022-06-03 11:13:21

基于C8051F020单片机的任意排列LED灯具控制系统的设计

摘 要:本文设计了一种可对一定数量任意排列在一个平面上的led外控幻彩灯具控制有系统,实现动画或视频在这种异形屏上的显示。本系统主要由新化龙公司的c8051f020单片机、和ATMEL公司的AT89C2051单片机、CF卡、LED恒流驱动电源及RGB种颜色的LED灯等组成。系统的控制的核心是C8051F020单片机,单片机读取事先存储于CF卡内的文件然后按一定的帧周期发送到连接在后端串联在一起的以AT89C2051单片机为核心的各个灯具单元。整个系统按照一定的通信协议运行,实现视频在不规则或异形平面上的视频播放显示。

关键词:C8051F020;LED控制,信号纠错电路

引言:本文采用新华龙单片机C8051F020,高速间片机为本控制系统的核心,以51单片机为从机做为系统的主要要组成部分,并创新的加入了断点续传技术,保证了系统的安全性和可用性,也为现在市场上普遍使用的各种相似系统提供了一个高可靠性的解决方案。

1 系统设计要求方案

1.1系统设计要求

设计制做一个主控制器和若干多个分控制器,要求主控制器负责读取CF卡中事先预存好的DAT动画帧文件,每次把一个帧的数据预读入主控制器的内存,然后以一定的波特率用串口向串联起来的分人控制器发送,一个帧数据可由N个象素数据组成,第一个分控制器收到第1个象素数据后就把其后接好到的第N-1个数据向后转发,直到第N个控制接收到时,也就是主控制器发送了N个象素后,主控制器再发送一个显象标志数据,完成一个帧数据的发送,然后进入下一个帧的发送过程。要求读取帧频的速度不低于24帧每秒。分控制器显示要求对收到的象素数据进行解码,解码后形成的RGB数据对应着红绿蓝每种基色的显示的灰度等级。然后以一定的频率的PWM信号对对应的LED发光灯珠进行驱动,

另外分控制器应具有纠错能力;目前外控LED灯具工程应用时通常由多串联根组成,最多时可能会有100个以上的灯具中联组成。LED灯具通常由多个分控制器实现,(常见的有3个芯片,6个芯片,8个芯片16个芯片),分控器信号传送使用的是串联信号传输,通常信号出一控制器发出,第一个灯具接收单元接收本单元的数据然后再把其后除本单元之外的数据整形后发送到以后的灯具单元,第二个灯具单元的工作过程依次类推。

这种电路结构的缺点是当由多个串联根组成的LED灯具单元系统中的其中一个灯具单元故障时则与本个灯具单元相连的后级的灯具单元将得不到前级传输来的控制信号,这将导致包括故障灯具单元以后的正常的灯管都不能正常工作,如果恰好是第一根灯管故障则将会致使整个控制器控制的系统都不能正常工作。所有所设计的灯具单元应该具有纠错能力,当本单元的控制芯片损坏后,信号能跳过本单元继续向后传输。

1.2系统设计方案

本系统的系统结构如图1所示,主控制器使用C8051F020做为MCU,使用RS232串行信号进行数据传输,分控制器以AT89C2051为MCU,对灯珠灯具驱动。C8051F020单片机是可运行在25MHZ的主频下的低功耗单片机,而且是单指令周期,且置的高速FLASH为16K空间,所需的器件很少,调试方便简单,因此主控制器的硬件设计难度大大降低,非常适合本系统的设计要求,AT89C2051单片机为低成本单片机,分控制器的主要任务只是以RGB灯珠进行PWM驱动,且驱动输出的信号频率不会大于100HZ,所以此单片机完全可以满足设计要求。

2 系统硬件设计

2.1系统硬件设计的主控制器电路

主控制器电路主要由大容量存储器CF卡,C8051F020单片机,及RS232输出驱动组成,C8051F020单片机循环读取CF卡事先存入的帧数据,把数据按一定的波特率从串口发出去。串口以单工模式工作,只发送数据。

2.2 硬件设计的分控制器电路

分控制器主要由RGB三色LED发光灯珠,AT89C2051单片机,及信号监测电路组成,电路结构如图2分控制器的主要工作有两个,1,分控制器接收到以本分控制器看来的第一帧数据,然后反把这一帧数据存入单片机内存备用,然后打开向后传输的通道,以便数据一直向后面的分控器传输,2,分控制器解码帧数据后得到R/G/B三个通道的PWM驱动LED灯珠的占空比数据,然后分别用三个I/O端口通过9013三极管对RGB三通道的灯珠进行驱动,从而显示出一个帧所包含的发光信号。

2.3硬件设计的纠错电路

纠错电路是一个存硬件电路,电路结构如图3,以74HC157芯片为电路核心,主要实现因分控制器故障而导致的本分控制器信号链路断开,实现信号得以跳过本分控制器使信号断续向后面的控制器传输。

3 系统程序设计

系统软件分为上位机FLASH动画数据生成器软件、主控制器程序、分控制器程序, FLASH动画数据生成器软件不在本文设计范围以内。

3.1主控制器程序设计

本系统程序采用C语言设计使用KEILC软件 进行程序的编译和程序调试,使用EC-5调试器进行在线调试,这使得整个主控制器程序的设计过程的效率显著提高。

主程序流程图如图4。

每个分控制器单元的色彩信息以2个字节表示,字节内的含意如表1,每个色彩由4个位组成,三基色占有12个位,可显示出4096色,另外4个位为标志位,当一个帧发送完成后,主控制器会发送一个全1的两个字节数据,分控制器收到后会同时把缓存的LED控制数据显示出来,同时判断从本分控制向后面传送的信号链路,等待下一帧的动作流程。

4 系统测试

4.1分控制器测试

分控器硬件电路板调试完成后,反把3个分控制器串联接起来,用串口调试工具模拟主控制器读取到CF卡上的数据进行单基色测试,以分控制器程序设置的波特率间隔3秒发送一次数据,全显示红光数据为3C00发送三次,再发送一次显示数据指令:FFFF,发现3个灯都变成了红色,发送绿光数据0300发送三次,再发送一次显示数据指令:FFFF,发现3个灯都变成了绿色,发送蓝光数据000F发送三次,再发送一次显示数据指令:FFFF,发现3个灯都变成了蓝色。

分控制器测试完成,达到了设计要求。

4.2 主控制器测试

事先把用上位面软件把测试数据做好,做成,三基色间隔1秒左右变色的程序数据,

把CF卡插入主控制器上,把3个分控制器串联接好,连接在主控制器的串口输出口,然后通电,发现三个分控制器控制的LED灯珠按一定的规律进行红、绿、蓝跳动,且LED灯珠没有发光抖动现像,没有乱闪现像,说明主控制器和分控制器都测试没有问题,达到设计要求。

4.3硬件设计的纠错电路测试

把主控制器和三个分控制器按正常接线方法接好,把CF卡内存入任意一种FLASH程序,通电后我们发现3个分控制器控制的LED灯按一定的规律进行各种变化,把第二个分控制器的2051单片机的晶振的两个引脚短路,模拟一个分控制器损坏,我们发现第二个和第三个分控制器控制的LED灯都停止了变化,然后稍等片刻后发现第三个发控制器又恢复了正常的工作,则说明第二个分控制器的纠错电路走了做用,达到了设计要求。

5 结论

通过各种调试和测试过程,本系统可以通过各种测试过程,在实际工程中也得到了具体的应用,可以实现数百个分控制器的串联组合系统,在分控制器任意排布的的情况下,把排布结构图输入到上位机做图软件中,再在做图软件件中导入各种FLASH程序数据,如七彩变色,跑马灯效果对开角色普滚动等各种复杂动画效果,然后生成的主控制器动画数据,把数据存入到CF卡内,实现了对整个分控制器LED灯具系统的灯光的复杂控制。整个系统节构简单,施工方便,可以实现现有灯具所不具备的复杂造形的简单控制,由于使用的低成本的C8051F020及AT89C2051电路较少,软件设计调试方便,系统成本较低,具用较高的性价比,可以很好的进行推广应用。

上一篇:浅析国内水泥回转窑筒体表面余热回收利用现状 下一篇:市政道路排水工程的质量控制措施研究