PIC单片机实现音乐播放_第1页
PIC单片机实现音乐播放_第2页
PIC单片机实现音乐播放_第3页
PIC单片机实现音乐播放_第4页
PIC单片机实现音乐播放_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、PIC单片机实现音乐播放源程序:以下程序要用二个定时器资源,凡是有二个定时器的PIC单片机均可实现,该范例需要的MCU是MICROCHIP PIC16C62INCLUDE D:PICP16XX.EQU ;该文件在MICROCHIP光盘中可找到;*#define BeepOut RC,4;*W_TEMP EQU 0X20 ;(0XA0)STATUS_TEMP EQU 0X21 BeepCnt equ 30hTmrBak equ 31hBeepMode equ 32hSflag equ 33h;*CSTIME100MS equ .8;*;SflagFg_100ms equ 0FgBeep equ

2、1 ;*ORG 000H;GOTO MAIN ; Skip over interrupt vecterORG 04H ; Interrupt VectorGOTO INTZ;*OkTab:movf BeepCnt,waddwf PCL,fretlw .255-.130;0xf6 ;1 ;retlw .255-.126;0xfa ;2 ;retlw .255-.119; 0xfd ;3 ;retlw 0;*WhisleTab:movf BeepCnt,waddwf PCL,fretlw .255-.239;523Hz ;0 ;retlw .255-.179;698Hz ;1 ;retlw .25

3、5-.159;784Hz ;2 ;retlw .255-.119;1046Hz ;3 ;retlw .0;*HangTab:movf BeepCnt,waddwf PCL,fretlw .255-.159; 784Hz ;0 ;retlw .255-.119; 1046Hz ;1 ;retlw .255-.150; 830Hz ;2 ;retlw .255-.112 ;1109Hz ;3 ;retlw .255-.142 ;880Hz ;4 ;retlw .255-.106;1174Hz ;5 ;retlw .255-.134;932Hz ;6 ;retlw .255-.100;1244Hz

4、;7retlw .255-.126;988Hz ;8;retlw .255-.94;1318Hz ;9;retlw .255-.119;1046Hz ;10 ;retlw .255-.89;1397Hz ;11 ;retlw .0;*WelcomTab:movf BeepCnt,waddwf PCL,fretlw .255-.89;1397Hz ;11 ;retlw .255-.119;1046Hz ;10 ;retlw .255-.94;1318Hz ;9;retlw .255-.126;988Hz ;8;retlw .255-.100;1244Hz ;7retlw .255-.134;93

5、2Hz ;6 ;retlw .255-.106;1174Hz ;5 ;retlw .255-.142 ;880Hz ;4 ;retlw .255-.112 ;1109Hz ;3 ;retlw .255-.150; 830Hz ;2 ;retlw .255-.119; 1046Hz ;1 ;retlw .255-.159; 784Hz ;0 ;retlw .0;*BeepModeJmp:addwf PCL,fb psWhisle ;0b psOk ;1b psHang ;2b psWelcom ;3;*IO_SET:BANK1_MOVLW BMOVWF TRISAMOVLW Bmovwf TRI

6、SB MOVLW Bmovwf TRISC ; Set Port_C to all outputsBANK0_RETURN;*SYS_SET:BANK1_ MOVLW B ; 1:256 TMR0分频MOVWF OPTION_R BSF PIE1,TMR2IE ;TMR2中断允许BANK0_ MOVLW B ;开TMR1MOVWF T1CONbsf INTCON,TOIE ;TMR0中断允许BSF INTCON,PEIE ;允许所有未被屏蔽之外围接口中断RETURN;*MAIN: ; Main rotationCALL IO_SETMOVLW B ;关所有中断MOVWF INTCON;*CAL

7、L SYS_SET;*call PlayPsWelcom ;上电提示音MAINLOOP:bsf INTCON,GIE ;开所有中断CLRWDT ; Clear WDTcall BeepForB MAINLOOP;*INTZ:PUSH ; Push ;中断服务程序BTFSC PIR1,TMR2IF ;测试TMR2中断标志位b INT_TMR2 ;BTFSC INTCON,TOIF ;测试TMR0中断标志位GOTO INT_TMR0IntRet:POP ; PopRETFIE;* INT_TMR2:BCF PIR1,TMR2IF ;清TMR2中断标志位movf TmrBak,wmovwf TMR2

8、CPL BeepOutBeeperEnd:b IntRet;*INT_TMR0: ;定时0中断BCF INTCON,TOIF ; clear INTFMOVLW .255-.38 ;10msMOVWF TMR0 ;=decfsz T100ms,fb int_tmr0_retmovlw CSTIME100MSmovwf T100msbsf Sflag,Fg_100ms;=int_tmr0_ret:b IntRet;*PlayPsWhisle:bsf Fg,FgBeepclrf BeepCntmovlw .0movwf BeepModemovlw CSTIME100MSmovwf T100msre

9、tlw 0;*PlayPsOk:bsf Fg,FgBeepclrf BeepCntmovlw .1movwf BeepModemovlw CSTIME100MSmovwf T100msretlw 0;*PlayPsHang:bsf Fg,FgBeepclrf BeepCntmovlw .2movwf BeepModemovlw CSTIME100MSmovwf T100msretlw 0;*PlayPsWelcom:bsf Fg,FgBeepclrf BeepCntmovlw .3movwf BeepModemovlw CSTIME100MSmovwf T100msretlw 0;*;音乐播放

10、程序;BeepMode=0 : psWhisle;BeepMode=1 : psOk;BeepMode=2 : psHang;BeepMode=3 : psWelcom;*BeepFor:btfss Sflag,Fg_100msb BeepForEndbcf Sflag,Fg_100msbtfss Sflag,FgBeepb BeepForEndMOVLW B ;开TMR2 1:4分频MOVWF T2CONmovf BeepMode,wb BeepModeJmppsWhisle:call WhisleTabb BeepPlaypsOk:call OkTabb BeepPlaypsHang:call HangTabb BeepPlaypsWelcom:call WelcomTabb BeepPlayBeepPlay:incf BeepCnt,fmovwf TmrBakmovf TmrBak,fbtfsc status,zb BeepOffmovlw .1xorwf TmrBak,wbtfsc stat

温馨提示

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

评论

0/150

提交评论