采用2051单片机控制的红外解码程序-创新互联

;*************************************************************************
;
; 文 件 名 : REMOTE.A51                                 *
; 芯片型号 : AT89C2051 MCU @6Mhz                           *
; 发射芯片 : 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     ; 引导码
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   ;条件转移指令 寄存器减1--为0顺序执行

mov   sp,#stack     
mov   tmod,#00000001b ;模式1:16 位计数器,无预分频器,GATE=0,TR0=1 即可启动
mov   ip,#00000001b   ;外部中断0(EX0)为高优先级
mov   tcon,#00000001b ;外部中断0(EX0),IT0=1 下降沿触发
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 区1--08H-0FH
mov   a,th0
mov   r2,a
mov   tl0,#00h
mov   th0,#00h
setb   tr0
cjne   a,#leader_code,chk_end1 ;引导码
mov   r0,#20h
setb   ir_first

int_return: clr   ie0
pop   psw
pop   acc
reti

chk_end1: jnb   ir_first,int_return   ;位条件转移指令,ir_first=1 则顺序执行
cjne   a,#end_code,read_code ;cjne a,#data,标号--相等则顺序执行
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--立即数,相等则顺序执行
setb   c
jmp   encode

receive_0: clr   c

  encode: mov   a,key_code+1   ;key_code=23H
rrc   a         ;带进位的循环右移指令
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条件转移指令--寄存器内容为0则顺序执行

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转移指令,A=0 则转移执行
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

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


文章名称:采用2051单片机控制的红外解码程序-创新互联
文章分享:http://myzitong.com/article/djsohs.html