单片机电子音调发生器_第1页
单片机电子音调发生器_第2页
单片机电子音调发生器_第3页
单片机电子音调发生器_第4页
单片机电子音调发生器_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、北京交通大学单片机报告 教学单位 电子信息工程学院 姓 名 学 号 班 级 _ 指导教师 时 间 电子音调发生器一、实验目的 :1.了解计算机发声原理。2.熟悉定时器和键盘扫描电路的工作原理及编程方法。二、实验内容和要求:板子分为两大部分:由开关控制的音阶播放程序;由单片机控制的自动音阶播放程序(音乐程序)。经观察单片机实验箱内开关后发现,若全部开关用来播放8个音的话,就没有多余的开关用于在音阶和音调之间切换,故我将音阶部分缩减和3个开关,即可代表8种不同状态。再分配两个开关用于切换音阶,实现音乐部分和歌曲之间的切换。简单地说就是能清晰地发出七个音DO RE MI FA SO LA TI 还能

2、放出两首歌曲,在放歌曲的时候可以进行任意的中断切换实现不同歌曲之间,不同音节之间的切换。三、实验原理:(1)音节由不同频率的方波产生,音节与频率的关系如表1所示。要产生音频方波,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间。利用计时器计时此半周期时间,每当计时到后就将输出方波的I/0反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。在ZKS-03实验仪上,产生方波的I/O脚选用P1.7,通过跳线选择器JP1将单片机的P1.7与蜂鸣器的驱动电路相连。这样P1.7输出不同频率的方波,蜂鸣器便会发出不同的声音。另外,音乐的节拍是由延时实现的,如

3、果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

4、中音6440FBE9高音7494FC5B高音1523FC8F高音2587FCEF高音3659FD45高音4698FD6C高音5784FDB4曲调值DELAY调4/4125ms调3/4187ms调2/4250ms节拍延时利用计时器计时此半周期时间,每当计时到后就将输出方波的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚得到此频率的方波。 (2)音乐程序查表原理:乐谱格式:每字节的高字节为音符代码,低字节为节拍代码 音符代码 1 2 3 4 5 6 7 8 9 A B C D E F 0 音节 .5 .6 .7 1 2 3 4 5 6 7 1 2 3 4 5 休止 节拍代码 1

5、 2 3 4 5 6 8 A C F 节拍 1/4 2/4 3/4 1 1(1/4) 1(1/2) 2 2(1/2) 3 3(3/4) (3)定时器的使用及时间延迟,首先对定时器进行初始化设置TMOD(工作方式)寄存器GATAC/TM1M0GATAC/TM1M0定时器1定时器0门控位:GATE0,TR=1启动计数(软件启动);GATE1,TR=1 且 INT=1启动计数(硬件启动)。C/T: 定时或计数方式选择位。C/T0,定时工作方式;C/T1,计数工作方式。M1M0: 工作方式选择位。M1M000,方式0:13位计数(TL0-4、TH0-7)M1M001,方式1:16位计数(TL0-7、T

6、H0-7)M1M010,方式2:8位计数,有自动装入功能。M1M011,方式3:T0分为两个8位计数器,TL0可工作为定时或计数方式,TH0只能工作为定时方式。设置TCON(控制)寄存器:TF1TR1TF0TR0IE1IT1IE0IT0TR0/TR1:启动计数。为1启动计数;为0停止计数。TF0/TF1:计数溢出。当加”1”计数结束时为1。本实验采用定时器T0,工作在方式1 (16位计数),无自动装入功能。(4) 83线优先编码器74LSl4874LSl48外引线排列图74LS148是8-3线优先编码器,其外引线排列如图2所示。为8个信号输入,低电平有效。为位代码输出(反码输出)。为选通输入端

7、,当=0时允许编码;当=1时输出和被封锁,编码被禁止。是选通输出端,级联应用时,高位片的端与低位片的端相连接,可以扩展优先编码功能。为优先扩展输出端,级联应用时可作为输出位的扩展端。74LS148功能表输入输出11111101111111111110000000100100101001101001001110110100111110001001111110101001111111100100111111111101音节编码电路硬件连接图(5)蜂鸣器电路蜂鸣器有交流和直流两种。直流蜂鸣器驱动简单,一旦在引脚上加入直流电源它就会发出一定频率的声音,此时声音的音调和音量是固定的;而交流蜂鸣器在这方面

8、则显得较灵活,输入声音信号的频率和音长是可控的,因此输出的声响将更逼真、更悦耳。本实验仪有一个交流蜂鸣器,由于一般I/O口的驱动能力有限,因此不用它直接驱动蜂鸣器,它与P87C52X2的连接方式如下图所示。Buzzer通过一个跳线与P1.7相连,P1.7输出不同频率的方波信号,蜂鸣器就会发出不同的声音。如果控制输出信号的频率和音长,蜂鸣器则会发出悦耳的音乐。四、实验设计:总体来说,本实验分为两大部分:由开关控制的音阶播放程序;由单片机控制的自动音阶播放程序(音乐程序)。经观察单片机实验箱内开关后发现,若全部开关用来播放8个音的话,就没有多余的开关用于在音阶和音调之间切换,故我将音阶部分缩减和3

