📄 6t.asm
字号:
LJMP KEYFUN06 ;跳到键号6对应功能程序标号
LJMP KEYFUN07 ;跳到键号7对应功能程序标号
LJMP KEYFUN08 ;跳到键号8对应功能程序标号
LJMP KEYFUN09 ;跳到键号9对应功能程序标号
LJMP KEYFUN10 ;跳到键号10对应功能程序标号
LJMP KEYFUN11 ;跳到键号11对应功能程序标号
LJMP KEYFUN12 ;跳到键号12对应功能程序标号
LJMP KEYFUN13 ;跳到键号13对应功能程序标号
LJMP KEYFUN14 ;跳到键号14对应功能程序标号
LJMP KEYFUN15 ;跳到键号15对应功能程序标号
LJMP KEYFUN16 ;跳到键号16对应功能程序标号
LJMP KEYFUN17 ;跳到键号17对应功能程序标号
LJMP KEYFUN18 ;跳到键号18对应功能程序标号
LJMP KEYFUN19 ;跳到键号19对应功能程序标号
LJMP KEYFUN20 ;跳到键号20对应功能程序标号
LJMP KEYFUN21 ;跳到键号21对应功能程序标号
LJMP KEYFUN22 ;跳到键号22对应功能程序标号
LJMP KEYFUN23 ;跳到键号23对应功能程序标号
LJMP KEYFUN24 ;跳到键号24对应功能程序标号
LJMP KEYFUN25 ;跳到键号25对应功能程序标号
LJMP KEYFUN26 ;跳到键号26对应功能程序标号
LJMP KEYFUN27 ;跳到键号27对应功能程序标号
LJMP KEYFUN28 ;跳到键号28对应功能程序标号
LJMP KEYFUN29 ;跳到键号29对应功能程序标号
LJMP KEYFUN30 ;跳到键号30对应功能程序标号
LJMP KEYFUN31 ;跳到键号31对应功能程序标号
RET
;列号对应数据表
KEYVALTAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH
;对应列号: 0 1 2 3 4 5 6 7
RET
;
KEYFUN00: MOV A,#02H ;发2个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN01: MOV A,#03H ;发3个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN02: MOV A,#04H ;发4个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN03: MOV A,#05H ;发5个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN04: MOV A,#06H ;发6个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN05: MOV A,#07H ;发7个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN06: MOV A,#08H ;发8个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN07: MOV A,#09H ;发9个脉冲
LJMP REMOTE ;转发送程序
RET
;
;
KEYFUN08: MOV A,#0AH ;发10个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN09: MOV A,#0BH ;发11个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN10: MOV A,#0CH ;发12个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN11: MOV A,#0DH ;发13个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN12: MOV A,#0EH ;发14个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN13: MOV A,#0FH ;发15个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN14: MOV A,#10H ;发16个脉冲
LJMP REMOTE ;转发送程序
RET
;
KEYFUN15: MOV A,#11H ;发17个脉冲
LJMP REMOTE ;转发送程序
RET
KEYFUN16: RET ;备用功能
KEYFUN17: RET ;备用功能
KEYFUN18: RET ;备用功能
KEYFUN19: RET ;备用功能
KEYFUN20: RET ;备用功能
KEYFUN21: RET ;备用功能
KEYFUN22: RET
KEYFUN23: RET
KEYFUN24: RET
KEYFUN25: RET
KEYFUN26: RET
KEYFUN27: RET
KEYFUN28: RET
KEYFUN29: RET
KEYFUN30: RET
KEYFUN31: RET ;备用功能
;
;
;*************************************
;* *
;* 编 码 发 射 程 序 *
;* *
;*************************************
;
REMOTE: MOV R1,A ;装入发射脉冲个数
LJMP OUT3 ;转第一个码发射处理
OUT: MOV R0,#55H ;1MS宽低电平发射控制数据
OUT1: SETB ET1 ;开T1中断
SETB TR1 ;开启定时器T1
NOP ;延时
NOP
NOP
NOP
NOP
DJNZ R0,OUT1 ;时间不到转OUT1再循环
MOV R0,#32H ;1MS高电平间隙控制数据
OUT2: CLR TR1 ;关定时器T1
CLR ET1 ;关T1中断
CLR P3.5 ;关脉冲输出
NOP ;空操作延时
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ R0,OUT2 ;时间不到转OUT2再循环
DJNZ R1,OUT ;脉冲未发完,转OUT再循环发射
LCALL DL500MS ;
RET ;
OUT3: MOV R0,#0FFH ;装发谢3MS宽控制数据
LJMP OUT1 ;转OUT1
;
;*************************************
;* *
;* 延时513 us *
;* *
;*************************************
;
;513微秒延时程序
DELAY: MOV R2,#0FFH
DELAY1: DJNZ R2,DELAY1
RET
;
;
;
;*************************************
;* *
;* 延时10ms *
;* *
;*************************************
;
;10毫秒延时程序
DL10MS: MOV R3,#14H
DL10MS1: LCALL DELAY
DJNZ R3,DL10MS1
RET
;500毫秒延时程序
DL500MS: MOV R4,#32H
DL500MS1: LCALL DL10MS
DJNZ R4,DL500MS1
RET
;
END ;程序结束
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -