USER1 DB ? ;用戶識別碼高8位,原始數據
USER2 DB ? ;用戶識別碼低8位,原始數據
POWER_DATA DB ? ;POWER鍵數據碼,原始數據
COPY_DATA DB ? ;COPY鍵數據碼,原始數據
COU122 DB ? ;靜音廷時用
COU8 DB ? ;電源接通廷時用,8個周期約為64mS
BUF1 DB ? ;中斷數據臨時存儲
BUF2 DB ? ;中斷數據臨時存儲
R2 DB ?
R3 DB ?
R6 DB ?
R7 DB ?
NOP
NOP
JMP 00H ;陷阱
IR_ERROR: ;錯誤處理
JMP MAIN ;退出解碼子程序
NOP
NOP
JMP 00H ;陷阱
;===========================================================
IR_DONE:
;這里還要判斷系統碼或用戶碼,用于識別不同的遙控器
MOV A,ADD1
SUB A,USER1
SZ ACC
JMP IR_ERROR ;用戶碼1不對則退出
MOV A,ADD2
SUB A,USER2
SZ ACC
JMP IR_ERROR ;用戶碼2不對則退出
;判斷兩個數據碼是否相反
CPLA DATA1
SUB A,DATA2
SZ ACC
JMP IR_ERROR ;兩個數據碼不相反則退出
;遙控執行部份
SET TMRC.4 ;起動定時器,供靜音與電源轉換時定時用
MOV A,DATA1
SUB A,POWER_DATA
SZ ACC
JMP ROMT1
SZ POWER ;POWER鍵有按下則將POWER標志取反
JMP ROMT00 ;
SET POWER ;
JMP ROMT01 ;
ROMT00:CLR POWER ;
ROMT01:
SNZ POWER
JMP ROMT71 ;關機則跳到ROMT8
;JNB POWER,ROMT8 ;關機則跳到ROMT8
CLR LED ;點亮LED
;關USB狀態
CLR COPY
CLR POWER_USB
;開播放器
SET MCUSP ;靜音
MOV A,255 ;置靜音初值,可廷時4S左右
MOV COU122,A
SET MUTE ;靜音狀態位置1
MOV A,8
MOV COU8,A
SET COU ;打開計數開關
CLR POWER_HDD
CLR POWER_USB
JMP ROMT12 ;然后跳到ROMT12