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

📄 编码发送.asm

📁 使用68HC08GT16芯片实现无线遥控编码的波形发射,
💻 ASM
📖 第 1 页 / 共 2 页
字号:
                BSET 1,DDRD
                NOP
                NOP
                NOP
                NOP


PD1_PA5:        BRCLR 5,PTA,PD1_PA5LOW
PD1_PA5HIGH:    LDA KS23COU
                SUB #$40
                BLO PD1_PA5HIGH2
                MOV #$40,KS23COU
                BRSET 2,KEYST2,PD1_PA5END
                BSET 2,KEYST2
                BSET 2,SYSSTU2
                BRA PD1_PA5END
PD1_PA5HIGH2:   INC KS23COU
                BRA PD1_PA5END
PD1_PA5LOW:     LDA KS23COU
                BEQ PD1_PA5LOW2
                DEC KS23COU
                BRA PD1_PA5END
PD1_PA5LOW2:    BRCLR 2,KEYST2,PD1_PA5END
                BCLR 2,KEYST2
                BCLR 2,SYSSTU2
PD1_PA5END:

PD1_PA6:        BRCLR 6,PTA,PD1_PA6LOW
PD1_PA6HIGH:    LDA KS24COU
                SUB #$40
                BLO PD1_PA6HIGH2
                MOV #$40,KS24COU
                BRSET 3,KEYST2,PD1_PA6END
                BSET 3,KEYST2
                BSET 3,SYSSTU2
                BRA PD1_PA6END
PD1_PA6HIGH2:   INC KS24COU
                BRA PD1_PA6END
PD1_PA6LOW:     LDA KS24COU
                BEQ PD1_PA6LOW2
                DEC KS24COU
                BRA PD1_PA6END
PD1_PA6LOW2:    BRCLR 3,KEYST2,PD1_PA6END
                BCLR 3,KEYST2
                BCLR 3,SYSSTU2
PD1_PA6END:
SCANPD1END:     BCLR 1,PTD
                BCLR 1,DDRD
                NOP
                NOP
                NOP
                NOP

*-------------------------------------------------------------
SCANPD2:        BSET 2,PTD
                BSET 2,DDRD
                NOP
                NOP
                NOP
                NOP



PD2_PA5:        BRCLR 5,PTA,PD2_PA5LOW
PD2_PA5HIGH:    LDA KS25COU
                SUB #$40
                BLO PD2_PA5HIGH2
                MOV #$40,KS25COU
                BRSET 4,KEYST2,PD2_PA5END
                BSET 4,KEYST2
                BSET 4,SYSSTU2
                BRA PD2_PA5END
PD2_PA5HIGH2:   INC KS25COU
                BRA PD2_PA5END
PD2_PA5LOW:     LDA KS25COU
                BEQ PD2_PA5LOW2
                DEC KS25COU
                BRA PD2_PA5END
PD2_PA5LOW2:    BRCLR 4,KEYST2,PD2_PA5END
                BCLR 4,SYSSTU2
                BCLR 4,KEYST2
PD2_PA5END:

PD2_PA6:        BRCLR 6,PTA,PD2_PA6LOW
PD2_PA6HIGH:    LDA KS26COU
                SUB #$40
                BLO PD2_PA6HIGH2
                MOV #$40,KS26COU
                BRSET 5,KEYST2,PD2_PA6END
                BSET 5,KEYST2
                BSET 5,SYSSTU2
                BRA PD2_PA6END
PD2_PA6HIGH2:   INC KS26COU
                BRA PD2_PA6END
PD2_PA6LOW:     LDA KS26COU
                BEQ PD2_PA6LOW2
                DEC KS26COU
                BRA PD2_PA6END
PD2_PA6LOW2:    BRCLR 5,KEYST2,PD2_PA6END
                BCLR 5,SYSSTU2
                BCLR 5,KEYST2
PD2_PA6END:

SCANPD2END:     BCLR 2,PTD
                bclr 2,DDRD
                NOP
                NOP
                NOP




