[HC89S003F4 development board] 9ASM write Timer 1

HC89S003F4 development board ASM write Timer 1

First, the implementation process

1, the external register set

image

  • XSFR and extended using the same access method XRAM, using MOVX A, @DPTR and MOVX @DPTR, A to read and write.
WDTCCR  EQU     0FEA0H
    CLR     A
    MOV     DPTR,#WDTCCR
    MOVX    @DPTR,A ; 关闭看门狗

2, set the timer 1

  • Timer calculation
    • Formula: 65536 - ((1/1000) / (1 / (Fosc / Timer division factor)))
    • Fosc = 16000000, Timer division factor = 12
    • Backstepping value obtained 0xFACB
EA      BIT     0A8H.7
TCON    DATA    088H
IE      DATA    0A8H
TL1     DATA    08BH
TH1     DATA    08DH
TMOD    DATA    089H
TCON1   EQU     0FE80H
CLR     A
MOV     DPTR,#TCON1
MOVX    @DPTR,A
MOV     TMOD,A
MOV     TH1,#0FAH
MOV     TL1,#0CBH
ORL     IE,#08H
ORL     TCON,#040H
SETB    EA

3, positioning program address

image

As a former program 80H interrupt vector address needs to be skipped, and used to add T1 interrupt transfer

ORG 00H
AJMP MAIN  
ORG 01BH
AJMP TIME1 
ORG 80H

Second, the complete program

  • @ Achieve results: led flashes
$NOMOD51
P0_0    BIT     080H.0
EA      BIT     0A8H.7
TCON    DATA    088H
IE      DATA    0A8H
TL1     DATA    08BH
TH1     DATA    08DH
TMOD    DATA    089H
CLKSWR  DATA    08EH
WDTCCR  EQU     0FEA0H
CLKDIV  EQU     0FE91H
TCON1   EQU     0FE80H
P0M0    EQU     0FF00H
        ORG 00H
        AJMP MAIN  
        ORG 01BH
        AJMP TIME1 
        ORG 80H
MAIN:
    USING   0
    MOV     R0, #00H
    CLR     A
    MOV     DPTR,#WDTCCR
    MOVX    @DPTR,A
    
    MOV     CLKSWR,#051H
    MOV     DPTR,#CLKDIV
    INC     A
    MOVX    @DPTR,A
    MOV     DPTR,#P0M0
    MOVX    A,@DPTR
    ANL     A,#0F0H
    ORL     A,#08H
    MOVX    @DPTR,A
    CLR     A
    MOV     DPTR,#TCON1
    MOVX    @DPTR,A
    MOV     TMOD,A
    MOV     TH1,#0FAH
    MOV     TL1,#0CBH
    ORL     IE,#08H
    ORL     TCON,#040H
    SETB    EA
DELAY:
    SJMP    DELAY


TIME1:
    USING   0   
    CJNE    R0, #0C8H, exit
    CPL     P0_0    
    MOV     R0, #00H
exit:
    INC     R0
    RETI
    
    END
    

Guess you like

Origin www.cnblogs.com/yywBlogW/p/11386652.html