• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于PIC單片機實現音樂播放的實例程序

    基于PIC單片機實現音樂播放的實例程序

    作者: 時間:2012-08-18 來源:網絡 收藏

    ********************************
    * *
    ********************************

    本文引用地址:http://www.czjhyjcfj.com/article/171027.htm

    以下要用二個定時器資源,凡是有二個定時器的均可,該范例需要的MCU是MICROCHIP 16C62
    INCLUDE D:PICP16XX.EQU ;該文件在MICROCHIP光盤中可找到
    ;**************************************************
    #define BeepOut RC,4
    ;**************************************************
    W_TEMP EQU 0X20 ;(0XA0)
    STATUS_TEMP EQU 0X21
    BeepCnt equ 30h
    TmrBak equ 31h
    BeepMode equ 32h
    Sflag equ 33h
    ;**************************************************
    CSTIME100MS equ .8;
    ;**************************************************
    ;Sflag
    Fg_100ms equ 0
    FgBeep equ 1
    ;**************************************************
    ORG 000H;
    GOTO MAIN ; Skip over interrupt vecter
    ORG 04H ; Interrupt Vector
    GOTO INTZ

    ;**************************************************
    OkTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.130;0xf6 ;1 ;
    retlw .255-.126;0xfa ;2 ;
    retlw .255-.119; 0xfd ;3 ;
    retlw 0
    ;**************************************************
    WhisleTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.239;523Hz ;0 ;
    retlw .255-.179;698Hz ;1 ;
    retlw .255-.159;784Hz ;2 ;
    retlw .255-.119;1046Hz ;3 ;
    retlw .0
    ;**************************************************
    HangTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .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 ;7
    retlw .255-.126;988Hz ;8;
    retlw .255-.94;1318Hz ;9;
    retlw .255-.119;1046Hz ;10 ;
    retlw .255-.89;1397Hz ;11 ;
    retlw .0

    ;**************************************************
    WelcomTab:
    movf BeepCnt,w
    addwf PCL,f
    retlw .255-.89;1397Hz ;11 ;
    retlw .255-.119;1046Hz ;10 ;
    retlw .255-.94;1318Hz ;9;
    retlw .255-.126;988Hz ;8;
    retlw .255-.100;1244Hz ;7
    retlw .255-.134;932Hz ;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,f
    b psWhisle ;0
    b psOk ;1
    b psHang ;2
    b psWelcom ;3
    ;**************************************************
    IO_SET:
    BANK1_
    MOVLW B'11001011'
    MOVWF TRISA
    MOVLW B'00001100'
    movwf TRISB
    MOVLW B'00000011'
    movwf TRISC ; Set Port_C to all outputs
    BANK0_
    RETURN
    ;**************************************************
    SYS_SET:
    BANK1_
    MOVLW B'00000111' ; 1:256 TMR0分頻
    MOVWF OPTION_R
    BSF PIE1,TMR2IE ;TMR2中斷允許
    BANK0_
    MOVLW B'00000001' ;開TMR1
    MOVWF T1CON
    bsf INTCON,TOIE ;TMR0中斷允許
    BSF INTCON,PEIE ;允許所有未被屏蔽之外圍接口中斷
    RETURN
    ;**************************************************
    MAIN: ; Main rotation
    CALL IO_SET
    MOVLW B'00000000' ;關所有中斷
    MOVWF INTCON
    ;****************************
    CALL SYS_SET
    ;****************************
    call PlayPsWelcom ;上電提示音
    MAINLOOP:
    bsf INTCON,GIE ;開所有中斷
    CLRWDT ; Clear WDT
    call BeepFor
    B MAINLOOP
    ;**************************************************


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 襄城县| 屏山县| 蒲城县| 甘洛县| 扎兰屯市| 泸溪县| 喀喇沁旗| 鄢陵县| 清流县| 嵊泗县| 临沂市| 松溪县| 徐州市| 兴义市| 焦作市| 岢岚县| 监利县| 庆城县| 临澧县| 呼玛县| 陆良县| 宁强县| 黄山市| 嫩江县| 昌图县| 太保市| 普兰县| 郁南县| 泰来县| 彰化县| 禄丰县| 大庆市| 伽师县| 五大连池市| 孝义市| 惠州市| 翼城县| 平安县| 固阳县| 剑河县| 浪卡子县|