1、单片机音乐播放器程序设计DOC随着科技的发展,音乐播放功能随处都会用到,如,在开发儿童智力的玩具 中,等等。目前单片机以其体积小、价格低、编程灵活等特点在这一领域独领风 骚。、系统功能要求: 1、具有自动循环播放所有乐曲功能。2、具有单独选择某首乐曲循环播放功能。3、具有顺序查找乐曲循环播放功能。4、具有停止播放功能。二、系统整体方案提示:利用AT89S52产生乐曲音符,再把乐普翻译成计算机音乐语言,由单片机进 行信息处理,在经过信号放大,由喇叭放出乐曲声。 由于音符和节拍是由计算机产生的,所以发音音符和节拍准确。4、单独选择某首乐曲循环播放:按下 K4K7键即可实现。系统整体方案框图如下:利
2、用 AT89C51产生乐曲音符,再把乐普翻译成绩 算计音乐语言,由单片机进行信息处理,在经过信号放大,由喇叭放出乐曲声。由于音符和节拍是由计算机产生的,所以发音音符和节拍准确。整体框图如图 图一所示。三、硬件系统原理图: 硬件系统原理图如下页图:1)单片机:选择 AT89S52,由于AT89S52是一个低电压,高性能 CMOS位单 片机,内含4k bytes的可反复擦鞋的制度程序存储器(PERO)和128bytes 的随机存取数据存储器(RAM,器件采用ATME公司的高密度、非易失性存 储技术生产,兼容标准MC 51指令系统,片内置通用8位中央处理器和Flash 存储单元,内置功能强大的微型计
3、算机 AT89S52提供了高性价比的解决方案。 其内部有足够本系统对存储器的要求,不用外扩。2)按键控制电路:如图由P1 口作为输入,构成矩阵式按键接口方式。3)输出控制:此部分的放大电路简单容易实现。主要采用了一个小功率PNP型硅管9012,利用“分压偏置式工作点稳定直流通路”,达到了对静态工作点的稳定。分压电阻分别选择 1K和5.5K。嗡宁器 一端接+5V电压,一端接晶体管的发射极。由 P3.0输出预定的方波,加到晶体 管进行放大, 再输出到蜂鸣器,很好的实现了频率、声音的转换。4)复位:复位是由外部的复位电路来实现的。VCCL5jSW-PB tL7JSw-PBcL8jSW-PBt1jSw
4、-PB13102rSW-PB3rSw-PB4jSw-PB5jSw-PB)1167H1H2rSW-PBrSw-PBjSw-PBrSw-PBA16A20A19A12rSw-PB W-PBrSw-PBrSw-PB141516Fi73-5K114R155Ki【T0 14/ P112 /pra厂14”iP10119U3U1EAVCCCAP110UFR20P10P11P12P13P14P15P16P17INT1INT0T1T0P00P01P02P03P04P05P06P07P20P21P22P23P24P20 21A1sWB1.5K四、系统软件设计XT30PF _口于C2丁30PF R218.2K1、单片
5、机演奏乐曲的原理X1U4RYSTALRESETP25P26P27RDWR EA/VF RXD TXD ALE/P P SEN37363534 333221 P202?p2i23 P2224 P2325 P2426p2527P2628 P27717136:16 P3731 EA TTPC11 3130 、3938/P36 4/ P3911L366沪38F P40131 ilT?AT89S52通过控制定时器的定时时间来产生不同频率的方波,的声音,再利用延迟来控制发音时间的长短,1A21A31A42A12A22A32A4181Y191Y21Y31Y4142Y1工2Y2J.2Y3b2Y4卜1G2G 7
6、4LS240.1A11Y1.1A21Y21A31Y31A41Y4-2A12Y1-2A22Y22A32Y32A42Y41G2G 74LS240U2P30218169414T0 R18111315171KTitleR17L1hJVCCL3Ul14L15U P! 一L9 yLTil1J2VCCSPEAKERw R5195.5K彳VCC驱动喇叭发出不同音阶ber即可控制音调中的节拍。File:的音符和相应的节拍变换为定常数和延迟常数,作为数据表格存放在存储器中。申静Sheet of申静电子与MP3 .dbDraw n By:由程序查表得到定时常数和延迟常数,分别用以控制定时器产生方波的频率和发 出该频
7、率方波的持续时间。当延迟时间到时,再查下一个音符的定时常数和延迟 常数。依次下去,就可以自动演奏乐曲。单片机所用的晶振的频率为6MHz琴键所对应音符、频率及定时常数三者之C调音符71234567频率(Hz)494524588660698784880988半周期(ms)1.010.950.850.760.720.640.570.51定时值FE07FE25FE57FE84FE98FEC0FEE3FF01间的对应关系如下所示。2、程序执行流程图 1)说明: l软件执行顺序:先识别按键,再计算键值,根据键值执行相应的音乐播放程序。2乐曲存放约定:连续两个单元的内容为 offh,offH乍为上一首乐曲结
8、束标志。2)系统程序流程图:开 始键扫吹有无键按下/去抖动I 键码计算 键释放JMPA+DPTR3、乐演奏程序清单ORGOOOOHLJMP KEY1ORG001BHMOVTH1,R1MOVTL1,R0CPLP 3.0RETIORG300HKS1:MOV A,#FFHMOV P1, AMOVA,P1 ;读 P1 口键值CPLA; A取反,无键按下则全“ 0”ANLA,0FH屏蔽A高半字节RETKEY1:ACALL KS1;检查是否有键闭合JNZLK1; A非“0”则转移ACALLD10ms;显示一次(延时10 ms)AJMPKEY1LK1:ACALLD10ms有键闭合二次消抖延时 20 msAC
9、ALLD10msACALLKS1;再检查有键闭合否JNZLK2;有键闭合,转LK2ACALLD10msAJMPKEY1经去抖动确认无键闭合,延时 10 ms 后转 KEY1LK2:MOVR2, #0EH 扫描初值进 R2MOVR4, #00H 扫描列号送 R4LK4:MOV P1 , A;扫描初值送P1 口MOVA,P1 ;读 P1 口JBACC.0, LONE;ACC.0=1,第0行无键闭合,转 LONEA, #00H装第0行行值MOVLKPAJMPLONE:合,转LTWOJBACC.1, LTWOACC.1=1,第 1 行无键闭MOVA, #04H;装第1行行值AJMPLKPLTWO:合,
10、转LTHRJBACC.2,LTHR ACC.2=1第2行无键闭MOVA,#08H ;装第 2 行行值AJMPLKPLTHR:合则转NEXTLKP:LK3:闭合再延时NEXT:JBACC.3,MOVADDPUSHACALLACALLJNZPOPRETINCNEXT ACC.3=1第3行无键闭A , #0CH装第3行行值A,R4 ;计算键值ACC;保护键值,将键值入栈D10ms;延时10ms消抖KS1;查键是否继续闭合,若LK3ACC;若键起,则键码送A0”,已扫完最高列则转 KENDMOVA, R2JNBACC.3,KND 笫 3 位为RLAA ;循环左移一位MOVR2, AAJMPLK4 ;进
11、行下一列扫描R4;扫描列号加1KEND: 一轮AJMPKEY1;扫描完毕,开始新的LONE:JBACC.1 , LTWOMOVA , #04HAJMPLKPLTWO:JBACC.2 , LTHRMOVA,#08HAJMPLKPLTHR:JBACC.3, NEXTMOVA , #0CHLKP :ADDA,R4PUSHACCLK3 :ACALLD10msJNZLK3POPACCRETNEXT:INCR4MOVA , R2JNBACC.3, KNDRLAAMOVR2 , AAJMPLK4KEND:AJMPKEY1MOV DPTR,#TAB1K1:LJMPSTARTK2:MOV DPTR,#TAB2L
12、JMPSTARTK3:MOV DPTR,#TAB3LJMPSTARTK4:MOV DPTR,#TAB4LJMPSTARTK5:MOV DPTR,#TAB5LJMPSTARTSTART:MOV TMOD,#10HMOVIE,#88HMOVCA,A+DPTRMOVR0,AINCDPTRCLRAMOVCA,A+DPTRMOVR0,AORLA,R1JZNEXT0MOVR0,AANLA,R1CJNEA,#0FFH,NEXSJMPKEYNEXT:MOV TH1,R1MOVTR1,R0SETBTR1SJMPNEXT1NEXT0:CLR TR1NEXT1:CLR AINCDPTRMOVC A,A+DPTRMOV R2,ALOOP1:LCALL D200DJNZR2,LOOP1INCDPTRLJMPLOOPD200:MOVR4,#81HD200B:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1