9、个开关,即可代表8种不同状态。再分配两个开关用于切换音阶,音乐部分和歌曲之间的切换。实验箱硬件连接如图所示:K0-K2用于表示7个不同的音阶,K4选择音乐曲目,K5切换音阶或音乐播放。实验总体流程图如下图所示:五、实验程序源代码:ORG 0000HJMP YINJIEORG 000BHLJMP TIM0XUANZE:JNB P3.4,YINJIE ;P3.4为0转音阶程序 JMP MUSIC ;为1转音乐播放程序YINJIE: MOV TMOD,#B;主程序初始化,定时器T0工作于方式1 MOV IE,#B ;中断控制寄存器初始化,定时器/计数器0中断允许 CLR TR0 JNB P1.3,X

10、UANZE MOV A,P1 ANL A,#07H ;屏蔽高五位 MOV DPTR,#TABLE MOV R5,#01H ;控制两拍延时 LCALL SING CLR TR0 JB P3.4,MUSIC ;为1转音乐播放程序 JMP YINJIE;音乐播放程序 MUSIC: JB P3.3,START0 JNB P3.3,START1START0:MOV C,P3.3 ;记录当前播放歌曲状态 MOV 30H,#00H ; MOV DPTR,#TABLE0 ;音乐简谱 JMP NEXTSTART1:MOV C,P3.3 MOV 30H,#00H ; MOV DPTR,#TABLE1 ;音乐简谱N

11、EXT:MOV A,30H MOVC A,A+DPTR ;查表取音调和节拍 MOV R2,A ;将音调和节拍存入R2 JZ END0 ;为零,不进行处理. ANL A,#0FH MOV R5,A ;将节拍存入R5 MOV A,R2 SWAP A ;半字节交换 ANL A,#0FH MOV DPTR,#YINDIAO JNZ SONG ;根据音调决定是否演奏.SONG: LCALL SING CLR TR0 INC 30H JNB P3.4,BACK ;再次查询P3.4,为0转音阶程序 JB P3.4,CONTINUEBACK:AJMP YINJIESING: DECA MOV22H,A RLA

12、 ;左循环 MOVCA,A+DPTR MOV TH0,A MOV21H,A MOVA,22H RLA INCA MOVCA,A+DPTR MOVTL0,A MOV20H,A SETBTR0 LCALL DELAY RETCONTINUE: JB P3.3,CHANGE1 ;查询P3.3,为1 JNB P3.3,CHANGE0 CHANGE1: ANL C,P3.3 MOV DPTR,#TABLE0 JC NEXT ;P3.3状态仍为1不变,继续取下一个音符 JNC START1 ;P3.3状态改变,歌曲切换CHANGE0: ORL C,P3.3 MOV DPTR,#TABLE1 JNC NEX

13、T ;P3.3状态为0不变,继续取下一个音符 JC START0 ;P3.3状态改变,歌曲切换 END0:CLR TR0 JB P3.3,START0 JNB P3.3,START1TIM0: ;定时器中断服务程序 PUSH ACC PUSH PSW MOV TL0,20H ;重赋初值. MOV TH0,21H CPL P1.7 POP PSW POP ACC RETIDELAY:MOV R7,#02H ;延时187ms子程序D2: MOV R4,#187D3: MOV R3,#248 DJNZ R3,$ DJNZ R4,D3 DJNZ R7,D2 DJNZ R5,DELAY RETTABLE

14、: ;定时常数T值表 DW 64580,64684,64777,64820,64898,64968,65030YINDIAO: ;决定音调的定时初值.DW 64260,64400,64524,64580,64684,64777,64820,64898,64968,65030,65058,65110,65157,65178,65217TABLE0: ;安静DB 62H,62H,62H,51H,41H,32H,32H,52H,52H,41H,51H,42H,44H,12H,62HDB 51H,41H,42H,42H,42H,44H,12H,62H,51H,41H,42H,42H,52H,54H,0

15、2HDB 02H,62H,62H,62H,62H,51H,41H,32H,32H,52H,52H,51H,41H,42H,44H,2H,62HDB 51H,41H,42H,42H,52H,51H,52H,61H,74H,02H,72H,72H,72H,72H,62H,51H,41H,42HDB 42H,42H,41H,51H,52H,54H,04H,02H,12H,82H,82H,82H,72H,62H,52H DB 52H,52H,63H,61H,64H,02H,12H,72H,72H,72H,62H,62H,52H,42H,42HDB 42H,32H,42H,12H,12H,62H,62H

16、,62H,72H,62H,72H,62H,52H,52H,42H,52H,00HTABLE1: ;欢乐颂DB 64H,64H,74H,84H,84H,74H,64H,54H,44H,44H,54H,64H,66H,52H,01H,54H,02HDB 64H,64H,74H,84H,84H,74H,64H,54H,44H,44H,54H,64H,56H,46H,02HDB 54H,54H,64H,44H,54H,62H,72H,64H,44H,54H,62H,72H,64H,54HDB 44H,54H,14H,64H,64H,74H,84H,84H,74H,64H,72H,52H,44H,44H,54H,64H,56H,42H,44H,04H,00HEND

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论