📄 blk2_831.asm
字号:
;======================================================================
;
; Author : ADI - Apps
;
; Date : April 2002
;
; Filename : blk2_831.asm
;
; Hardware : ADuC831
;
; Description : Blinks LED continuously at 5Hz
; Pressing INT0 followed by a UART reception of 'U'
; (for upgrade code) allows the code to be upgraded
;
; NOTE: This program will only work if the option to
; always run code from E000H after download is
; selected.
;
;======================================================================
;
$MOD831
;____________________________________________________________________
; BEGINNING OF CODE
CSEG
ORG 0000H
AJMP MAIN
;____________________________________________________________________
; INT0 ISR
ORG 0003H
; wait to receive a character from the UART
JNB RI, $ ; wait for reception
CLR RI
MOV A, SBUF
CJNE A, #'U', ERROR
; plan to upgrade new code => set BOOTEN
MOV EADRH, #0
MOV EADRL, #0
MOV ECON, #1 ; read page
ORL EDATA1, #1 ; SET LSB
MOV ECON, #5 ; ERASE page
MOV ECON, #2 ; program page
MOV ECON, #4 ; verify page
MOV A, ECON
JNZ ERROR
; use the watchdog timer to reset part...run from E000H after reset
SETB WDWR
MOV WDCON, #82h
ERROR: RETI
;____________________________________________________________________
; MAIN
MAIN:
; enable INT0
SETB IT0 ; INT0 edge triggered
SETB EA ; enable inturrupts
SETB EX0 ; enable INT0
; configure UART for 115200
MOV T3CON, #81h
MOV T3FD, #20h
MOV SCON, #52H
BLINK:
CPL P3.4
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
CALL DELAY
AJMP BLINK
;____________________________________________________________________
; DELAY
DELAY:
; 70ms DELAY
MOV R0,#255
DLY:
MOV R1,#255 ; 255 x 255 x 1.08us
DJNZ R1,$
DJNZ R0,DLY
RET
;____________________________________________________________________
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -