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

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

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

    作者: 時間:2011-05-17 來源:網絡 收藏


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

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

    以下要用二個定時器資源,凡是有二個定時器的均可,該范例需要的MCU是MICROCHIP PIC16C62
    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 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 民和| 安徽省| 凤山市| 金山区| 邢台市| 盖州市| 岳阳市| 方山县| 温宿县| 水富县| 乃东县| 平罗县| 甘德县| 全南县| 通辽市| 城步| 棋牌| 云霄县| 千阳县| 永吉县| 扶余县| 磴口县| 宁都县| 江永县| 息烽县| 剑川县| 醴陵市| 勐海县| 旬邑县| 玉山县| 和龙市| 茶陵县| 通化县| 库车县| 会昌县| 开阳县| 宁夏| 陆丰市| 阿城市| 修水县| 增城市|