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