基于89c51单片机控制的LED音乐彩灯控制器的设计说明
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LED模块
提供+ 5V 工作电源,另一方面为主控模块单片机系统彩灯控制器提供
5V 工作电源。整个系
统工作由软件程序控制运行, 根据需要用户可以在 LED彩灯工作时通过主控模块上的按键来
设定亮灯时间和灯光闪动频率。
上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,
则进入默认工作状态。 在设定模式状态下, 可以根据个人爱好及不同场合的需要来指定调用
DB 26H,40H,20H,20H,2BH,20H,26H,20H
DB 20H,20H,30H,80H,20H,30H,1CH,10H
DB 20H,10H,1CH,10H,20H,20H,26H,20H
DB 2BH,20H,30H,20H,2BH,40H,20H,15H DB 1FH,05H,20H,10H,1CH,10H,20H,20H
用单片机 89C51 产生乐曲音符,再把音谱翻译成计算机音乐语言,由单片机进行信息处理, 再经过信号放大, 由喇叭放出乐曲。 由于音符和节拍都由计算机产生, 所以发言音符和节拍
准确。
单片机奏乐的原理:
通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声
音,再来源延迟常数, 作为数据表格存放在存储器中。 由程序查表得到定时常数和延迟常数,
RET
CONT: INC 20H
;
计数单元内容加 1
MOV TH0,#0DBH
;
MOV TL0,#0FFH
重新送 100MS定时初值
RETI
DAT: DB 18H,30H,1CH,10H,20H,40H,1CH,10H; < 八月桂花遍地开 >的谱表
DB 18H,10H,20H,10H,1CH,10H,18H,40H
除了 T0 定时中断之外,程序的大部分时间是在处理按键的查询和
LED 显示的延时。 3
个按键分别为: K1 按键,从左到右点亮 LED,K2 按键,从右到左点亮 LED,用户自己定义方
式点亮 LED。在每次的 T0 定时中断服务子程序里,需要对各种时间寄存器和模式寄存器进
行加 1 或者清 0,为主程序查询作准备,同时查询是否已中断
定各种模式工作时间 Ti ,以及确定在各种亮灯内点亮和熄灭各种状态
LED 灯等。整个系统
.
.
.
软件由程序、各种模式子程序、 1ms 中断服务子程序、调用循环程序组成。利用
T0 定时器
作为定时基本单位, 根据模式需要计算好各控制信号的发生时刻, 根据移位触发的翻转时刻
步调一致,使 LED 彩灯按照设计的模式工作。
MOVC A,@A+DPTR ;
取节拍常数送 R7
MOV R7,A
SETB TR0
;
启动定时器 T0
MUSIC2;NOP
CPL P1.0
;
输出电平取反
MOV A,R6
MOV R3,A
;
LCALL DEL20
音阶常数送 R3
MOV A,R7
;
节拍常数送 A
CJNE A,20H,MUSIC
;
节拍时间到否?
和熄灭时刻就可以组合础各种亮灯效果。
2.1 原理框图
扬声器
功率放大电路 LM386
电源电路
彩灯驱动显示电路
复位电路
时钟电路
2.2 电路原理图
2.3 工作原理
根据设计要求可以把电路组成部分分为音乐控制部分,整个系统有
3 个或以上的
控制开关。控制彩灯闪烁快慢的时钟信号
CLK-IN ,音乐控制按钮,清零端 CLRDENG等。利
CALL DELAY N4: JB P0.2,LOOP
.
.
.
CALL DELAY MOV A,2AH ADD A,#01H DA A MOV 2AH,A CJNE A,#24H,N5 MOV 2AH,#00 N5: JNB P0.2, $ CALL DELAY JMP LOOP TIM0: MOV TH0,#> (65536-4000) MOV TL0,#< (65536-4000) PUSH A PUSH PSW DJNZ R4,X2 MOV R4,#250 CALL CLOCK CALL DISP X2: CALL SCAN
计,使单片机 P0 口作为三色 LED驱动信号输出口及移位时钟 CLOCK信号, 8951 的 P0 为 LED
的输出口。
软件设计
LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。
系统中软件可以分为主
程序和中断服务子程序。 上电后在按键控制灯的闪烁方式, 通过软件来控制循环, 以一个单
位实际 1ms的 T0 定时为中断服务子程序。 在这个 1ms的 T0 定时基础上, 可以根据需要来确
.
.
.
DB 26H,20H,2BH,20H,30H,20H,2BH,40H DB 20H,30H,1CH,10H,18H,20H,15H,20H DB 1CH,20H,20H,20H,26H,40H,20H,20H DB 2BH,20H,26H,20H,20H,20H,30H,30H DB 20H,30H,1CH,10H,18H,40H,1CH,20H DB 20H,20H,26H,40H,13H,60H,18H,20H DB 15H,40H,13H,40H,18H,80H,00H END 时钟控制部分源程序: ORG 00H JMP START ORG 0BH JMP TIM0 START:MOV 28H,#00
DB 18H,10H,20H,20H,26H,20H,2BH,20H
DB 30H,20H,2BH,40H,20H,20H,1CH,10H
DB 18H,10H,20H,20H,26H,20H,2BH,20H
DB 30H,20H,2BH,40H,20H,30H,1CH,10H
DB 18H,20H,15H,20H,1CH,20H,20H,20H
立工作子程序,其中设定了从左到右点亮 亮方式。
LED,从右到左点亮 LED,还有自己定义的 LED 点
因此在 LED 彩灯上电工作后,可以方便地通过主控模块上的显示器指定
LED 彩灯当前
工作模块,工作时间 Ti ,频率 Fi 等实时参数。若实际应用需要根据不同场合和时间来改变
彩灯闪亮效果,可以通过主控模块上的按键来设定
Y
Y
恢复初始条件 A 清零
延时 1s 后再循环
.
.
.
N 音阶常数送 6 取节拍常数送 R7 启动 T0 计数 P2.0 取反 按 R6 延时 节拍时间是否到? N 停止 T0 计数,中断计数, 20H单元清零, DPTR加 1 Y
2.4 音乐彩灯控制程序代码
音乐播放源程序: (采用定时器 T0,定时器方式 1)
MOV 2AH,#12H MOV 2BH,#00 MOV 2CH,#00 MOV TMOD,#00000001BH MOV TH0,#> (65536-4000) MOV TL0,#< (65536-4000) MOV IE,#10000010BH MOV R4,#250 SETB TR0 LOOP: JB P0.0,N2 CALL DELAY MOV A, 2CH ADD A,#01H DA A MOV 2CH,A CJNE A,#60H,N1 MOV 2CH,#00H N1: JNB P0.0,$ CALL DELAY N2: JB P0.1,N4 CALL DELAY MOV A,2BH ADD A,#01H DA A MOV 2BH,A CJNE A,#60H,N3 MOV 2BH,#00H N3: JNB P0.1,$
;
为取下一个音阶常数准备
LJMP MUSIC1
END0: MOV R2,#200
;
歌曲结束,延时 1 秒后继续
MUSIC6:MOV R3,#250
LCALL DEL20
DJNZ R2,MUSIC6
LJMP MUSIC0
DEL: MOV R4,#05H
DEL4: NOP
DJNZ R4,DEL4
DJNZ R3,DEL
中断计数单元清零
MUSIC1: CLR A
MOVC A,@A+DPTR ;
查表取音阶常数
JZ END0
;
是结束符?
CJNE A,#0FFH,MUSIC5 ;
是休止符?
LJMP MUSIC3
;
产生 100MS停顿
MUSIC5: NOP
MOV R6,A
;
音阶常数送 R6
INC DPTR
;DPTR+1
MOV A,#0
电路结构复杂、 电路复杂、功率损耗大等缺点。此外从功能效果上看,
亮灯模式少而且样式
单调,缺乏用户可操作性……
本方案提出一种基于 8951 单片机的彩灯控制方案,实现对 LED 彩灯的控制。 本方案以
8951 单片机作为主控核心,在主控模块上设有
3 个按键和 8 个 LED显示灯,根据需要可以
编写若干种亮灯模式,利用其内部定时器 T0 实现一个基本单位时间为 1ms 的定时中断,根
DB 1CH,20H,20H,20H,1CH,20H,18H,20H
DB 20H,80H,0FFH,20H,30H,1CH,10H,18H
DB 20H,15H,20H,1CH,20H,20H,20H,26H
DB 40H,20H,20H,2BH,20H,26H,20H,20H
DB 20H,30H,80H,0FFH,20H,20H,1CH,10H
LED不同的闪烁频率 Fi 和亮灯时间 Ti ,
以便符合实际需要。 此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式,
可以让程序
循环。
硬件设计
LED彩灯系统包括,即 LED彩灯控制器( 8951 主控模块) ,LED彩灯在 8951 外部接一个
震荡时钟频率。用 8951 的控制器,具有按键、显示等功能,并利用
.
.
.
MOV 20H,#00H
;
为下一个音阶常数做准备
INC DPTR
LJMP MUSIC1
MUSIC3: NOP
:
休止 100MS
CLT TR0
MOV R2,#14H
;R2
= 20
MUSIC4:NOP
MOV R3,#250
;R3=250
LCALL DEL20
DJNZ R2,MUSIC4
INC DPTR
分别用以控制定时器产生方波的频率和发出该频率方波的持续时间。
当延迟时间到时, 再查
下一个的定时常数和延迟常数,依次下去,就可以自动演奏乐曲。
工作程序流程图如下:
开始
T0 初始化, A 清零,开中断,中断计数 20H单元,清零
查首地址送 DPTR
查表取常数
是结束符 00H?
延时 100ms
N
是休止符 FFH?
据各种亮灯时间的不同需要, 在不同时刻输出灯亮或灯灭的控制信号, 然后驱动各种颜色的
灯亮或灭。与普通 LED彩灯相比,具有体积小、价格低、功耗低等优点。
2 系统功能
LED彩灯用软件控制硬件的方式来控制彩灯闪烁, 即彩灯控制器和管内 LED模块。 彩灯
采用 8951 提供+ 5V 电压工作,经过电源变换,输出直流工作电压,一方面为管内
ORG 000H
LJMP START
ORG 000BH
AJMP CONT
ORG 0100H
STATR:MOV SP,#50H
MOV TH0,#0DBH
MOV TL0, # 0FFH
MOV TMOD,#01H
MOV IE,#82H
MUSIC0:MOV DPTR,#DAT ; 表首地址送 DPTR
MOV 20H,#00H ;
8951 的 P0 口的 8 个输
出端上面焊有 8 个 LED彩灯,使用彩灯在软件的控制下工作。
主控模块电路设计
主控模块电路如图 1 所示。主控模块主要设计器件有 89C51,8 个 LED显示器, 3 个开
关按键, 1 个稳压器( 5V 电压),1 个外部晶振振荡器信号输出驱动, 4 个电阻。通过软件设
基于 89c51 单片机控制的 LED音乐彩灯控制器的设计
随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。
LED 彩灯由于其丰富的
灯光色彩, 便宜的造价以及简单等特点而得到了广泛的应用, 用彩灯来装饰街道和城市建础
物已经成为一种时尚。但目前市场上各种各样的
LED彩灯控制器大多数用全硬件电路实现,
1ms,若 1ms到了,则对按键
一次,是否有按下并进行相应子程序处理。
主程序除了调用各种子模式子程序,调用
LED 显示子程序和延时子程序之外,还一直
保持查询是否有功能切键按下以及是否有模式改变按键按下,
一旦有功能切换键和模式改变
键按下, 就会进入相应的按键处理。 程序流程如图 2 所示亮灯模式, 只要控制好各色灯触发
哪种模式,并且可以改变每种模式的时间 T1、频率 F1 参数,在工作状态下, LED彩灯控制
器按照程序设定好的若干亮灯花样模式Байду номын сангаас序顺序调用往下走,
开始工作, 依次 8 个等亮完为
一个亮灯周期, 然后再回主循环继续工作, 同样如果想进入其它设定模式状态, 只需按下功
能切换键即可。整个 3 种亮灯模式时间可以看作一个大周期 T, 对于每一个模式编写一个独