基于51单片机控制红外通信.doc
《基于51单片机控制红外通信.doc》由会员分享,可在线阅读,更多相关《基于51单片机控制红外通信.doc(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、红外通信原理红外遥控有发送和接收两个组成部分。发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。红外接收完成对红外信号的接收、放大、检波、整形,并解调出遥控编码脉冲.为了减少干扰,采用的是价格便宜性能可靠的一体化红外接收头(HS0038,它接收红外信号频率为38kHz,周期约26 s) 接收红外信号,它同时对信号进行放大、检波、整形得到 TTL 电平的编码信号,再送给单片机,经单片机解码并执行去控制相关对象。具体实现过程如下:(在这里特别强调:编码与解码是一对逆过程,不仅在原理上是一对逆过程,在码的发收过程也是互反的,即以前发射端原始信号是高电平,那
2、接收头输出的就是低电平,反之亦然。因此为了保证解码过程简单方便,在编码时应该直接换算成其反码。)1。红外发射部分:下图为红外发射部分的电路拟图:编码过程:(1) 二进制信号的调制二进制信号的调制由单片机来完成,它把编码后的二进制信号调制成频率为38kHz的间断脉冲串(用定时器来完成),相当于用二进制信号的编码乘以频率为38kHz的脉冲信号得到的间断脉冲串,即是调制后用于红外发射二极管发送的信号。(2)PPM编码这种遥控编码具有以下特征:遥控编码脉冲由前导码、16 位地址码(8位地址码、8 位地址码的反码)和16 位操作码(8 位操作码、8 位操作码的反码)组成.前导码:是一个遥控码的起始部分,
3、由一个9ms的高电平 ( 起始码) 和一个4。 5ms的低电平 ( 结果码)组成,作为接受数据的准备脉冲。16位地址码:能区别不同的红外遥控设备,防止不同机种遥控码互相干扰。16 位操作码:用来执行不同的操作。采用脉宽调制的串行码,以脉宽为0.56ms、间隔0。56ms、周期为1.12ms的组合表示二进制的“0”;以脉宽为1。68ms、间隔0.56ms、周期为2。24ms的组合表示二进制的“1。 (3)发送程序#include AT89X51。h static bit OP; /红外发射管的亮灭控制位static unsigned int count; /延时计数器static unsigne
4、d int endcount; /终止延时计数static unsigned char flag; /红外发送标志sbit P3_4=P34;char iraddr1; /十六位地址的第一个字节char iraddr2; /十六位地址的第二个字节void SendIRdata(char p_irdata);/发送子函数void delay();void main(void) count = 0; flag = 0;/无载波 OP = 0;/不亮 P3_4 = 0;/在后面会发现用OP赋值的 EA = 1; /允许CPU中断 TMOD = 0x11; /设定时器0和1为16位模式1 ET0 =
5、1; /定时器0中断允许 TH0 = 0xFF; TL0 = 0xE6; /设定时值0为38K 也就是每隔26us中断一次 TR0 = 1;/开始计数 iraddr1=3;/自定义的一个地址 iraddr2=252;/地址反码 do delay(); SendIRdata(12); while(1); /定时器0中断处理void timeint(void) interrupt 1 TH0=0xFF; TL0=0xE6; /设定时值为38K 也就是每隔26us中断一次 count+; if (flag=1) OP=OP; /如果是待发送的有效数据flag=1,就在此产生载波(亮灭交变) else
6、 OP = 0; P3_4 = OP; void SendIRdata(char p_irdata)/发送数据子函数 int i; char irdata=p_irdata;/*/ /发送9ms的起始码,并是载波模式有效 endcount=223; flag=1; count=0;while(countendcount);/等待中断,控制亮灭交变的总时间为9ms /发送4.5ms的结果码,并是载波模式无效 endcount=117 flag=0; count=0; dowhile(countendcount);/*/ /发送十六位地址的前八位 irdata=iraddr1; for(i=0;i
7、1;/依次取位 /发送十六位地址的后八位 irdata=iraddr2;/此处已经是地址的反码 for(i=0;i8;i+) endcount=10; flag=1; count=0; while(countendcount); if(irdata(irdata/2)*2) endcount=41; else endcount=15; flag=0; count=0; dowhile(count1; /*/ /发送八位数据 irdata=p_irdata; for(i=0;i8;i+) endcount=10; flag=1; count=0;while(countendcount); if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 控制 红外 通信
限制150内