您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 单片机音乐播放器程序设计(DOC)
实验报告51单片机设计音乐播放器随着科技的发展,音乐播放功能随处都会用到,如,在开发儿童智力的玩具中,等等。目前单片机以其体积小、价格低、编程灵活等特点在这一领域独领风骚。一、系统功能要求:1、具有自动循环播放所有乐曲功能。2、具有单独选择某首乐曲循环播放功能。3、具有顺序查找乐曲循环播放功能。4、具有停止播放功能。二、系统整体方案提示:利用AT89S52产生乐曲音符,再把乐普翻译成计算机音乐语言,由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声。由于音符和节拍是由计算机产生的,所以发音音符和节拍准确。1、循环播放:按下K1键即可实现。2、顺序查找乐曲循环播放:按下K2键即可实现。3、停止播放:按下K3键即可实现。4、单独选择某首乐曲循环播放:按下K4~K7键即可实现。系统整体方案框图如下:利用AT89C51产生乐曲音符,再把乐普翻译成绩算计音乐语言,由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声。由于音符和节拍是由计算机产生的,所以发音音符和节拍准确。整体框图如图图一所示。三、硬件系统原理图:硬件系统原理图如下页图:1)单片机:选择AT89S52,由于AT89S52是一个低电压,高性能CMOS8位单片机,内含4kbytes的可反复擦鞋的制度程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机AT89S52提供了高性价比的解决方案。其内部有足够本系统对存储器的要求,不用外扩。2)按键控制电路:如图由P1口作为输入,构成矩阵式按键接口方式。3)输出控制:此部分的放大电路简单容易实现。主要采用了一个小功率PNP型硅管9012,利用“分压偏置式工作点稳定直流通路”,达到了对静态工作点的稳定。分压电阻分别选择1K和5.5K。嗡宁器一端接+5V电压,一端接晶体管的发射极。由P3.0输出预定的方波,加到晶体管进行放大,再输出到蜂鸣器,很好的实现了频率、声音的转换。4)复位:复位是由外部的复位电路来实现的。TitleNumberRevisionSizeA4Date:27-Apr-2007SheetofFile:G:\申小静2007-4-10\申小静-电子琴与MP3.ddbDrawnBy:VCC1A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y3141Y4122Y192Y272Y352Y431G12G19U274LS240R135KR145KR155KR165KR3680R1680R26801A121A241A361A482A1112A2132A3152A4171Y1181Y2161Y3141Y4122Y192Y272Y352Y431G12G19U174LS240L4L3L2L1RXD10EA/VP31TXD11X119ALE/P30X218PSEN29RESET9P2728RD17P2627WR16P2526INT012P2425INT113P2324T014P2223T115P2122P101P2021P112P0732P123P0633P134P0534P145P0435P156P0336P167P0237P178P0138P0039U3AT89S52P10P11P12P13P14P15P16P17VCCR4680L15L14L6L13R7680R5680R6680R8680VCCR11680R9680R10680L12L11L10L9R12680C130PFC230PFU4CRYSTALR201.5KR218.2K+CAP110UFRSTSW-PBVCCP10P11P12P13P14P15P16P17P20P23P24P25P26P27P21P22P36P37P30EAP31P20P36P37P38P39P40P41P42P30P31P36P37L5SW-PB2SW-PBL8SW-PB1SW-PBL7SW-PB3SW-PB4SW-PB5SW-PBH2SW-PBA12SW-PBH1SW-PB6SW-PB7SW-PBA16SW-PBA19SW-PBA20SW-PBR1915R175.5KR181KJ2SPEAKERJ1PNPVCCT0T0EA四、系统软件设计1、单片机演奏乐曲的原理通过控制定时器的定时时间来产生不同频率的方波,驱动喇叭发出不同音阶的声音,再利用延迟来控制发音时间的长短,即可控制音调中的节拍。把乐谱中的音符和相应的节拍变换为定常数和延迟常数,作为数据表格存放在存储器中。由程序查表得到定时常数和延迟常数,分别用以控制定时器产生方波的频率和发出该频率方波的持续时间。当延迟时间到时,再查下一个音符的定时常数和延迟常数。依次下去,就可以自动演奏乐曲。单片机所用的晶振的频率为6MHz,琴键所对应音符、频率及定时常数三者之间的对应关系如下所示。2、程序执行流程图1)说明:l软件执行顺序:先识别按键,再计算键值,根据键值执行相应的音乐播放程序。2乐曲存放约定:连续两个单元的内容为0FFH,0FFH作为上一首乐曲结束标志。2)系统程序流程图:C调音符7.1234567频率(Hz)494524588660698784880988半周期(ms)1.010.950.850.760.720.640.570.51定时值FE07FE25FE57FE84FE98FEC0FEE3FF013、乐演奏程序清单ORG0000HLJMPKEY1ORG001BHMOVTH1,R1MOVTL1,R0CPLP3.0RETIORG300HAJMPKEY1KS1:MOVA,#FFHMOVP1,AMOVA,P1;读P1口键值CPLA;A取反,无键按下则全“0”ANLA,0FH;屏蔽A高半字节RETKEY1:ACALLKS1;检查是否有键闭合JNZLK1;A非“0”则转移ACALLD10ms;显示一次(延时10ms)AJMPKEY1LK1:ACALLD10ms;有键闭合二次消抖延时20msACALLD10msACALLKS1;再检查有键闭合否JNZLK2;有键闭合,转LK2ACALLD10msAJMPKEY1;经去抖动确认无键闭合,延时10ms后转KEY1LK2:MOVR2,#0EH;扫描初值进R2MOVR4,#00H;扫描列号送R4LK4:MOVP1,A;扫描初值送P1口MOVA,P1;读P1口JBACC.0,LONE;ACC.0=1,第0行无键闭合,转LONEMOVA,#00H;装第0行行值AJMPLKPLONE:JBACC.1,LTWO;ACC.1=1,第1行无键闭合,转LTWOMOVA,#04H;装第1行行值AJMPLKPLTWO:JBACC.2,LTHR;ACC.2=1,第2行无键闭合,转LTHRMOVA,#08H;装第2行行值AJMPLKPLTHR:JBACC.3,NEXT;ACC.3=1,第3行无键闭合则转NEXTMOVA,#0CH;装第3行行值LKP:ADDA,R4;计算键值PUSHACC;保护键值,将键值入栈LK3:ACALLD10ms;延时10ms消抖ACALLKS1;查键是否继续闭合,若闭合再延时JNZLK3POPACC;若键起,则键码送ARETNEXT:INCR4;扫描列号加1MOVA,R2JNBACC.3,KND;笫3位为“0”,已扫完最高列则转KENDRLAA;循环左移一位MOVR2,AAJMPLK4;进行下一列扫描KEND:AJMPKEY1;扫描完毕,开始新的一轮LONE:JBACC.1,LTWOMOVA,#04HAJMPLKPLTWO:JBACC.2,LTHRMOVA,#08HAJMPLKPLTHR:JBACC.3,NEXTMOVA,#0CHLKP:ADDA,R4PUSHACCLK3:ACALLD10msJNZLK3POPACCRETNEXT:INCR4MOVA,R2JNBACC.3,KNDRLAAMOVR2,AAJMPLK4KEND:AJMPKEY1K1:MOVDPTR,#TAB1LJMPSTARTK2:MOVDPTR,#TAB2LJMPSTARTK3:MOVDPTR,#TAB3LJMPSTARTK4:MOVDPTR,#TAB4LJMPSTARTK5:MOVDPTR,#TAB5LJMPSTARTSTART:MOVTMOD,#10HMOVIE,#88HMOVCA,@A+DPTRMOVR0,AINCDPTRCLRAMOVCA,@A+DPTRMOVR0,AORLA,R1JZNEXT0MOVR0,AANLA,R1CJNEA,#0FFH,NEXTSJMPKEYNEXT:MOVTH1,R1MOVTR1,R0SETBTR1SJMPNEXT1NEXT0:CLRTR1NEXT1:CLRAINCDPTRMOVCA,@A+DPTRMOVR2,ALOOP1:LCALLD200DJNZR2,LOOP1INCDPTRLJMPLOOPD200:MOVR4,#81HD200B:MOVA,#0FFHD200A:DECAJNZD200ADECR4CJNER4,#00H,D200BRETD10ms:MOVR7,#05HLP1:MOVR6,#0F9HNOPNOPLP2:DJNZR6,LP2DJNZR7,LP1RETRETITAB1:DB0FEH,25H,02H,0FEH,25H,02HDB0FEH,25H,04H,0FDH,80H,04HDB0FEH,84H,02H,0FEH,84H,02HDB0FEH,84H,04H,0FEH,25H,04HDB0FEH,25H,02H,0FEH,84H,02HDB0FEH,0C0H,04H,0FEH,0C0H,04HDB0FEH,98H,02H,0FEH,84H,02HDB0FEH,57H,08H,00H,00H,04HDB0FFH,0FFHTAB2:DB0FEH,0E3H,01H,0FEH,0E3H,02H,0FEH,0E3H,01HDB0FEH,033H,01H,0FEH,0C0H,01H,0FEH,84H,02HDB0FEH,84H,02H,0FEH,57H,02HDB0FEH,57H,04HDB0FEH,57H,01H,0FEH,57H,01H,0FEH,57H,01H,0FEH,57H,01HDB0FEH,57H,01H,0FEH,57H,02H,0FEH,84H,01H,0FDH,0C8H,01HDB0FEH,57H,04HDB00H,00H,04HDB0FFH,0FFHTAB3:DB0FEH,0C0H,04H,0FEH,0C0H,04H,0FEH,0C0H,04H,DB0FEH,0E3H,03H,0FEH,57H,02H,0FEH,0C0H,04H,00H,00HDB01H,00H,00H,01H,00H,00H,01H,0FEH,0C0H,04H,0FEH,0C0H,02HDB0FEH,0E3H,02H,0FEH,84H,04H,0FEH,84H,04H,0FEH,57H,02HDB0FEH,25H,04H,00H,00H,01H,00H,00H,01H,00H,00H,01HDB0FEH,0E3H,04H,0FEH,0E3H,04H,0FEH,0C0H,04H,0FEH,0C0H,04HDB0FEH,57H,04H,0FEH,84H,04H,0FEH,01H,04H,0FEH,0E3H,04HDB0FEH,0E3H,04H,0FEH,0C0H,04H,0FEH,0E3H,04H,0FEH,84H,04HDB0FEH,0C0H,04H,00H,00H,02H,00H,00H,02H,00H,00H,02HDB0FFH,0FFHTAB4:DB0FEH,84H,04H,0FEH,84H,02H,0FEH,84H,02HDB0FEH,0C0H,02H,0FEH,0C0H,04H,0FEH,0E3H,04HDB0FEH,0C0H,04H,0FEH,57H,02H,0FEH,84H,02HD
本文标题:单片机音乐播放器程序设计(DOC)
链接地址:https://www.777doc.com/doc-7334503 .html