您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 能源与动力工程 > 单片机电子音调发生器
北京交通大学单片机报告教学单位电子信息工程学院姓名学号班级_指导教师时间电子音调发生器一、实验目的:1.了解计算机发声原理。2.熟悉定时器和键盘扫描电路的工作原理及编程方法。二、实验内容和要求:板子分为两大部分:由开关控制的音阶播放程序;由单片机控制的自动音阶播放程序(音乐程序)。经观察单片机实验箱内开关后发现,若全部开关用来播放8个音的话,就没有多余的开关用于在音阶和音调之间切换,故我将音阶部分缩减和3个开关,即可代表8种不同状态。再分配两个开关用于切换音阶,实现音乐部分和歌曲之间的切换。简单地说就是能清晰地发出七个音DOREMIFASOLATI还能放出两首歌曲,在放歌曲的时候可以进行任意的中断切换实现不同歌曲之间,不同音节之间的切换。三、实验原理:(1)音节由不同频率的方波产生,音节与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器JP1将单片机的P1.7与蜂鸣器的驱动电路相连。这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。另外,音乐的节拍是由延时实现的,如果1拍为0.4秒,1/4拍是0.1秒。只要设定延时时间,就可求得节拍的时间。延时作为基本延时时间,节拍值只能是它的整数倍,每个音节相应的定时器初值X可按下法算:(1/2)*(1/f)=(12/fose)*(216-X)即X=216-(fose/24f)其中f为音调频率,当晶振频率fose=11.0592MHz时,音节“1”相应的定时器初值为X,则可得X=63777D=F921H其它的可同样求得。表1:音符频率(HZ)计数初值(H)低音5196F6D1低音6220F7D1低音7247F8B6中音1262F921中音2294F9E1中音3330FA8C中音4349FAD8中音5392FB68中音6440FBE9高音7494FC5B高音1523FC8F高音2587FCEF高音3659FD45高音4698FD6C高音5784FDB4曲调值DELAY调4/4125ms调3/4187ms调2/4250ms节拍延时利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。(2)音乐程序查表原理:乐谱格式:每字节的高字节为音符代码,低字节为节拍代码音符代码123456789ABCDEF0音节.5.6.712345671`2`3`4`5`休止节拍代码1234568ACF节拍1/42/43/411(1/4)1(1/2)22(1/2)33(3/4)(3)定时器的使用及时间延迟,首先对定时器进行初始化设置TMOD(工作方式)寄存器GATAC/TM1M0GATAC/TM1M0门控位:GATE=0,TR=1启动计数(软件启动);GATE=1,TR=1且INT=1启动计数(硬件启动)。C/T:定时或计数方式选择位。C/T=0,定时工作方式;C/T=1,计数工作方式。M1M0:工作方式选择位。M1M0=00,方式0:13位计数(TL0-4、TH0-7)M1M0=01,方式1:16位计数(TL0-7、TH0-7)M1M0=10,方式2:8位计数,有自动装入功能。M1M0=11,方式3:T0分为两个8位计数器,TL0可工作为定时或计数方式,TH0只能工作为定时方式。设置TCON(控制)寄存器:TF1TR1TF0TR0IE1IT1IE0IT0TR0/TR1:启动计数。为1启动计数;为0停止计数。TF0/TF1:计数溢出。当加”1”计数结束时为1。本实验采用定时器T0,工作在方式1(16位计数),无自动装入功能。(4)8—3线优先编码器74LSl48定时器1定时器074LSl48外引线排列图74LS148是8-3线优先编码器,其外引线排列如图2所示。7I~0I为8个信号输入,低电平有效。210YYY、、为3位代码输出(反码输出)。ST为选通输入端,当ST=0时允许编码;当ST=1时输出210YYY、、和EXSYY、被封锁,编码被禁止。SY是选通输出端,级联应用时,高位片的SY端与低位片的ST端相连接,可以扩展优先编码功能。EXY为优先扩展输出端,级联应用时可作为输出位的扩展端。74LS148功能表输入输出ST0I1I2I3I4I5I6I7I2Y1Y0YEXYSY1××××××××11111011111111111100×××××××0000010××××××01001010×××××011010010××××0111011010×××01111100010××011111101010×01111111100100111111111101音节编码电路硬件连接图(5)蜂鸣器电路蜂鸣器有交流和直流两种。直流蜂鸣器驱动简单,一旦在引脚上加入直流电源它就会发出一定频率的声音,此时声音的音调和音量是固定的;而交流蜂鸣器在这方面则显得较灵活,输入声音信号的频率和音长是可控的,因此输出的声响将更逼真、更悦耳。本实验仪有一个交流蜂鸣器,由于一般I/O口的驱动能力有限,因此不用它直接驱动蜂鸣器,它与P87C52X2的连接方式如下图所示。Buzzer通过一个跳线与P1.7相连,P1.7输出不同频率的方波信号,蜂鸣器就会发出不同的声音。如果控制输出信号的频率和音长,蜂鸣器则会发出悦耳的音乐。四、实验设计:总体来说,本实验分为两大部分:由开关控制的音阶播放程序;由单片机控制的自动音阶播放程序(音乐程序)。经观察单片机实验箱内开关后发现,若全部开关用来播放8个音的话,就没有多余的开关用于在音阶和音调之间切换,故我将音阶部分缩减和3个开关,即可代表8种不同状态。再分配两个开关用于切换音阶,音乐部分和歌曲之间的切换。实验箱硬件连接如图所示:K0-K2用于表示7个不同的音阶,K4选择音乐曲目,K5切换音阶或音乐播放。实验总体流程图如下图所示:五、实验程序源代码:ORG0000HJMPYINJIEORG000BHLJMPTIM0XUANZE:JNBP3.4,YINJIE;P3.4为0转音阶程序JMPMUSIC;为1转音乐播放程序YINJIE:MOVTMOD,#00000001B;主程序初始化,定时器T0工作于方式1MOVIE,#10000010B;中断控制寄存器初始化,定时器/计数器0中断允许CLRTR0JNBP1.3,XUANZEMOVA,P1ANLA,#07H;屏蔽高五位MOVDPTR,#TABLEMOVR5,#01H;控制两拍延时LCALLSINGCLRTR0JBP3.4,MUSIC;为1转音乐播放程序JMPYINJIE;音乐播放程序MUSIC:JBP3.3,START0JNBP3.3,START1START0:MOVC,P3.3;记录当前播放歌曲状态MOV30H,#00H;MOVDPTR,#TABLE0;音乐简谱JMPNEXTSTART1:MOVC,P3.3MOV30H,#00H;MOVDPTR,#TABLE1;音乐简谱NEXT:MOVA,30HMOVCA,@A+DPTR;查表取音调和节拍MOVR2,A;将音调和节拍存入R2JZEND0;为零,不进行处理.ANLA,#0FHMOVR5,A;将节拍存入R5MOVA,R2SWAPA;半字节交换ANLA,#0FHMOVDPTR,#YINDIAOJNZSONG;根据音调决定是否演奏.SONG:LCALLSINGCLRTR0INC30HJNBP3.4,BACK;再次查询P3.4,为0转音阶程序JBP3.4,CONTINUEBACK:AJMPYINJIESING:DECAMOV22H,ARLA;左循环MOVCA,@A+DPTRMOVTH0,AMOV21H,AMOVA,22HRLAINCAMOVCA,@A+DPTRMOVTL0,AMOV20H,ASETBTR0LCALLDELAYRETCONTINUE:JBP3.3,CHANGE1;查询P3.3,为1JNBP3.3,CHANGE0CHANGE1:ANLC,P3.3MOVDPTR,#TABLE0JCNEXT;P3.3状态仍为1不变,继续取下一个音符JNCSTART1;P3.3状态改变,歌曲切换CHANGE0:ORLC,P3.3MOVDPTR,#TABLE1JNCNEXT;P3.3状态为0不变,继续取下一个音符JCSTART0;P3.3状态改变,歌曲切换END0:CLRTR0JBP3.3,START0JNBP3.3,START1TIM0:;定时器中断服务程序PUSHACCPUSHPSWMOVTL0,20H;重赋初值.MOVTH0,21HCPLP1.7POPPSWPOPACCRETIDELAY:MOVR7,#02H;延时187ms子程序D2:MOVR4,#187D3:MOVR3,#248DJNZR3,$DJNZR4,D3DJNZR7,D2DJNZR5,DELAYRETTABLE:;定时常数T值表DW64580,64684,64777,64820,64898,64968,65030YINDIAO:;决定音调的定时初值.DW64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217TABLE0:;安静DB62H,62H,62H,51H,41H,32H,32H,52H,52H,41H,51H,42H,44H,12H,62HDB51H,41H,42H,42H,42H,44H,12H,62H,51H,41H,42H,42H,52H,54H,02HDB02H,62H,62H,62H,62H,51H,41H,32H,32H,52H,52H,51H,41H,42H,44H,2H,62HDB51H,41H,42H,42H,52H,51H,52H,61H,74H,02H,72H,72H,72H,72H,62H,51H,41H,42HDB42H,42H,41H,51H,52H,54H,04H,02H,12H,82H,82H,82H,72H,62H,52HDB52H,52H,63H,61H,64H,02H,12H,72H,72H,72H,62H,62H,52H,42H,42HDB42H,32H,42H,12H,12H,62H,62H,62H,72H,62H,72H,62H,52H,52H,42H,52H,00HTABLE1:;欢乐颂DB64H,64H,74H,84H,84H,74H,64H,54H,44H,44H,54H,64H,66H,52H,01H,54H,02HDB64H,64H,74H,84H,84H,74H,64H,54H,44H,44H,54H,64H,56H,46H,02HDB54H,54H,64H,44H,54H,62H,72H,64H,44H,54H,62H,72H,64H,54HDB44H,54H,14H,64H,64H,74H,84H,84H,74H,64H,72H,52H,44H,44H,54H,64H,56H,42H,44H,04H,00HEND六、电路硬件连接图晶振电路:复位电路:总连接电路:六、实现功能1.电子琴:当K5(P3.4)取低电平时,可播放1234567七个音调。2.音乐播放:当K5取高电平时播放音乐,K4为低电平时播放歌曲0(安静),当K4为高电平时播放歌曲1(欢乐颂)。七、实验体会九、参考文献八、参考文献1.戴胜华,蒋大明,杨世武等.单片机原理与应用[M].北京:北京交通大学出版社,2008.2.张毅刚.单片机原理与应用[M].北京:高等教育出版社,2004.3.周航慈.单片机程序设计基础[M].北京:北京航空航天大学出版社,1997.
本文标题:单片机电子音调发生器
链接地址:https://www.777doc.com/doc-5583694 .html