📄 遥控复位(章新风旋转tv).asm
字号:
* 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 + -