Download AT89S8252 In-System Programming MCU Application Note

Transcript
Microcontroller
; Counts are reloaded and overflow flags are reset elsewhere.
push
setb
jb
cjne
dec
psw
RS0
LT0F, ti2
lt0_lo, #0, ti1
lt0_hi
; save flags
; select register bank one
; skip if long timer 0 overflow set
; test low byte
; low byte is zero, borrow from high
djnz
cjne
lt0_lo, ti2
lt0_hi, #0, ti2
setb
LT0F
; dec low byte, skip if not zero
; low byte is zero, test high byte
; both bytes equal zero
; set overflow flag
jb
djnz
setb
LT1F, ti3
lt1, TI3
LT1F
; skip if long timer 1 overflow set
; decrement count and skip if not zero
; count is zero, set overflow flag
pop
reti
psw
; restore flags and reg bank zero
ti1:
ti2:
ti3:
initialize:
; Initialize controller registers and I/O lines.
mov
mov
mov
mov
;;
PCON, #0
; initialize power control register
IE, #0
; deactivate all interrupts
SCON, #01000000b; serial port mode 1
TMOD, #00100001b; timer 1 8-bit auto-reload,
; timer 0 16-bit
mov
TH1, #BAUD_1200 ; timer 1 reload value
mov
TH1, #BAUD_9600 ; timer 1 reload value
mov
TCON, #01000000b; start timer 1
mov
TL0, #0
; set timer 0 to max count
mov
TH0, #0
;
setb
TR0
; start timer 0
setb
REN
; enable serial reception
setb
EA
; global interrupt enable
; Initialize I/O lines.
setb
DTR_
setb
SHUTDN_
setb
MISO
setb
MOSI
clr
SCK
clr
RST
; remove reset from target
ret
5-93