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

📄 遥控复位(章新风旋转tv).asm

📁 基于MC68HC08QY4芯片的无线遥控解码程序,并通过场效应管和继电器来驱动有刷电机
💻 ASM
📖 第 1 页 / 共 2 页
字号:
*       SYSSTU^0
******************************************************************************

RXDPRO:
                BRCLR 3,SYSSTU,NOPXD
                BRSET 7,SYSSTU,ADD_STUDY    ;THE STUDY KEY HAS HAPPEN
                LDHX #$EE00
                LDA #3
                JSR RdBlock
                BRCLR 3,SYSSTU,NOPXD    ;SEE IF THE YAOKONG_KEY HAS  HAPPEN
RESET_TEST:
                BRSET 0,RESETSTU,TSTS_D0  ;BSET 0,RESETSTU
                SEI
                JSR FUWEI
                CLI                 ; Allow interrupts to happen
                BRA NOPXD

*******************************************************************************
TSTS_D0:

                LDA RXDDATA
                AND #%11000000
                BEQ TST_D1
                CMP #%11000000
                BNE NOPXD
PRO_D0:         BRCLR 0,EXTREME,PRO_D00        ;M1 up
                BCLR 0,M1_4
                BCLR 1,M1_4
                BRA RXDPROEND
PRO_D00:        BSET 0,M1_4
                BSET 1,M1_4
                BCLR 1,EXTREME
                BSET 0,KEYST1
                BCLR 1,KEYST1
                clr T100MSCOU
                bclr 5,SYSSTU
PRO_D0_END:     BRA RXDPROEND



*
*
*
*
*
********************************************************************************
ADD_STUDY:      LDHX #$EE00
                LDA #3
                jsr RdBlock
                BRSET 3,SYSSTU,RXDPROEND        ;STUDY HAS HAPPEN
                LDHX #$EE00
                LDA #3
                SEI
                jsr WrtBlock
                CLI
                BRA RXDPROEND
*****************************************************************************
NOPXD:          brclr 5,SYSSTU,NOPXD0  ;brclr 5,T100MSCOU,NOPXD0;
                clr M1_4
NOPXD0:
                ;clr T100MSCOU
RXDPROEND:
                bclr 3,SYSSTU
                JMP KEYS7SCAN
******************************************************************************
*
*
*
*
*
*






*****************************************************************************
TST_D1:         LDA RXDDATA
                AND #%00110000
                BEQ TST_D2
                CMP #%00110000
                BNE NOPXD
PRO_D1:         BRCLR 1,EXTREME,PRO_D11
                BCLR 0,M1_4
                BCLR 1,M1_4
                BRA RXDPROEND           ;M1 dowN
PRO_D11:        BSET 0,M1_4
                BCLR 1,M1_4
                BCLR 0,EXTREME
                BSET 1,KEYST1
                BCLR 0,KEYST1
                clr T100MSCOU
                bclr 5,SYSSTU
PRO_D1_END:     bra RXDPROEND
******************************************************************************
TST_D2:         LDA RXDDATA
                AND #%00001100
                BEQ TST_D3
                CMP #%00001100
                BNE NOPXD
PRO_D2:         brclr 0,XIANWEI,PRO_D22       ;M2 up
                Bclr 2,M1_4
                bra RXDPROEND
PRO_D22:        BSET 2,M1_4
                clr T100MSCOU
                bclr 5,SYSSTU
PRO_D2_END:     bra RXDPROEND
****************************************************************************
TST_D3:         LDA RXDDATA
                AND #%00000011
                BEQ NOPXD
                CMP #%00000011
                BNE NOPXD
PRO_D3:         brclr 1,XIANWEI,PRO_D33        ;M2 down
                bclr 3,M1_4
                bra RXDPROEND
PRO_D33:        BSET 3,M1_4
                clr T100MSCOU
                bclr 5,SYSSTU
PRO_D3_END:     bra RXDPROEND
*****************************************************************************















*********************************************************************************
*       PORTA^5                                   study
*                                                 STUDY1_4
********************************************************************************
KEYS7SCAN:      BRSET 5,PORTA,KEYS7LOW          ;KEY_S7---PTA5
KEYS7HIGH:      LDA KS7COU
                SUB #$10
                BLO KEYS7HIGH2
                MOV #$10,KS7COU
                BRSET 7,KEYST1,KEYS7SCANEND       ;study
                BRSET 7,SYSSTU,KEYS7SCANEND
                BSET 7,KEYST1
KEYS7PRO:       BSET 7,SYSSTU
KEYS7PROEND:    bra KEYS7SCANEND
KEYS7HIGH2:     inc KS7COU
                bra KEYS7SCANEND
