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

📄 ir_thomson.asm

📁 .ifnz I2C_SUPPORT ************************************************************** Function : fPro
💻 ASM
字号:
.if IR_THOMSON
         inc    markcount          
         inc    spacecount          
         inc    synccount          
         inc    bit01count               
         lda    IrStateFlag                
         cmp    #IR_MARK_STATE    
         beq    preprocessmark
         cmp    #IR_SPACE_STATE   
         beq    preprocessspace
         cmp    #IR_SYNC_STATE    
         beq    preprocesssync
         cmp    #IR_BIT01_STATE     
         beq    preprocessbit01       
         cmp    #BEGIN_FROM_HEAD  
         beq    beginning   
preprocessmark:
         jmp     processmark
preprocessspace:
         jmp     processspace  
preprocesssync:
         jmp     processsync  
preprocessbit01:
         jmp     processbit01                                      
beginning:              
         lda    IR_PORT
         and    #IR_IN
         bne    exit1
         lda    #0
         sta    markcount
         lda    #IR_MARK_STATE
         sta    IrStateFlag        
exit1:
         jmp    PreIrqExit   
;;-----------------------------------------------
SRAM_PG1:       .section        ;;PAGE1 start
;;-----------------------------------------------          
processmark:
         lda    IR_PORT
         and    #IR_IN
         beq    exit2
         lda    markcount
         cmp    #34         ;;36
         bcc    fromhead
         lda    #IR_SPACE_STATE
         sta    IrStateFlag
         lda    #0
         sta    spacecount         
exit2:
         jmp    PreIrqExit 
processspace:
         lda    IR_PORT
         and    #IR_IN
         bne    exit3
         lda    spacecount
         cmp    #34         ;;36
         bcc    fromhead
         lda    #IR_SYNC_STATE
         sta    IrStateFlag
         lda    #0
         sta    synccount   
exit3:
         jmp    PreIrqExit 
processsync:    
         lda    IR_PORT
         and    #IR_IN
         beq    exit4
         lda    synccount
         cmp    #3         ;;4
         bcc    fromhead
         lda    #IR_BIT01_STATE
         sta    IrStateFlag
         lda    #0
         sta    bit01count   
exit4:
         jmp    PreIrqExit                
processbit01:
         lda    IR_PORT
         and    #IR_IN
         bne    exit5
         lda    bit01count
         cmp    #15       ;;18
         bcc    checknext
         lda    #1
         sta    bitis0
         lda    #IR_SYNC_STATE
         sta    IrStateFlag
         lda    #0
         sta    synccount 
         bra    exit5
checknext:
         lda    bit01count
         cmp    #7         ;;9
         bcc    fromhead
         lda    #1
         sta    bitis1
         lda    #IR_SYNC_STATE
         sta    IrStateFlag
         lda    #0
         sta    synccount 
exit5:         
         jmp    PreIrqExit  
fromhead:
         lda    #BEGIN_FROM_HEAD
         sta    IrStateFlag 
         stz    datacount
         jmp    PreIrqExit
PreIrqExit:
         lda    datacount
         cmp    #12
         beq    sendIRdata
         lda    bitis0
         cmp    #1
         bne    check_next_bit
         lda    #0
         sta    bitis0
         inc    datacount
         clc
         bra    receive
check_next_bit:
         lda    bitis1
         cmp    #1
         bne    end_exit
         lda    #0
         sta    bitis1
         inc    datacount
         sec
receive:    
         rol    Receiver1     
         rol    Receiver2        
         bra    end_exit                 
sendIRdata:
         inc    repeattimes
         lda    repeattimes
         cmp    #3
         bne    next
         stz    repeattimes
         lda    IOP_DATA5_H
         ora    #$80
         sta    IOP_DATA5_H                         
         lda    Receiver1
         eor    #%11111111
         sta    IOP_DATA5_L 
         lda    Receiver2
         sta    IOP_DATA6_L 
next:                 
         stz    Receiver1         
         stz    Receiver2                  
         lda    #0
         sta    datacount
         lda    #BEGIN_FROM_HEAD
         sta    IrStateFlag        
end_exit:
         jmp  lIrqIrExit       
.endif

⌨️ 快捷键说明

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