GOGOGO高清完整国语,GOGOGO在线观看免费观看完整版高清,GOGOGO免费高清完整,GOGOGO高清在线观看免费视频,GOGOGO日本高清国语完整,GOGOGO免费高清完整版

技術熱線: 4007-888-234

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

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

單片機代理商深圳英銳恩分享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

欢迎光临: 阿巴嘎旗| 昭通市| 珠海市| 平遥县| 凭祥市| 凤庆县| 乌审旗| 凌云县| 屏东市| 即墨市| 府谷县| 巨野县| 鲁甸县| 灵川县| 澳门| 兴文县| 鹿邑县| 海门市| 噶尔县| 景德镇市| 库车县| 逊克县| 治县。| 英山县| 治县。| 甘南县| 六安市| 海城市| 清徐县| 镇原县| 祁连县| 香格里拉县| 都昌县| 扎赉特旗| 广汉市| 石城县| 达日县| 尚义县| 浦北县| 略阳县| 鹿邑县|