单片机音乐播放器课程设计报告_第1页
单片机音乐播放器课程设计报告_第2页
单片机音乐播放器课程设计报告_第3页
单片机音乐播放器课程设计报告_第4页
单片机音乐播放器课程设计报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、 . . . 目录一课程设计任务与要求.1二硬件系统概述.3三软件系统概述.7四安装调试说明.14五总结与体会.15 六参考文献.16一.课程设计任务与要求1.1 设计任务设计一个具有特定功能的音乐播放器。该音乐播放器上电或按键复位后能自动显示系统提示符“P.”,进入准备工作状态。该音乐播放器可以播放多首音乐,曲目选择可以由键盘控制,曲目名称可以显示在显示器上。1.2 功能要求说明 设有四个按键,其中两个能实现多首音乐的选择,另一个能实现开始功能和单曲重播的功能,最后一个能实现复位和关闭歌曲的功能。设有一位数码管,每选择一首曲子能在数码管上显示当前的曲目(只是数字)。设有八位二极管,能随歌曲频

2、率闪烁。1.3 总体方案介绍与工作原理说明1.3.1 总体方案介绍作为单片机的重要硬件资源之一,利用定时器可以产生各种固定频率的方波信号,也可以产生包括“Do“、“Re“、“Me“-等音阶在的各种频率声音。在此设计中我们采用12MHz的晶振,产生的频率信号即音乐信号由P37口输出,信号经过放大后由喇叭发出声音。乐曲中,每一音符对应着确定的频率,我们可以参照给出的各音符频率与其相应的时间常数来编写程序,根据表中所提供的常数,将其16进制代码送入芯片里,可以奏出音符。音符的节拍我们可以用定时器T0来控制,送入不同的初值,就可以产生不同的定时时间。便如某歌曲的节奏为每分钟94拍,即一拍为0.64秒。

3、其它节拍与时间的对应关系也可以从两者关系表中得到。定时器T0工作在定时方式1,改变TH0与TL0,产生不同的音频频率。要编写的乐谱按要求以音符字节数据表的形式存放在程序中,改变乐曲就是通过改变该数据表的容来实现的。主程序的任务是按顺序读取数据表中的字节,根据情况调用音级子程序和音长子程序,启动定时器T0进行工作。 1.3.2 工作原理说明(1) 要生产音频脉冲,只要算出某一音频的周期(1/频率),然后将此周期除以2,即为半周期的时间.利用定时器计时这个半周期时间,每当计时到后就将输出脉冲的I/O反相,然后重复计时此半周期时间再对I/O反相,就可在I/O脚上得到此频率的脉冲.(2) 利用8051

4、的部定时器使用其工作在计数器模式MODE1下,改变计数值THO与TLO以产生不同频率的方法.(3) 例如频率为523Hz,其周期T1/5231912us,因此只要令计数器计时956us/1us956,在每次计数956次时将I/O反相,就可得到中音DO (523Hz). 计数脉冲值与频率的关系公式如下: NFi÷2÷Fr1.1 N: 计算值; Fi: 部计时一次为1us, 故其频率为1MHz;(4) 其计数值的求法如下: T65536-N65536-Fi÷2÷Fr 1.2 例如: 设K65536, F1000000Fi1MHz, 求低音DO(261Hz).

5、中音DO (523Hz). 高音的DO (1046Hz)的计算值. T65536-N65536-Fi÷2÷Fr65÷2÷Fr65536-500000/Fr。低音DO的 T65536-500000/26263627,中音DO的T65536-500000/52364580,高音DO的 T65536-500000/104765059(5)C调各音符频率与计数值T的对照表如表1所示.表1.1 C调各音符频率与计数值T的对照表音符频率(HZ)简谱码(T值)音符频率(HZ)简谱码(T值)低1DO26263628# 4 FA#74064860#1DO#27763731

6、中 5 SO78464898低2RE29463835# 5 SO#83164934#2 RE#31163928中 6 LA88064968低 3 M33064021# 693264994低 4 FA34964103中 7 SI98865030# 4 FA#37064185高 1 DO104665058低 5 SO39264260# 1 DO#110965085# 5 SO#41564331高 2 RE117565110低 6 LA44064400# 2 RE#124565134# 646664463高 3 M131865157低 7 SI49464524高 4 FA139765178中 1 D

