采用单片机编程来实现音乐彩灯的控制

合集下载

单片机音乐控制流水灯

单片机音乐控制流水灯

摘要本设计是一种基于AT89C51单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。

本方案以AT89C51单片机作为主控核心,利用三极管和蜂鸣器,通过三极管放大电流使用蜂鸣器播放音乐,利用编程实现亮灯循环模式,在有8个LED彩灯,根据用户需求可以编写若干种亮灯模式.例如左右闪烁,隔几个亮灭,蜂鸣器可以根据用户需求改写编程播放各种音乐。

本方案具有设计简单、体积小、元器件少、电路结构简单等优点。

该设计方案设计及其简单,典型的89c51单片机,亮灯模式多,播放各种类型的音乐,具有体积小、价格低、低能耗等优点。

在美丽的都市夜晚,彩灯的循环亮灭,播放动人的音乐,衬托出美丽的氛围,音乐彩灯具有更广阔的发展天地。

关键字:AT89C51 LED彩灯音乐AbstractThis design is a musical based on AT89C51 microcontroller control program Lantern,realize MCU playing music,And the LED lights on the frequency of different notes with the light flashing。

The program for AT89C51 microcontroller as the control center, use of transistor and buzzer, the current through the transistor amplification using the buzzer to play music,Using programming lighting cycle mode, with 8 LED Lantern, according to user needs to write some kind of switch-mode. For example, flashing around, every few light off, the buzzer can be adapted according to user requirements play a variety of music programming . The program is simple in design, small size, less components, and simple circuit structure. The design and simple design, the typical 89c51 microcontroller, a switch-mode and more, playing all types of music, has a small size, low price and low power consumption and so on. In the beautiful city at night, lanterns light off cycle, play beautiful music, brings out the beautiful atmosphere,music Carnival with the development of a broader world.Keywords: AT89C51 LED Lantern music目录绪论------------------------------------------------------------- 41音乐流水灯方案设计与选择--------------------------------------- 41、1 设计要求-------------------------------------------------51、2 基本原理------------------------------------------------- 51、3 设计电源------------------------------------------------- 5-61、4 频率音符------------------------------------------------- 62 音乐流水灯设计过程---------------------------------------------- 7 2、1 元件选择------------------------------------------------- 7 2、2 电路设计------------------------------------------------- 7 2、2、1 元器件介绍------------------------------------------7-9 2、2、2 音乐流水灯构思---------------------------------------9-11 2、3 软件设计-------------------------------------------------11 2、3、1 编程介绍--------------------------------------------11-13 2、3、2 设计程序-------------------------------------------14-15 参考文献---------------------------------------------------------- 16绪论目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。

基于单片机的音乐流水灯设计

基于单片机的音乐流水灯设计

基于单片机的音乐流水灯设计音乐流水灯在现代生活中越来越受到人们的喜爱,它将音乐与灯光相结合,创造出一种独特的视听效果。

而更是将这一创意发挥到了极致。

本文将围绕这一主题展开深入研究,探讨单片机技术在音乐流水灯设计中的应用。

首先,我们需要了解什么是单片机。

单片机是一种集成在一块芯片上的微处理器,具有中心处理器、存储器、输入输出端口等功能。

在嵌入式系统设计中,单片机被广泛应用于各种领域,包括家电、汽车电子、医疗设备等。

在音乐流水灯设计中,单片机可以控制灯光的亮度、颜色、闪烁效果,并实现与音乐的同步播放。

音乐流水灯设计的关键是如何实现音乐与灯光的同步效果。

传统的音乐流水灯主要通过模拟电路来实现,但是这种设计存在灵活性低、难以控制等问题。

而基于单片机的音乐流水灯设计则可以通过编程控制灯光效果,实现更加精确的同步效果。

单片机可以根据音乐的节奏和节拍,控制灯光的亮度和闪烁频率,达到视听效果的最佳匹配。

在实际的音乐流水灯设计中,我们可以选择不同的单片机芯片和周边器件,根据需求设计相应的硬件电路。

同时,我们还需要编写相应的控制程序,实现音乐与灯光的同步效果。

在程序设计中,我们可以利用单片机的定时器、中断、串口通信等功能,实现复杂的灯光效果。

除了硬件设计和程序编写,我们还需要考虑音乐流水灯的外观设计。

灯光的颜色、形状、布局等都会影响整体效果。

在外观设计中,我们可以采用不同的灯珠、灯管、灯带等灯具,搭配适当的灯罩或反光板,创造出独特的视觉效果。

此外,我们还可以设计出不同的灯光变换模式,如呼吸灯、闪烁灯、渐变灯等,增加灯光效果的多样性。

在音乐流水灯设计中,音乐的选择也是至关重要的。

不同类型的音乐会带来不同的视听感受。

我们可以选择流行歌曲、古典乐曲、电子音乐等不同类型的音乐,根据音乐的节奏和情感色彩,设计出相应的灯光效果。

此外,我们还可以考虑加入声控功能,让灯光根据声音的大小和频率进行变化,增加互动性和趣味性。

在实际应用中,基于单片机的音乐流水灯设计可以广泛应用于家庭装饰、商业展示、演艺舞台等场合。

基于单片机的音乐彩灯控制器设计

基于单片机的音乐彩灯控制器设计

基于单片机的音乐彩灯控制器设计作者:张德坤彭森来源:《卷宗》2018年第13期摘要:如今,单片机正以迅雷不及掩耳之势的速度占领了智能控制系统的主导位置。

各种彩灯也伴随在我们生活周围。

此次的音乐彩灯控制器是使用AT89C51单片机制作的,由于单片机的频率不一样,所以当输出到扬声器播放音乐时,彩灯会跟随着音乐的变化而有节律的亮和灭。

本文主要讲述了该系统硬件电路的组成结构和连接方法,同时还介绍了应用软件的程序设计。

在硬件设计上,我们先对直流电源电路、复位电路以及时钟电路和声音驱动电路进行电路设计,然后把所有模块电路进行连线组合,通过仿真软件调试确定此次设计的硬件电路。

设计软件的时候,我们先将音符频率发生的程序、彩灯程序、计数器/定时器程序全部设计好,之后再将每个程序块整合,最后将程序通过软件仿真联合进行调试。

关键词:单片机;彩灯;控制器1 引言现如今,单片机已经应用于各个领域。

比如:私家高档轿车的安全系统,工业的控制,导弹导航装置,智能的仪器表,普遍应用的各种智能IC卡,计算机网络和通讯领域的应用以及程控玩具、电子宠物等等。

科技越来越发达,智能化的东西也越来越多。

所以可以说,学习单片机相关的知识、研发及应用必然会成为这个社会发展的一种趋势。

在20世纪80年代的时候,单片机首次出现在我国,随后又开展了全国第一届单片机开发与应用的交流会,有些地方甚至还创立了和这有关的协会,这是单片机在国内形成的第一次热潮。

现如今,发展得最快的就属单片机应用技术了,只要将“单片机”三个字输入到网上进行搜索,就能够出现数以万计的和单片机有关的网站。

根据调查发现,当前我国的单片机从业人数至2010年达到了100多万,人才的需求量位居第一。

据统计,单片机的年生产能力已达到3亿片,每年以约为百分之二十的速度快速增长,可是相对世界市场中国的全球市场份额不足 1%。

因此,我国单片机知识的学习是一个很好的发展前景。

所以,随着社会的发展,单片机技术将更受欢迎。

基于单片机的播放音乐的彩灯系统

基于单片机的播放音乐的彩灯系统

基于单⽚机的播放⾳乐的彩灯系统课程设计(论⽂)题⽬名称播放⾳乐的彩灯系统设计课程名称单⽚机原理学⽣姓名沈煌学号0941201075系、专业电⽓⼯程系09电本(⼀)指导教师邱雄迩2011年6⽉17⽇邵阳学院课程设计(论⽂)任务书注:1.此表由指导教师填写,经系、教研室审批,指导教师、学⽣签字后⽣效;2.此表1式3份,学⽣、指导教师、教研室各1份。

