天堂草原最受欢迎的角色,天堂动漫,天堂在线,色天堂下载,天堂中文在线资源,亚洲男人天堂

技術熱線: 4007-888-234
設計開發

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

開發工具

提供開發工具、應用測試 完善的開發代碼案例庫分享

技術支持

從全面的產品導入到強大技術支援服務 全程貼心伴隨服務,創造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產品競爭力

新聞中心

提供最新的單片機資訊,行業消息以及公司新聞動態

PIC16F877單片機 Boot-Loader 使用范例程式

更新時間: 2019-03-22
閱讀量:2265

單片機代理商深圳英銳恩分享PIC16F877單片機 Boot-Loader 使用范例程式。

LIST P=16f877

    include


LoopVar1    EQU 0x20
LoopVar2    EQU 0x21

    org 0x100
    goto    Prog_Main

Vector
    org 0x104
    goto    ISRs

Delay
    clrf    LoopVar1
    clrf    LoopVar2
Delay2
    nop
    nop
    nop
    nop
    nop
    nop
    decfsz  LoopVar2,F
    goto    Delay2
    decfsz  LoopVar1,F
    goto    Delay2
    return  

ISRs                ;
    nop
    retfie
   end

boot877。。。。。。。。。。。。。。。。。。。。。。。。。。。

;************************************************
;* 876UART3.ASM                                 *

;************************************************

        list p=16f877
        #include
 
 
;********************************************************************

w_temp          EQU     0x71
status_temp     EQU     0x72
pclath_temp     EQU     0x73
USART_Ptr       EQU     0x74

Temp1           EQU     H'75'   ; The Registers for Boot Load !!
Temp2           EQU     H'76'
F_ADDRH         EQU     H'77'
F_ADDRL         EQU     H'78'
F_DATAH         EQU     H'79'
F_DATAL         EQU     H'7a'
F_Cntr          EQU     H'7b'
;************************************************************************ 

 ;***************************************************************************

 ORG 0X004
      
                movwf   w_temp            ; save off current W register contents
                movf    STATUS,w          ; move status register into W register
                movwf   status_temp       ; save off contents of STATUS register
                movf    PCLATH,W
                movwf   pclath_temp

  clrf PCLATH  ; !! Clear PCLATH , will set all Table to First 256 word !!

movlw   B'10101000'
        movwf   TXSTA

        bsf     PIE1,RCIE

        BANKSEL RCSTA
        movlw   B'10110000'
        movwf   RCSTA
       
        bcf     CTS_CTRL         ; Enable receive from PC
        bsf     INTCON,GIE
        bsf     INTCON,PEIE

        movlw   BUF_OF_RECEIVE
        movwf   FSR

 movlw   (OK_String-Wait_String)
        call    USART_Message

        goto    0x100

;*****************************************************************************************
;****   The Message Table contain the characters of each information !!
;***************************************************************************************** 

Msg_Table:
                addwf   PCL,F
Wait_String:    DT      "Ready",0x0d,0x0a
Unknow_String:  DT      "Unknow?",0x0d,0x0a
OK_String:      DT      "OK",0x0d,0x0a
Reset_String:   DT      "Reset",0x0d,0x0a
;*****************************************************************************************
;************   End of Message !!       **************************************************
;*****************************************************************************************

Boot_Main:
        
        bcf     INTCON,GIE ; Disable Receive Interrupt

        BANKSEL PIR1
Wait_HEX_Line:

btfss   PIR1,RCIF
        goto    Wait_HEX_Line
        movf    RCREG,W

        xorlw   ':'
        btfss   STATUS,Z
        goto    Wait_HEX_Line

        movlw   0xa0            ; Initial The Buffer Address !!
        movwf   FSR
        movlw   ':'
        movwf   INDF
        incf    FSR,F

Wait_RCIF2
        btfss   PIR1,RCIF
        goto    Wait_RCIF2
        movf    RCREG,W
 
        movwf   INDF
        incf    FSR,F
        xorlw   0x0d
        btfsc   STATUS,Z
        goto    Line_OK
        goto    Wait_RCIF2
 
;************************************************************************************

;****   For Intel HEX format
;****   :BBAAAATTHHHH ........HHCC
;****   Where   BB      the two digit Byte Number BB/2 is the total word of this line 
;****           AAAA    Address
;****           TT      Record Type
;****           HH      The Data
;****           CC      The Checksum of the data bytes of this line
;****           !!      Ignor the first 256 byte of .HEX file
;*************************************************************************************
Line_OK
        bsf     CTS_CTRL         ; Inhibit Transmit     
        movlw   0x0a
        movwf   INDF
       
        movlw   0xa1
        movwf   FSR

联系我们: 肥西县| 锡林郭勒盟| 城口县| 古蔺县| 九寨沟县| 尉犁县| 江陵县| 仪征市| 长宁县| 屏边| 通道| 泉州市| 肃南| 棋牌| 那曲县| 凌海市| 越西县| 南和县| 和硕县| 张北县| 鹤壁市| 抚顺市| 宜章县| 蓬溪县| 纳雍县| 惠来县| 景洪市| 通海县| 舞阳县| 炎陵县| 石狮市| 光泽县| 吉隆县| 当阳市| 镇宁| 邮箱| 嘉鱼县| 澎湖县| 绿春县| 民权县| 沾化县|