📄 510_watch_timer.dt
字号:
;****************************************************************;
; TILTE: EM78P510 WATCH TIMER DEMO CODE ;
; FUNCTION: EM78P510 WATCH TIMER FUNCTION ;
; COMPANY: ELAN MICROELECTRONICS (SZ) LTD. ;
;****************************************************************;
; The example of achieving Watch Timer interrupt every 0.5S
; Fmain: crystal, Fsub: crystal
;-----------------------------------------------------------------
;define register
; Bank 0
PORT9 == 0x09 ; Port9 I/O register
TWTCR == 0x0D ; TCC and WDT timer control register
; Bank 4
WBCR == 0x06 ; Watch timer control register
WTIE == 6 ; Watch timer enable bit
WTIF == 5 ; Watch timer interrupt flag
PIOCR9 == 0x09 ; Port9 I/O control register
;-----------------------------------------------------------------
ORG 0X00 ; Reset vector
JMP Main
ORG 0x09 ; Watch timer interrupt vector
JMP WT_INT
ORG 0X20
;-----------------------------------------------------------------
WT_INT:
BANK 0
COM PORT9
BANK 4
BC WBCR, WTIF
RETI
;-----------------------------------------------------------------
Main:
MOV A, @0x00
MOV TWTCR, A ; Disable WDT
MOV PORT9, A ; Port9 output "0"
BANK 4
MOV PIOCR9, A ; Set Port9 output pin
MOV A, @0x88 ; Watch timer clock source is sub clock, 0.5S. If clock
MOV WBCR, A ; source is 4MHz, the interval time is about 1.05S.
BS WBCR, WTIE ; Enable Watch timer and interrupt
ENI
JMP $
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -