USER1 DB ? ;用戶識(shí)別碼高8位,原始數(shù)據(jù)
USER2 DB ? ;用戶識(shí)別碼低8位,原始數(shù)據(jù)
POWER_DATA DB ? ;POWER鍵數(shù)據(jù)碼,原始數(shù)據(jù)
COPY_DATA DB ? ;COPY鍵數(shù)據(jù)碼,原始數(shù)據(jù)
COU122 DB ? ;靜音廷時(shí)用
COU8 DB ? ;電源接通廷時(shí)用,8個(gè)周期約為64mS
BUF1 DB ? ;中斷數(shù)據(jù)臨時(shí)存儲(chǔ)
BUF2 DB ? ;中斷數(shù)據(jù)臨時(shí)存儲(chǔ)
R2 DB ?
R3 DB ?
R6 DB ?
R7 DB ?
IR8: ;這里為重復(fù)碼執(zhí)行處
;按住遙控按鍵時(shí),每過108ms 就到這里來
JMP MAIN
NOP
NOP
JMP 00H ;陷阱
IR_ERROR: ;錯(cuò)誤處理
JMP MAIN ;退出解碼子程序
NOP
NOP
JMP 00H ;陷阱
;===========================================================
IR_DONE:
;這里還要判斷系統(tǒng)碼或用戶碼,用于識(shí)別不同的遙控器
MOV A,ADD1
SUB A,USER1
SZ ACC
JMP IR_ERROR ;用戶碼1不對(duì)則退出
MOV A,ADD2
SUB A,USER2
SZ ACC
JMP IR_ERROR ;用戶碼2不對(duì)則退出
;判斷兩個(gè)數(shù)據(jù)碼是否相反
CPLA DATA1
SUB A,DATA2
SZ ACC
JMP IR_ERROR ;兩個(gè)數(shù)據(jù)碼不相反則退出
;遙控執(zhí)行部份
SET TMRC.4 ;起動(dòng)定時(shí)器,供靜音與電源轉(zhuǎn)換時(shí)定時(shí)用
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 ;置靜音初值,可廷時(shí)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