delay.asm

来自「一款用24L01给美的电器做的2.4G无线遥控器」· 汇编 代码 · 共 84 行

ASM
84
字号
;--------------------------------------------------
;R=150k
;machine clock: 6MHz
;instruction period: 0.25us
;--------------------------------------------------
;-----------Variables------------
         .area      Delay_Data(data)
delay_times::        .ds          2
;-------------------------------
		.area	Delay_Code(code)
Delay_5us::                
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      nop
      ret
;--------------------------     
Delay_10us::
      call     Delay_5us
      call     Delay_5us
      ret
;------------------------
Delay_2ms::
      lda	#2
      sta	delay_times
      lda	#0xff
      sta	delay_times+1
Delay_2ms_Loop:
      lda	delay_times+1
      suba	#1
      sta	delay_times+1
      brc	Delay_2ms_Loop
      lda	delay_times
      suba	#1
      sta	delay_times
      brc	Delay_2ms_Loop
      ret
      
;--------------------------
Delay_10ms::
      lda      #0x12                     
      sta      delay_times
      lda      #0xff
      sta      delay_times+1
Delay_10ms_Loop:                        
      lda      delay_times+1
      suba     #1
      sta      delay_times+1
      brc      Delay_10ms_Loop                 ;9*256*0.25us=576us
      lda      delay_times
      suba     #1
      sta      delay_times
      brc      Delay_10ms_Loop                 ;17*576us=9.7ms
      ret

Delay_100ms::
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      call     Delay_10ms
      ret
;-----------------------------------------------      


⌨️ 快捷键说明

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