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

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

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

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

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

技術(shù)支持

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

更新時間: 2019-03-22

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

404
返回首頁 |  返回上一頁
联系我们: 明星| 健康| 东莞市| 永德县| 高邑县| 二连浩特市| 鲁甸县| 墨竹工卡县| 无为县| 北宁市| 开阳县| 广平县| 古交市| 响水县| 安多县| 榆树市| 凤台县| 赤城县| 桂平市| 右玉县| 蓬安县| 会同县| 祁阳县| 高青县| 上栗县| 基隆市| 福清市| 徐汇区| 永昌县| 荆州市| 大港区| 庆云县| 玉环县| 九龙坡区| 天津市| 巩留县| 万源市| 石台县| 定南县| 花莲市| 山阴县|