一開始要先定義 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

創作者介紹
創作者 喜歡亂搞的世界 的頭像
ffyy99

喜歡亂搞的世界

ffyy99 發表在 痞客邦 留言(0) 人氣( 613 )