当前位置:文档之家› 单片机课程设计音乐播放器报告

单片机课程设计音乐播放器报告

中州大学《单片机》课程设计报告报告题目:音乐播放器作者所在系部:工程技术学院作者所在专业:电气自动化作者所在班级:B10204作者姓名:张强作者学号:20104020416指导教师姓名:雷刚完成时间:2014年10月12日课程设计任务书课题名称音乐播放器的设计完成时间 6.12 指导教师王晓职称副教授学生姓名张婷班级B10204总体设计要求和技术要点利用单片机设计一个音乐播放器,并能够播放三种音乐,音乐自行设计。

一、设计目的1.掌握单片机定时器的使用方法2.掌握单片机扩展显示器、键盘的方法二、技术指标1.键盘设置3种音乐的播放切换;2.LED显示3种音乐的提示符;3. 流水灯闪烁工作内容及时间进度安排第14周:周1到周2查阅资料,确定设计方案周3到周4编写程序并进行proteus仿真周5焊接调试第17周:周1撰写实验报告周2验收课程设计成果1.与设计内容对应的软件程序与焊接实物2.课程设计报告书内容摘要本文的主要内容是用AT89C52单片机为核心控制元件,设计一个音乐播放器,以单片机作为主控核心、蜂鸣器等模块组成。

利用单片机产生不同频率来获得要求的音阶,最终可随意编写需要的程序,播放出音乐。

在此设计中我采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由喇叭发出声音。

设有四个按键,其中两个能实现多首音乐的选择,另一个能实现开始功能和单曲重播的功能,最后一个能实现复位和关闭歌曲的功能。

设有一位数码管,每选择一首曲子能在数码管上显示当前的曲目(只是数字)。

设十六个发光二极管,能随歌曲频率闪烁。

关键字:单片机音乐不同频率按键目录一、概述 (1)二、方案设计与论证 (1)1.硬件设计 (1)2.软件设计 (2)三、单元电路设计与分析 (3)1.单片机最小系统 (3)2. 数码管显示 (4)3.发光二级管和按键 (4)4.蜂鸣器发声 (5)5.软件部分程序和流程图 (5)四、总原理图及元器件清单 (11)1.总原理图 (11)2元器件清单 (11)五、结论 (12)六、心得体会 (12)七、参考文献 (12)一、概述作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“--等音阶在内的各种频率声音。

在此设计中我们采用12MHz的晶振,产生的频率信号即音乐信号由P3.7口输出,信号经过放大后由蜂鸣器发出声音。

乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率及其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。

音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。

便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。

其它节拍与时间的对应关系也可以从两者关系表中得到。

定时器T0工作在定时方式1,改变TH0及TL0,产生不同的音频频率。

要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的内容来实现的。

主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0进行工作。

二、方案设计与论证1. 硬件设计电路以AT89C52单片机为核心控制元件,P3.7口的蜂鸣器播放歌曲,P3.3、P3.4、P3.5口的三个按键实现开始/单曲重播,上一首,下一首的功能。

P1口的一位数码管显示播放歌曲的曲目号。

P2口发光二级管闪烁增加音乐播放的情调。

图2.1 A T89C52引脚图2. 软件设计(1)要生产音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间.利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲.(2)利用8051的内部定时器使用其工作在计数器模式MODE1下,改变计数值THO 及TLO以产生不同频率的方法.(3)例如频率为523Hz,其周期T=1/523=1912us,因此只要令计数器计时956us/1us=956,在每次计数956次时将I/O反相,就可得到中音DO (523Hz).计数脉冲值与频率的关系公式如下: N=Fi÷2÷Fr ………………1.1N: 计算值; Fi: 内部计时一次为1us, 故其频率为1MHz;(4)其计数值的求法如下:T=65536-N=65536-Fi÷2÷Fr ………1.2例如: 设K=65536, F=1000000=Fi=1MHz, 求低音DO(261Hz).中音DO (523Hz). 高音的DO (1046Hz)的计算值. T=65536-N=65536-Fi÷2÷Fr=65536-1000000÷2÷Fr=65536-500000/Fr。

低音DO的 T=65536-500000/262=63627,中音DO的T=65536-500000/523=64580,高音DO的T0=65536-500000/1047=65059(5)C调各音符频率与计数值T的对照表如表1所示.表1 C调各音符频率与计数值T的对照表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1 DO 262 63628 # 4 FA# 740 64860#1 DO# 277 63731 中 5 SO 784 64898低2 RE 294 63835 # 5 SO# 831 64934#2 RE# 311 63928 中 6 LA 880 64968低 3 M 330 64021 # 6 932 64994低 4 FA 349 64103 中 7 SI 988 65030# 4 FA# 370 64185 高 1 DO 1046 65058低 5 SO 392 64260 # 1 DO# 1109 65085# 5 SO# 415 64331 高 2 RE 1175 65110低 6 LA 440 64400 # 2 RE# 1245 65134# 6 466 64463 高 3 M 1318 65157低 7 SI 494 64524 高 4 FA 1397 65178中 1 DO 523 64580 # 4 FA# 1480 65198(6)每个音符使用1个字节,字节的高4位代表音符的高低,低4位代表音符的节拍,表2为节拍与节拍码的对照.如果1拍为0.4秒,1/4拍是0.1秒,只要设定延迟时间就可求得节拍的时间.假设1/4拍为1DELAY,则1拍应为4DELAY,以此类推.所以只要求得1/4拍的DELAY 时间,其余的节拍就是它的倍数,如表3为1/4和1/8节拍的时间设定。

三、单元电路设计与软件分析1.单片机最小系统(1) 时钟源电路单片机内部具有一个高增益反相放大器,用于构成振荡器。

通常在引脚XTALl 和XTAL2跨接石英晶体和两个补偿电容构成自激振荡器,结构如图1。

可以根据情况选择6MHz 、12MHz 等频率的石英晶体,补偿电容通常选择22pF 左右的瓷片电容。

(2) 复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。

上电复位要求接通电源后,自动实现复位操作。

手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。

其结构如图1。

上电自动复位通过电容C3充电来实现。

手动按键复位是通过按键将电阻R1与VCC 接通来实现。

图3.1 最小系统2.数码管显示当有键按下时,数码管显示当前的曲目。

3.发光二级管和按键当接通电源,单片机运行时,十六个发光二级管随着不同的调子闪烁,增加美感。

P3.3、P3.4和P3.5口的按键作用分别是播放重复的曲子也可开启播放,播放上一曲,播放下一曲。

图3.3 发光二级管和按键图3.2 数码管显示4.蜂鸣器发声利用单片机的P3.7口产生不同音调所对应的方波来使蜂鸣器发声,实际焊接中用了PNP三级管来驱动。

5.软件部分程序和流程图YN图3.4 蜂鸣器开始初始化查表调音符数据用延时产生节拍调键盘程序开中断一首曲子播完?软件系统程序:ORG 0000HAJMP LOOOOPORG 000BHAJMP TIM0ORG 001BHRETIORG 0023HLOOOOP: MOV A,#01HLOOOP: MOV P1,#3FHMOV P2,ARL AMOV R2,#0FFHDELAY0: MOV R3,#0FFHDJNZ R3,$MOV R4,#0FFHDJNZ R4,$DJNZ R2,DELAY0JNB P3.3,STARTLJMP LOOOPSTART: MOV P1,#06HMOV R5,#00H ;初始化MOV TMOD,#00010001BMOV IE,#10101010BMOV DPTR,#TAB2 ;装第一首歌MOV 30H,DPL ;DPTR低8位送30H暂存 MOV 31H,DPH ;DPTR高8位送31H暂存START1: INC R4 ;产生8位随机数MOV A,#01010101BMOV B,R4MUL AB ;8位随机数由P2口输出 MOV P2,AMOV DPL,30HMOV DPH,31HMOVC A,@A+DPTR ;查表MOV R0,A ;音符数据送R0崭存MOV A,#00HINC DPTRMOVC A,@A+DPTR ;查表MOV R1,A ;节拍数据送R1崭存INC DPTRMOV 30H,DPLMOV 31H,DPHCJNE A,#01H,ELECT ;一首歌没结束转ELECTINC R5LJMP KEYWORK ;结束歌曲计数器加1 ELECT: JZ START ;所有歌曲结束转START循环 MOV A,R0JNZ SINGCLR TR0SETB P3.7LOOP1: ACALL DELAY ;调用延时子程序DJNZ R1,LOOP1SJMP START1SING: MOV DPTR,#TAB1 ;音符表首址送DPTRDEC R0 ;计算音符MOV A,R0MOV B,#02HMUL ABMOV R0,AMOVC A,@A+DPTR ;查表MOV 21H,AINC DPTRMOV A,R0MOVC A,@A+DPTRMOV 20H,AMOV TL0,20HSETB TR0 ;开T0定时器LOOP2: ACALL DELAYDJNZ R1,LOOP2AJMP START1TIM0: MOV TL0,20HMOV TH0,21HCPL P3.7RETI ;中断返回DELAY: MOV R2,#70DELAY1: MOV R3,#252DJNZ R3,$JNB P3.3,AGAIN ;重复正播放的曲子JNB P3.4,FORM ;上一曲开关按下转FORMJNB P3.5,NEXT ;下一曲开关按下转NEXTDJNZ R2,DELAY1RETAGAIN: JNB P3.3,$ ;等待键释放LJMP KEYWORKFORM: CLR EA ;关中断JNB P3.4,$ ;等待键释放CJNE R5,#00H,ZERO ;不是第一首歌曲转ZER0MOV R5,#04H ;是第一首将最后一首歌曲装入歌曲计数器SJMP KEYWORKZERO: DEC R5 ;歌曲向上进一首SJMP KEYWORKNEXT: CLR EAJNB P3.5,$CJNE R5,#04H,LASTMOV R5,#00HLJMP KEYWORKLAST: INC R5 ;歌曲下翻一首LJMP KEYWORKKEYWORK: MOV DPTR,#TAB ;将歌曲排列表装入DPTRMOV A,R5 ;将R5的内容送ARL ASETB EA ;开中断JMP @A+DPTR ;根据A的内容转向不同歌曲 TAB: AJMP MUSIC2AJMP MUSIC3AJMP MUSIC4AJMP MUSIC5MUSIC2: MOV DPTR,#TAB2 ;第2首歌曲首址送DPTR MOV P1,#06HGONG: MOV 30H,DPLMOV 31H,DPHAJMP START1MUSIC3: MOV DPTR,#TAB3MOV P1,#5BHSJMP GONGMUSIC4: MOV DPTR,#TAB4MOV P1,#4FHSJMP GONGMUSIC5: MOV DPTR,#TAB5MOV P1,#66HSJMP GONG;********************(音符表)**********************;TAB1: DW 64021,64185,64331,64400,64524,64632,64732DW 64777,64860,64934,64968,65030,65085,65134DW 65157,65198,65235,65252,65283,65310,65335;**********************(因为爱情)*************************; TAB2: DW 0910H,0A08H,0C08H,0C08H,0A18H,0010H,0C08H,0A08HDW 0908H,0C08H,0C20H,0D08H,0E08H,0F08H,0F08H,0F08HDW 0E08H,0F18H,0E04H,0E08H,0E08H,0C08H,0A08H,0A20HDW 0C08H,0A08H,0C08H,0D08H,0D18H,0C08H,0D08H,0C08HDW 0C08H,0808H,0820H,0608H,0808H,0A08H,0908H,0608HDW 0A08H,0908H,0608H,0A08H,0908H,0608H,0D10H,0C20HDW 0001H;*********************(兰花草)***********************;TAB3: DW 0608H,0A08H,0A08H,0A08H,0A18H,0908H,0808H,0908HDW 0808H,0708H,0620H,0D08H,0D08H,0D08H,0D08H,0D18HDW 0C08H,0A08H,0C08H,0C08H,0B08H,0A20H,0A08H,0D08HDW 0D08H,0C08H,0A18H,0908H,0808H,0908H,0808H,0708HDW 0610H,0310H,0308H,0808H,0808H,0708H,0618H,0A08HDW 0908H,0808H,0708H,0508H,0620H,0908H,0808H,0708HDW 0508H,0640H,0001H;*********************(我只在乎你)*****************************; TAB4: DW 0A08H,0A08H,0A08H,0908H,0A10H,0C08H,0C08H,0C20HDW 0D08H,0D08H,0D08H,0C08H,0A10H,0D08H,0C08H,0C20HDW 0F08H,0F08H,0F08H,0D08H,1010H,0F08H,0C08H,0C20HDW 0D08H,0D08H,0D08H,0F08H,0D08H,0C10H,0A10H,0920HDW 0A08H,0A08H,0A08H,0908H,0A10H,0C08H,0C08H,0C20HDW 0D08H,0D08H,0D08H,0C08H,0A10H,0C08H,0C08H,0C20HDW 0F08H,0F10H,0D08H,1010H,1010H,0F08H,0C08H,0C20HDW 1010H,0C10H,0F10H,1010H,1110H,1010H,0F10H,0E10HDW 0F10H,0E10H,0D10H,0C10H,0D40H,0020H,0004H,0F08HDW 1008H,1110H,1010H,0F10H,0E10H,0F10H,0E10H,0A10HDW 0C10H,0D20H,0008H,0D08H,0C08H,0D10H,0F10H,0F20HDW 0010H,0F20H,1010H,1110H,0F10H,1010H,0F10H,0D08HDW 0D08H,1210H,1110H,1010H,0F08H,1208H,1210H,1110HDW 1010H,0F10H,1030H,1110H,1008H,0F08H,0F20H,0F10HDW 1010H,1120H,0F10H,1410H,1310H,1108H,1008H,0F10HDW 0D30H,0010H,0C10H,0F10H,1110H,1310H,1408H,1108HDW 1008H,0F10H,0D10H,0F10H,0F08H,1010H,0F08H,0F40HDW 0001H;*********************(童年)****************************;TAB5: DW 0A08H,0C08H,0C10H,0C08H,0A08H,0D08H,0D08H,0E08HDW 0D08H,0D08H,0D08H,0D08H,0C08H,0F10H,0F08H,0F08HDW 0F08H,0D08H,0F08H,0D08H,0C40H,0A08H,0C08H,0C10HDW 0C08H,0A08H,0D08H,0D08H,0E08H,0D08H,0D08H,0D08HDW 0D08H,0C08H,0F10H,0F08H,0F08H,0F08H,0D08H,0D08HDW 0F08H,1040H,1308H,1308H,1310H,1310H,1108H,1008HDW 0F08H,0F10H,0D08H,0D08H,0F08H,0D08H,0F08H,1008HDW 1008H,1008H,1008H,1008H,0F08H,1108H,1008H,1040HDW 1108H,1110H,1108H,1108H,1008H,1010H,0F08H,0F10HDW 0F08H,1008H,0F08H,0D08H,0C08H,0C08H,0C10H,0C08HDW 0D08H,0C08H,1008H,1108H,0F40H,0001H,0000HEND四、总原理图及元器件清单1.总原理图图4.1 总原理图2.元器件清单AT89C52,晶振,电容,电阻,排阻,按键,数码管,二极管,蜂鸣器,三极管五、结论此音乐播放器能够播放四首曲子,且用按键选择曲目,基本实现了设计要求。

相关主题