指导教师(签名):学⽣(签名):邵阳学院课程设计(论⽂)评阅表学⽣姓名沈煌学号0941201075系电⽓⼯程系专业班级09电本⼀班题⽬名称播放⾳乐的彩灯系统设计课程名称单⽚机原理⼀、学⽣⾃我总结⼆、指导教师评定⽬录摘要 (1)1设计任务 (2)1.1功能及技术指标要求 (2)1.2设计内容 (2)1.3设计思路及关键技术 (2)2⾳乐彩灯的设计程序框图 (2)3⾳乐彩灯程序的主程序 (3)4系统硬件电路的设计 (9)4.1 按键 (9)4.2 蜂鸣器 (9)4.5电路仿真 (15)5原理图 (15)6检测与调试 (15)6.1硬件调试 (15)6.2软件调试 (16)7总结与体会 (16)8参考⽂献 (17)9致谢 (17)摘要近年来随着科技的飞速发展,单⽚机的应⽤正在不断地⾛向深⼊,同时带动传统控制检测⽇新⽉益更新。

在实时检测和⾃动控制的单⽚机应⽤系统中,单⽚机往往是作为⼀个核⼼部件来使⽤,仅单⽚机⽅⾯知识是不够的,还应根据具体硬件结构,以及针对具体应⽤对象特点的软件结合,加以完善。

⾳乐彩灯的出现,以装饰美化居室和店⾯,为节⽇增辉添彩。

随着科学的发展,⼈们⽣活⽔平的提⾼,⼈们不满⾜于吃饱穿暖,⽽要有更⾼的精神享受。

不论是思想,还是视觉,⼈们都在追求更⾼的美。

特别使在视觉⽅⾯,⼈们不满⾜于⼀种光,彩灯的诞⽣让⼈们是视觉对美有了更深的认识。

但现在市⾯上的⾳乐彩灯只是按照⼀定的⽅式闪烁,让⼈们感觉到⼗分的粗糙⽆味,更没有声⾳那样⽤震撼⼒,⾳乐彩灯的出现让我们既有了听觉上的享受,更有了精神上的享受。

基于单片机的音乐彩灯控制器的设计(开题报告)

基于单片机的音乐彩灯控制器的设计(开题报告)

基于单片机的音乐彩灯控制器的设计(开题报告)内江师范大学毕业论文开题报告论文题目:基于单片机的音乐提灯控制器设计学生姓名XX讲师XXX选题背景和意义(研究现状、理论价值和现实意义综述)音乐灯笼是一种广泛应用于娱乐、酒店和餐馆的电路装置。

我们可以看到音乐灯笼在许多场合的应用背景:在当今社会,音乐彩灯的发展非常广泛。

各种娱乐场所、酒店、广场等都使用彩灯来增强环境的美感。

音乐彩灯能在音乐的节奏下闪耀,给客人一种全新的感觉。

随着电子技术的发展,音乐彩灯有着很高的发展前景。

含义:1。

与传统的中小规模集成电路和计算机控制相比,用单片机设计的彩灯控制器具有体积小、功耗低、可靠性高、调节灵活等优点。

2.基于单片机的音乐彩灯控制器具有抗干扰能力强、污染小、对环境影响小、不影响人体、适应性广的优点。

本课题的研究和设计可以进一步提高电路设计水平,加深对单片机的理解和应用。

二、研究的主要内容和预期目标(研究框架,要求在第一个提纲中列出)研究的主要内容:音乐提灯控制器主要要求将音乐分成四个不同的频段,并将彩灯分成四组。

每组彩灯有不同的颜色,每组彩灯包含两种颜色相同的彩灯。

彩灯和音乐的同步控制是通过软硬件结合来实现的。

该设计以AT89S52单片机为主控芯片,通过三个按键输入数据,通过编程控制单片机播放音乐和闪烁彩灯,通过小喇叭输出声音,通过LED彩灯和12864液晶屏输出显示软件用于控制音乐频率、哪个组以及应该点亮多少个指示灯。

在控制彩灯的同时,控制扬声器,从而可以更好地实现音乐和彩灯的同步控制。

研究框架:1 .系统的总体设计。

系统的硬件设计。

系统的软件设计。

实验调试5。

设计经验6。

参考文献7。

预期目标:1。

理解基于单片机的音乐提灯控制器的设计原理;2.实现音乐彩灯的同步控制;当音乐在9月份来自高频带XXXX时,参考页数是137~145 2。

至少有10份文件。

6.指导老师的意见。

指导教师意见(签名):二级学院毕业设计论文(设计)领导小组7日的意见。

单片机课程设计-基于单片机音乐彩灯电子控制器设计

单片机课程设计-基于单片机音乐彩灯电子控制器设计

提供全套毕业论文,各专业都有物理与电子工程学院《单片机》课程设计报告书设计题目:基于单片机音乐彩灯电子控制器设计专业:自动化班级: 14接本学生姓名:学号: 20140343112指导教师:2014年11 月16 日物理与电子工程学院课程设计任务书专业:自动化班级: 2014接本摘要随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。

LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。

本篇设计为基于单片机的音乐彩灯控制器,它是指彩灯能随着音乐信号地变化而变化的一种控制电路。

本文详细论述了音乐彩灯控制器的硬件原理电路,包括振荡、时钟、复位等模块电路。

以及如何在硬件电路的基础上通过单片机进行软件编程最终实现音乐彩灯的同步控制。

关键词:音乐;彩灯;同步控制目录1 引言 (4)2.1 设计任务与要求 (5)2.2 方案的论证和选取 (5)3 硬件电路的设计 (7)3.1 单片机系统设计框图 (7)3.2 单片机外围电路 (8)3.3 时钟电路 (9)3.5 按键电路 (11)3.6 ISP下载口电路 (11)3.7LED彩灯显示电路 (12)3.8 12864液晶电路 (12)3.9 音乐播放电路 (14)3.10 直流稳压电源电路 (15)4 系统软件设计 (16)4.1 单片机系统设计主程序流程图 (16)4.2 音乐产生程序 (20)4.3 定时器子程序设计序 (21)4.4 液晶显示子程序 (29)参考文献 (32)1 引言目前,基于彩灯控制器的设计的方法很多,有利用单片机控制的、有利用传感器控制的,还有利用EDA控制的等等。

在简化设计步骤和节约实验器材的情况下,为了简化硬件电路,也可采用PLC S7-20CN控制的,虽然硬件电路比较简便,但是实验程序更复杂,实验步奏更繁琐;对于编写程序是个比较困难的问题。

通常采用单片机控制的方法,即利用单片机的端口来控制彩灯以及音乐播放,在程序编写上更容易编写,程序的可编译性更强。

单片机音乐彩灯设计

单片机音乐彩灯设计

艺术彩灯控制系统设计一.概述1.1 艺术彩灯的设计背景及意义彩灯是人们日常生活中的一种装饰用品,它美观大方,尤其在节日期间,倍增节日气氛。

它蕴涵着丰富的文化底蕴,被广泛地应用于各种店面的装饰。

变换无穷的彩灯样式,给城市增添活力,吸引着人们的注意力,深受人民的喜爱。

在日常生活中,人们还将彩灯摆放成各种图案,增添美感。

随着电子技术的发展,应用系统向着小型化、快速化、大容量、重量轻的方向发展。

科学技术更加贴近人们的生活,向着满足人们需求的方向发展。

节日彩灯的设计与制作工艺也一步一步的走向成熟。

1.2 系统设计功能概述本设计是以AT89C51单片机为基础的音乐彩灯控制方案,来实现对LED彩灯的控制。