*-------------------------------------------------------------
SCANPD6:        BSET 6,PTD
                BSET 6,DDRD
                NOP
                NOP
                NOP
                NOP



PD6_PA5:        BRCLR 5,PTA,PD6_PA5LOW
PD6_PA5HIGH:    LDA KS27COU
                SUB #$40
                BLO PD6_PA5HIGH2
                MOV #$40,KS27COU
                BRSET 6,KEYST2,PD6_PA5END
                BSET 6,KEYST2
                BSET 6,SYSSTU2
                BRA PD6_PA5END
PD6_PA5HIGH2:   INC KS27COU
                BRA PD6_PA5END
PD6_PA5LOW:     LDA KS27COU
                BEQ PD6_PA5LOW2
                DEC KS27COU
                BRA PD6_PA5END
PD6_PA5LOW2:    BRCLR 6,KEYST2,PD6_PA5END
                BCLR 6,SYSSTU2
                BCLR 6,KEYST2
PD6_PA5END:

PD6_PA6:        BRCLR 6,PTA,PD6_PA6LOW
PD6_PA6HIGH:    LDA KS28COU
                SUB #$40
                BLO PD6_PA6HIGH2
                MOV #$40,KS28COU
                BRSET 7,KEYST2,PD6_PA6END
                BSET 7,KEYST2
                BSET 7,SYSSTU2
                BRA PD6_PA6END
PD6_PA6HIGH2:   INC KS28COU
                BRA PD6_PA6END
PD6_PA6LOW:     LDA KS28COU
                BEQ PD6_PA6LOW2
                DEC KS28COU
                BRA PD6_PA6END
PD6_PA6LOW2:    BRCLR 7,KEYST2,PD6_PA6END
                BCLR 7,SYSSTU2
                BCLR 7,KEYST2
PD6_PA6END:
SCANPD6END:     BCLR 6,PTD
                BCLR 6,DDRD
                NOP
                NOP



KBDSCANEND:     CLI

*------------------------------------
S1TX:           BRCLR 0,SYSSTU2,S1NO
S1PRO:          BRSET 0,M1_M,S1END
                BSET 0,M1_M
                MOV #$0A,REMOTSTU
                CLR CODECOUNT
                Bclr 4,PTD
                MOV #$02,T1CH0H
                MOV #$ae,T1CH0L   ;280US
                LDA #$54    ;0101,1100 输出比较
                STA T1SC0             
                BRA S1END
S1NO:           BRCLR 0,M1_M,S1END
                BCLR 4,PTD
                BCLR 0,M1_M
                CLR REMOTSTU
                CLR CODECOUNT
                LDA #$10
                STA T1SC0
S1END:

S2TX:           BRCLR 1,SYSSTU2,S2NO
S2PRO:          BRSET 1,M1_M,S2END
                BSET 1,M1_M
                MOV #$0B,REMOTSTU
                CLR CODECOUNT
                Bclr 4,PTD
                MOV #$02,T1CH0H
                MOV #$ae,T1CH0L   ;280US
                LDA #$54    ;0101,1100 输出比较
                STA T1SC0             
                BRA S2END
S2NO:           BRCLR 1,M1_M,S2END
                BCLR 4,PTD
                BCLR 1,M1_M
                CLR REMOTSTU
                CLR CODECOUNT
                LDA #$10
                STA T1SC0
S2END:

S3TX:           BRCLR 2,SYSSTU2,S3NO
S3PRO:          BRSET 2,M1_M,S3END
                BSET 2,M1_M
                MOV #$0C,REMOTSTU
                CLR CODECOUNT
                Bclr 4,PTD
                MOV #$02,T1CH0H
                MOV #$ae,T1CH0L   ;280US
                LDA #$54    ;0101,1100 输出比较
                STA T1SC0             
                BRA S3END
S3NO:           BRCLR 2,M1_M,S3END
                BCLR 2,PTD
                BCLR 2,M1_M
                CLR REMOTSTU
                CLR CODECOUNT
                LDA #$10
                STA T1SC0
