[HC89S003F4開発ボード] 9ASMはタイマ1を書きます

HC89S003F4開発ボードASMの書き込みタイマ1

まず、実装プロセス

1、外部レジスタセット

画像

  • XSFRと読み書きするMOVX A、@DPTRとMOVX @DPTR、Aを使用して、同じアクセス方式XRAMを使用して拡張。
WDTCCR  EQU     0FEA0H
    CLR     A
    MOV     DPTR,#WDTCCR
    MOVX    @DPTR,A ; 关闭看门狗

2、タイマーを設定する1

  • タイマー計算
    • 式:65536 - ((1/1000)/(1 /(Foscが/タイマ分周比)))
    • FOSC = 16000000、タイマ分周比= 12
    • バックステッピング値は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、測位プログラムアドレス

画像

旧プログラム80H割り込みベクタアドレスはスキップする必要があり、T1のインタラプト転送を追加するために使用されるように

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

第二に、完全なプログラム

  • @達成結果:LEDが点滅
$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
    

おすすめ

転載: www.cnblogs.com/yywBlogW/p/11386652.html