⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transmit_frame.asm

📁 胎压检测发送端汇编源码-tpms-transmitters
💻 ASM
字号:
;/*****************************************************************************/
;/* 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -