1、目 录第1节 引 言11.1LED彩灯概述11.2 系统主要功能1第2节 新型 LED 彩灯硬件设计32.1 系统的硬件构成及功能32.1.1 主控模块电路设计32.1.2 管内 LED 板模块设计32.2 AT89C2051单片机及其引脚说明42.3LED显示数码管4第3节 系统的软件设计63.1 软件设计6第4节 结语8参考文献9附录10基于AT89C51单片机的LED彩灯控制器设计第1节 引 言随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但
2、目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 1.1 LED彩灯概述该LED彩灯控制器是一种基于 AT89C51 单片机的彩灯控制器,实现对 LED 彩灯的控制。本方案以 AT89C51 单片机作为主控核心,与键盘、显示、驱动等模块组成核心主控制模块。在主控模块上设
3、有 8 个按键和 5 位七段码 LED 显示器,根据用户需要可以编写若干种亮灯模式,利用其内部定时器 T0 实现一个基本单位时间为 5 ms 的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。该新型 LED 彩灯与普通 LED 彩灯相比,具有体积小、价格低、低能耗等优点。 1.2 系统主要功能 新型 LED 彩灯分为 2 部分,即彩灯控制器(主控模块)和管内 LED 板模块(受控模块)。彩灯控制器可直接与 220 V 交流市电相连接,经过开关电源变换,输出直流工作电压,一方面为管内 LED 模块提供 12 V 工作电源,另一方面为主控模块单
4、片机系统(彩灯控制器)提供 5 V 工作电源。整个系统工作由软件程序控制运行,根据需要,用户可以在 LED 彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。 上电后系统经过初始化,查询是否有功能切换键按下:有,则进入用户设定模式状态;无,则进入默认缺省工作状态。在用户设定模式状态下,用户可以根据个人爱好及不同场合的需要来指定调用哪些模式,并且可以改变每种模式的时间 Ti 、频率 Fi 参数,如果用户想进入缺省状态模式,只需按一下功能切换键即可跳入缺省模式,程序会自动顺序调用亮灯模式;在缺省工作状态下, LED 彩灯控制器按照程序设定好的若干亮灯花样模式程序 Model_i 顺序调用
5、往下走,从第 Model_1 模式开始工作,自 Model_1 到 Model_2 到 Mod el_n 为一个亮灯周期,然后再回到 Model_1 循环继续工作,同样如果想进入用户设定模式状态,只需按下功能切换键即可。整个 n 种亮灯模式时间可以看作一个大周期 T ,其中的每一种花样工作模式 Model_i ( i=1 , 2 , n )时间为小周期 Ti ,对于每一个模式编写一个独立工作子程序 Model_i ,其中设定了 LED 三色灯(红、绿、蓝)的点亮时刻( RED_on , GREEN_on , BLUE_on )和熄灭时刻( RED_off , GREEN_off , BLU E
6、_off) ,以及模式工作时间 Ti 以及该模式 LED 闪烁频率 Fi 。 5 位七段码显示器的前 2 位( L1 , L2 )显示当前工作模式的序号 Model_i ;后 3 位( L3 , L4 , L5 )七段码 显示三色 LED 的工作状态,若该颜色灯点亮则对应七段码显示位为“ 1 ”,反之熄灭时则显示位为“灭”即不显示,对系统工作状态起到了很好的实时监控作用。 因此在 LED 彩灯上电工作后,用户z可以方便地通过主控模块上的显示器知道 LED 彩灯当前工作模式 Model_i ,工作时间 Ti ,频率 Fi 等实时参数。若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,用户可以通
7、过主控模块上的按键来设定 LED 不同的闪烁频率 Fi 和亮灯时间 Ti ,以便符合实际需要。此外如果用户对某一种模式感兴趣需要仔细观看该种亮灯模式,可以通过键盘选定任意第 Model_i 模式使系统循环重复工作在该花样模式下。第2节 新型 LED 彩灯硬件设计本节主要新型 LED 彩灯系统的硬件构成及功能,包括AT89C2051单片机及其引脚说明、电源、LED显示数码管、开关。2.1 系统的硬件构成及功能 新型 LED 彩灯系统包括 2 大部分,即 LED 彩灯控制器( 89C51 主控模块)和 LED 彩灯管(管内 LED 板模块)。前者是主控模块,具有按键、显示等功能,并利用 89C51
8、 的 P 口输出控制信号;后者是受控模块,上面焊有三色 LED 彩灯和信号驱动芯片,模块置于 LED 的透明灯管内。 2.1.1 主控模块电路设计 主控模块电路如图 1 所示。主控模块主要设计器件有 89C51 , 5 个七段码 LED 显示器, 8 个按键, 2 个稳压器(提供 12 V , 5 V 电压), 1 个信号输出驱动模块芯片 (MC4049) 等。通过软件设计,使单片机 P0 口作为三色 LED 驱动信号输出口及移位时钟 CLOCK 信号, P3 口为按键输入口, P2 口、 P1 口与 5 位七段码 LED 相接作为显示器的输出口。2.1.2 管内 LED 板模块设计 管内 L
9、ED 板模块电路见图 2 。管内 LED 板模块设计主要器件有 LED 彩灯(红、绿、蓝)、移位触发模块芯片 CD4076 等。根据实际应用彩灯长度需要,可将不同数量的该管内 LED 模块实现级连,组成一个完整的 LED 彩灯。考虑到功率损耗, LED 板模块之间接口处用信号正向驱动模块芯片 MC4049 连接。每个 LED 板模块上均匀分布 3 种颜色 LED 灯,在实际制作 PCB 时采用红、绿、蓝 3 色互隔焊接方式,在电路板上把 LED 发光管按顺序 L1( 红 ) 、 L2( 绿 ) 、 L3( 蓝 ) 、 L4( 红 ) 、 L5( 绿 ) 、 L6( 蓝 ) 依次均匀焊在板上成一
10、条直线。为了得到更多的花样模式效果,可以使红绿 2 种灯从前往后驱动点亮闪烁,蓝灯从后往前驱动点亮闪烁,这样具有很好的动感视觉效果。 2.2 AT89C2051单片机及其引脚说明AT89C2051单片机是51系列单片机的一个成员,是8051单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-51系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C2051构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本
11、,提高了系统的性价比。AT89C2051是一个有20个引脚的芯片,引脚配置如图3所示。与8051相比,AT89C2051减少了两个对外端口(即P0、P2口),使它最大可能地减少了对外引脚下,因而芯片尺寸有所减小。2.3 LED显示数码管LED有共阴极和共阳极两种。如图所示。二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)ag,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电
12、阻。LED数码管结构原理图: 高电平驱动 共阴极低电平驱动 共阳极 图3 AT89C2051引脚配置AT89C2051芯片的20个引脚功能为:VCC 电源电压。GND 接地。RST 复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。XTAL1 反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2 来自反向振荡放大器的输出。P1口 8位双向I/O口。引脚P1.2P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出
13、缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1” 后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P3口 引脚P3.0P3.5与P3.7为7个带内部上拉的双向I/0引脚。P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口。第3节系统的软件设计3.1 软件设计 新型 LED 彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。系统中软件可以分为主程序和中断服务子程序。上电后在缺省状态以顺序调用 Model_i 花样亮灯模式流程为主程序
14、,以一个单位时间 5 ms 的 T0 定时为中断服务子程序。在这个 5 ms 的 T0 定时基础上,可以根据需要来确定各种模式工作时间 Ti ,以及确定在各种亮灯模式 Mode l_i 内点亮和熄灭各种颜色 LED 灯的时刻: Red_on , Red_off , Green_on , Green_off , Blue_on , blue_off 以及 Clock (移位翻转脉冲)等。整个系统软件由主程序( Main )、各个模式子程序( Model_i )、 5 ms 中断服务子程序 (T0 Interrupt) 、键盘扫描处理子程序( Key Board )、显示子程序( Display
15、)等程序组成。利用 T0 定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据不同的模式 Mo del_i 可以设定不同的工作时间 Ti 和脉冲翻转频率 Fi 通过 P0 口输出,使各色 L ED 灯的驱动时刻与移位触发的翻转时刻步调一致,使 LED 彩灯按照设计的模式工作。 除了 T0 定时中断之外,程序的大部份时间是在处理按键的查询和 LED 显示的延时。 8 个按键分别为: 4 个参数按键( Fi 增、减按键, Ti 增、减按键), 3 个模式改变按键(模式上翻 UP 、模式下翻 DOWN 、模式保持 KEEP ), 1 个功能切换按键。在每次的 T0 定时中断服务子程序
16、里,需要对各个时间寄存器和模式寄存器进行加 1 或者清,为主程序查询作准备,同时查询是否已中断 6 次( 30 ms ),若 30 ms 到了,则对参数按键查询一次,是否有时间 Ti 频率 Fi 增减键按下并进行相应子程序处理。 主程序除了调用各种子模式子程序( Model_i ),调用 LED 显示子程序 (Display) 和延时子程序 (Delay) 之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。 主程序流程如图 3 所示。亮灯模式子程序 Model_i 可以编写若干 (n 种 ) ,只要控制好各色灯触发和熄灭
17、时刻就可以组合成各种亮灯效果。 Model_i 程序流程如图 4 所示。 第4节 结语与市面上大多数的LED彩灯相比,该种彩灯具有更好的灯光装饰效果,性价比更高,与普通的全硬件LED彩灯相比具有更好的经济效益。应用主控模块输出的控制信号去控制灯管内的L ED板模块工作,使得产品性能稳定,便以安装容易操作。由于控制程序存储在89C51单片机 的电可擦除Flash闪存EPROM中,如果用户需要更改系统的亮灯模式Model_i,无须改变系统硬件电路,只需修改其中程序即可,是一种很有发展前途的彩灯控制器。参考文献1 谢自美,电子线路设计实验测试。华中理工大学出版社2 张鑫,单片机原理与应用。电子工业出版社3 陆子明,单片机设计与应用基础教程。电子工业出版社4 周立功,增强型80C51单片机速成与实战。北京航天航空出版社5 潘永雄,新编单片机原理与应用。西安电子科技大学出版社 附录系统源程序下面以第一种模式工作为例。 .