一開始要先定義 timer0 在0bh的位址
接著把TH0 <- reload 的值
和 TL0 的值放入
接著就可以自動作中斷了
ORG 0000H
SJMP MAIN
;===================
; TIMER0 INTERRUPT
;===================
ORG 000BH
MOV A, R1
MOVC A, @A+DPTR
MOV P1, A
INC R1
DJNZ R0, RE
MOV R0, #OE-TABLE
MOV R1, #0
MOV A, R1
RE:
RETI
;==================
; MAIN
;==================
MAIN:
INIT:
MOV R0, #OE-TABLE
MOV DPTR, #TABLE
MOV A, #00
MOV R1, #00
ACALL SETTIMER0
AJMP $
RET
;=================
; SETTIMER0 TO AUTO RELOAD
;=================
SETTIMER0:
MOV TMOD, #02H
MOV TH0, #0F0H
MOV TL0, #0FFH
SETB EA
SETB ET0
SETB TR0
RET
;=================
; TABLE
;=================
TABLE: DB 0FFH
DB 07EH
DB 03CH
DB 018H
DB 03CH
DB 07EH
OE:
END
請先 登入 以發表留言。