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

📄 ledcont.asm

📁 胎压检测系统接收部分源码
💻 ASM
字号:
* LEDCont.asm

**********************************************************************
* Contains the controls for all the LEDs.                            *
* PTA[0] = RX                                                        *
* PTB[0] = LF                                                        *
* PTB[1] = LR                                                        *
* PTB[2] = RR                                                        *
* PTB[3] = RF                                                        *
**********************************************************************

BlinkLEDs:      LDA     PTB                             ;Flash the LEDs to indicate to the user
                ORA     #%00001111                      ;that the module is on, and the Romeo2 is
                STA     PTB                             ;configured properly.
                BSET    0,PTA
                LDX     #$FF
                JSR     Delay

                LDA     PTB
                AND     #%11110000
                STA     PTB
                BCLR    0,PTA
                RTS

TurnOnLEDs:     LDA     PTB                             ;Turn on all LEDs to indicate to the user
                ORA     #%00001111                      ;that there's a problem with the module.
                STA     PTB                             ;Code is still running to try to recover,
                BSET    0,PTA                           ;but if the LEDs stay on persistently then
                RTS                                     ;there's probably a bad connection to Romeo.

LED_Flicker:    LDX     #$10
L0:             CLRA                                    ;The Rx LED will flicker to indicate that
                                                        ;something was received, but the checksum
                BSET    0,PTA                           ;did not match so the data is not processed.
                DBNZA   *
                BCLR    0,PTA
                DBNZA   *
                DBNZX   L0
                LDA     FAST_MODE
                BEQ     Flick_Done
                BSET    0,PTA
Flick_Done:     RTS

Blink_Rx:       LDA     FAST_MODE
                BEQ     Blink
                BSET    0,PTA
                BRA     DoneBlink

Blink:          LDX     #$20                            ;The Rx LED will blink once to indicate that
                BSET    0,PTA                           ;good data was received.
                JSR     Delay
                BCLR    0,PTA
DoneBlink:      RTS

**********************************************************************
* ProcessData                                                        *
* Process the (already confirmed valid) data frame, and send tire    *
* status, position and data to the user.                             *
* DATA + 7: ID1                                                      *
* DATA + 6: ID2                                                      *
* DATA + 5: ID3                                                      *
* DATA + 4: ID4                                                      *
* DATA + 3: PRESSURE                                                 *
* DATA + 2: TEMPERATURE                                              *
* DATA + 1: STATUS (bit 7=LVIOUT, bit 6=LOWV, bit 4=FastTx)          *
* DATA + 0: CHECKSUM                                                 *
* PTB[0] = LF                                                        *
* PTB[1] = LR                                                        *
* PTB[2] = RR                                                        *
* PTB[3] = RF                                                        *
*                                                                    *
* Position is stored in the STATUS byte (DATA + 1) for the device    *
* receiving the serial data.                                         *
* STATUS[3] high -> LF                                               *
* STATUS[2] high -> RF                                               *
* STATUS[1] high -> LR                                               *
* STATUS[0] high -> RR                                               *
**********************************************************************
ProcessData:    LDA     DATA+1
                BEQ     FindPos
                BSET    7,FAST_MODE                     ;Flag that this tire is in fast mode.

FindPos:        LDA     DATA+7                          ;Check all tire ID bytes.
                CMP     LFID
                BNE     L1
                LDA     DATA+6
                CMP     LFID+1
                BNE     L1
                LDA     DATA+5
                CMP     LFID+2
                BNE     L1
                LDA     DATA+4
                CMP     LFID+3
                BNE     L1

LF_Match:       CLR     LFCNTL
                CLR     LFCNTH
                BSET    3,DATA+1                        ;Indicate which tire in STATUS
                JSR     Blink_Rx                        ;Blink the Rx LED.
                BRCLR   7,FAST_MODE,LF
                BSET    0,FAST_MODE                     ;Flag that the LF tire is in fast mode.
                BRA     LF1

LF:             BCLR    0,FAST_MODE
LF1:            LDA     DATA+3                          ;Check the pressure
                CMP     THRESHOLD
                BHI     LF_OK
                BSET    0,PTB                           ;Pressure low: light LED.
                JMP     EXIT
LF_OK:          BCLR    0,PTB                           ;Pressure okay: clear LED.
                JMP     EXIT

L1:             LDA     DATA+7                          ;Check all tire ID bytes.
                CMP     RFID
                BNE     L2
                LDA     DATA+6
                CMP     RFID+1
                BNE     L2
                LDA     DATA+5
                CMP     RFID+2
                BNE     L2
                LDA     DATA+4
                CMP     RFID+3
                BNE     L2

RF_Match:       CLR     RFCNTL
                CLR     RFCNTH
                BSET    2,DATA+1                        ;Indicate which tire in STATUS
                JSR     Blink_Rx                        ;Blink the Rx LED.
                BRCLR   7,FAST_MODE,RF
                BSET    3,FAST_MODE
                BRA     RF1

RF:             BCLR    3,FAST_MODE
RF1:            LDA     DATA+3
                CMP     THRESHOLD
                BHI     RF_OK
                BSET    3,PTB
                BRA     EXIT
RF_OK:          BCLR    3,PTB
                BRA     EXIT

L2:             LDA     DATA+7                          ;Check all tire ID bytes.
                CMP     LRID
                BNE     L3
                LDA     DATA+6
                CMP     LRID+1
                BNE     L3
                LDA     DATA+5
                CMP     LRID+2
                BNE     L3
                LDA     DATA+4
                CMP     LRID+3
                BNE     L3

LR_Match:       CLR     LRCNTL
                CLR     LRCNTH
                BSET    1,DATA+1                        ;Indicate which tire in STATUS
                JSR     Blink_Rx                        ;Blink the Rx LED.
                BRCLR   7,FAST_MODE,LR
                BSET    1,FAST_MODE
                BRA     LR1

LR:             BCLR    1,FAST_MODE
LR1:            LDA     DATA+3
                CMP     THRESHOLD
                BHI     LR_OK
                BSET    1,PTB
                BRA     EXIT
LR_OK:          BCLR    1,PTB
                BRA     EXIT

L3:             LDA     DATA+7                          ;Check all tire ID bytes.
                CMP     RRID
                BNE     BadID
                LDA     DATA+6
                CMP     RRID+1
                BNE     BadID
                LDA     DATA+5
                CMP     RRID+2
                BNE     BadID
                LDA     DATA+4
                CMP     RRID+3
                BNE     BadID

RR_Match:       CLR     RRCNTL
                CLR     RRCNTH
                BSET    0,DATA+1                        ;Indicate which tire in STATUS
                JSR     Blink_Rx                        ;Blink the Rx LED.
                BRCLR   7,FAST_MODE,RR
                BSET    2,FAST_MODE
                BRA     RR1

RR:             BCLR    2,FAST_MODE
RR1:            LDA     DATA+3
                CMP     THRESHOLD
                BHI     RR_OK
                BSET    2,PTB
                BRA     EXIT
RR_OK           BCLR    2,PTB

EXIT:           BCLR    7,FAST_MODE
                RTS

BadID:          RSP
                BCLR    7,FAST_MODE
                JMP     Loop                            ;If the ID is bad, then we can ignore
                                                        ;the data.

⌨️ 快捷键说明

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