以AT89C51单片机作为主控核心,通过汇编语言来控制单片机按下“开始”按键,8个LED 灯从上到下开始循环点亮,按下“上”按键,灯由上向下流动,按下“下”按键,灯由下向上流动,按下“停止”按键,所有灯为暗。

二.彩灯设计内容简要:2.1彩灯设计任务:以单片机为核心,设计一个节日音乐彩灯控制器。

2.2彩灯设计要求:P1.2----开始,按此键则灯开始流动(由上而下)。

P1.3----停止,按此键则停止流动,所有灯为暗。

P1.4----上,按此键则灯由上向下流动。

P1.5----下,按此键则灯由下向上流动。

2.3彩灯总体控制框图:3.2 A T89C51单片机硬件结构:AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的单片机芯片,它采用静态CMOS 工艺制造8位微处理器,最高工作频率位24MHZ。

AT89C5外形及引脚排列如图所示:管脚说明:RST:复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

单片机课程设计+音乐彩灯开关控制

单片机课程设计+音乐彩灯开关控制

微机原理及接口技术课程设计设计题目:开关控制音乐彩灯闪烁设计指导老师:学生姓名:学院:班级:学号:设计时间:一.课程设计题目开关控制音乐彩灯闪烁系统设计二.设计功能说明用实验系统中的LED来代替彩灯,用定时器T1,工作方式1,通过8031的P1.0驱动LED 亮500ms,灭500ms闪烁。

利用定时器0 实现音阶的振荡频率,定时器1 实现音值的基本节拍控制,两者均工作于定时方式1 状态。

对于一般乐曲来讲,一拍的时间约占 0.5秒左右,且以1/4拍作为基本节拍,通过程序输入基本节拍的倍数,而实现音值的节拍时间控制。

程序设计中音乐的播放用接口P1.4输出,最后通过开关K1控制P1.0,开关K2控制P1.4,从而实现音乐的播放和停止,彩灯的亮灭。

三.设计内容1. 定时器T1,工作方式1产生500ms的定时程序驱动LED闪烁,设定时25ms的初值为X,则有(216-X)*0.000002 =0.025,X=53036=CF2C,在程序中给出TH,TL的赋值。

2.奏歌曲《两只蝴蝶》,乐谱为图一,其中每一音符占两个字节,第一个字节用于存放音阶代码,第二个字节用于存放节拍代码。

另外规定音阶代码00H表示休止符,80H表示反复演奏。

振荡频率的计算公式为:f=f0×2(i+j)/12其中f0=233.08188Hz(C调6.#)。

i音调修正值j音阶修正值歌曲《两只蝴蝶》乐谱图一 (G调)四.程序流程图五.程序清单ORG 0000H ;程序开始AJMP LP0 ;跳转乐曲信息表首地址ORG 000BHAJMP LP6 ;跳转至音阶代码ORG 001BHAJMP PTIINT ;中断彩灯闪烁服务程序MOV DPTR, #0F0H ;送外部端口地址MOVX A,@DPTR ;读入开关状态MOVX @DPTR,A ;根据开关状态,驱动发光二极管 MOV P1,A ;开关控制接口P1START:MOV R7,#14H ;R7=14MOV TMOD,#10H ;中断方式MOV TL1,#2CHMOV TH1,#CFHSETB EA ;开放总中断SETB ET1 ;开放T1中断SETB TR1 ;启动定时器T1SJMP $PTIINT:MOV TL1,#2CH ;恢复计算初值MOV TH1,#CFHDJNZ R7,PEND ;判断是否循环发生了20次MOV R7,#05HCPL P1.0 ;500ms后取反LP0:MOV DPTR,#TABLE ;乐曲音符信息表首地址MAIN:CLR AMOVC A,@A+DPTR ;读音阶代码MOV R5,AMOV R0,ACLR AINC DPTRMOVC A,@A+DPTR ;读节拍代码MOV R4,AMOV A,R5 ;重读音阶代码DEC ARL A ;以两个字节为单位查表MOV R5,A ;代码转存ADD A,#41H ;与TABLE0间的偏移量MOVC A,@A+PC ;查得音阶定时初值高8位MOV TH0,AMOV R3,A ;初值高8位转存MOV A,R5 ;重新装入音阶代码ADD A,#3BHMOVC A,@A+PCMOV TL0,AMOV R2,AMOV TMOD,#11HMOV A,#05HMOV B,R4MUL ABMOV R4,AMOV TH1,#0CFHMOV TL1,#2CHSETB TR1CJNE R0,#80H,LP1 ;若没有结束,转至LP1AJMP LP0 ;否侧重新开始LP1: CJNE R0,#00H,LP2 ;不为休止符,转至LP2,否则转至LP4 AJMP LP4LP2: SETB TR0 ;所读音阶不是休止符,启动定时器T0SETB EASETB ET0LP3: JNB TF1,$ ;TF1不为0,则原地执行CLR TF1 ;当发生中断时,重设TF1为0DJNZ R4,LP5INC DPTRAJMP MAINLP4:CLR TR0CLR EAAJMP LP3LP5: MOV TH1,#0CFHMOV TL1,#2CHAJMP LP3 ;跳至LP3重新判断TABLE0:DW 0FCADH ;音阶对应的定时初值表DW 0FD0AHDW 0FD5DHDW 0FD82HDW 0FDC8HDW 0FE06HDW 0FE22HDW 0FE57HDW 0FE85HDW 0FEAEHDW 0FEC1HDW 0FEE4HDW 0FF03HLP6: MOV TH0,R3MOV TL0,R2CPL P1.4 ;取反得到方波RETTABLE: DW 0602H,0502H,0604H,0602H ;乐曲对应的音阶和节拍代码DW 0502H,0602H,0502H,0404HDW 0202H,0402H,0504H,0502H,0602HDW 0502H,0402H,0202H,0402H,0804HDW 0602H,0502H,0604H,0602H,0502HDW 0602H,0502H,0404H,0202H,0402HDW 0504H,0502H,0602H,0502H,0402H,0202H,0402H,0504HDW 0602H,0502H,0604H,0602H,0502HDW 0602H,0502H,0404H,0202H,0402HDW 0504H,0502H,0602H,0502H,0402H,0202H,0402H,0804HDW 0602H,0802H,0804H,0802H,0802HDW 0902H,0802H,0604H,0502H,0602HDW 0504H,0502H,0602H,0502H,0402H,0201H,0201H,0402HDW 0402H,0402H,0404H,0004H,0804HDW 0802H,0902H,0B02H,0A02H,0A02H,0902HDW 0606H,0502H,0502H,0602H,0604HDW 0002H,0602H,0602H,0802H,0904H,0906H,0204H,0502H,0202H,0204H DW 0602H,0802H,0802H,0602H,0804H,0004H,0B04H,0A04HDW 0902H,0A02H,0604H,0002H,0902H,0902H,0A02HDW 0902H,0802H,0604H,0504H,0604H,0502H,0602H,0804HDW 0002H,0802H,0802H,0902H,0902H,0802H,0604H,0504H,0604H,0504H DW 0104H,0102H,0202H,0404HDB 8OHEND音乐彩灯控制原理图七.设计中遇到的问题及解决方法由于该门知识涉及面太广,又有些艰涩难懂,所以该不免有些不足之处,在我们设计和调试的过程中,也发现了一些问题,出现联机失败提示,结束运行,重新进行操作,并在写程序之前按下通讯键PCDBG。

基于单片机的声控彩灯设计

基于单片机的声控彩灯设计

摘要本次课程设计主题是基于ATMEL公司生产的AT89S52单片机为核心设计一个声控彩灯系统。

系统由模拟电路部分与数字电路部分组成,模拟电路由驻极体麦克风、运算放大器、二极管峰值包络检波器,实现对音频信号进行转换、滤波、放大等处理。

数字电路由A/D转换器、AT89S52单片机及发光二级管组成,单片机将A/D转换后的信号对LED的亮灭进行控制,LED的亮灭情况由音频信号的强度进行控制,点亮的LED的数目随音频音量的增大而增加,随音频音量的减小而减少,实现了一个简单的音乐彩灯控制系统。

关键词:AT89S52单片机;发光二极管; A/D转换器;运算放大器;驻极体麦克风;目录引言42。

方案选择42。

1 方案一:采用数字芯片构成的声控彩灯系统42。

2 方案二:基于AT89S52为核心的单片机声控彩灯系统5 2。

3 方案比较和选择52.4 声控彩灯系统框图63。

硬件设计原理73.1模拟电路部分73.1。

1 模拟电路原理说明73.1.2 电路仿真过程83.1。

3模拟电路原理图113.2数字电路部分143。

2.1 数字电路部分原理图143.2。

2 A/D转换器153.2.3单片机AT89S52介绍183.2。

4 时钟电路与复位电路213.2.5 LED发光显示电路233.2。

6下载端口234. 软件设计原理245。

硬件电路制作和组装调试246。

软件调试过程及遇到的问题和解决方法257. 课设总结26谢辞27附录一29附录三31附录四32引言随着科学技术发展,彩灯艺术更是花样翻新,奇招频出,传统的制灯工艺和现代科学技术紧密结合,将电子、建筑、机械、遥控、声学等新技术、新工艺用于彩灯的设计制作,把形、色、光、声、动相结合,思想性、知识性、趣味性、艺术性相统一,音乐彩灯的出现使人们既得到了视觉与听觉上得享受,同时也给人们紧张的现代生活带来新鲜的色彩与活力.1.设计任务及要求(1)选择合适传感器;(2)选择合适放大器及A/D转换器件;(3)单片机根据音频信号大小驱动LED亮灭;(4)可调拾音灵敏度;(5)LED的个数、造型自定;2.方案选择2.1 方案一:采用数字芯片构成的声控彩灯电路音频在电信号中表现为多个正弦波叠加而成。

单片机遥控音乐.灯闪烁等功能程序

单片机遥控音乐.灯闪烁等功能程序

#include <reg52.h> //包含51单片机相关的头文件#define uint unsigned int //重定义无符号整数类型#define uchar unsigned char //重定义无符号字符类型uchar code LedShowData[]={0x03,0x9F,0x25,0x0D,0x99, //定义数码管显示数据0x49,0x41,0x1F,0x01,0x19};//0,1,2,3,4,5,6,7,8,9uchar code RecvData[]={0x07,0x0A,0x1B,0x1F,0x0C,0x0D,0x0E,0x00,0x0F,0x19}; uchar IRCOM[7]; //接收数据缓冲区static unsigned int LedFlash; //定义闪动频率计数变量unsigned char RunFlag=0; //定义运行标志位/***********完成基本数据变量定义**************/sbit LeftLed=P2^0; //定义前方左侧指示灯端口sbit RightLed=P0^7;sbit Led=P1^0; //定义前方右侧指示灯端口sbit M1A=P0^0; //定义电机1正向端口sbit M1B=P0^1; //定义电机1反向端口sbit M2A=P0^2; //定义电机2正向端口sbit M2B=P0^3;sbit MUSIC=P0^6;sbit IRIN=P3^3;sbit LED1=P1^1;sbit LED2=P1^2;sbit LED3=P1^3;sbit LED4=P1^4;sbit LED5=P1^5;sbit LED6=P1^6;sbit LED7=P1^7;sbit LeftIR1=P3^1; //定义前方左侧红外探头端口sbit RightIR1=P3^4; //定义前方右侧红外探头端口sbit FontIR1=P3^0;#define LED P1 //定义电机2反向端口/*************完成电机端口定义***************/typedef struct{unsigned char h;unsigned char l;}FREQ_T;typedef struct{FREQ_T * freq;unsigned char time;}NOTE_T;#define TIME_1_32 1#define TIME_1_16 2#define TIME_1_8 4#define TIME_1_4 8#define TIME_1_2 16#define TIME_1_1 32extern void initialize_music(void); extern FREQ_T * s[];void initialize_music(void);code FREQ_T LDO = {0xf2,0x4b}; code FREQ_T LDOR= {0xf3,0x09}; code FREQ_T LRE = {0xf3,0xca}; code FREQ_T LRER= {0xf4,0x75}; code FREQ_T LMI = {0xf5,0x20}; code FREQ_T LFA = {0xf5,0xb8}; code FREQ_T LFAR= {0xf6,0x4e}; code FREQ_T LSO = {0xf6,0xd9}; code FREQ_T LSOR= {0xf7,0x5c}; code FREQ_T LLA = {0xf7,0xda}; code FREQ_T LLAR= {0xf8,0x4f}; code FREQ_T LSI = {0xf8,0xbf};code FREQ_T DO = {0xf9,0x26}; code FREQ_T DOR= {0xf9,0x89}; code FREQ_T RE = {0xf9,0xce}; code FREQ_T RER= {0xfa,0x3f}; code FREQ_T MI = {0xfa,0x92}; code FREQ_T FA = {0xfa,0xe0}; code FREQ_T FAR= {0xfb,0x2b}; code FREQ_T SO = {0xfb,0x71}; code FREQ_T SOR= {0xfb,0xb3}; code FREQ_T LA = {0xfb,0xf1}; code FREQ_T LAR= {0xfc,0x2c}; code FREQ_T SI = {0xfc,0x64};code FREQ_T HDO = {0xfc,0x97}; code FREQ_T HDOR= {0xfc,0xc9}; code FREQ_T HRE = {0xfc,0xf8}; code FREQ_T HRER= {0xfd,0x24}; code FREQ_T HMI = {0xfd,0x4d}; code FREQ_T HFA = {0xfd,0x75}; code FREQ_T HFAR= {0xfd,0x9a}; code FREQ_T HSO = {0xfd,0xbd}; code FREQ_T HSOR= {0xfd,0xde}; code FREQ_T HLA = {0xfd,0xfd}; code FREQ_T HLAR= {0xfe,0x1a}; code FREQ_T HSI = {0xfe,0x36}; code FREQ_T PAUSE={0,0};FREQ_T freq;code NOTE_T alice[]= {{&HMI,TIME_1_16}, {&HRER,TIME_1_16}, {&HMI,TIME_1_16}, {&HRER,TIME_1_16}, {&HMI,TIME_1_16}, {&SI,TIME_1_16}, {&HRE,TIME_1_16}, {&HDO,TIME_1_16}, {&LA,TIME_1_8}, {&PAUSE,TIME_1_16}, {&DO,TIME_1_16}, {&MI,TIME_1_16}, {&LA,TIME_1_16}, {&SI,TIME_1_8},{&PAUSE,TIME_1_16}, {&MI,TIME_1_16}, {&SOR,TIME_1_16}, {&SI,TIME_1_16}, {&HDO,TIME_1_8}, {&PAUSE,TIME_1_16}, {&MI,TIME_1_16}, {&HMI,TIME_1_16}, {&HRER,TIME_1_16}, {&HMI,TIME_1_16}, {&HRER,TIME_1_16}, {&HMI,TIME_1_16}, {&SI,TIME_1_16}, {&HRE,TIME_1_16}, {&HDO,TIME_1_16}, {&LA,TIME_1_8}, {&PAUSE,TIME_1_16}, {&DO,TIME_1_16}, {&MI,TIME_1_16}, {&LA,TIME_1_16}, {&SI,TIME_1_8},{&PAUSE,TIME_1_16}, {&MI,TIME_1_16}, {&HDO,TIME_1_16}, {&SI,TIME_1_16}, {&LA,TIME_1_8}, {&PAUSE,TIME_1_16},{&SI,TIME_1_16},{&HDO,TIME_1_16},{&HRE,TIME_1_16},{&HMI,TIME_1_16},{&HMI,TIME_1_8},{&SO,TIME_1_16},{&HFA,TIME_1_16},{&HMI,TIME_1_16},{&HRE,TIME_1_16},{&HRE,TIME_1_8},{&FA,TIME_1_16},{&HMI,TIME_1_16},{&HRE,TIME_1_16},{&HDO,TIME_1_16},{&HDO,TIME_1_8},{&MI,TIME_1_16},{&HRE,TIME_1_16},{&HDO,TIME_1_16},{&SI,TIME_1_16},{&SI,TIME_1_8},{&MI,TIME_1_16},{&HMI,TIME_1_16},{&MI,TIME_1_16},{&HMI,TIME_1_16},{&MI,TIME_1_16},{&HMI,TIME_1_16},{&HRER,TIME_1_16},{&HMI,TIME_1_16},{&HRER,TIME_1_16},{&HMI,TIME_1_16},{&HRER,TIME_1_16},{&HMI,TIME_1_16},{&HRER,TIME_1_16},}; //定义红外接收端口/*********完成红外接收端口的定义*************/#define ShowPort P2 //定义数码管显示端口extern void ControlCar(uchar CarType); //声明小车控制子程序void interrupt_timer1(void) interrupt 3{static unsigned char count=0;static unsigned char countb=0;static unsigned char i=0;unsigned char k;TH1=0X70; //20msTL1=0X00;count++;if(count==5){count=0;countb++;if(countb==alice[i].time){countb=0;k=i+1;if(k >= sizeof(alice)/sizeof(NOTE_T))k=0;freq.h=alice[k].freq->h;freq.l=alice[k].freq->l;i++;if(i==(sizeof(alice)/sizeof(NOTE_T)))i=0;}}}void interrupt_timer0(void) interrupt 1{TH0=freq.h; //60HzTL0=freq.l;if(freq.h || freq.l)MUSIC=!MUSIC;}void initialize_music(void){TMOD|=0X01; //T0 16bit MODE;TMOD|=0X10;freq.h=alice[0].freq->h;freq.l=alice[0].freq->l;TH0=freq.h;TL0=freq.l;TF0=0;TR0=1; //start timer0ET0=1; //Timer0 interrupt enableTF1=0;TR1=1;ET1=1;EA=1; //interrupt enable}void delay(unsigned char x) //0.14mS延时程序{unsigned char i; //定义临时变量while(x--) //延时时间循环{for (i = 0; i<13; i++) {} //14mS延时}}void Delay() //定义延时子程序{ uint DelayTime=30000; //定义延时时间变量while(DelayTime--); //开始进行延时循环return; //子程序返回}void Delay1(){unsigned int DelayTime=50000; //定义可变延时函数while(DelayTime--); //定义前方左侧指示灯端口}void Delay6(unsigned int DelayTime){while(DelayTime--);}void Delay2(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);Led=~ Led;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1;RightLed=~RightLed;} //定义前方左侧指示灯端口return ; //延时函数进入倒计时}void Delay5() //定义机器人调转子时间子程序{ unsigned int DelayTime=20000; //定义机器人转弯时间变量while(DelayTime--); //机器人转弯循环MUSIC=!MUSIC; //蜂鸣器闪响return;}void Delay7(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED1=~ LED1 ;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1; RightLed=~RightLed;} //定义前方左侧指示灯端口}void Delay8(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED2=~ LED2;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1; RightLed=~RightLed;} //定义前方左侧指示灯端口return ; //延时函数进入倒计时}void Delay9(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED3=~ LED3;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1; RightLed=~RightLed;} //定义前方左侧指示灯端口return ; //延时函数进入倒计时}void Delay10(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED4=~ LED4 ;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1; RightLed=~RightLed;} //定义前方左侧指示灯端口return ; //延时函数进入倒计时}void Delay11(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED5=~ LED5 ;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1; RightLed=~RightLed;} /定义前方左侧指示灯端口}void Delay12(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED6=~ LED6 ;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){ LeftLed=1;RightLed=~RightLed;} //定义前方左侧指示灯端口return ; //延时函数进入倒计时}void Delay13(){unsigned int DelayTime=2000; //定义可变延时函数while(DelayTime--);LED7=~ LED7 ;if(ShowPort==LedShowData[3]){RightLed=1;LeftLed=~LeftLed;}if(ShowPort==LedShowData[4]){LeftLed=1;RightLed=~RightLed;} //定义前方左侧指示灯端口return ; //延时函数进入倒计时}void pao(){ Delay2();Delay2();Led=1;Delay7();Delay7();LED1=1;Delay8();Delay8();LED2=1;Delay9();Delay9();LED3=1;Delay10();Delay10();LED4=1;Delay11();Delay11();LED5=1;Delay12();Delay12();LED6=1;Delay13();Delay13();LED7=1;}void Flash1(){unsigned int CountData=0; while(1){if(CountData<90){Delay6(5000);}else if(CountData<100) {CountData=0;}CountData=CountData+1;LeftLed=1;Led=~Led;LED1=~ LED1 ;LED2=~ LED2 ;LED3=~ LED3 ;LED4=~ LED4 ;LED5=~ LED5 ;LED6=~ LED6 ;LED7=~ LED7 ;RightLed=~RightLed;if(IRIN==0){break;}}void Flash2(){unsigned int CountData=0;while(1){if(CountData<90){Delay6(5000);}else if(CountData<100){CountData=0;}CountData=CountData+1;Led=~Led;LED1=~ LED1 ;LED2=~ LED2 ;LED3=~ LED3 ;LED4=~ LED4 ;LED5=~ LED5 ;LED6=~ LED6 ;LED7=~ LED7 ;LeftLed=~LeftLed;RightLed=1;if(IRIN==0){break;}}}void bzang(){ LeftLed=LeftIR1; //前方左侧指示灯指示出前方左侧红外探头RightLed=RightIR1;M1A=1; //避障子程序while(1){if(FontIR1==1&&LeftIR1==0&&RightIR1==1){ControlCar(4);Delay5();Delay5();ControlCar(1);MUSIC=1;}else if(FontIR1==1&&LeftIR1==1&&RightIR1==0){ControlCar(3);Delay5();Delay5();ControlCar(1);MUSIC=1;}else if(FontIR1==1&&LeftIR1==1&&RightIR1==1){ M1A=1; //将电机1正向端口置高M2A=1;Delay5();MUSIC=1;}else if(FontIR1==1&&LeftIR1==0&&RightIR1==0){ ControlCar(1);Delay5();MUSIC=1;}else if(FontIR1==0&& LeftIR1==0 &&RightIR1==1){ControlCar(2);Delay5();ControlCar(4);Delay5();ControlCar(1);MUSIC=1;}else if(FontIR1==0&&LeftIR1==1&&RightIR1==0){ControlCar(2);Delay5();ControlCar(3);Delay5();ControlCar(1);MUSIC=1;}else if(FontIR1==0&&LeftIR1==0&&RightIR1==0){ControlCar(2);Delay5();Delay5();ControlCar(5);MUSIC=1;}else if(FontIR1==0 && LeftIR1==1&&RightIR1==1){ControlCar(2);Delay5();Delay5();Delay5();ControlCar(3);Delay5();Delay5();Delay5();Delay5();Delay5();ControlCar(1);MUSIC=1;}if(IRIN==0){break;}}}void ControlCar(uchar CarType) //定义小车控制子程序{M1A=0; //将电机1正向电平置低M1B=0; //将电机1反向电平置低M2A=0; //将电机2正向电平置低M2B=0;Delay(); //将电机2反向电平置低switch(CarType) //判断小车控制指令类型{ case 1: //前进//判断是否是前进{ M1A=1; //将电机1正向端口置高M2A=1;LeftLed=0; //定义前方左侧指示灯端口RightLed=0;ShowPort=LedShowData[1]; //数码管显示前进状态break; //退出判断}case 2: //后退//判断是否是后退{ M1B=1; //将电机1反向端口置高M2B=1;LeftLed=1; //定义前方左侧指示灯端口RightLed=1; //将电机2反向端口置高ShowPort=LedShowData[2]; //数码管显示后退状态//将前方左侧指示灯置低(亮)break; //退出判断}case 3: //左转//判断是否是左转{ M1B=1; //将电机1反向端口置高M2A=1; //将电机2正向端口置高ShowPort=LedShowData[3]; //数码管显示左转状态//将前方左侧指示灯置低(亮)break; //退出判断}case 4: //右转//判断是否是右转{ M1A=1; //将电机1正向端口置高M2B=1; //将电机2反向端口置高ShowPort=LedShowData[4]; //数码管显示右转状态//将前方右侧指示灯置低(亮)break; //退出判断}case 5: //停止//判断是否是右转{ M1A=0; //将电机1正向端口置高M2B=0;M1B=0; //将电机1反向端口置高M2A=0; //将电机2反向端口置高ShowPort=LedShowData[5]; //数码管显示右转状态//将前方右侧指示灯置低(亮)break; //退出判断}default: //默认情况下的判断{break; //直接退出判断}}}void IR_IN() interrupt 2 using 0 //定义INT2外部中断函数{unsigned char j,k,N=0;EX1 = 0; //关闭外部中断,防止再有信号到达delay(15); //延时时间,进行红外消抖if (IRIN==1) //判断红外信号是否消失{EX1 =1; //外部中断开return; //返回}while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。

单片机下的音乐节奏彩灯控制系统设计

单片机下的音乐节奏彩灯控制系统设计

单片机下的音乐节奏彩灯控制系统设计提纲:一、设计背景及意义二、设计原理及方案三、系统实现方式四、硬件设计及调试五、软件设计及调试一、设计背景及意义近年来,随着单片机技术的不断发展和应用,越来越多的人开始将其应用于各个领域,尤其是在音乐和灯光控制领域中。

因而,设计一种基于单片机的音乐节奏彩灯控制系统具有重要的现实意义和实际价值。

该系统主要目的是实现对彩灯亮度、颜色、模式等进行调节,同时根据音乐的不同节奏和速度实现灯光的变化,增加彩灯的艺术性和观赏性。

因此,基于该系统可以为演出、KTV、酒吧等提供更加丰富的灯光效果,从而增强现场气氛。

二、设计原理及方案该系统主要原理是通过单片机控制和调节彩灯的亮度、颜色和模式,同时根据音乐的不同节奏和速度实现灯光的变化,从而实现音乐节奏彩灯的控制。

具体方案如下:1. 彩灯选择采用RGB LED灯光作为彩灯,通过控制不同的灯珠来实现不同的颜色和亮度。

2. 技术选型选择STM32F103C8T6作为单片机主控芯片,并使用脉宽调制(PWM)技术控制灯光亮度和颜色。

3. 灯光控制设计灯光控制电路,通过单片机控制开关来选择不同的彩灯效果,并通过PWM技术控制灯光的亮度。

4. 音乐节奏检测采用LM393声音传感器实现音频信号的检测和分析,通过单片机控制来实现不同的灯光效果。

三、系统实现方式该系统的实现方式主要包括硬件和软件两个方面。

硬件方面,需要进行电路设计和调试,包括STM32F103C8T6控制器、RGB LED灯光、LM393声音传感器、电容、电阻等元器件的连接和调试。

软件方面,需要进行程序设计和调试,包括音乐节奏分析算法、PWM控制算法、灯光选择算法、彩灯颜色变换算法等,同时需要根据实际应用需求不断进行优化和改进。

四、硬件设计及调试硬件设计主要包括选型、电路设计、零件选择和调试等步骤。

具体步骤如下:1. 选型根据系统需求选择合适的芯片、传感器、LED灯珠等元器件。

2. 电路设计根据系统需求设计电路图并进行电路布局。

基于单片机的音乐彩灯自动控制系统

基于单片机的音乐彩灯自动控制系统

[个人简历] 马 莉(1973-),山东泰安人,蚌埠坦克学院实验中心教师。

陶国成(1965-),江苏盐城人,蚌埠坦克学院实验中心教师。

基于单片机的音乐彩灯自动控制系统马 莉 陶国成(蚌埠坦克学院, 安徽 蚌埠 233014)[摘 要] 本文主要介绍了一种利用单片机8031和24个彩灯及一个语音集成芯片所构成的自动控制系统。

可以根据需要实现对彩灯的显示效果的控制,并配以各种形式的音乐,详细叙述了该系统的硬件电路和软件组成。

[关键词] 单片机;各色彩灯;语音集成芯片[文章编号] 1008-6994(2002)01-0017-02 [中图分类号] TP21 [文献标识码] C随着经济的迅速发展,人们需要进一步地提高生活质量、美化生活环境,利用各种彩灯来装饰美化已成为一种时尚。

单片机技术作为一种技术手段,它的发展以微处理器(MPU )技术及超大规模集成电路技术的发展为先导,以广泛的应用领域拉动,表现出较微处理器更具个性的发展趋势。

在考虑到制作成本的前提下,根据单片微型计算机具有集成度高、体积小、运行可靠、价格低廉等许多独特的优点,可以利用单片机来实现对各色彩灯的自动控制,它可以随着编辑软件的不同再加上输出设备(彩灯)的排列变化,实现千变万化的效果。

该系统原理简单,主要利用单片机的可编程控制原理,由硬件和软件两部分组成。

其硬件包括CPU -8031单片机、I/O 接口及其扩展、EPROM 及其扩展、各色彩灯及一个语音集成芯片等几个方面。

软件系统由主程序及不同的延时子程序构成。

一、系统的主要性能彩灯自动控制系统可直接与200V 交流电源相联接,系统内部设有自动稳压电路,可将220V 的交流电转变成单片机控制所需的5V 直流稳压输出,并备有随时复位电路。

通过软件程序的控制,各色彩灯(本系统以红色、黄色、蓝色三种为例)可按一定的顺序轮流点亮,同时伴随有通过语音集成块所录制的音乐,以达到更好的欣赏效果。

这里,我们以24只彩灯为例(8只红色灯,8只黄色灯,8只蓝色灯),而在实际应用系统中,通过串入并出的74LS164、8155、8255等一系列具有I/O口扩展功能的芯片再加工上动态扫描技术,可以使输出的控制点达到数千个,完全可以满足各种形式的彩灯的编辑控制。

基于单片机的音乐彩灯控制系统

基于单片机的音乐彩灯控制系统

毕业设计(论文)题目基于单片机音乐彩灯控制器的设计系部电子信息工程系专业电子信息工程姓名学号指导教师2016 年 3 月31 日基于单片机的音乐彩灯控制器设计[摘要]本设计是一种基于AT89C51单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。

本方案以AT89C51单片机作为主控核心,通过三极管放大电流使用蜂鸣器播放音乐,利用编程实现亮灯循环模式,在有8个LED彩灯, 根据用户需求可以编写若干种亮灯模式. 例如左右闪烁,隔几个亮灭,蜂鸣器可以根据用户需求改写编程播放各种音乐。

本方案具有设计简单、体积小、元器件少、电路结构简单等优点。

该设计方案设计及其简单,典型的AT89C51单片机,亮灯模式多,播放各种类型的音乐,具有体积小、价格低、低能耗等优点。

在美丽的都市夜晚,彩灯的循环亮灭,播放动人的音乐,衬托出美丽的氛围。

[关键词]AT89C51 LED 彩灯音乐Music lights controller design based on SCM[Abstract]this design is based on the AT89C51 microcontroller music programme control lights, single-chip computer to play music and to note the frequency of the LED lights but without flashing. The programme with AT89C51 microcontroller as the main control core, by transistor amplifier current using a buzzer to play music, using programmed light cycle mode 8 LED lights, can prepare several kinds of lighting patterns according to user needs. For example about Flash, a few on or off, the buzzer can be based on user demand overwrite the programmed play all kinds of music. The programme has a simple design, small size, less components and advantages of simple circuits. The scheme design and simple, typical AT89C51 microcontroller, lighting models, play various types of music, has the advantages of small size, low price and low energy consumption. In the beautiful city of night lights cycle on or off, playing lovely music, bring out the beautiful atmosphere.[Key words] AT89C51 LED lights music目录绪论 (3)1 音乐彩灯方案设计与选择 (5)1. 1 设计要求 (5)1. 2 基本原理 (5)1. 3 设计电源 (6)1. 4 频率音符 (6)2 音乐彩灯设计过程 (7)2. 1 元器件选取 (7)2. 2 电路设计 (7)2. 2. 1 元器件介绍 (7)2. 2. 2 音乐彩灯构思 (10)2. 3 软件设计 (13)2. 3. 1 编程介绍 (13)2. 3. 2 设计程序 (16)3 心得体会 (18)3. 1 课程设计总结 (18)3. 2 收获与体会 (19)参考文献 (20)绪论单片机诞生于 1971 年,经历了 SCM、 MCU、 SoC 三大阶段,早期的 SCM 单片机都是 8 位或 4位的。

基于单片机的音乐流水灯设计

基于单片机的音乐流水灯设计

单片机原理及系统课程设计专业:电气工程及其自动化班级:电气1003班*名:***学号:指导教师:兰州交通大学自动化与电气工程学院2013 年 3 月 7 日基于单片机的音乐流水灯设计摘要本设计是一种基于AT89C52单片机音乐控制彩灯的方案,实现单片机演奏音乐,并且对LED彩灯随音符频率的不同而闪烁发光。

本方案以AT89C52单片机作为主控核心,通过三极管放大电流使蜂鸣器播放音乐,利用编程实现循环点亮24个太极图案的LED彩灯,根据用户需求可以编写若干种亮灯模式.,蜂鸣器可以根据用户需求改写编程播放各种音乐。

本方案具有电路结构简单、体积小、元器件少、能耗低等优点。

在美丽的都市夜晚音乐彩灯为我们的生活增添了无限光彩。

音乐彩灯具有更广阔的发展天地。

关键字:AT89C51;LED彩灯;音乐AbstractThe design is based on AT89C52 microcontroller music control lantern program microcontroller playing music, and note the frequency of different flashing light LED Lantern with. Program AT89C52 microcontroller as the master core through the transistor amplifier to the current buzzer play music programming cycle LED lantern lit 24 Taiji patterns can write certain kinds of lighting modes according to user needs, beep can rewrite the program play a variety of music based on user demand. The program has a simple circuit structure, small size, fewer components and lower energy consumption. Add unlimited glory for our lives in the beautiful city night music Lantern. Music lantern has a broader development world.Keywords: AT89C51,LED Lantern,music1引言1.1设计目的:设计是学生理论联系实际的重要实践教学环节,是对学生进行的一次综合性专业设计训练。

基于51单片机的音乐彩灯设计-毕业设计

基于51单片机的音乐彩灯设计-毕业设计
11
扬州工业职业技术学院毕业论文
Based on SCM music lights Zhuwei
0701Application of electronic
Abstract:Along with the rapid development of economy, people need to further improve the quality of life, and beautify the environment, use all sorts of lights decorate beautification to already became a kind of fashion. As a kind of single-chip microcomputer technology, the development of it in microprocessor (MPU) technology and the large scale integrated circuit technology development as the forerunner, take the extensive application, showed a microprocessor more personalized trends. In considering the cost of production, under the precondition of single chip computer is according to the develepment, small volume, reliable operation, low price and many other advantages of microcontroller, to achieve the automatic control of lights, it can be as editing software of different plus output devices (lights), the arrangement of the protean changes.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

采用单片机编程来实现音乐彩灯的控制1引言随着人们对房屋的装饰需要彩灯,在许多城市可以看到彩色霓虹灯。

LED彩灯由于其丰富的灯光色彩,便宜的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。

但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、电路复杂、功率损耗大等缺点。

此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,。

本方案提出了一种基于8051单片机的彩灯控制方案,实现对LED彩灯的控制。

本方案以8051单片机作为主控核心,在主控模块上设有3个按键和8个码LED显示灯,根据需要可以编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为1 ms的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭。

与普通LED彩灯相比,具有体积小、价格低、低能耗等优点。

2系统功能LED彩灯用软件控制硬件的方式来是彩灯闪烁,即彩灯控制器和管内LED板模块)。