7、O52364580# 4 FA#148065198(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节拍的时间设定. 二硬件系统概述2.1 硬件系统各模块功能简要介绍2.1.1 单片机最小系统(1) 时钟源电路 单片机部具有一个高增益反相放大器,用于构成振荡器。通常在引脚XTALl和XTAL2跨接石英晶体和两个补偿电容构

8、成自激振荡器,结构如图2.1。可以根据情况选择6MHz、12MHz或24MHz等频率的石英晶体,补偿电容通常选择22pF左右的瓷片电容。 (2) 复位电路 单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,用按钮开关操作使单片机复位。其结构如图2.1。上电自动复位通过电容C3充电来实现。手动按键复位是通过按键将电阻R1与VCC接通来实现。 图2.12.1.2 发光二极管如图2.2,当接通电源,单片机运行时,八个二极管随着不同的调子闪烁,增加美感。 图2.22.1.3 一位数码管在此,

9、如图2.,3,由于图片是网上找的故与实物刚好相反,实物为共阳极接法,我手里所拥有的数码管为共阳极数码管,故在此特别说明,在软件部分要将数码表改成共阳极的,所以在此要特别注意! 图2.3 图2.32.1.4 蜂鸣器发声如图2.4,利用单片机的P3.7口产生不同音调所对应的方波来使蜂鸣器发声,使用PNP三级管来驱动。图2.42.1.5 按键如图2.5,按下AGAIN键可播放重复的曲子也可开启播放,按下FORM键可播放上一曲,按下NEXT键可播放下一曲。图2.5 2.2 电路原理图 图2.52.3 元器件清单Bill of Material for 音乐播放器.BomUsed Part Type D

10、esignator Footprint Description = = = = = 9 10K R1 R2 R3 AXIAL-0.4 Resistor R4 R5 R6 R7 R8 R20 1 12MHZ Y1 XTAL-1 Crystal Oscillator 1 22uF C2 RB-.2/.4 Bi-Polar Capacitor 2 30pF C3 C4 RAD-0.1 Capacitor 8 300k R9 R10 R11 AXIAL-0.4 R12 R13 R14 R15 R16 1 DIODE D1 LED Diode 8 LED D2 D3 D4 LED D5 D6 D7 D8

11、 D9 1 RESET S1 SW 1 SPEAKER LS1 SIP-2 1 USB J2 USB Connector三软件系统概述3.1 使用单片机资源的情况通用寄存器R5,R4,R0,R1,R3,R2用户RAM区30H,31H专用寄存器A,B,DPTR,位寻址区21H,20H3.2 软件系统各模块功能简要介绍初始化程序:初始化定时器;唱歌程序:从表格中取出数据,利用中断程序产生不同频率的方波同时调延时程序产生不同的节拍;中断程序:定时时间到,产生方波;判键程序:判断哪个键按下,转向相应的子程序执行相应的动作;音符表:用于产生曲调;按键程序:分别执行选歌,开启,重复的功能。3.3 软件系统

12、程序流程框图开始初始化查表调音符数据用延时产生节拍调键盘程序开中断 Y一首曲子播完?N 3.4 软件系统程序清单 ORG 0000H AJMP LOOOOP ORG 000BH AJMP TIM0 ORG 001BH RETI ORG 0023H LOOOOP:MOVA,#01HLOOOP: MOV P2,#0C0H MOV P1,ARL AMOV R2,#0FFHDELAY0:MOV R3,#0FFHDJNZ R3,$MOV R4,#0FFHDJNZ R4,$DJNZ R2,DELAY0 JNBP3.3,STARTLJMP LOOOPSTART: MOV P2,#0F9H MOV R5,#0