KEYS7LOW:       lda KS7COU
                beq KEYS7LOW2
                dec KS7COU
                bra KEYS7SCANEND
KEYS7LOW2:      BRCLR 7,KEYST1,KEYS7SCANEND
                BCLR 7,SYSSTU
                BCLR 7,KEYST1
KEYS7SCANEND:






********************************************************************************
********************************************************************************




JMAIN:
                jmp MAIN



**************************************************************************
*                                                                        *
*                fu wei                                                  *
**************************************************************************

FUWEI:

                BCLR 0,PORTB
                NOP
                LDHX #$0000
                BSET 1,PORTA

HALLTIME:       INC COMTIME256L
                BNE FUHALL
                ;INC COMTIME256H
                ;BNE FUHALL
                INC COMTIME12
                LDA #SHIJIAN
                CMP COMTIME12
                BHS FUHALL
                CLR COMTIME12
                CPHX HALLCOUNTERH
                BLO ZHUANG
                JMP FUWEIEND


ZHUANG:         LDHX HALLCOUNTERH



FUHALL:         BRCLR 2,PORTA,FUHALLLOW

FUHALLHIGH:     LDA HALLCOU
                SUB #$04
                BLO FUHALLHIGH2
                MOV #$04,HALLCOU
                BRSET 0,HALLST,FUHALLEND
                BRA FUHALLHIGH3            ;IF THE HALL MAICHONG IS OK THEN BRA
FUHALLHIGH2:    INC HALLCOU
                BRA FUHALLEND
FUHALLHIGH3:    BSET 0,HALLST

FUCOUNTINC:
FUCOUNTHIGH:
                LDA HALLCOUNTERL
                ADD #$01
                STA HALLCOUNTERL
                LDA HALLCOUNTERH
                ADC #$00
                STA HALLCOUNTERH
                BRA  FUHALLEND



FUHALLLOW:      LDA HALLCOU
                BEQ FUHALLLOW2
                DEC HALLCOU
                BRA FUHALLEND
FUHALLLOW2:     BRCLR 0,HALLST,FUHALLEND
                BCLR 0,HALLST
                BRA FUCOUNTINC
FUHALLEND:
                JMP HALLTIME
FUWEIEND:

**********************************************************************************
FUWEIEND_up:
                bset 0,PORTB
                MOV #$30,HALLCOUNTERL
                CLR HALLCOUNTERH
                BCLR 0,HALLST
                CLR HALLCOU
FUHALL_UP:         BRCLR 2,PORTA,FUHALLLOW_UP

FUHALLHIGH_UP:     LDA HALLCOU
                   SUB #$04
                   BLO FUHALLHIGH2_UP
                   MOV #$04,HALLCOU
                   BRSET 0,HALLST,FUHALLEND_UP
                   BRA FUHALLHIGH3_UP
FUHALLHIGH2_UP:    INC HALLCOU
                   BRA FUHALLEND_UP
FUHALLHIGH3_UP:    BSET 0,HALLST
FUCOUNTINC_UP:
FUCOUNTHIGH_UP:
                   LDA HALLCOUNTERL
                   ADD #$01
                   STA HALLCOUNTERL
                   LDA HALLCOUNTERH
                   ADC #$00
                   STA HALLCOUNTERH
                   BRA  FUHALL_stop




FUHALLLOW_UP:      LDA HALLCOU
                   BEQ FUHALLLOW2_UP
                   DEC HALLCOU
                   BRA FUHALLLOWEND_UP
FUHALLLOW2_UP:     BRclr 0,HALLST,FUHALLLOWEND_UP
                   BCLR 0,HALLST
                   BRA FUCOUNTINC_up
FUHALLLOWEND_UP:
                   bra FUHALLEND_UP
FUHALL_stop:       LDA HALLCOUNTERH
                   CMP #$01             ;(HALLCOUNTERH:HALLCOUNTERL=01:BIGESTLOWL)
                   BLO FUHALLEND_UP
                   LDA HALLCOUNTERL
                   CMP #BIGESTLOWL
                   BHS FUHALLEND_UP_END
FUHALLEND_UP:      bra FUHALL_UP
FUHALLEND_UP_END:

                  BCLR 0,PORTB
                  nop
                  nop
                  BCLR 1,PORTA



CHUSHIHUA:        CLRH
                  LDX #RAMStart+$3
CRM_LOOP1:
                  CLR ,X
                  INCX
                  TXA
                  CMP #$F0
                  BLO CRM_LOOP1
                  BSET 0,RESETSTU
                  RTS



**************************************************************************************
*
*
**************************************************************************************
TCH0_isr:       ;INPUT CAPTURE FOT rxd DATA RECEIVE
                MOV TCH0H,TEMP1
                MOV TCH0L,TEMP2
                LDA TSC0
                BCLR 7,TSC0
                BRCLR 3,TSC0,T2CH0_0_7
T2CH0_0_5:      LDA TEMP2
                SUB TCH0LOLD
                STA TEMP4
                LDA TEMP1
                SBC TCH0HOLD
                STA TEMP3
                brclr 6,OTHER2,JT2CH0_2END
                LDA TEMP4
                SUB #$20        ;40uS #$0020
                LDA TEMP3
                SBC #$00
                BLO C1ERROR
                LDA TEMP4
                SUB #$90                ;500US #$0190
                LDA TEMP3
                SBC #$01
                BLO JT2CH0_2END
C1ERROR:        CLR CPCOU
                BCLR 6,OTHER2
JT2CH0_2END:
                JMP T2CH0_2END                  ;T2CH0_2END--->risingING EDGE

T2CH0_0_7:      LDA TEMP2
                SUB TCH0LOLD
                STA TEMP4
                LDA TEMP1
                SBC TCH0HOLD
                STA TEMP3
                BRCLR 6,OTHER2,T2C0_4000US
                LDA TEMP4
                SUB #$20        ;40uS #$0020
                LDA TEMP3
                SBC #$00
                BHS T2C0_500US  ;>=90US
                BRA C0ERROR
T2C0_500US:     LDA TEMP4
                SUB #$B8        ;230US #$00B8
                LDA TEMP3
                SBC #$00
                BHS T2C0_1100US
C0MNPULSE1:
                SEC
C0COMMON:       INC CPCOU
                ROL DATA3
                ROL DATA2
                ROL DATA1
                LDA CPCOU
                SUB #25T
                BLO T2CH0_1END
                BSET 3,SYSSTU
                LDA DATA3
                STA RXDDATA
                LDA DATA1
                STA $8D
                LDA DATA2
                STA $8E
                LDA #$55
                STA $8C
C0ERROR:
                CLR CPCOU
                BCLR 6,OTHER2
                JMP T2CH0_1END

T2C0_1100US:    LDA TEMP4
                SUB #$E0                ;280US #$00E0
                LDA TEMP3
                SBC #$00
                BLO C0ERROR
T2C0_1300US:    LDA TEMP4
                SUB #$90                ;500US #$0190
                LDA TEMP3
                SBC #$01
                BHS T2C0_4000US
                CLC
                BRA C0COMMON

T2C0_4000US:    LDA TEMP4
                SUB #$D0                ;2500US #$07D0
                LDA TEMP3
                SBC #$07
                BHS T2C0_6000US
                JMP C0ERROR
T2C0_6000US:    LDA TEMP4
                SUB #$10                ;4000US #$0C80;4500US #$0E10
                LDA TEMP3
                SBC #$10          ;  SBC #$0e
                BHS C0ERROR
                BSET 6,OTHER2
                MOV #$01,CPCOU
                bra  T2CH0_1END

T2CH0_2END:     MOV #$44,TSC0            ;RISING EDGE
                 BRA T2CH0_END
T2CH0_1END:
                MOV #$48,TSC0            ;FALLING EDGE

T2CH0_END:      MOV TEMP1,TCH0HOLD
                MOV TEMP2,TCH0LOLD
T2CH0END:       rti



*****************************************************************************************************
T100MS:         LDA TSC
                BCLR 7,TSC
                lda M1_4
                cmp #$00
                BEQ T100MSEND
                INC T100MSCOU
                LDA T100MSCOU
                CMP #3t
                BLO T100MSEND
                CLR T100MSCOU
                bset 5,SYSSTU
T100MSEND:      NOP
                RTI
*****************************************************************************************************



*****************************************************************************************************
                ORG FLBPR
                DB $bc          ;$00–$B8 The entire FLASH memory is protected.
*****************************************************************************************************
* Vectors - This is the point where code starts executing after a RESET.                            *
*****************************************************************************************************
       org VectorStart

       dw Start       ; ADC (not valid for QT1,QY1)
       dw Start       ; KBI

       org $FFF2

       dw T100MS      ; TIM Overflow
       dw Start       ; TIM CH1
       dw TCH0_isr    ; TIM CH0

       org $FFFA

       dw Start       ; IRQ
       dw Start       ; SWI
       dw Start       ; Reset

⌨️ 快捷键说明

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