zdq.asm

来自「利用定时器中断制作方波发生器」· 汇编 代码 · 共 59 行

ASM
59
字号
       .title "zdq.asm"
       .mmregs
       .def CodeStart
       .def  TINT0_ISR
STACK  .usect  "STACK",10H
K_TCR_SOFT  .set  0B<<11
K_TCR_FREE  .set  0B<<10
K_TCR_PSC   .set  0B<<6
K_TCR_TRB   .set  1B<<5
K_TCR_TSS   .set  0B<<4
K_TCR_TDDR  .set  1001B<<0
K_TCR       .set  K_TCR_SOFT|K_TCR_FREE|K_TCR_PSC|K_TCR_TRB|K_TCR_TSS|K_TCR_TDDR
K_TCR_STOP  .set  1B<<4 
       
            .data
       
DATA_DP:
XF_Flag:    .word  1
       
            .text
CodeStart:
            STM  #STACK+10H,SP                   
            LD   #DATA_DP,DP
            STM  #XF_Flag,AR2
K_IPTR      .set   0080h
            LDM   PMST,A
            AND   #7FH,A
            OR    #K_IPTR,A
            STLM   A,PMST
CounterSet  .set    49
PERIOD      .set    49999
            .asg   AR1,Counter
            STM   #CounterSet,Counter
            STM   K_TCR_STOP,TCR
            STM   #PERIOD,TIM
            STM   #PERIOD,PRD
            STM   #K_TCR,TCR
            STM   #0008H,IMR
            STM   #0008H,IFR
            RSBX   INTM
end:        nop
            B   end
TINT0_ISR:
            PSHM    ST0
            BANZ    Next,*Counter-
            STM     #CounterSet,Counter
            BITF    *AR2,#1
            BC      ResetXF,TC
setXF:
            SSBX     XF
            ST      #1,*AR2
            B   Next
ResetXF:
            RSBX   XF
            ST      #0,*AR2
Next:
           POPM   ST0
           RETE
           .end 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?