彩灯采用8051提供+5V电压工作,经过开关电源变换,输出直流工作电压,一方面为管内LED模块提供+5V工作电源,另一方面为主控模块单片机系统彩灯控制器提供5 V工作电源。

整个系统工作由软件程序控制运行,根据需要,用户可以在LED彩灯工作时通过主控模块上的按键来设定亮灯时间和灯光闪动频率。

上电后系统经过初始化,查询是否有功能切换键按下:有,则进入设定模式状态;无,则进入默认工作状态。

在设定模式状态下,可以根据个人爱好及不同场合的需要来指定调用哪些模式,并且可以改变每种模式的时间T1、频率F1参数,在工作状态下,LED彩灯控制器按照程序设定好的若干亮灯花样模式程序顺序调用往下走,开始工作,依次8个等亮完为一个亮灯周期,然后再回主循环继续工作,同样如果想进入其它设定模式状态,只需按下功能切换键即可。

整个3种亮灯模式时间可以看作一个大周期T,对于每一个模式编写一个独立工作子程序,其中设定了从左到右点亮LED,在从右到左点亮LED,还有自己定义的LED点亮方式。

因此在LED彩灯上电工作后,可以方便地通过控模块上的显示器知道LED彩灯当前工作模式,工作时间Ti,频率Fi等实时参数。

若实际应用需要根据不同场合和时间来改变彩灯闪亮效果,可以通过主控模块上的按键来设定LED不同的闪烁频率Fi和亮灯时间Ti,以便符合实际需要。

此外如果对某一种模式感兴趣需要仔细观看该种亮灯模式,可以让程序循环硬件设计LED彩灯系统包括,即LED彩灯控制器(8051主控模块)LED彩灯管在8051外部接一个震荡时钟频率。

用8051的控制模块,具有按键、显示等功能,并利用8051的P0口输出控制信号,利用P0口的8个输出端上面焊有8个LED彩灯,使得彩灯在软件的控制下工作。

主控模块电路设计主控模块电路如图1所示。

主控模块主要设计器件有80C51,8个LED显示器,3个开关按键,1个稳压器(5 V电压),1个外部晶振震荡器信号输出驱动,4个电阻。

通过软件设计,使单片机P0口作为三色LED驱动信号输出口及移位时钟CLOCK信号,8051的P0口为LED的输出口。

软件设计LED彩灯控制器最大特点在于所有亮灯模式均由软件控制完成。

系统中软件可以分为主程序和中断服务子程序。

上电后在按键控制灯的闪烁方式,通过软件来控制循环,以一个单位时间1 ms的T0定时为中断服务子程序。

