510_watch_timer.dt
来自「台弯义隆单片机程序设计实例」· DT 代码 · 共 43 行
DT
43 行
;****************************************************************;
; 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 + =
减小字号Ctrl + -
显示快捷键?