crying

crying

0个粉丝

41

问答

0

专栏

21

资料

crying  发布于  2008-08-14 00:28:27
采纳率 0%
41个问答
3779

方便的遥控器数据提取器

方便的遥控器数据提取器以前发表了一些和红外遥控器有关的文章,都是采用的普通成品遥控器,有电视机、VCDDVDCD、功放等。由于没有加入按键自定义功能,因此读者不得不采用作者提供的遥控器型号进行制作。加上很多地方买不到同样型号的遥控器,许多读者的制作也就半途而废。
本文采用一个AT89C51来对普通的遥控器进行软件解码,并且通过RS232串口将提取的遥控器数据(地址码和数据码)送到电脑进行显示,同时也可通过自带的LED数码管进行显示。
一、硬件电路
整机电路见图5。为了简化电路,将AT89C51的P0、P2口直接与两个共阳数码管连接,数码管的共阳公共端串联一个限流电阻R2、R3,阻值大小可以根据实际的数码管亮度在50欧到1K间调整。LED1显示每一个8位代码的高4位,LED2显示低4位。由于只有2位数码管,因此显示做如下安排:LED1、LED2先显示遥控器的低8位地址码,等待1秒钟后再显示遥控器的数据码(正码)。遥控器的高位地址和数据码反码可以根据显示的值取反得到,这里不再显示。如果要显示全部代码,读者可增加数码管,并对程序进行修改。电路中晶体J1使用11.0592MHz 。
IC2为一体化的红外接收头,可根据实际情况选用一种,但要注意3个引脚的定义随着接收头型号会有所不同。
虚线框中的Q1、Q2以及相应的电阻电容构成RS-232与TTL电平的转换电路,其具体原理不再赘述。有条件的读者可以用专用的转换芯片MAX232等代替

二、红外解码软件说明
在大多数的电视机、VCDDVDCD、功放等产品上面,菲利普公司的编码格式占大多数,空调器一般采用的是NEC的编码格式,不能用本方案进行数据提取。菲利普公司编码格式定义为:当一个键按下超过36ms,振荡器使芯片激活,如果这个键按下且延迟大约108ms,这108ms发射代码由一个起始码(9ms),一个结束码(4.5ms),低8位地址码(9ms~18ms),高8位地址码(9ms~18ms)也是低8位地址码的反码,8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)组成。代码格式(以红外接收头接收的代码为准,接收代码与发射代码反向)定义如下



①编码格式定义


数据“0”的编码

0.56ms


1.12ms






数据“1”的编码

0.56ms



2.24ms




②单发代码格式
[table=98%][tr][td]
32位编码

[/td][/tr][/table]
4.5ms








9ms


③连发代码格式

2.5ms








9ms


解码方案:
解码采用简单的查询判断的方法来进行。解码的关键是如何识别“0”和“1”,从位的定义我们可以发现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。
注意:通过电脑接收到的数据是实际接收到的32bit数据,没有进行数据的校验,这样可以更加清楚的知道所接收到的编码情况以及出错的位置。
三、汇编程序以及电脑软件
该红外线遥控器译码程序,所支持的遥控器应该是32位码的,接收的低8位地址放在1AH,高8位放在1BH,数据放在1CH,数据反码放在1DH。数据发送到电脑是采用9600波特率,一位起始位,一位停止位,无校验的格式。串口接收程序可以用网上广为使用的“串口调试助手”,注意将参数设置在对应的值。显示格式要选择“HEX”显示。

IRF_IN
BIT
P1.7
;
定义红外线的输入引脚,读者可根据自己所接的管脚修改


ORG
0000H


AJMP
MAIN


ORG
0030H

MAIN:
MOV
P0,#0c0H
;
开机后显示00

MOV
P2,#0c0H


MOV
TMOD,#20H


MOV
SCON,#50H


MOV
TL1,#0FDH


MOV
TH1,#0FDH


SETB
TR1

LOOP:
JB
IRF_IN,$


MOV
R6,#10
;10
个882微秒-->9毫秒
SB:
ACALL YS1


JB
IRF_IN,LOOP
;
判断9毫秒低电平是否连续

DJNZ
R6, SB


JNB
IRF_IN, $
;
等待高电平避开9毫秒低电平引导脉冲

ACALL YS2
;
延时4.74毫秒判断是否有后续脉冲

JB
IRF_IN,LOOP


MOV
R1,#1AH
;
将32位代码分别放在1AH/1BH/1CH/1DH中

MOV
R2,#4

PP:
MOV
R3,#8

JJ:
JNB
IRF_IN,$


LCALL YS1


MOV
C,IRF_IN


JNC
KK


JB
IRF_IN,$

KK:
MOV
A,@R1


RRC
A


MOV
@R1,A


DJNZ
R3,JJ


INC
R1


DJNZ
R2,PP


LCALL DATAOUT
;
在这里将接收到的编码发送到电脑,即使数据出错也发送
;---------------- compare --------------

MOV
A,1CH
;
进行代码识别校验

CPL
A


XRL
A,1DH
;
将1CH的值取反后和1DH比较 不同则是无效数据,丢弃

JZ
EXIT


MOV
P0,#0FFH
;
数据出错时清除先前的显示内容并返回到接收状态

MOV
P2,#0FFH


AJMP
LOOP

EXIT:
lcall
dsp
;
显示相应的代码数据

AJMP
LOOP

;--------------------delay-----------------------
YS1:
MOV
R4,#19
;
延时880微秒
D1:
MOV
R5,#19


DJNZ
R5,$


DJNZ
R4,D1


RET

YS2:
MOV
R4,#10
;
延时4740微秒
D2:
MOV
R5,#218


DJNZ
R5,$


DJNZ
R4,D2


RET

;----------------------RS232----------------------
DATAOUT:CLR
TI


MOV
A,1AH


MOV
SBUF,A


JNB
TI,$


CLR
TI


MOV
A,1BH


MOV
SBUF,A


JNB
TI,$


CLR
TI


MOV
A,1CH


MOV
SBUF,A


JNB
TI,$


CLR
TI


MOV
A,1DH


MOV
SBUF,A


JNB
TI,$


CLR
TI


RET

;--------------------------display---------------------
DSP:
MOV
DPTR,#TAB1
;
将1AH(地址低8位)的值通过数码管显示出来

MOV
A,1AH


ANL
A,#0F0H


SWAP A


MOVC A,@A+DPTR


MOV
P0,A


MOV
A,1AH


ANL
A,#0FH


MOVC A,@A+DPTR


MOV
P2,A




MOV
R1,#0

DEL1S:ACALL YS2

DJNZ R1,DEL1S
;
延时1S左右



MOV
A,1CH
;
将1CH(数据码)的值显示出来

ANL
A,#0F0H


SWAP A


MOVC A,@A+DPTR


MOV
P0,A


MOV
A,1CH


ANL
A,#0FH


MOVC A,@A+DPTR


MOV
P2,A


RET

;---------------------------------------------------------
;LED数码管显示表(0-F) TAB1
TAB1:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0A7H,0A1H,86H,8EH
END




5
电路图
我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区