在这个1 ms的T0定时基础上,可以根据需要来确定各种模式工作时间Ti,以及确定在各种亮灯内点亮和熄灭各种状态LED灯等。

整个系统软件由程序)、各个模式子程序、1 ms中断服务子程序、调用循环程序组成。

利用T0定时器作为定时基本单位,根据模式需要计算好各控制信号的发生时刻,根据移位触发的翻转时刻步调一致,使LED彩灯按照设计的模式工作。

除了T0定时中断之外,程序的大部份时间是在处理按键的查询和LED显示的延时。

3个按键分别为:K1按键.从左到右点亮LED,K2按键.从右到左点亮LED,K3按键.用户自己定义方式点亮LED。

在每次的T0定时中断服务子程序里,需要对各个时间寄存器和模式寄存器进行加1或者清,为主程序查询作准备,同时查询是否已中断1ms,若1ms到了,则对按键一次,是否有按下并进行相应子程序处理。

主程序除了调用各种子模式子程序,调用LED显示子程序和延时子程序之外,还一直保持查询是否有功能切键按下以及是否有模式改变按键按下,一旦有功能切换键和模式改变键按下,就会进入相应的按键处理。

程序流程如图2所示亮灯模式,只要控制好各色灯触发和熄灭时刻就可以组合成各种亮灯效果。

2.1原理框图扬声器功率放大电路LM386电源电路彩灯驱动显示电路复位电路时钟电路基于单片机控制的音乐彩灯的原理框图2.2电路原理图2.3工作原理根据设计要求可以把电路组成部分大致分为音乐控制部分,整个系统有三个或以上的控制开关。

控制彩灯闪烁快慢的时钟信号CLK-IN,音乐控制按钮,清零端CLRDENG等。

利用单片机89C51产生乐曲音符,再把乐普翻译成计算机音乐语言,由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声。

由于音符和节拍是由计算机产生的,所以发音音符和节拍准确。

单片机演奏乐曲的原理:通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。

把乐谱中的音符和相应的节拍变换为定常数和延迟常数,作为数据表格存放在存储器中。

由程序查表得到定时常数和延迟常数,分别用以控制定时器产生方波的频率和发出该频率方波的持续时间。

当延迟时间到时,再查下一个音符的定时常数和延迟常数。

依次下去,就可以自动演奏乐曲。

工作程序流程图如下:开始T0初始化,A清零,开中断,中断计数20H单元,清零查首地址送DPTR查表取常数是结束符00H ?延时100msN是休止符FFH?YY恢复初始条件A清零延时1s后再循环N音阶常数送R6取节拍常数送R7启动T0计数P2.0取反按R6延时节拍时间到否?N停止T0计数,中断计数,20H单元清零,DPTR加1Y2.4音乐彩灯控制程序代码音乐播放源程序:(采用定时器T0,定时器方式1)ORG 000HLJMP STARTORG 000BHAJMP CONTORG 0100HSTART: MOV SP, #50HMOV TH0, #0DBHMOV TL0, #0FFHMOV TMOD, #01HMOV IE, #82HMUSIC0: MOV DPTR,#DAT ;表首地址送DPTR MOV 20H,#00H ;中断计数单元清零MUSIC1: CLR AMOVC A,@A+DPTR ;查表取音阶常数JZ END0 ;是结束符?CJNE A,#0FFH,MUSIC5 ;是休止符?LJMP MUSIC3 ;产生100MS停顿MUSIC5: NOPMOV R6,A ;音阶常数送R6INC DPTR ;DPTR+1MOV A, #0MOVC A,@A+DPTR ;取节拍常数送R7MOV R7, ASETB TR0 ;启动定时器T0MUSIC2: NOPCPL P1.0 ;输出电平取反MOV A, R6MOV R3,A ;音阶常数送R3LCALL DEL20MOV A,R7 ;节拍常数送ACJNE A,20H,MUSIC ;节拍时间到否?MOV 20H,#00H ;为下一个音阶常数做准备INC DPTRLJMP MUSIC1MUSIC3: NOP ;休止100MSCLR TR0MOV R2,#14H ;R2=20MUSIC4: NOPMOV R3,#250 ;R3=250LCALL DEL20DJNZ R2, MUSIC4INC DPTR ;为取下一个音阶常数准备LJMP MUSIC1END0: MOV R2,#200 ;歌曲结束,延时1秒后继续MUSIC6:MOV R3, #250LCALL DEL20DJNZ R2, MUSIC6LJMP MUSIC0DEL: MOV R4, #05HDEL4: NOPDJNZ R4, DEL4DJNZ R3, DELRETCONT: INC 20H ;计数单元内容加1MOV TH0,#0DBH ;重新送100MS定时初值MOV TL0, #0FFHRETIDAT: DB 18H,30H,1CH,10H,20H,40H,1CH,10H ;《八月桂花遍地开》的谱表DB 18H,10H,20H,10H,1CH,10H,18H,40HDB 1CH,20H,20H,20H,1CH,20H,18H,20HDB 20H,80H,0FFH,20H,30H,1CH,10H,18HDB 20H,15H,20H,1CH,20H,20H,20H,26HDB 40H,20H,20H,2BH,20H,26H,20H,20HDB 20H,30H,80H,0FFH,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H,2BH,20HDB 30H,20H,2BH,40H,20H,20H,1CH,10HDB 18H,10H,20H,20H,26H,20H ,2BH,20HDB 30H,20H,2BH,40H,20H,30H,1CH,10HDB 18H,20H,15H,20H,1CH,20H,20H,20HDB 26H,40H,20H,20H,2BH,20H,26H,20HDB 20H,20H,30H,80H,20H,30H,1CH,10HDB 20H,10H,1CH,10H,20H,20H,26H,20HDB 2BH,20H,30H,20H,2BH,40H,20H,15HDB 1FH,05H,20H,10H,1CH,10H,20H,20H 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,00HEND时钟控制部分源程序:ORG 00HJMP STARTORG 0BHJMP TIM0START:MOV 28H, #00MOV 2AH, #12HMOV 2BH, #00MOV 2CH, #00MOV TMOD, #00000001BHMOV TH0, #> (65536-4000)MOV TL0, #< (65536-4000)MOV IE, #10000010BHMOV R4, #250SETB TR0LOOP: JB P0.0, N2CALL DELAYMOV A, 2CHADD A, #01HDA AMOV 2CH, ACJNE A, #60H, N1MOV 2CH, #00HN1: JNB P0.0, $CALL DELAYN2: JB P0.1, N4CALL DELAYMOV A, 2BHADD A, #01HDA AMOV 2BH, ACJNE A, #60H, N3MOV 2BH, #00H N3: JNB P0.1, $CALL DELAYN4: JB P0.2, LOOPCALL DELAYMOV A, 2AHADD A, #01HDA AMOV 2AH, ACJNE A, #24H, N5MOV 2AH, #00N5: JNB P0.2, $CAL DELAYJMP LOOPTIM0: MOV TH0, #> (65536-4000) MOV TL0,#<(65536-4000)PUSH APUSH PSWDJNZ R4, X2MOV R4, #250CALL CLOCKCALL DISPX2: CALL SCANPOP PSWPOP ARETISCAN: MOV R0, #28HINC @R0CJNE@R0,#6,X3MOV@R0,#0X3: MOV A,@R0ADD A, #20HMOV R1, AMOV A,@R0SWAP AORL A,@R1MOV P1, ARETCLOCK:MOV A, 2CHADD A, #1DA AMOV 2CH, ACJNE A, #60H, X4MOV 2CH, #00MOV A, 2BHADD A, #1DA AMOV 2BH, ACJNE A, #60H, X4MOV 2BH, #00MOV A, 2AHADD A, #1DA AMOV 2AH, ACJNE A, #24H, X4X4: RET DISP: MOV R1, #20HMOV A, 2CHMOV B, #10HDIV ABMOV @R1, BINC R1MOV @R1, AINC R1MOV A, 2BHMOV B, #10HDIV ABMOV @R1, BINC R1MOV @R1, AINC R1MOV A, 2AHMOV B, #10HDIV ABMOV @R1, BINC R1MOV @R1, ARETD1: MOV R7, #248DJNZ R7, $DJNZ R6, D1RET END2.5硬件系统设计单片机选择AT89C51,由于AT89C51是一个低电压,高性能CMOS8位单片机,内含4k bytes的可反复擦鞋的制度程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL 公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器和Flash 存储单元,内置功能强大的微型计算机AT89C51提供了高性价比的解决方案。

相关文档
最新文档