13、0H ;初始化 MOV TMOD,#00010001B MOV IE,#10101010B MOV DPTR,#TAB2 ;装第一首歌 MOV 30H,DPL ;DPTR低8位送30H暂存 MOV 31H,DPH ;DPTR高8位送31H暂存START1: INC R4 ;产生8位随机数 MOV A,#01010101BMOV B,R4 MUL AB ;8位随机数由P1口输出MOV P1,A MOV DPL,30H MOV DPH,31H MOV A,#00H MOVC A,A+DPTR ;查表 MOV R0,A ;音符数据送R0崭存 MOV A,#00H INC DPTR MOVC A,A+

14、DPTR ;查表 MOV R1,A ;节拍数据送R1崭存 INC DPTR MOV 30H,DPL MOV 31H,DPH CJNE A,#01H,ELECT ;一首歌没结束转ELECT INC R5 ;结束歌曲计数器加1LJMP KEYWORK ;结束歌曲计数器加1 ELECT: JZ START ;所有歌曲结束转START循环 MOV A,R0 JNZ SING CLR TR0 SETB P3.7 LOOP1: ACALL DELAY ;调用延时子程序 DJNZ R1,LOOP1 SJMP START1 SING: MOV DPTR,#TAB1 ;音符表首址送DPTR DEC R0 ;计算

15、音符 MOV A,R0 MOV B,#02H MUL AB MOV R0,A MOVC A,A+DPTR ;查表 MOV 21H,A INC DPTR MOV A,R0 MOVC A,A+DPTR MOV 20H,A MOV TL0,20H MOV TH0,21H SETB TR0 ;开T0定时器 LOOP2: ACALL DELAY DJNZ R1,LOOP2 AJMP START1 TIM0: MOV TL0,20H MOV TH0,21H CPL P3.7 RETI ;中断返回 DELAY: MOV R2,#70 DELAY1: MOV R3,#252 DJNZ R3,$ JNB P3.

16、3,AGAIN ;重复正播放的曲子 JNB P3.4,FORM ;上一曲开关按下转FORM JNB P3.5,NEXT 下一曲开关按下转NEXT DJNZ R2,DELAY1 RETAGAIN: JNB P3.3,$ ;等待键释放 LJMP KEYWORK FORM: CLR EA ;关中断 JNB P3.4,$ ;等待键释放 CJNE R5,#00H,ZERO ;不是第一首歌曲转ZER0 MOV R5,#04H SJMP KEYWORK ZERO: DEC R5 ;歌曲向上进一首 SJMP KEYWORK NEXT: CLR EA JNB P3.5,$ CJNE R5,#04H,LAST M

17、OV R5,#00H LJMP KEYWORK LAST: INC R5 ;歌曲下翻一首 LJMP KEYWORK KEYWORK: MOV DPTR,#TAB ;将歌曲排列表装入DPTR MOV A,R5 ;将R5的容送A RL A SETB EA ;开中断 JMP A+DPTR ;根据A的容转向不同歌曲 TAB: AJMP MUSIC2 AJMP MUSIC3 AJMP MUSIC4 AJMP MUSIC5 MUSIC2: MOV DPTR,#TAB2 ;第2首歌曲首址送DPTR MOV P2,#0F9H GONG: MOV 30H,DPL MOV 31H,DPH AJMP START1

18、MUSIC3: MOV DPTR,#TAB3 MOV P2,#0A4H SJMP GONG MUSIC4: MOV DPTR,#TAB4 MOV P2,#0BOH SJMP GONG MUSIC5: MOV DPTR,#TAB5 MOV P2,#99H SJMP GONG ;*(音符表)*; TAB1: DW 64021,64185,64331,64400,64524,64632,64732 DW 64777,64860,64934,64968,65030,65085,65134 DW 65157,65198,65235,65252,65283,65310,65335;*(兰花草)*;TAB2

19、: DW 0608H,0A08H,0A08H,0A08H,0A18H,0908H,0808H,0908H DW 0808H,0708H,0620H,0D08H,0D08H,0D08H,0D08H,0D18H DW 0C08H,0A08H,0C08H,0C08H,0B08H,0A20H,0A08H,0D08H DW 0D08H,0C08H,0A18H,0908H,0808H,0908H,0808H,0708H DW 0610H,0310H,0308H,0808H,0808H,0708H,0618H,0A08H DW 0908H,0808H,0708H,0508H,0620H,0908H,0808

