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