transmit_frame.asm
来自「基于MOTOLOLAR单片机的TPMS发送控制器代码设计」· 汇编 代码 · 共 95 行
ASM
95 行
;/*****************************************************************************/
;/* Transmit_Frame */
;/* Description : Make the data frame and transmit it out. */
;/* In : */
;/* Out : */
;/* local variables : */
;/*****************************************************************************/
Transmit_Frame:
jsr Make_frame
jsr Wake_up_Rx ; wake up Romeo2
end_wake_up_rx:
wait ; wait for end of tone transmission
ldhx nb_1
cphx #0000
bne end_wake_up_rx
jsr Transmit ; transmit the UHF frame
rts
; This is a constant delay for approximately 0.8 seconds, used while in
; fast transmission mode.
delay_800_ms:
lda #!24
Next_delay:
ldhx #$FFFF
jsr tempo
deca
bne Next_delay
rts
* This is a pseudo-random delay, which will last for approximately 0-100 ms.
*
Random_delay:
psha
lda TCNTL
and #%00000111
sta Random_Number
beq No_more ; No added delay if rand# %000.
cmp #%010
bls Delay_25_ms ; Delay for 25 ms if rand# %001 or %010.
bra Not_25_ms
Delay_25_ms:
ldhx #$BFFF
jsr tempo
bra No_more
Not_25_ms:
lda Random_Number
cmp #%100
bls Delay_50_ms ; Delay for 50 ms if rand# %011 or %100.
bra Not_50_ms
Delay_50_ms
ldhx #$FFFF
jsr tempo
ldhx #$7FFF
jsr tempo
bra No_more
Not_50_ms:
lda Random_Number
cmp #%101
beq Delay_75_ms ; Delay for 75 ms if rand# %101.
bra Not_75_ms
Delay_75_ms:
ldhx #$FFFF
jsr tempo
ldhx #$FFFF
jsr tempo
ldhx #$3FFF
jsr tempo
bra No_more
Not_75_ms:
Delay_100_ms: ; If rand# not found yet, delay for 100 ms.
ldhx #$FFFF
jsr tempo
ldhx #$FFFF
jsr tempo
ldhx #$FFFF
jsr tempo
bra No_more
No_more:
pula
rts
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?