![[电子电路]基于单片机的音乐彩灯控制器的设计修改稿_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf1.gif)
![[电子电路]基于单片机的音乐彩灯控制器的设计修改稿_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf2.gif)
![[电子电路]基于单片机的音乐彩灯控制器的设计修改稿_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf3.gif)
![[电子电路]基于单片机的音乐彩灯控制器的设计修改稿_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf4.gif)
![[电子电路]基于单片机的音乐彩灯控制器的设计修改稿_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-4/22/a208670e-e083-4b7d-ad03-e7c351759eaf/a208670e-e083-4b7d-ad03-e7c351759eaf5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、内江师范学院本科毕业设计目 录1 引言12 设计方案的比较与选择22.1 设计任务与要求22.2 方案的论证和选取23 硬件电路的设计43.1 单片机系统设计框图43.2 单片机外围电路53.3 时钟电路63.5 按键电路83.6 isp下载口电路83.7 led彩灯显示电路93.8 12864液晶电路93.9 音乐播放电路113.10 直流稳压电源电路124 系统软件设计124.1 单片机系统设计主程序流程图124.2 音乐产生程序154.3 定时器子程序设计序164.5 液晶显示子程序195 结束语23参考文献24附录25致谢39摘 要随着人们生活环境的不断改善和美化,在许多场合可以看到彩
2、色霓虹灯。led彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用。本篇设计为基于单片机的音乐彩灯控制器,它是指彩灯能随着音乐信号地变化而变化的一种控制电路。本文详细论述了音乐彩灯控制器的硬件原理电路,包括振荡、时钟、复位等模块电路。以及如何在硬件电路的基础上通过单片机进行软件编程最终实现音乐彩灯的同步控制。关键词:音乐;彩灯;同步控制abstract as people living environment of continuous improvement and beautification, in many occasions can see color neon
3、 lights. led lights because of its abundant light color, low cost and simple control characteristics and has been widely used. this design is based on single chip music lights controller, it is to point to lights can along with the input music signal changes to a control circuit. this paper discusse
4、s the music lights controller hardware principle circuit, including oscillation, filtering and reset circuit module. and how in hardware circuit based on mcu is through software programming ultimately realize music lights synchronous control.key words: music; lights; synchronous control 481 引言目前,基于彩
5、灯控制器的设计的方法很多,有利用单片机控制的、有利用传感器控制的,还有利用eda控制的等等。在简化设计步骤和节约实验器材的情况下,为了简化硬件电路,也可采用plc s7-20cn控制的,虽然硬件电路比较简便,但是实验程序更复杂,实验步奏更繁琐;对于编写程序是个比较困难的问题。通常采用单片机控制的方法,即利用单片机的端口来控制彩灯以及音乐播放,在程序编写上更容易编写,程序的可编译性更强。本设计利用at89s52单片机来实现基于单片机的音乐彩灯控制的设计。用一恒流源供电,当按下“开始”按键时单片机开始输出,彩灯开始闪烁和音乐播放开始同步播放;当按下“停止”按钮时音乐播放停止,彩灯停止闪烁,lcd显
6、示停止。当再次按下“开始”按钮时彩灯开始闪烁和音乐播放开始同步播放。单片机系统通过对采用数据进行扫描,控制d/a转换器转换,并根据按键控制端口输出。此方案思路清楚,电路简单,便于操作1。2 设计方案的比较与选择2.1 设计任务与要求要求将音乐分成四个不同的频段,将彩灯分为四组,各组彩灯颜色不同,每组彩灯包含两个颜色相同的彩灯。(1) 实现音乐彩灯同步控制;(2) 当音乐处于高频段20004000hz时第一组彩灯根据音乐节拍长短不同决定灯亮的个数;(3) 当音乐处于中频段5001200hz时第二组彩灯根据音乐节拍长短不同决定灯亮的个数;(4) 当音乐处于低频段50250hz时第三组彩灯根据音乐节
7、拍长短不同决定灯亮的个数;(5) 当音乐在这些频段之外,要求所有彩灯按照1hz频率节奏性的闪烁;2.2 方案的论证和选取方案一: 基于单片机的音乐彩灯控制器的设计,是利用单片机编程产生频率分为1.2mhz12mhz的方波,根据实际情况,本设计采用12mhz作为系统的外部晶振,电容值取30pf。经过发射驱动电路放大,使led灯闪烁,同时音乐同步播放并通过12864液晶屏显示频率2。其系统框图如图1所示。单片机系统振荡电路按键及下载口电路12864液晶显示电路音乐播放电路彩灯显示电路精密恒流源图1 基于单片机的音乐彩灯控制器的设计的系统框图这种以单片机为核心的基于单片机的音乐彩灯控制器的设计;利用
8、振荡电路产生12mhz的时钟信号,在通过单片机输出,单片机系统通过对采用数据进行扫描,控制d/a转换器转换,并根据按键控制端口输出,此方案思路清楚。利用单片机、按键控制音乐彩灯,控制灵敏度高,而且单片机控制方便,操作简单。许多音乐彩灯控制器的设计都采用这种设计方法。方案二:这种测距系统采用cpld(complex programmable logic device)器件,运用vhdl编写程序,使用max+plusii软件进行软硬件设计的仿真和调试,最终实现测距功能。cpld器件内部的宏单元是其最基本的模块,能独立地编程为d触发器、t触发器、rs触发器或jk触发器工作方式或组合逻辑工作方式。它的
9、这种特性非常适用于本系统。可将本系统所需要的分频功能、计数功能、振荡器、七段码显示全部由max来实现,而只需在外部配上适当的超声波传感器、接收和发送电路,即可组成一个性能稳定、响应速度快且具有显示功能的彩灯控制器。本设计首先进行系统模块的划分,规定每一个模块的功能以及各模块之间的借口,最终将设计分为三大模块:四分频器,四选一控制器,8样彩灯控制器。本设计充分利用vhdl“自顶向下”的设计优点以及层次化的设计概念,从简单的单元入手,逐渐构成复杂的系统。配合使用max+plusii开发软件,可集设计输入、设计处理、设计校验和器件编程于一体,集成度高,开发周期短。其系统框图如图2所示。音频控制器显示
10、控制器四分频器12864液晶显示彩灯显示音乐播放四选一控制器音频发生器图2 基于cpld的音乐彩灯控制器系统框图综合考虑前两种方案,方案一操作方便,控制性更好,功耗低,模块简单,稳定性高,成本低的特点,方案二具有灵敏度高,但结构复杂、功耗比较和高控制不简便的缺点。综合各自的优劣点我们选择方案一。3 硬件电路的设计3.1 单片机系统设计框图本文所设计的基于单片机的音乐彩灯控制器的设计主要由at89s52单片机、时钟电路、复位电路、按键控制电路、下载口电路、喇叭声音电路、显示电路、直流稳压电源等硬件电路部分以及相应的软件部分构成。首先由单片机驱动产生12mhz晶振,在单片机片内有一个高增益的反相放
11、大器,反相放大器的输入端为xtal1,输出端为xtal2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。由单片机驱动后把结果输出到led彩灯、小喇叭和12864液晶屏上。由编程可以实现音符频率表、音名以及半音频率表的确定和分配。可以将声音分为高音(2khz4khz)、中音(500hz1.2khz)以及低音(50hz250hz)三等,故可以分配彩灯在不同的频率段实现闪烁;同时当在划定频率外时实现彩灯以1hz的频率节奏闪烁;从而可以满足设计的要求,达到设计的标准3。根据要求并综合以上各方面因素,采用at89s52单片机作为主控制器,采用按键来控制音乐以及彩灯的开始、暂停和停止。基于
12、单片机的音乐彩灯控制器的单片机最小系统如下图3所示:图3 基于单片机的彩灯控制器的设计的设计框图3.2 单片机外围电路当使用单片机的内部时钟电路时,单片机的xatl1和xatl2用来接石英晶体和微调电容,晶体一般可以选择1.2mhz12mhz,电容选择30pf左右。我们选择晶振为12mhz,电容30pf。在系统上电的瞬间,rst与电源电压同电位,随着电容的电压逐渐上升,rst电位下降,于是在rst形成一个正脉冲。只要该脉冲足够宽就可以实现复位,即=rc20ms。一般取r1k,c22uf。当人按下按钮s1时,使电容c5通过r1迅速放电,待s1弹起后,c再次充电,实现手动复位。r1一般取10k。我
13、们通过p2.0来启动控制,程序中通过查询p2.0的电平来检测是否按键被按下,当按下按键时p2.0为低电平,单片机通过查询到低电平开始音乐输出和彩灯,当松开按键,p2.0即为高电平,在软件中通过软件延时来消除按键的机械抖动。图4 单片机外围电路3.3 时钟电路(1) 在单片机片内有一个高增益的反相放大器,反相放大器的输入端为xtal1,输出端为xtal2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。根据硬件电路的不同,单片机的时钟连接方式可分为内部时钟方式和外部时钟方式。我们采用内部时钟方式,如图4所示:图5 晶振电路(2) 在内部方式时钟电路中,必须在xtal1和xtal2引
14、脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,c6和c7取31pf左右,晶振的频率取值1.2mhz12mhz。根据实际情况,本设计采用12mhz作为系统的外部晶振,电容值取30pf4。3.4 复位电路我们在用按键控制时,为了避免单片机程序错误而导致的错误输出,从而加入复位电路,对任意的情况都能够通过复位按键使电路复位。单片机复位是使cpu和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作。无论是单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。所以,必须弄清楚单片机复位的条件、复位电路和复位后的状态。单片机复位的条件是,必须使rst引脚(9脚)加上持续两个机器周
15、期(即24个振荡周期)的高电平。例如,若时钟频率为12mhz,每机器周期为1us,则只需2us以上时间的高电平。在rst引脚出现高电平后的第二个周期执行复位。单片机常见的复位电路有上电复位电路和按键复位电路。为了方便系统的硬件初始化,我们采用按键复位电路。如图6所示:图6 复位电路3.5 按键电路由于要达到设计要求,同时也为了提高设计的课操作性;选用按键来控制输入从而可以手动的对音乐彩灯进行控制。按键s2与单片机p2.0端口连接是“开始”按键;按键s3与单片机p2.1端口连接是“暂停”按键;按键s3与单片机p2.2端口连接是“停止”按键。如图7所示。图7 按键电路3.6 isp下载口电路下载口
16、电路采用了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时钟信号5rst复位端2vcc电源9mosi输出信号3miso输入信号10gnd地线
17、4gnd地线3.7 led彩灯显示电路led数码显示管有两种,一种是共阳极数码管,另一种是共阴极数码管,其内部是由八个阳极或阴极相连接的发光二极管组成,二者原理不同但功能相同。共阴极led数码显示块的发光二极管阴极连接在一起,形成该模块的公共端(通常称为位选端),因此称为共阴极led数码显示器,8个数码管的另一端通常称为段选端,当显示器的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮;而共阳极led数码显示管则形成共阳极led数码显示块的公共端,该公共端必须接高电平,同理在共阳极led数码显示块中如某个发光二极管的阴极为低电平时,该发光二极管被点亮7。at89s52是采用1
18、2mhz晶振获得稳定的时钟频率。采用12mhz高精度的晶振,以获得较稳定的时钟频率,从而使输出的频率更为稳定。显示电路采用简单实用的8位共阳led数码管。单片机系统显示电路如图9所示。图9 led显示电路3.8 12864液晶电路3.8.1 12864液晶简介12864是128*64点阵液晶模块的点阵数简称。该点阵的屏显成本相对较低,适用于各类仪器。液晶模组的驱动应遵照规定的额定指标,避免故障及永久损坏。液晶显示屏焊接温度:280c+10c 焊接时间3-4秒6。液晶的电气特性如表2所示。表2 12864液晶的电气特性 项目符号最小典型最大单位电源电压vdd-vss4.755.05.25v液晶驱
19、动电压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.0+5v电源正3v0-对比度(亮度)调整4rs(cs)h/lrs=“h”,
20、表示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液晶显示屏的管脚号及作用管脚号管脚名称电平管脚功能描述18vout-lcd驱动电压输出端19
21、avdd背光源正端(+5v)20kvss背光源负端在这个设计中由于采用的是并行,故直接将psb连接高电平;vss与led_k端接地。液晶的数据位db0db7分别接在排阻u2的a0a7上;复位端17脚和单片机的复位端连接。12864液晶屏显示部分电图如图10所示。图10 12864液晶屏显示电路3.9 音乐播放电路为了提高声音电路的功率并保持稳定在喇叭电路中增加了一个8550三极管,并增加了一个阻值比较大的电阻来增加电路的电流。音乐播放电路如图11所示。图11 喇叭电路3.10 直流稳压电源电路电源电路采用普通可调电源供电,电源由外接端口连接5v电压参考源,可满足本系统单片机、彩灯和小喇叭的供电
22、要求。其中采用两个电容并联,达到滤波的作用,以便得到稳定的电流。如下图12。图12 稳压电源电路4 系统软件设计硬件电路一旦确定,大体的功能框架也形成了。这时我们需要在硬件平台上编写软件程序,完成各部分硬件的控制和协调。系统功能是由软硬件共同实现的,由于软件的可伸缩性,最终实现的系统功能可强可弱,差别可能很大。因此,软件是本系统的灵魂。音乐彩灯控制器的软件设计主要是为了实现彩灯与音乐同步控制。基于单片机的音乐彩灯控制器的设计的软件设计主要由主程序、复位程序、音频及半音程序、按键中断程序及显示子程序组成。下面分别对主程序、音频及半音程序、按键中断程序和显示程序逐一作介绍7。4.1 单片机系统设计
23、主程序流程图本设计选用at89s52的单片机来控制歌曲播放和歌词显示。采用直流电源为其提供基准电压+5v,采用12864lcd显示,小喇叭播放音乐8。通过软件程序与按键输入来控制输入与输出。当电源接通时,程序开始初始化。当开始键按下时单片机的21脚输入低电平,程序启动;音乐开始播放彩灯交替移动点亮;随即进入通过频率变化范围中断若在整体频率范围内则继续程序;若不在整体频率范围内则所有彩灯1hz闪烁。当程序进入高频判定时,若在高频段内则使高频段灯亮,液晶显示当前频率的大概值;若不在高频段范围内则进入中频判定,判定结果同高频;当程序进入低频判定时,若满足频率判定要求则低频段灯亮,液晶显示当前频率的大
24、概值;若不满足判定要求则程序结束。图13为主要程序流程图。开始初始化按键按下?播放音乐y在高频段内?在中频段内?高频段灯亮并且液晶显示当前频率大概值y中频段灯亮并且液晶显示当前频率大概值y在低频段内?低频段灯亮并且液晶显示当前频率大概值y所有彩灯1hz闪烁结束nnnn图13主程序流程图音乐彩灯控制器的主程序如下。#include #include #pragma ot(0)#define uint unsigned int#define uchar unsigned char#define io_lcd12864_dataport p0;#define set_data io_lcd12864
25、_rs = 1 ;#define set_inc io_lcd12864_rs = 0 ;#define set_read io_lcd12864_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 = p
26、25 ;sbit beep_pwr=p27;sbit p3.0=p30;sbit p3.1=p31;sbit p3.2=p32;sbit 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=当前频率值: ;u
27、int g_freq=0;/*音符频率表*/uint code notefreq= 523, 587, 659, 698, 784, 880, 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,18
28、65, 2218,2489,2960,3322,3729;/*音名*/uchar code halfnotename=c,d,f,g,a, 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 )
29、;void v_lcd12864init_f( void );void v_lcd12864putstring_f( unsigned 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
30、_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_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
31、-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.3_23_5_1a_3_2-356.5_352._3=2_1_a32_21_a1g05.3_6562_3_50); /学习雷锋好榜样/play(c-53.2_1530c-53.2_1650 5_c6_5_c05_c6_5_6_0_3_c.6_53c.6_c0c53_6_5_3_2.1_30_5_c56_c_6_5_33_1_6-60c._c=5_5_2._3=5_5_6
32、.5_6dc6_5_c6_5_33_5_c-);/ play(3- 2_3_4_3 3- 2_3_4_3 3- 4- 3_4_5_4 4- 3-2- 3- 2_3_4_3 3- 2_3_4_3 3-4- 3_4_5_4 4- 3-2);/许巍星空前奏v_lcd12864putstring_f( 0,0, 许巍 时光) ;play(543 3_2_1_2_30 g53 3_2_1_2_30 a65 4_3_2_3_4 1 b a g);/许巍-时光 soundoff(); /*音符频率表*/uint code notefreq= 523, 587, 659, 698, 784, 880, 988
33、,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, 1,2,4,5
34、,6, c,d,f,g,a,0;4.3 定时器子程序设计序4.3.1 定时器工作原理当定时器设置为定时方式时,计数器对内部机器周期计数,每过一个机器周期,计数器加1,直至计满溢出。定时器的定时时间与系统的振荡频率紧密相关,实验单片机系统采用12mhz晶振,计数周期为1s,适当选择定时器的初值可获取各种定时时间。4.3.2 定时器特殊功能寄存器定时器的初始化是通过定时器的方式寄存器tmod和控制寄存器tcon完成的。(1) 定时器的方式寄存器tmodtmod为定时器0、定时器1的工作方式寄存器,其格式如表4所示。表4 定时器工作方式寄存器gatec/t m1 m0 gate c/t m1 m0
35、tmod的低四位为定时器0的方式字段,高四位为定时器1的方式字段,它们的含义完全相同。各位的意义如下。 m1m0:工作方式选择位,设最大计数值为m。具体功能如表5所示。表5 m1m0工作功能描述m1m0工作方式功能描述最大计数值00方式013位定时器/计数器m=213=819201方式116位定时器/计数器m=216=6553610方式2常数自动重装的8位定时器/计数器m=28=25611方式3仅适用于t0,分为两个8位定时器/计数器。定时器0分成两个8位计数器,所以两个定时器的m值均为256。 c/t:定时器/计数器的选择位。c/t =0工作于定时方式,c/t =1 工作于计数方式。 gat
36、e:门控位。当gate=0时,只要有tri=1,定时器/计数器就开始工作,称为软启动。当gate=1时,只有inti引脚和tri引脚同时为1时,定时器/计数器才开始工作,主要用于测量int引脚上高电平脉冲的宽度,称为硬启动。(2) 定时器控制寄存器tcontcon的作用是控制定时器/计数器的启动、停止,标志定时器的溢出和中断情况,其格式如表6所示。表6 定时器控制寄存器tr0tr1tf0tf1tr0tr1tf0tf1 tf1(tf0):定时器/计数器t1(t0)的溢出标志。当t1(t0)被允许计数后,t1(t0)从初始值开始加1计数,最高位产生溢出时,该位由内部硬件置位,并向cpu请求申请中断
37、。当cpu响应,由硬件清零。 tr1(tr0):定时器/计数器t1(t0)的运行控制位。由软件置1或清零来启动或关闭定时器/计数器。本程序通过单片机的t2产生中断,来调用歌词显示程序和彩灯程序,达到一种同步的效果。按下复位键后,将从头开始。软件分为两部分,主程序和中断服务程序,主程序完成初始化工作、进入定时中断程序。定时中断服务子程序完成对彩灯和音乐的控制,外部中断服务子程序主要完成时间值的读取、程序的运算、结果的输出等工作9。定时中断与外部中断流程图分别如图14、15所示。定时中断入口ny显示同步定时器初始化返回按键输入音乐同步图14 定时中断服务子程序流图关外部中断外部中断入口读取输入程序
38、运算结果输出开外部中断返回图15 外部中断服务子程序流图4.3.3 定时器子程序首先我们定义寄存器tmod=0x01,选择定时器0,定时方式,方式1。本设计采用的12mhz的晶振,所以计数周期为1s。方式1最大计数时间为65536s,这里我们选择定时50ms。所以初值就可以计算:初值 x=65536-50000=15536=3cb0h (公式1)th0=3chtl0=b0h (公式2)由于本设计需要使彩灯1hz的频率闪烁,即需要定时时间为500ms,所以,没完成一次定时,定义一个count自加一次,当count计数到10时,使所以彩灯取反。定义好初值以后则打开总开关ea=1和允许中断开关et0
39、=1,最后启动定时器0,tr1=1。定时器程序如下:/*定时器0用来产生方波*/void timer0int () interrupt 1 th0=freqsandh; tl0=freqsandl; beep_pwr=!beep_pwr;/*定时器用来进行比较准确的延时*/void timer1int() interrupt 3 th1=0xe0; tl1=0x00; timer1cnt+; if(timer1cnt=(osfreq/1500000l) timer1cntflg=1; tr1=0;void delay(uchar time) uchar i; uint j; for(i=0;i
40、time;i+) for(j=0;j0x900;j+);/* uchar i; for(i=0;itime;i+) timer1cnt=0; timer1cntflg=0; tr1=1; while(!timer1cntflg); */4.4 彩灯显示子程序当检测到不同的音乐频率是彩灯的闪烁样式和个数就会发生变化。高频段时高频段的灯亮,当为1个节拍时3个彩灯全部点亮,当为半拍时2个彩灯点亮,当为1/4拍时1个彩灯点亮。低频段时和中频段时亮灯个数与原理同高频。没有在设定频率范围内时所有彩灯以1hz的频率闪烁。彩灯子程序如下。/函数名称:led_dis/函数说明:用于显示音乐的led灯 主要是根据
41、频率和节拍来显示不同的效果/输入参数:uint pl,uchar pai/输出参数:无void led_dis(uint pl,uchar pai)uchar i;if(pl500&pl2000&pl 0 ; ndelay- ) for( i = 125 ; i 0 ; i- ) ; void v_lcd12864init_f( void ) /初始化 v_lcd12864sendcmd_f( 0x30 ) ; /基本指令集 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x01 ) ; /清屏 v_delayms_f( 50 ) ; v_lcd12864s
42、endcmd_f( 0x06 ) ; /光标右移 v_delayms_f( 50 ) ; v_lcd12864sendcmd_f( 0x0c ) ; /开显示void v_lcd12864setaddress_f( unsigned char x, y ) /地址转换 unsigned char byaddress ; switch( y ) case 0 : byaddress = 0x80 + x ; break; case 1 : byaddress = 0x90 + x ; break ; case 2 : byaddress = 0x88 + x ; break ; case 3 :
43、 byaddress = 0x98 + x ; break ; default : break ; v_lcd12864sendcmd_f( byaddress ) ;void v_lcd12864putstring_f( unsigned char x, unsigned char y, unsigned char *pdata ) v_lcd12864setaddress_f( x, y ) ; while( *pdata != 0 ) v_lcd12864senddata_f( *pdata+ ) ; 5 结束语在即将毕业之际,做一个系统的设计可以对自己三年的所学做一个总结,也是给自己以
44、后工作增添一份信心。以上基于单片机的音乐彩灯控制器的设计包含了:电路分析、数字、模拟电路和单片机、传感器、c语言等方面的知识,另外还有选材购买、动手制作等方面。所以具有很高的参考价值,同时,该设计的方案也是来源于生活中广泛的应用领域,有很强的应用价值。单片机的应用改变了传统的设计思路,以前构建一个系统需用用很多的数字模拟器件或者电路单元来构建,系统可靠性差、缺乏灵活性、维护不便、成本高、无法实现智能化等诸多缺点。单片机的应用解决了很多问题,现在只要写一个软件,通过单片机和一些简单的外接电路就可以实现具有很多功能的、而且具有智能化的系统,同时可方便升级维护。所以单片机的应用广泛,在日常生活和生产中占用重要位置。所以我们设计选择了单片机的系统其说明我们深深的意识到它的重要作用。设计中也“小试牛刀”的使用了我们传感器课程所学的超声波的知识;用到
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软件测试自动化的实施策略试题及答案
- 数据库数据访问层设计试题及答案
- 西方政治制度中的青年参与现状试题及答案
- 行政组织在社会变迁中的适应与更新试题及答案
- 关系模型与模式的差异试题及答案
- 提升教学质量教育资源的精准推导技术解析
- 商业零售的数字化孪生提升顾客体验
- 医疗设备行业的数字化转型解决方案
- 电脑组装与维护培训课程行业深度调研及发展项目商业计划书
- 校园绿色能源解决方案企业制定与实施新质生产力项目商业计划书
- 公安派出所建筑外观形象设计规范1
- 机械原理课程设计-抽油机机械系统设计说明书
- 化工原理课程设计-23万吨年煤油冷却器的设计
- 电子样册三菱电机水源机wywr2
- 云南饮食文化以及风物特产
- 道路运输经营安全生产管理制度范本
- 企业标准化管理手册(完整版)
- 航空航天概论(课堂PPT)
- 新改版教科版六年级下册科学全册知识点归纳 (超全)
- 七年级第一节语文课(课堂PPT)
- 绞车对拉安全运输技术措施
评论
0/150
提交评论