RSS

基于单片机的通用红外遥控接收器设计

来源:网络 作者:不详 时间:2007-01-08 Tag: 点击:

摘 要 简单介绍了红外遥控接收系统原理,给出了用8051作遥控接收系统解码器的一种巧妙实现方方法,以及完整的51汇编程序代码。

关键词 8051 红外遥控 遥控码 

MOV TMOD,#00010001B ;T0:计数器 T1:计数器?

MOV TCON,#00000101B ; EXINT0和EXINT1下降沿有效

MOV LENG,#00H ;清码长

CLR (29H).0 ;清起始码标志

CLR (29H).1 ;清用户码标志

SETB EA

SETB ET0

SETB TR0

SETB EX0

SETB EX1

INFRAR:

JNB (29H).0,R_NEW ;检测起始码标志

MOV A,LENG

SUBB A,#20H

JB CY,NR ;LENG<32跳转

MOV A,BUF2

XRL A,#0FFH

MOV BUF2,A

CJNE A,BUF3,R_NEW ;用户码Ok

MOV A,BUF3

CJNE A,#01H,R_NEW

SETB (29H).1    ;设用户码标志

USER:

MOV A,BUF0XRL A,#0FFH

MOV BUF0,A

CJNE A,BUF1,R_NEW ;操作码OK

MOV A,BUF1

MOV 42H,A ;操作码保存到[42H]

R_NEW:

MOV LENG,#00H

CLR (29H).0

CLR (29H).1

NR:  

POP ACC

POP PSW

RETI

INT0中断服务程序

INT0中断服务程序的功能比较单一,它完成清计数器0、置位其运行控制位TR0和允许INTI中断等工作。计数器0由INT0中断服务程序来启动,而由INTl中断服务程序来关闭。它所定时计数的值是INT1引脚上正脉冲的宽度。

EXINT0:

PUSH PSW

PUSH ACC

MOV TH0,#00H ;清计数器0

MOV TL0,#00H

SETB TR0 ;起动计数器0

SETB ET0

SETB EA

POP ACC

POP PSW

RETI

INTI中断服务程序

a.对收到的二进制位数进行计数。

b.读出计数器T0的计数值,判断它是对应于二进制的“0”,还是“1”,并据此将进位位清0或置1。如定时计数值大于1.792ms,则置位码间隔标志(29H).1。

c.通过累加器连同CY的循环右移操作、累加器与缓冲单元BUF0间的数据传送操作以及解码所得的二进制位逐一存入BUF0-BUF3缓存单元内。


1.部分资源来自网络,经ET电子归类整理,旨在服务电子爱好者并无商业目的,不保证正确性与完整性.
2.如果您觉得本站资源对您有用,请告知您的好友,用搜索引擎搜"ET电子"即可.


最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名?
注册
合作站点