新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 用PIC單片機(jī)實(shí)現(xiàn)音樂播放的實(shí)例程序

        用PIC單片機(jī)實(shí)現(xiàn)音樂播放的實(shí)例程序

        作者: 時(shí)間:2011-05-17 來源:網(wǎng)絡(luò) 收藏

        INTZ:
        PUSH ; Push ;中斷服務(wù)
        BTFSC PIR1,TMR2IF ;測試TMR2中斷標(biāo)志位
        b INT_TMR2 ;
        BTFSC INTCON,TOIF ;測試TMR0中斷標(biāo)志位
        GOTO INT_TMR0
        IntRet:
        POP ; Pop
        RETFIE
        ;**************************************************
        INT_TMR2:
        BCF PIR1,TMR2IF ;清TMR2中斷標(biāo)志位
        movf TmrBak,w
        movwf TMR2
        CPL BeepOut
        BeeperEnd:
        b IntRet
        ;**************************************************
        INT_TMR0: ;定時(shí)0中斷
        BCF INTCON,TOIF ; clear INTF
        MOVLW .255-.38 ;10ms
        MOVWF TMR0
        ;====================
        decfsz T100ms,f
        b int_tmr0_ret
        movlw CSTIME100MS
        movwf T100ms
        bsf Sflag,Fg_100ms
        ;=====================
        int_tmr0_ret:
        b IntRet
        ;**************************************************
        PlayPsWhisle:
        bsf Fg,FgBeep
        clrf BeepCnt
        movlw .0
        movwf BeepMode
        movlw CSTIME100MS
        movwf T100ms
        retlw 0
        ;**************************************************
        PlayPsOk:
        bsf Fg,FgBeep
        clrf BeepCnt
        movlw .1
        movwf BeepMode
        movlw CSTIME100MS
        movwf T100ms
        retlw 0
        ;**************************************************
        PlayPsHang:
        bsf Fg,FgBeep
        clrf BeepCnt
        movlw .2
        movwf BeepMode
        movlw CSTIME100MS
        movwf T100ms
        retlw 0
        ;**************************************************
        PlayPsWelcom:
        bsf Fg,FgBeep
        clrf BeepCnt
        movlw .3
        movwf BeepMode
        movlw CSTIME100MS
        movwf T100ms
        retlw 0
        ;**************************************************
        ;
        ;BeepMode=0 : psWhisle
        ;BeepMode=1 : psOk
        ;BeepMode=2 : psHang
        ;BeepMode=3 : psWelcom
        ;**************************************************
        BeepFor:
        btfss Sflag,Fg_100ms
        b BeepForEnd
        bcf Sflag,Fg_100ms
        btfss Sflag,FgBeep
        b BeepForEnd
        MOVLW B'00000101' ;開TMR2 1:4分頻
        MOVWF T2CON
        movf BeepMode,w
        b BeepModeJmp
        psWhisle:
        call WhisleTab
        b BeepPlay
        psOk:
        call OkTab
        b BeepPlay
        psHang:
        call HangTab
        b BeepPlay
        psWelcom:
        call WelcomTab
        b BeepPlay
        BeepPlay:
        incf BeepCnt,f
        movwf TmrBak
        movf TmrBak,f
        btfsc status,z
        b BeepOff
        movlw .1
        xorwf TmrBak,w
        btfsc status,z
        b BeepStop
        b BeepForEnd
        BeepOff:
        clrf BeepCnt
        bcf Sflag,FgBeep
        bcf BeepOut
        bcf T2CON,TMR2ON
        b BeepForEnd
        BeepStop:
        bcf T2CON,TMR2ON ;stop
        bcf BeepOut
        BeepForEnd:
        retlw 0
        ;**************************************************
        END

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

        上一頁 1 2 下一頁

        評論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 宜良县| 东乡县| 和平县| 平武县| 灯塔市| 新丰县| 湘潭市| 长垣县| 贵定县| 辰溪县| 凌源市| 志丹县| 高唐县| 乡宁县| 城固县| 苏州市| 安泽县| 从化市| 汉沽区| 莆田市| 万山特区| 辽阳县| 荆州市| 旬邑县| 三河市| 新余市| 新津县| 敦煌市| 望奎县| 翁源县| 清丰县| 平湖市| 集贤县| 清水河县| 蓬溪县| 寿宁县| 常山县| 怀来县| 洛扎县| 津市市| 司法|