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

📄 learn.asm

📁 红外线学习控制及低压AC220V电力线载波组网通讯
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;////////////////////////////////////////
WRITEBYTE_1:   LCALL  STARTBIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               SETB   C
               LCALL  DATABIT
               CLR    C  
               LCALL  DATABIT     
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C      
               LCALL  DATABIT
               CLR    C                ;WRITE COMMAND
               LCALL  DATABIT
               LCALL  ACKBIT  ;/// 1 0 1 0 A2 A1 A0 1/0   /////               
               MOV    A,DPH
               MOV    C,ACC.7
               LCALL  DATABIT
               MOV    C,ACC.6
               LCALL  DATABIT
               MOV    C,ACC.5
               LCALL  DATABIT
               MOV    C,ACC.4
               LCALL  DATABIT
               MOV    C,ACC.3
               LCALL  DATABIT
               MOV    C,ACC.2
               LCALL  DATABIT
               MOV    C,ACC.1
               LCALL  DATABIT
               MOV    C,ACC.0
               LCALL  DATABIT
               LCALL  ACKBIT               
               MOV    A,DPL
               MOV    C,ACC.7
               LCALL  DATABIT
               MOV    C,ACC.6
               LCALL  DATABIT
               MOV    C,ACC.5
               LCALL  DATABIT
               MOV    C,ACC.4
               LCALL  DATABIT
               MOV    C,ACC.3
               LCALL  DATABIT
               MOV    C,ACC.2
               LCALL  DATABIT
               MOV    C,ACC.1
               LCALL  DATABIT
               MOV    C,ACC.0
               LCALL  DATABIT
               LCALL  ACKBIT               
               MOV    A,WR_IIC_DATA1
               MOV    C,ACC.7
               LCALL  DATABIT
               MOV    C,ACC.6
               LCALL  DATABIT
               MOV    C,ACC.5
               LCALL  DATABIT
               MOV    C,ACC.4
               LCALL  DATABIT
               MOV    C,ACC.3
               LCALL  DATABIT
               MOV    C,ACC.2
               LCALL  DATABIT
               MOV    C,ACC.1
               LCALL  DATABIT
               MOV    C,ACC.0
               LCALL  DATABIT
               LCALL  ACKBIT
               LCALL  STOPBIT
               RET
;///////////
              
WRITEBLOCK:    lcall level1
               lcall query
               LCALL  STARTBIT
               SETB   C
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               CLR    C
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               SETB   C
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               CLR    C  
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               lcall level1
               lcall query
               CLR    C
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               CLR    C
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               CLR    C      
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               CLR    C                ;WRITE COMMAND
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               LCALL  ACKBIT  ;/// 1 0 1 0 A2 A1 A0 1/0   /////
               MOV    A,DPH
               MOV    C,ACC.7
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.6
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               lcall level1
               lcall query
               MOV    C,ACC.5
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.4
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.3
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.2
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.1
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.0
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               lcall level1
               lcall query
               LCALL  ACKBIT               
               MOV    A,DPL
               MOV    C,ACC.7
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.6
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.5
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.4
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.3
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               lcall level1
               lcall query
               MOV    C,ACC.2
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.1
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.0
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               LCALL  ACKBIT
               lcall level1
               lcall query
               MOV R1,#0C0H
WR_LOOP:       MOV    A,@R1
               MOV    C,ACC.7
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.6
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.5
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.4
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.3
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.2
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.1
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               MOV    C,ACC.0
;              LCALL  DATABIT
               MOV SDA,C
               nop    
               SETB SCL
               NOP
               CLR  SCL
               lcall level1
               lcall query
               LCALL  ACKBIT               
               INC    DPTR             
               INC R1
               CJNE R1,#0E0H,WR_LOOP
               LCALL  STOPBIT
               jnb f_exit,repet_end
               clr f_exit
               setb f_return
repet_end:     RET
           
READBYTE:      LCALL  STARTBIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C              ;write COMMAND
               LCALL  DATABIT
               LCALL  ACKBIT
               MOV    A,DPH
               MOV    C,ACC.7
               LCALL  DATABIT
               MOV    C,ACC.6
               LCALL  DATABIT
               MOV    C,ACC.5
               LCALL  DATABIT
               MOV    C,ACC.4
               LCALL  DATABIT
               MOV    C,ACC.3
               LCALL  DATABIT
               MOV    C,ACC.2
               LCALL  DATABIT
               MOV    C,ACC.1
               LCALL  DATABIT
               MOV    C,ACC.0
               LCALL  DATABIT
               LCALL  ACKBIT
               MOV    A,DPL
               MOV    C,ACC.7
               LCALL  DATABIT
               MOV    C,ACC.6
               LCALL  DATABIT
               MOV    C,ACC.5
               LCALL  DATABIT
               MOV    C,ACC.4
               LCALL  DATABIT
               MOV    C,ACC.3
               LCALL  DATABIT
               MOV    C,ACC.2
               LCALL  DATABIT
               MOV    C,ACC.1
               LCALL  DATABIT
               MOV    C,ACC.0
               LCALL  DATABIT
               LCALL  ACKBIT           
               LCALL  STARTBIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               SETB   C                ;READ COMMAND
               LCALL  DATABIT
               NOP
               NOP
               NOP
               SETB  SCL
               NOP
               NOP
               NOP
               NOP
               NOP
               CLR   SCL
               NOP
               NOP
               NOP
               NOP  
               LCALL  IIC_RD_BIT
               MOV    ACC.7,C
               LCALL  IIC_RD_BIT
               MOV    ACC.6,C
               LCALL  IIC_RD_BIT
               MOV    ACC.5,C
               LCALL  IIC_RD_BIT
               MOV    ACC.4,C
               LCALL  IIC_RD_BIT
               MOV    ACC.3,C
               LCALL  IIC_RD_BIT
               MOV    ACC.2,C
               LCALL  IIC_RD_BIT
               MOV    ACC.1,C
               LCALL  IIC_RD_BIT
               MOV    ACC.0,C
               LCALL  STOPBIT
               MOV    IIC_RD_DATA,A
               RET
;//////////////////////////////////
;        READ OPERATOR 
;//////////////////////////////////

READBLOCK:     SETB  F_FIRST_READ
               SETB  F_SECOND_READ
               mov   stop_count,#00h
               LCALL  STARTBIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               SETB   C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C
               LCALL  DATABIT
               CLR    C              ;write COMMAND
               LCALL  DATABIT
               LCALL  ACKBIT
               MOV    A,DPH
               MOV    C,ACC.7
               LCALL  DATABIT
               MOV    C,ACC.6
               LCALL  DATABIT
               MOV    C,ACC.5
               LCALL  DATABIT
               MOV    C,ACC.4
               LCALL  DATABIT
               MOV    C,ACC.3
               LCALL  DATABIT
               MOV    C,ACC.2
               LCALL  DATABIT

⌨️ 快捷键说明

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