• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術(shù)熱線: 4007-888-234

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

    從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

    技術(shù)支持

    PIC單片機(jī)實(shí)現(xiàn)音樂播放

    更新時(shí)間: 2019-03-22

    單片機(jī)開發(fā)商深圳英銳恩分享PIC單片機(jī)實(shí)現(xiàn)音樂播放。

    PIC單片機(jī)實(shí)現(xiàn)音樂播放      *
    ********************************
    源程序:
    以下程序要用二個(gè)定時(shí)器資源,凡是有二個(gè)定時(shí)器的PIC單片機(jī)均可實(shí)現(xiàn),該范例需要的MCU是MICROCHIP PIC16C62
    INCLUDE "D:\PIC\P16XX.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' ;關(guān)所有中斷
        MOVWF INTCON
    ;****************************
        CALL SYS_SET
    ;****************************
        call PlayPsWelcom ;上電提示音
    MAINLOOP:
        bsf INTCON,GIE ;開所有中斷
        CLRWDT ; Clear WDT
        call BeepFor
        B MAINLOOP
    ;**************************************************

    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

    404
    返回首頁 |  返回上一頁
    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>