S3END:

S4TX:           BRCLR 3,SYSSTU2,S4NO 
S4PRO:          BRSET 3,M1_M,S4END
                BSET 3,M1_M
                MOV #$0D,REMOTSTU
                CLR CODECOUNT
                Bclr 4,PTD
                MOV #$02,T1CH0H
                MOV #$ae,T1CH0L   ;280US
                LDA #$54    ;0101,1100 输出比较
                STA T1SC0             
                BRA S4END
S4NO:           BRCLR 3,M1_M,S4END
                BCLR 4,PTD
                BCLR 3,M1_M
                CLR REMOTSTU
                CLR CODECOUNT
                LDA #$10
                STA T1SC0
S4END:

S5TX:           BRCLR 4,SYSSTU2,S5NO
S5PRO:          BRSET 4,M1_M,S5END
                BSET 4,M1_M
                MOV #$04,REMOTSTU
                CLR CODECOUNT
                Bclr 4,PTD
                MOV #$02,T1CH0H
                MOV #$ae,T1CH0L   ;280US
                LDA #$54    ;0101,1100 输出比较
                STA T1SC0             
                BRA S5END
S5NO:           BRCLR 4,M1_M,S5END
                BCLR 4,PTD
                BCLR 4,M1_M
                CLR REMOTSTU
                CLR CODECOUNT
                LDA #$10
                STA T1SC0
S5END:
*************************************************************************

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

                JMP main_loop
**************************************************************************
**************************************************************
* DUMMY_ISR - Dummy Interrupt Service Routine.               *
*             Just does a return from interrupt.             *
**************************************************************
dummy_isr:

       rti           ; return



**************************************************************
* DUMMY_ISR - Dummy Interrupt Service Routine.               *
*             Just does a return from interrupt.             *
**************************************************************
T1CH0_isr:
TONGBU:         LDA T1SC0
                BCLR 7,T1SC0
                PSHH
                INC CODECOUNT
                LDA CODECOUNT
                CMP #1T
                BEQ JFLOP1 
                CMP #2T
                BEQ JFLOP2  
                CMP #3T
                BEQ JFLOP3 
                CMP #28T
                BLO JFLOP2_600
                CMP #28T
                BEQ JFLOP_OVERT
                CMP #39T
                BHS JDATAGOOVER
                BRA DATA_CHOISE
JFLOP1:         JMP FLOP1               
JFLOP2:         JMP FLOP2
JFLOP3:         JMP FLOP3  
JFLOP2_600:     JMP FLOP2_600
JFLOP_OVERT:    JMP FLOP_OVERT
JDATAGOOVER:    JMP DATAGOOVER      
DATA_CHOISE:    CMP #29T
                BEQ REMOTEDATA4_0
                CMP #30T
                BEQ REMOTEDATA4_1
                CMP #31T
                BEQ REMOTEDATA3_0
                CMP #32T
                BEQ REMOTEDATA3_1
                CMP #33T
                BEQ REMOTEDATA2_0
                CMP #34T
                BEQ REMOTEDATA2_1
                CMP #35T
                BEQ REMOTEDATA1_0
                CMP #36T
                BEQ REMOTEDATA1_1
                CMP #37T
                BEQ REMOTEDATA0_0
                CMP #38T
                BEQ REMOTEDATA0_1
DATAGOOVER:     CMP #39T
                BEQ JFLOP_AGAIN  
                CMP #40T
                BEQ JFLOPSTART 
                JMP TONGBUEND 
JFLOP_AGAIN:    JMP FLOP_AGAIN
JFLOPSTART:     JMP FLOPSTART       
REMOTEDATA4_0:  BRSET 4,REMOTSTU,FLOP_600
                BRA FLOP_200 
REMOTEDATA4_1:  BRA FLOP_OVERT               
REMOTEDATA3_0:  BRSET 3,REMOTSTU,FLOP_600
                BRA FLOP_200 
