📄 irsend.asm
字号:
RSEG ?CO?IRSEND
IRData: //要发送数据格式按6121
DB 000H //用户码
DB 0FFH //用户码反码
DB 025H //数据
DB 0DAH //数据反码
RSEG ?PR?IR_send?IRSEND
IR_send:
USING 0
CLR EA
;//发射引导码
MOV R5,#035H
MOV R4,#02H
MOV R7,#054H
MOV R6,#01H
LCALL _IR_carry
CLR A
MOV i?040,A
?C0001:
;//发射帧数据
CLR A
MOV j?041,A
?C0004:
MOV A,i?040
MOV DPTR,#IRData
MOVC A,@A+DPTR
MOV R7,A
MOV R6,j?041
MOV R0,AR6
INC R0
SJMP ?C0021
?C0020:
CLR C
RRC A
?C0021:
DJNZ R0,?C0020
JNB ACC.0,?C0007
MOV R5,#0CDH
SJMP ?C0024
?C0007:
MOV R5,#046H
?C0024:
LCALL L?0025
?C0006:
INC j?041
MOV A,j?041
CLR C
SUBB A,#08H
JC ?C0004
?C0003:
INC i?040
MOV A,i?040
CLR C
SUBB A,#04H
JC ?C0001
?C0002:
//=====================================
MOV R5,#011H
LCALL L?0025
CLR IRTX
SETB EA
RET
; END OF IR_send
; //+++++++++++++++++++++++++++++++++++++++++++++++++++++++
RSEG ?PR?_IR_carry?IRSEND
L?0025:
USING 0
MOV R4,#00H
MOV R7,#013H
MOV R6,#00H
_IR_carry:
USING 0
?C0012:
CLR IRTX
MOV R3,#08H
?C0013:
DJNZ R3,?C0013
?C0014:
SETB IRTX
MOV A,R7
DEC R7
JNZ ?C0022
DEC R6
?C0022:
DEC A
ORL A,R6
JNZ ?C0012
SETB IRTX
?C0016:
MOV A,R5
DEC R5
JNZ ?C0023
DEC R4
?C0023:
DEC A
ORL A,R4
JNZ ?C0016
?C0018:
RET
; END OF _IR_carry
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -