isp.a51

来自「MP3设计源代码 使用atmel的单片机」· A51 代码 · 共 72 行

A51
72
字号
/*A**************************************************************************
* NAME:         isp.a51
*----------------------------------------------------------------------------
* Copyright (c) 2002 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      snd1c-demo-df-sd-3_0_0      
* REVISION:     1.4     
*----------------------------------------------------------------------------
* PURPOSE:
* This file contains the In System Programming execution routine
*****************************************************************************/

;_____ I N C L U D E S ____________________________________________________


;_____ M A C R O S ________________________________________________________

AUXR1           DATA    0A2h
BOOT_ADDRESS    EQU     0F000h


;_____ D E F I N I T I O N ________________________________________________

?PR?in_system_prog?ISP      SEGMENT CODE
?CO?ISP                     SEGMENT CODE

    RSEG  ?CO?ISP
isp_screen:
    DB  'Firmware Upgrade', 00h


;_____ D E C L A R A T I O N ______________________________________________

    EXTRN   CODE (lcd_init)
    EXTRN   CODE (_print_screen)
    PUBLIC  in_system_prog



;*F**************************************************************************
; NAME: in_system_prog
;----------------------------------------------------------------------------
; PARAMS:
;
; return:
;----------------------------------------------------------------------------
; PURPOSE: 
;   Execute the boot loader software in case KEY_INC and KEY_PLAY are pressed 
;----------------------------------------------------------------------------
; EXAMPLE:
;----------------------------------------------------------------------------
; NOTE: 
;----------------------------------------------------------------------------
; REQUIREMENTS: 
;****************************************************************************
    RSEG    ?PR?in_system_prog?ISP
in_system_prog:
    mov     A,P1
    cjne    A,#0F5H,isp_end
isp_start:
    lcall   lcd_init
    mov     R6,#HIGH (isp_screen)
    mov     R7,#LOW (isp_screen)
    lcall   _print_screen
    orl     AUXR1,#020h                     ; map boot memory
    ljmp    BOOT_ADDRESS;                   ; jump to boot loader
isp_end:
    ret


    END

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?