📄 9300.asm
字号:
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#02H ; 第3页
MOV O_XL,#5EH ;
MOV CODE1,#5H ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#02H ; 第3页
MOV O_XL,#70H ;
MOV CODE1,#6H ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
;///////////////////////////
MOV O_YL,#03H ; 第3页
MOV O_XL,#00H ;
MOV CODE1,#3H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#07H ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#0fH ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#16H ;
MOV CODE1,#09H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#1DH ;
MOV CODE1,#01H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#25H ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#2BH ;
MOV CODE1,#08H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#32H ;
MOV CODE1,#01H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#3AH ;
MOV CODE1,#3H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#3AH ;
MOV CODE1,#3H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#03H ; 第3页
MOV O_XL,#42H ;
MOV CODE1,#5H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#04H ; 第3页
MOV O_XL,#61H ;
MOV CODE1,#9H ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#04H ; 第3页
MOV O_XL,#70H ;
MOV CODE1,#0aH ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#06H ; 第3页
MOV O_XL,#25H ;
MOV CODE1,#0bH ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#06H ; 第3页
MOV O_XL,#35H ;
MOV CODE1,#0cH ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#06H ; 第3页
MOV O_XL,#45H ;
MOV CODE1,#0dH ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#06H ; 第3页
MOV O_XL,#55H ;
MOV CODE1,#1H ; 汉字代码
MOV CONT0,#0FH
LCALL CCW_PR
MOV O_YL,#07H ; 第3页
MOV O_XL,#60H ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#07H ; 第3页
MOV O_XL,#60H ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#07H ; 第3页
MOV O_XL,#6aH ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
MOV O_YL,#07H ; 第3页
MOV O_XL,#75H ;
MOV CODE1,#0H ; 汉字代码
MOV CONT0,#0FH
LCALL CW_PR
RET
TIME:
PUSH ACC
PUSH PSW
MOV PSW,#10H
MOV TH0,#0AH
MOV TL0,#30H
LCALL READ_TIME
NOP
POP PSW
POP ACC
RETI
REM:
CLR EX0
PUSH ACC
PUSH PSW
mov psw,#08H
MOV C,P3.2
NOP
NOP
JNC CONREM
JNC CONREM
NOP
NOP
BUFF: JMP EXT_1
;-----------------------------------------------------------------------------------------------
;对遥控信号的9000微秒的初始低电平信号的识别。
CONREM: MOV R4,#10
SB: NOP
NOP
CALL D882 ;定时882微秒,即数65536-64654=882
REM2: MOV C,P3.2
NOP
NOP
JC BUFF ;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序
NOP
NOP
DJNZ R4,SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序
;-----------------------------------------------------------------------------------------------
;对遥控信号的4500微秒的高电平信号的识别
NOP
NOP
MOV R4,#20
JNB P3.2,$ ;等待4.5毫秒高电平引导脉冲
RT6: MOV R7,#100 ;延时201微秒
DJNZ R7,$
NOP
NOP
REM3: MOV C,P3.2
JNC EXT_1
DJNZ R4,RT6
NOP
NOP
JB P3.2,$
NOP
NOP
;-----------------------------------------------------------------------------------------------
REM4: MOV R0,#1AH ;设定1AH为起始RAM区
MOV R4,#4
PP: MOV R7,#8
JJJJ: JNB P3.2,$ ;等待地址码第一位的高电平信号
NOP
NOP
CALL D882 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态
REM6: MOV C,P3.2 ;将P3.2引脚此时的电平状态0或1存入C中
NOP
NOP
JNC UUU ;如果为0就跳转到UUU
NOP
NOP
JB P3.2,$ ;如果为1就等待高电平信号结束
UUU: NOP
NOP
MOV A,@R0 ;将R0中地址的给A
RRC A ;将C中的值0或1移入A中的最低位
NOP
NOP
MOV @R0,A ;将A中的数暂时存放在R0中
NOP
NOP
DJNZ R7,JJJJ ;接收地址码的高8位
INC R0 ;对R0中的值加1,换成下一个RAM
NOP
NOP
DJNZ R4,PP ;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中
MOV A,1AH
XRL A,#08H
NOP
NOP
JNZ EXT_1
MOV A,1BH
XRL A,#0F7H
NOP
NOP
JNZ EXT_1
MOV A,1CH
CPL A
XRL A,1DH
NOP
NOP
JNZ EXT_1
MOV A,1CH
CJNE A,#42H,REM1
MOV TAB_KEY,#1 ;自动
JMP EXT_1
EXT_1:
SETB P3.2
SETB EX0
POP PSW
POP ACC
RETI
REM1:
CJNE A,#03H,REM2_1
MOV TAB_KEY,#2 ;手动
LJMP EXT_1
REM2_1:
CJNE A,#40H,REM3_1
MOV TAB_KEY,#3 ;MIC
JMP EXT_1
REM3_1:
CJNE A,#4EH,REM4_1
MOV TAB_KEY,#4 ;OUT1
JMP EXT_1
REM4_1:
CJNE A,#0FH,REM5
MOV TAB_KEY,#5 ;OUT2
JMP EXT_1
REM5:
CJNE A,#4CH,REM6_1
MOV TAB_KEY,#6 ;OUT3
JMP EXT_1
REM6_1:
CJNE A,#52H,REM7
MOV TAB_KEY,#7 ;0UT4
JMP EXT_1
REM7:
CJNE A,#13H,REM8_1
MOV TAB_KEY,#8 ;USB
JMP EXT_1
REM8_1:
CJNE A,#50H,REM9
MOV TAB_KEY,#9 ;FM
JMP EXT_1
REM9:
CJNE A,#56H,REM10
MOV TAB_KEY,#10 ;AUX1
JMP EXT_1
REM10:
CJNE A,#17H,REM11
MOV TAB_KEY,#11 ;AUX2
JMP EXT_1
REM11:
CJNE A,#54H,REM12
MOV TAB_KEY,#12 ;自动找台
JMP EXT_1
REM12:
CJNE A,#5EH,REM13
MOV TAB_KEY,#13 ;上一曲
JMP EXT_1
REM13:
CJNE A,#1FH,REM14
MOV TAB_KEY,#14 ;STOP
JMP EXT_1
REM14:
CJNE A,#5CH,REM15
MOV TAB_KEY,#15 ;下一曲
JMP EXT_1
REM15:
CJNE A,#53H,REM16
MOV TAB_KEY,#16 ;+
JMP EXT_1
REM16:
CJNE A,#51H,REM17
MOV TAB_KEY,#17 ;-
LJMP EXT_1
REM17:
CJNE A,#16H,REM18
MOV TAB_KEY,#18 ;菜单
JMP EXT_1
REM18:
CJNE A,#12H,REM19
MOV TAB_KEY,#19 ;上
JMP EXT_1
REM19:
CJNE A,#1EH,REM20
MOV TAB_KEY,#20 ;下
JMP EXT_1
REM20:
CJNE A,#57H,REM21
MOV TAB_KEY,#21 ;左
JMP EXT_1
REM21:
CJNE A,#55H,REM22
MOV TAB_KEY,#22 ;右
JMP EXT_1
REM22:
CJNE A,#5FH,REM23
MOV TAB_KEY,#23 ;返回
JMP EXT_1
REM23:
CJNE A,#5DH,REM_ERR
MOV TAB_KEY,#24 ;删除
REM_ERR:
JMP EXT_1
AA:
MOV R0,#25
XX:
CALL D4740
REM8:
JNB P3.2,HH
DJNZ R0,XX
EXT_3:
; CLR BIT_REM
EXT_2:
NOP
NOP
RET
D882:
MOV R6,#20 ;延时子程序1,精确延时882微秒
DD1:
MOV R5,#20
DJNZ R5,$
DJNZ R6,DD1
RET
HH: MOV R7,#4
S: NOP
NOP
LCALL D882
D4740:
MOV R6,#10
DD2:
MOV R5,#235
DJNZ R5,$
DJNZ R6,DD2
RET
START:
SETB SDA
NOP
SETB SCL
NOP
NOP
NOP
NOP
NOP
CLR SDA
NOP
NOP
NOP
NOP
NOP
CLR SCL
NOP
RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -