1、毕业设计单片机基于单片机音乐彩灯电子控制器设计提供全套毕业论文,各专业都有物理与电子工程学院单片机课程设计报告书 设计题目: 基于单片机音乐彩灯电子控制器设计 专 业: 自动化 班 级: 14接本 学生姓名: 学 号: 20140343112 指导教师: 2014年 11 月16 日 物理与电子工程学院课程设计任务书专业: 自动化 班级: 2014接本 学生姓名李智瑶学号20140343112课程名称单片机原理及接口技术设计题目基于单片机音乐彩灯电子控制器设计设计目的、主要内容(参数、方法)及要求设计任务与要求要求将音乐分成四个不同的频段,将彩灯分为四组,各组彩灯颜色不同,每组彩灯包含两个颜色
2、相同的彩灯。(1) 实现音乐彩灯同步控制;(2) 当音乐处于高频段20004000Hz时第一组彩灯根据音乐节拍长短不同决定灯亮的个数;(3) 当音乐处于中频段5001200Hz时第二组彩灯根据音乐节拍长短不同决定灯亮的个数;(4) 当音乐处于低频段50250Hz时第三组彩灯根据音乐节拍长短不同决定灯亮的个数;(5) 当音乐在这些频段之外,要求所有彩灯按照1Hz频率节奏性的闪烁;工作量2周时间,每天3学时,共计42学时进度安排 第1天:查阅资料,整理资料 第2-3天:整理报告,确定初稿 第4-14天:完成程序,整理交稿主要参考资料1 杨国志,王立峰,杨东光,王辉林编著.实用电子制作实例M.福建科
3、学技术出版社,2000.10.2 张仁.单片机音乐彩灯同步控制器的设计J.成都气象学院院报,1995.5.(165168).3 王连涛主编.音乐喷泉的单片机控制J.电子世界,2005.(2122).4 康华光,陈大钦编著.电子技术基础(模拟部分第四版)M.高等教育出版社,2002.3.5 潘永雄,沙河编著,电子线路CAD实用教程(第三版)M.西安电子科技大学出版社,2010.2.指导教师签字教研室主任签字摘 要随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。本篇设计为基于单片机的音乐彩灯控制器,它是
4、指彩灯能随着音乐信号地变化而变化的一种控制电路。本文详细论述了音乐彩灯控制器的硬件原理电路,包括振荡、时钟、复位等模块电路。以及如何在硬件电路的基础上通过单片机进行软件编程最终实现音乐彩灯的同步控制。关键词:音乐;彩灯;同步控制1 引言目前,基于彩灯控制器的设计的方法很多,有利用单片机控制的、有利用传感器控制的,还有利用EDA控制的等等。在简化设计步骤和节约实验器材的情况下,为了简化硬件电路,也可采用PLC S7-20CN控制的,虽然硬件电路比较简便,但是实验程序更复杂,实验步奏更繁琐;对于编写程序是个比较困难的问题。通常采用单片机控制的方法,即利用单片机的端口来控制彩灯以及音乐播放,在程序编
5、写上更容易编写,程序的可编译性更强。本设计利用AT89S52单片机来实现基于单片机的音乐彩灯控制的设计。用一恒流源供电,当按下“开始”按键时单片机开始输出,彩灯开始闪烁和音乐播放开始同步播放;当按下“停止”按钮时音乐播放停止,彩灯停止闪烁,LCD显示停止。当再次按下“开始”按钮时彩灯开始闪烁和音乐播放开始同步播放。单片机系统通过对采用数据进行扫描,控制D/A转换器转换,并根据按键控制端口输出。此方案思路清楚,电路简单,便于操作1。2 设计方案的比较与选择2.1 设计任务与要求要求将音乐分成四个不同的频段,将彩灯分为四组,各组彩灯颜色不同,每组彩灯包含两个颜色相同的彩灯。(1) 实现音乐彩灯同步
6、控制;(2) 当音乐处于高频段20004000Hz时第一组彩灯根据音乐节拍长短不同决定灯亮的个数;(3) 当音乐处于中频段5001200Hz时第二组彩灯根据音乐节拍长短不同决定灯亮的个数;(4) 当音乐处于低频段50250Hz时第三组彩灯根据音乐节拍长短不同决定灯亮的个数;(5) 当音乐在这些频段之外,要求所有彩灯按照1Hz频率节奏性的闪烁;2.2 方案的论证和选取方案一: 基于单片机的音乐彩灯控制器的设计,是利用单片机编程产生频率分为1.2MHz12MHz的方波,根据实际情况,本设计采用12MHz作为系统的外部晶振,电容值取30pF。经过发射驱动电路放大,使LED灯闪烁,同时音乐同步播放并通
7、过12864液晶屏显示频率2。其系统框图如图1所示。图1 基于单片机的音乐彩灯控制器的设计的系统框图这种以单片机为核心的基于单片机的音乐彩灯控制器的设计;利用振荡电路产生12MHz的时钟信号,在通过单片机输出,单片机系统通过对采用数据进行扫描,控制D/A转换器转换,并根据按键控制端口输出,此方案思路清楚。利用单片机、按键控制音乐彩灯,控制灵敏度高,而且单片机控制方便,操作简单。许多音乐彩灯控制器的设计都采用这种设计方法。方案二:这种测距系统采用CPLD(Complex Programmable Logic Device)器件,运用VHDL编写程序,使用MAX+plusII软件进行软硬件设计的仿
8、真和调试,最终实现测距功能。CPLD器件内部的宏单元是其最基本的模块,能独立地编程为D触发器、T触发器、RS触发器或JK触发器工作方式或组合逻辑工作方式。它的这种特性非常适用于本系统。可将本系统所需要的分频功能、计数功能、振荡器、七段码显示全部由MAX来实现,而只需在外部配上适当的超声波传感器、接收和发送电路,即可组成一个性能稳定、响应速度快且具有显示功能的彩灯控制器。本设计首先进行系统模块的划分,规定每一个模块的功能以及各模块之间的借口,最终将设计分为三大模块:四分频器,四选一控制器,8样彩灯控制器。本设计充分利用VHDL“自顶向下”的设计优点以及层次化的设计概念,从简单的单元入手,逐渐构成
9、复杂的系统。配合使用MAX+plusII开发软件,可集设计输入、设计处理、设计校验和器件编程于一体,集成度高,开发周期短。其系统框图如图2所示。图2 基于CPLD的音乐彩灯控制器系统框图综合考虑前两种方案,方案一操作方便,控制性更好,功耗低,模块简单,稳定性高,成本低的特点,方案二具有灵敏度高,但结构复杂、功耗比较和高控制不简便的缺点。综合各自的优劣点我们选择方案一。3 硬件电路的设计3.1 单片机系统设计框图本文所设计的基于单片机的音乐彩灯控制器的设计主要由AT89S52单片机、时钟电路、复位电路、按键控制电路、下载口电路、喇叭声音电路、显示电路、直流稳压电源等硬件电路部分以及相应的软件部分
10、构成。首先由单片机驱动产生12MHz晶振,在单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。由单片机驱动后把结果输出到LED彩灯、小喇叭和12864液晶屏上。由编程可以实现音符频率表、音名以及半音频率表的确定和分配。可以将声音分为高音(2KHz4KHz)、中音(500Hz1.2KHz)以及低音(50Hz250Hz)三等,故可以分配彩灯在不同的频率段实现闪烁;同时当在划定频率外时实现彩灯以1Hz的频率节奏闪烁;从而可以满足设计的要求,达到设计的标准3。根据要求并综合以上各方面因素,采用AT89S
11、52单片机作为主控制器,采用按键来控制音乐以及彩灯的开始、暂停和停止。基于单片机的音乐彩灯控制器的单片机最小系统如下图3所示:图3 基于单片机的彩灯控制器的设计的设计框图3.2 单片机外围电路当使用单片机的内部时钟电路时,单片机的XATL1和XATL2用来接石英晶体和微调电容,晶体一般可以选择1.2MHz12MHz,电容选择30pF左右。我们选择晶振为12MHz,电容30pF。在系统上电的瞬间,RST与电源电压同电位,随着电容的电压逐渐上升,RST电位下降,于是在RST形成一个正脉冲。只要该脉冲足够宽就可以实现复位,即=RC20ms。一般取R1K,C22uF。当人按下按钮S1时,使电容C5通过
12、R1迅速放电,待S1弹起后,C再次充电,实现手动复位。R1一般取10K。我们通过P2.0来启动控制,程序中通过查询P2.0的电平来检测是否按键被按下,当按下按键时P2.0为低电平,单片机通过查询到低电平开始音乐输出和彩灯,当松开按键,P2.0即为高电平,在软件中通过软件延时来消除按键的机械抖动。图4 单片机外围电路3.3 时钟电路(1) 在单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式。我们采用内部时钟方式,如图4所示:
13、图5 晶振电路(2) 在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,C6和C7取31pF左右,晶振的频率取值1.2MHz12MHz。根据实际情况,本设计采用12MHz作为系统的外部晶振,电容值取30pF4。3.4 复位电路我们在用按键控制时,为了避免单片机程序错误而导致的错误输出,从而加入复位电路,对任意的情况都能够通过复位按键使电路复位。单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。所以,必须弄清楚单片机复位的条件、复位电路和复
14、位后的状态。单片机复位的条件是,必须使RST引脚(9脚)加上持续两个机器周期(即24个振荡周期)的高电平。例如,若时钟频率为12MHz,每机器周期为1us,则只需2us以上时间的高电平。在RST引脚出现高电平后的第二个周期执行复位。单片机常见的复位电路有上电复位电路和按键复位电路。为了方便系统的硬件初始化,我们采用按键复位电路。如图6所示:图6 复位电路3.5 按键电路由于要达到设计要求,同时也为了提高设计的课操作性;选用按键来控制输入从而可以手动的对音乐彩灯进行控制。按键S2与单片机P2.0端口连接是“开始”按键;按键S3与单片机P2.1端口连接是“暂停”按键;按键S3与单片机P2.2端口连
15、接是“停止”按键。如图7所示。图7 按键电路3.6 ISP下载口电路下载口电路采用了ISP下载口,能快速下载和更换单片机中的程序,从而满足和达到实验的要求下载口的1脚与单片机的P1.5相连接,下载口的2脚与VCC相连接,下载口的3脚与单片机的相连接,下载口的5脚与单片机的相连接,下载口的7脚与单片机的P1.7相连接,下载口的9脚与单片机的P1.6相连接,下载口的4、6和8脚与GND相连接。下载电路采用DIP10插座;其插座的管脚如图8示,DIP10管脚功能如表1所示5。图8 按键下载口电路表1 DIP10管脚使用说明AT89ISP引脚CPU端说明AT89ISP引脚CPU端说明1SCK时钟信号5
16、RST复位端2VCC电源9MOSI输出信号3MISO输入信号10GND地线4GND地线3.7 LED彩灯显示电路LED数码显示管有两种,一种是共阳极数码管,另一种是共阴极数码管,其内部是由八个阳极或阴极相连接的发光二极管组成,二者原理不同但功能相同。共阴极LED数码显示块的发光二极管阴极连接在一起,形成该模块的公共端(通常称为位选端),因此称为共阴极LED数码显示器,8个数码管的另一端通常称为段选端,当显示器的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮;而共阳极LED数码显示管则形成共阳极LED数码显示块的公共端,该公共端必须接高电平,同理在共阳极LED数码显示块中如某
17、个发光二极管的阴极为低电平时,该发光二极管被点亮7。AT89S52是采用12MHZ晶振获得稳定的时钟频率。采用12MHz高精度的晶振,以获得较稳定的时钟频率,从而使输出的频率更为稳定。显示电路采用简单实用的8位共阳LED数码管。单片机系统显示电路如图9所示。图9 LED显示电路3.8 12864液晶电路3.8.1 12864液晶简介12864是128*64点阵液晶模块的点阵数简称。该点阵的屏显成本相对较低,适用于各类仪器。液晶模组的驱动应遵照规定的额定指标,避免故障及永久损坏。液晶显示屏焊接温度:280C+10C 焊接时间3-4秒6。液晶的电气特性如表2所示。表2 12864液晶的电气特性 项
18、目符号最小典型最大单位电源电压VDD-VSS4.755.05.25V液晶驱动电压VDD-VADJTa=0-11.0-11.5-12.0Ta=25-10.5-11.0-11.5Ta=50-10.0-10.5-11.0 液晶的背光驱动电流ILED-6080液晶驱动电流IEE-1.0-3.8.2 12864液晶显示屏管脚号及作用液晶的1脚VSS接电源,为液晶提供电流;17脚为复位端,与单片机的27脚连接,通过单片机程序来控制液晶显示的复位;液晶20脚接地线;714脚与排阻的29脚连接。如表3所示。 表3 12864液晶显示屏的管脚号及作用管脚号管脚名称电平管脚功能描述1VSS+5V电源地2VCC3.
19、0+5V电源正3V0-对比度(亮度)调整4RS(CS)H/LRS=“H”,表示DB7DB0为显示数据RS=“L”,表示DB7DB0为显示指令数据5R/W(SID)H/LR/W=“H”,E=“H”,R/W=“L”,E=“HL”, 6E(SCLK)H/L使能信号7DB0H/L三态数据线8DB1H/L三态数据线9DB2H/L三态数据线10DB3H/L三态数据线11DB4H/L三态数据线12DB5H/L三态数据线13DB6H/L三态数据线14DB7H/L三态数据线15PSBH/LH:8位或4位并口方式,L:串口方式16NC-空脚17/RESETH/L复位端,低电平有效续表 12864液晶显示屏的管脚号
20、及作用管脚号管脚名称电平管脚功能描述18VOUT-LCD驱动电压输出端19AVDD背光源正端(+5V)20KVSS背光源负端在这个设计中由于采用的是并行,故直接将PSB连接高电平;VSS与LED_K端接地。液晶的数据位DB0DB7分别接在排阻U2的A0A7上;复位端17脚和单片机的复位端连接。12864液晶屏显示部分电图如图10所示。图10 12864液晶屏显示电路3.9 音乐播放电路为了提高声音电路的功率并保持稳定在喇叭电路中增加了一个8550三极管,并增加了一个阻值比较大的电阻来增加电路的电流。音乐播放电路如图11所示。图11 喇叭电路3.10 直流稳压电源电路电源电路采用普通可调电源供电
21、,电源由外接端口连接5V电压参考源,可满足本系统单片机、彩灯和小喇叭的供电要求。其中采用两个电容并联,达到滤波的作用,以便得到稳定的电流。如下图12。图12 稳压电源电路4 系统软件设计硬件电路一旦确定,大体的功能框架也形成了。这时我们需要在硬件平台上编写软件程序,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。音乐彩灯控制器的软件设计主要是为了实现彩灯与音乐同步控制。基于单片机的音乐彩灯控制器的设计的软件设计主要由主程序、复位程序、音频及半音程序、按键中断程序及显示子程序组成。下面分别对主程序、
22、音频及半音程序、按键中断程序和显示程序逐一作介绍7。4.1 单片机系统设计主程序流程图本设计选用AT89S52的单片机来控制歌曲播放和歌词显示。采用直流电源为其提供基准电压+5V,采用12864LCD显示,小喇叭播放音乐8。通过软件程序与按键输入来控制输入与输出。当电源接通时,程序开始初始化。当开始键按下时单片机的21脚输入低电平,程序启动;音乐开始播放彩灯交替移动点亮;随即进入通过频率变化范围中断若在整体频率范围内则继续程序;若不在整体频率范围内则所有彩灯1Hz闪烁。当程序进入高频判定时,若在高频段内则使高频段灯亮,液晶显示当前频率的大概值;若不在高频段范围内则进入中频判定,判定结果同高频;
23、当程序进入低频判定时,若满足频率判定要求则低频段灯亮,液晶显示当前频率的大概值;若不满足判定要求则程序结束。图13为主要程序流程图。图13主程序流程图音乐彩灯控制器的主程序如下。#include #include #pragma ot(0)#define uint unsigned int#define uchar unsigned char#define io_LCD12864_DATAPORT P0;#define SET_DATA io_LCD12864_RS = 1 ;#define SET_INC io_LCD12864_RS = 0 ;#define SET_READ io_LCD
24、12864_RW = 1 ;#define SET_WRITE io_LCD12864_RW = 0 ;#define SET_EN io_LCD12864_EN = 1 ;#define CLR_EN io_LCD12864_EN = 0 ;#define OSFREQ 11059200 /所使用的晶振频率sbit io_LCD12864_RS = P23 ;sbit io_LCD12864_RW = P24 ;sbit io_LCD12864_EN = P25 ;sbit BEEP_PWR=P27;sbit P3.0=P30;sbit P3.1=P31;sbit P3.2=P32;sbit
25、 P3.3=P33;sbit P3.4=P34;sbit P3.5=P35;sbit P3.6=P36;sbit P3.7=P37;sbit P2.0=P20;uchar FreqSandH,FreqSandL; /*产生方波的定时器的初值*/uchar timer1cnt; /*定时器延时计数 */uchar timer1cntflg; /*定时器定时完成标志 */uchar g_PL=0, g_Pai=0;uchar gp_Freq16=当前频率值: ;uint g_Freq=0;/*音符频率表*/uint code notefreq= 523, 587, 659, 698, 784, 8
26、80, 988, 1047,1175,1319,1396,1568,1760,1976, 2093,2349,2637,2793,3136,3520,3961;/*音名*/uchar code notename=c,d,e,f,g,a,b, 1,2,3,4,5,6,7, C,D,E,F,G,A,B,0;/*半音频率表*/uint code halfnotefreq= 554, 622, 740, 831, 933, 1109,1245,1480,1161,1865, 2218,2489,2960,3322,3729;/*音名*/uchar code halfnotename=c,d,f,g,a
27、, 1,2,4,5,6, C,D,F,G,A,0;/*声明*/void Dis_PL(uchar *p,unit i);void v_Lcd12864CheckBusy_f( void );void v_Lcd12864SendCmd_f( unsigned char byCmd );void v_Lcd12864SendData_f( unsigned char byData );void v_DelayMs_f( unsigned int nDelay );void v_Lcd12864Init_f( void );void v_Lcd12864PutString_f( unsigned
28、char x, unsigned char y, unsigned char *pData );4.2 音乐程序主要利用单片机的频率发生器产生方波,来产生不同频率的音乐。10,具体程序如下。void main(void) uint i; TMOD=0x11; ET1=1; ET0=1; EA=1; v_Lcd12864Init_f() ;while(1) if(P1.0=0) if(i=1)i=0; /启动关闭按键 if(i=0)i=1; if(i=1) /Play(1_1_5_5_6_6_54_4_3_3_2_2_15_5_4_4_3_3_2 5_5_4_4_3_3_21_1_5_5_6_6
29、_5 4_4_3_3_2_2_1); /满天都是小星星 v_Lcd12864PutString_f( 0,0, 曲目:两只老虎) ; Play(1_2_3_1_1_2_3_1_3_4_5 3_4_55=6=5=4=3_1_ 5=6=5=4=3_1_ 2_g_12_g_1); /两只老虎 /Play(a-a1-a2-a-b1b13-2a-a-a-33-12-a-b1b13-21-1-5-55432-a-b1-12123-3- 1-1_1_1235-4-32-b3-2a-a- a-66565-4-34-56543-3-1-1_1_1235-4-32-b3-2a-a-); /山楂树 v_Lcd12864PutString_f( 0,0, 学习雷锋好榜样) ; Play(5._3=2_1_5-12_3_g-5
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1