20、H,0708H DW 0508H,0640H,0001H;*(梁祝)*; TAB3: DW 0A10H,0C08H,0D04H,0F08H,1004H,0D04H,0F04H,0C08H DW 1308H,1504H,1404H,1304H,1104H,1304H,1018H,1008H DW 1004H,1104H,0E08H,0D04H,0C08H,0D04H,0F08H,1008H DW 0A08H,0F08H,0D04H,0C04H,0D04H,0F04H,0C18H,1108H DW 1304H,0E08H,1008H,0D04H,0F04H,0C08H,0C10H,0A08H DW

21、 0C02H,0A08H,0C08H,0D02H,0E04H,1004H,0D18H,0C04H DW 0D04H,0F08H,1004H,1308H,1108H,1008H,1104H,1004H DW 0F08H,0D04H,0C04H,0A10H,0F10H,0D08H,0F02H,0D04H DW 0C04H,0A04H,0C04H,0D04H,0F04H,0C38H,0001H;*(让我们荡起双桨)*;TAB4: DW 0608H,0808H,0908H,0A18H,0C08H,0A08H,0808H,0910H DW 0620H,0008H,0808H,0908H,0A08H,0C

22、18H,0001H,0C08H DW 0D10H,0910H,0A30H,0001H,0A08H,0C08H,0D20H,0C18H DW 0D08H,0F08H,0E04H,0D04H,0C08H,0D08H,0A10H,0004H DW 0808H,0908H,0A18H,0C08H,0810H,0610H,0808H,0908H DW 0A08H,0D08H,0C30H,0010H,0A20H,0D18H,0001H,0D08H DW 0C08H,0B08H,0A10H,0001H,0920H,0A18H,0C08H,0608H DW 0808H,0910H,0010H,0808H,09

23、08H,0A10H,0C0BH,0001H DW 0C04H,0D10H,0F10H,0E08H,0D08H,0C08H,0A08H,0D40H DW 0001H;*(童年)*;TAB5: DW 0A08H,0C08H,0C10H,0C08H,0A08H,0D08H,0D08H,0E08H DW 0D08H,0D08H,0D08H,0D08H,0C08H,0F10H,0F08H,0F08H DW 0F08H,0D08H,0F08H,0D08H,0C40H,0A08H,0C08H,0C10H DW 0C08H,0A08H,0D08H,0D08H,0E08H,0D08H,0D08H,0D08H D

24、W 0D08H,0C08H,0F10H,0F08H,0F08H,0F08H,0D08H,0D08H DW 0F08H,1040H,1308H,1308H,1310H,1310H,1108H,1008H DW 0F08H,0F10H,0D08H,0D08H,0F08H,0D08H,0F08H,1008H DW 1008H,1008H,1008H,1008H,0F08H,1108H,1008H,1040H DW 1108H,1110H,1108H,1108H,1008H,1010H,0F08H,0F10H DW 0F08H,1008H,0F08H,0D08H,0C08H,0C08H,0C10H,0

25、C08H DW 0D08H,0C08H,1008H,1108H,0F40H,0001H,0000H END四安装调试说明本播放器分为4个部分,分别为:单片机最小系统、按键模块、彩灯模块与其数码管显示模块。其中,第一最小系统是一块单片机芯片,使用的是AT89S51,在其P0口要外接一排上拉电阻,其第九引脚接复位电路,第十八、十九两脚接时钟电路。在此时钟电路的振荡频率为12M,用于产生部时钟信号,第四十脚接+5V电源,第二十脚接地(GND)。第二彩灯系统,由八个彩色的发光二极管构成,其功能是实现电源接通的无限循环,和播放音乐的跑马灯效果 。在此将这些发光二极管正极通过驱动电阻连接到+5V的电源上,另一脚分别接到p1口的p1.0p1.7上,第三按键模块由3个按键组成,一个为开始,重复按键,此按键接p3.3口,一个为上一曲,此按键接p3.4口,还有一个是下一曲按键,此按键接到单片机p3.5口,最后一个部分是数码管显示,此处用一位数码管,接到p2口,在接通电源时,实现数码管

温馨提示

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

评论

0/150

提交评论