;*************************************************************************
;
; 文 件 名 : REMOTE.A51 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
; 芯片型號 : AT89C2051 MCU @6Mhz ? ? ? ? ? ? ? ? ? ? ? ? ? *
; 發(fā)射芯片 : PT2222 OR PT2213 ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
; 功 ? 能 : 遙控器鍵碼接收解碼程式 ? ? ? ? ? ? ? ? ? ? ? ? *
; 版 本 號 : VER. 2.00 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
;?
;**************************************************************************
ir_rec_ok ? bit ? 00h
ir_first ? ? bit ? 01h
stack ? ? ? equ ? 50h
custom_code ? equ ? 21h
key_code ? ? equ ? 23h
custom_id ? data ? 0eh
leader_code ? data ? 11h ? ? ; 引導(dǎo)碼
end_code ? ? data ? 5ch ? ? ; 尾碼
code_0 ? ? data ? 02h ? ? ; "0" 碼
code_1 ? ? data ? 04h ? ? ; "1" 碼
;*************************************************************************
cn ? 0000h
jmp ? initial
cn ? 0003h
jmp ? ir_recever
;*************************************************************************
cn ? 0030h
? initial: mov ? r0,#02h
mov ? r1,#7fh ? ? ;#7fh=127
? clr_reg: mov ? @r0,#00h
inc ? r0
djnz ? r1,clr_reg ? ;條件轉(zhuǎn)移指令 寄存器減1--為0順序執(zhí)行
mov ? sp,#stack ? ??
mov ? tmod,#00000001b ;模式1:16 位計數(shù)器,無預(yù)分頻器,GATE=0,TR0=1 即可啟動
mov ? ip,#00000001b ? ;外部中斷0(EX0)為高優(yōu)先級
mov ? tcon,#00000001b ;外部中斷0(EX0),IT0=1 下降沿觸發(fā)
clr ? et0 ? ? ? ? ;不允許T0中斷
mov ? ie,#10000001b ? ;允許所有中斷,外部中斷0(EX0)允許
main_pro: nop
jb ? ? ir_rec_ok,key_pro
nop
jmp ? main_pro
;*************************************************************************
? key_pro: nop ? ? ? ? ? ? ? ? ;1 個機器周期--24us
nop
nop
nop
clr ? ir_rec_ok
jmp ? main_pro
;************** 紅外接收解碼程式入口 *************************************
ir_recever: push ? acc
push ? psw
setb ? rs0 ? ;PSW.3
clr ? rs1 ? ;PSW.4,R1 區(qū)1--08H-0FH
mov ? a,th0
mov ? r2,a
mov ? tl0,#00h
mov ? th0,#00h
setb ? tr0
cjne ? a,#leader_code,chk_end1 ;引導(dǎo)碼
mov ? r0,#20h
setb ? ir_first
int_return: clr ? ie0
pop ? psw
pop ? acc
reti
chk_end1: jnb ? ir_first,int_return ? ;位條件轉(zhuǎn)移指令,ir_first=1 則順序執(zhí)行
cjne ? a,#end_code,read_code ;cjne a,#data,標(biāo)號--相等則順序執(zhí)行
jmp ? int_return ? ? ? ??
read_code: mov ? a,r2
cjne ? a,#code_0,receive_1
jmp ? receive_0
receive_1: cjne ? a,#code_1,int_return ? ;#data--立即數(shù),相等則順序執(zhí)行
setb ? c
jmp ? encode
receive_0: clr ? c
? encode: mov ? a,key_code+1 ? ;key_code=23H
rrc ? a ? ? ? ? ;帶進位的循環(huán)右移指令
mov ? key_code+1,a
mov ? a,key_code
rrc ? a
mov ? key_code,a
mov ? a,custom_code+1
rrc ? a
mov ? custom_code+1,a
mov ? a,custom_code
rrc ? a
mov ? custom_code,a
djnz ? r0,int_return ? ;寄存器減1條件轉(zhuǎn)移指令--寄存器內(nèi)容為0則順序執(zhí)行
mov ? a,custom_code
cjne ? a,#custom_id,ir_exit_int
mov ? a,key_code
cpl ? a ? ? ? ? ;累加器取反指令
xrl ? a,key_code+1 ? ;邏輯異或操作指令
jnz ? ir_exit_int ? ;判0轉(zhuǎn)移指令,A=0 則轉(zhuǎn)移執(zhí)行
setb ? ir_rec_ok
jmp ? ir_ok_exit
ir_exit_int: clr ? ir_rec_ok
ir_ok_exit: clr ? tr0
mov ? tl0,#00h
mov ? th0,#00h
clr ? ir_first
pop ? psw
pop ? acc
reti
;**************************************************************************
db ? ? " ver. 2.00 zhou 00-10-17 16:57 "
end
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