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 + -
显示快捷键?