REMOTEDATA3_1:  BRA FLOP_OVERT
REMOTEDATA2_0:  BRSET 2,REMOTSTU,FLOP_600
                BRA FLOP_200 
REMOTEDATA2_1:  BRA FLOP_OVERT
REMOTEDATA1_0:  BRSET 1,REMOTSTU,FLOP_600
                BRA FLOP_200 
REMOTEDATA1_1:  BRA FLOP_OVERT
REMOTEDATA0_0:  BRSET 0,REMOTSTU,FLOP_600
                BRA FLOP_200 
REMOTEDATA0_1:  BRA FLOP_OVERT
FLOP1:          MOV #$04,T1CH0H
                MOV #$98,T1CH0L   ;480
                LDA #$54         ;0101,0100
                STA T1SC0
                BRA TONGBUEND
FLOP2:
                MOV #$07,T1CH0H
                MOV #$A8,T1CH0L   ;800
                LDA #$58          ;0101,1000
                STA T1SC0
                BRA TONGBUEND
FLOP3:          MOV #$07,T1CH0H
                MOV #$A8,T1CH0L   ;800
                LDA #$54          ;0101,0100
                STA T1SC0
                BRA TONGBUEND
FLOP2_600:      MOV #$01,T1CH0H
                MOV #$EA,T1CH0L   ;200
                LDA #$5A          ;0101,1010比较翻转且溢出翻转
                STA T1SC0
                BRA TONGBUEND
FLOP_200:       MOV #$01,T1CH0H
                MOV #$EA,T1CH0L   ;200
                LDA #$54          ;0101,1010比较翻转
                STA T1SC0
                BRA TONGBUEND
FLOP_600:       MOV #$05,T1CH0H
                MOV #$BE,T1CH0L   ;600
                LDA #$54          ;0101,1010比较翻转
                STA T1SC0
                BRA TONGBUEND                                
FLOP_OVERT:     MOV #$07,T1CH0H
                MOV #$A8,T1CH0L   ;800
                LDA #$54          ;0101,0100
                STA T1SC0
                BRA TONGBUEND
FLOP_AGAIN:     MOV #$00,T1CH0H
                MOV #$F5,T1CH0L   ;100US
                LDA #$58          ;0101,1000
                STA T1SC0
                BRA TONGBUEND
FLOPSTART:      MOV #$02,T1CH0H
                MOV #$ae,T1CH0L   ;280US
                LDA #$54    ;0101,1100
                STA T1SC0
                CLR CODECOUNT
TONGBUEND:      PULH

                rti           ; return


**************************************************************
                ORG FLBPR
                DB $80
**************************************************************
* Vectors - Timer Interrupt Service Routine.                 *
*             after a RESET.                                 *
**************************************************************
   org  VectorStart

        dw  dummy_isr    ; Time Base Vector
        dw  dummy_isr     ; ADC Conversion Complete
        dw  dummy_isr    ; Keyboard Vector
        dw  dummy_isr    ; SCI Transmit Vector
        dw  dummy_isr    ; SCI Receive Vector
        dw  dummy_isr    ; SCI Error Vector
        dw  dummy_isr    ; SPI Transmit Vector
        dw  dummy_isr    ; SPI Receive Vector
        dw  dummy_isr    ; TIM2 Overflow Vector
        dw  dummy_isr;dw  T2CH1_isr    ; TIM2 Channel 1 Vector
        dw  dummy_isr;dw  T2CH0_isr    ; TIM2 Channel 0 Vector
        dw  dummy_isr;dw  T1OVR_isr    ; TIM1 Overflow Vector
        dw  dummy_isr;dw  T1CH1_isr    ; TIM1 Channel 1 Vector
        dw  T1CH0_isr    ; TIM1 Channel 0 Vector
        dw  dummy_isr    ; ICG/CGM Vector
        dw  dummy_isr    ; ~IRQ1 Vector
        dw  dummy_isr    ; SWI Vector
        dw  main_init    ; Reset Vector

⌨️ 快捷键说明

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