《红外遥控总结》Word格式.docx
- 文档编号:20296404
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:31.12KB
《红外遥控总结》Word格式.docx
《《红外遥控总结》Word格式.docx》由会员分享,可在线阅读,更多相关《《红外遥控总结》Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
它是把红外线作为载体的红外遥控方式。
由于红外线的波长远小于无线电的波长,因此在采用红外遥控方式时,不会干扰电器的正常工作,也不会影响临近的无线电设备。
红外线是利用波长为0.6~1.5微米之间的近红外信号来传递控制信号的。
它具有以下特点:
1.
由于为不可见光,因此,对环境影响很小。
红外线的波长远小于无线电的波长,所以,红外线不会干扰其他家电,也不会影响临近的无线电设备。
2.
红外线为不可见光,具有很强的保密性和隐蔽性,因此在防盗、警戒等安全保卫装置中也得到广泛应用。
3.
红外遥控的遥控距离一般为几米至几十米或更远。
4.
红外遥控具有结构简单,制作方便,成本低廉,抗干扰能力强,工作可靠性高等一系列优点。
同时,由于红外遥控器,工作电压低,功耗小,外围电路简单,因此,在日常生活中广泛应用。
3总体设计方案
利用单片机控制红外线传输方式进行遥控系统的收发。
总体方案结构如图1:
图1
总体方案结构
在发射部分采用4X4按键,以及单片机最小系统,和红外反射管,其框图如图2所示:
图2
红外发射框图
在接收显示部分,使用了红外接收头,单片机最小系统,以及数码管显示,其框图如图3所示:
图3
红外接收框图
4系统硬电路设计
4.1发射电路部分
1)
1、0和1
的编码
根据NEG格式编码原理,当发射器按键按下后,就有遥控码发出,故按下的键不同遥控码也不同。
这种遥控码具有以下特征:
采用脉宽调制串行码,以脉宽0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;
以脉宽0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的"
1"
。
2)
按键的编码
当我们按下遥控器的按键时,遥控器将发出一串二进制代码,我们称它为一帧数据。
根据各部分的功能。
可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。
遥控器发射代码时.均是低位在前。
高位在后。
引导码高电平为4.5ms,低电平为4.5mso当接收到此码时.表示一帧数据的开始。
单片机可以准备接收下面的数据。
地址码由8位二进制组成,共256种。
地址码重发一次可以加强遥控器的可靠性。
如果两次地址码不相同.则说明本帧数据有错,应丢弃。
不同的设备可以拥有不同的地址码,因此,同种编码的遥控器只要设置地址码不同,也不会相互干扰。
地址码为十六进制的0EII(注意低位在前),在同一个遥控器中,所有按键发出的地址码都是相同的;
数据码为8位,可编码256种状态,代表实际所按下的键;
数据反码是数据码的各位求反。
通过比较数据码与数据反码,可判断接收到的数据是否正确。
如果数据码与数据反码之间的关系不满足相反的关系.则本次遥控接收有误,数据应丢弃。
在同一个遥控器上,所有按键的数据码均不相同。
数据码为十六进制的OCH,数据反码为十六进制的0F3H(注意低位在前).两者之和应为OFFHo
3)
红外发射电路图
如图4所示:
图4
红外发射电路
4.2接收电路部分
红外接收
红外遥控接收可采用一体化红外接收头,它将红外接收二极管、放大、解调、整形等电路做在一起,只有三个引脚,分别是+5V电源、地、信号输出。
红外接收头的信号输出接单片机的INTO或INT1脚。
遥控信号的解码算法及程序编制
平时,遥控器无键按下,红外发射二极管不发出信号,遥控接收头输出信号1;
有键按下时,0和1编码的高电平经过遥控头反相后会输出信号0。
由于与单片机的中断脚相连,将会引起单片机中断(单片机预先设定为下降沿时产生中断)。
单片机在中断时使用定时器0或定时器1开始计时,到下一个脉冲到来时,即再次产生中断时,先将计数值取出。
清零计数值后再开始计时,通过判断每次中断与上一次中断之间的时间间隔,便可知接收到的是引导码还是
0或1。
如果计数值为9ms,接收到的是引导码;
如果计时值等于1・12ms,接收到的是编码0;
如果计数值等于2
25ms,接收到的是编码1。
在判断时间时,应考虑一定的误差值。
因为不同的遥控器由于晶振参数等原因,发射及接收到的时间也会有很小的误差
解码方法如下:
(1)设外部中断0(或者1)为下降沿中断,定时器0(或者1)为16位计时器.初始值均为0。
(2)第一次进入遥控中断后,开始计时。
(3)从第二次进入遥控中断起,先停止计时。
并将计时值保存后,再重新计时。
如果计时值等于前导码的时间,设立前导码标志。
准备接收下面的一帧遥控数据,如果计时值不等于前导码的时间,但前面已接收到前导码,则判断是遥控数据的()还是1。
(4)继续接收下面的地址码、数据码、数据反码。
(5)当接收到32位数据时,说明一帧数据接收完毕。
此时可停止定时器的计时,并判断本次接收是否有效。
如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于OFFH,则接收的本帧数据码有效,否则丢弃本次接收到的数据。
(6)接收完毕,初始化本次接收的数据,准备下一次遥控接收。
4、红外接收电路图
如图5所示:
图5
红外接收电路
5遥控程序的发射及接收流程图
5.1发射流程图
如图6所示:
图6
发射流程图
6.2接收流程图接
1)接收主程序流程图如图7所示
图7
接收主程序流程图
2)接收子程序流程图如图8所示
图8
接收子程序流程图
6遥控的发射及接收程序
6.1发射程序
#include
static
bit
OP;
〃红外发射管的亮灭
unsigned
int
count;
〃延时计数器
endcount;
//终止延时计数
temp;
//按键
char
flag;
//红外发送标志
num;
sbitir_in=P3^4;
//红外发射管脚
//sbit
LED二P0"
0;
iraddrl;
〃十六位地址的第一个字节
iraddr2;
//十六位地址的第二个字节
code
table[]={
0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,OxcO,0x88,0x83,0xc6,Oxal,0x86,0x8e
};
〃共阳数码管
//红外数据传输void
SendIRdata(char
p_irdata);
delay(unsignedint);
void
keyscan();
//4键盘扫描
main(void)
num=O;
Pl=0x3f;
count
flag
OP
ir_in=
EA
1;
//允许CPU中断
TMOD
0x11;
〃设定时器0和1为16位模式1
ETO
//定时器0中断允许
TII0
OxFF;
TLO
0xE6;
//设定时值0为38K
也就是每隔26us中断一次
TRO
〃开始计数
iraddrl=3;
//00000011
iraddr2=252;
//11111100
do
keyscan();
)
wh订e⑴;
}
/***********************定时器0中断处理
vXx
timeint(void)
interrupt
1
{
TH0=0xFF;
TL0=0xE6;
//设定时值为38K
count++;
if
(flag==l)
0P=~0P;
//发射管亮
else
//红外发射
//LED二OP;
p_irdata)
//红外数据传输
irdata二p_irdata;
//发送9ms的起始码
endcount二223;
flag=l;
count=0;
do{}while(count>
l;
irdata=iraddr2;
for(i=0;
i>
l;
/******************发送八位数据
^ix
irdata=p_irdata;
irdataJp—irdeita;
endcount二10;
count二0;
do{}while(countO;
x--)
for(y=110;
y>
y--);
/*********************4X4键盘扫描按下按键发射数据
voidkeyscan(){
P2=0xfe;
//第一行temp二P2;
temp二temp
//判断有无按键按下while(temp!
=0xf0)
//有按键按下
//delay(5);
temp二P2;
switch(temp)
case
Oxee:
num二1;
break;
Oxde:
num二2;
Oxbe:
num=3;
0x7e:
num二4;
while(temp!
=OxfO)
temp=temp
Pl二table[num-1];
SendIRdata(table[num-1]);
P2=0xfd;
//第二行
Oxed:
num二5;
Oxdd:
num二6;
Oxbd:
num=7;
0x7d:
num二8;
temp=P2;
Pl=table[num-1];
SendIRdata(table[numT]);
P2=0xfb;
//第三行
//判断有无按键按下
Oxeb:
num二9;
Oxdb:
num二10;
Oxbb:
num二11;
0x7b:
num二12;
while(temp!
SendIRdata(table[num~l]);
P2二Oxf7;
//第四行
〃判断有无按键按下
0xe7:
num=13;
0xd7:
num=14;
0xb7:
num二15;
0x77:
num=16;
6.2接收程序
#define
uchar
uint
dis_num,num,numl,num2tnum3;
sbit
led=PO0;
OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,Oxal,0x86,0x8e
//共阳数码管
0〜~f
prem
二P3“2;
//定义遥控头的接收脚
ram[4]={0,0,0,0};
//存放接受到的4个数据
地址码16位+按键码8位+按键码取反的8位
delaytime(uint
time)
//延迟90uS
a,b;
for(a=time;
a>
a一一)
for(b=40;
b>
b--);
rem()interrupt
〃中断函数
ramc=0;
〃定义接收了4个字节的变量
〃定义现在接收第几位变量
1=0;
//此处变量用来在下面配合连续监测9MS
内是否有高电平
prem=l;
for(i=0;
i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外遥控总结 红外 遥控 总结