红外发射接收课程设计报告Word下载.docx
- 文档编号:19446787
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:36
- 大小:1.02MB
红外发射接收课程设计报告Word下载.docx
《红外发射接收课程设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《红外发射接收课程设计报告Word下载.docx(36页珍藏版)》请在冰豆网上搜索。
该装置由发射机与接收机组成,其方框图参见图1。
接收机可以收到发射机送来的信号,并具有显示功能。
红外发射二极管
编码、调制部分
信号输入部分
红外接收
二极管
输出部分
解调、解码部分
红外发射部分
红外接收部分
图1红外发射与接收系统方框图
装置中调制方式自由选定。
二、设计要求
1.基本要求
(1)点对点(发射机与接收机)无线传输方式。
(2)载波频率可变,介于36kHz-40kHz之间,需提供测试端口。
(3)传输距离达5米。
(4)信号输入部分:
有16个按键,代表0-F键;
。
(5)输出部分:
显示接收到的键值,如发射机按下0号键,接收机显示0,依此类推。
2.发挥部分
(1)未按下0-F键时,发射机处于待机模式,此时整机电流低于100uA下。
(2)载波频率在36kHz-40kHz之间变化时,接收端也能显示正确的键值。
(3)接收机与发射机距离5米以上。
(4)能识别所接收的载波信号频率并正确显示频率。
(5)其他。
三.总体设计
本设计包括两大模块:
红外发射模块和红外接受模块。
在发射端,输入信号经放大后送入红外发射管发射,在接收端,接收管收到红外信号后,由放大器放大处理后还原成信号,这就是红外的简单发射接收原理。
如框图所示
键盘
其代码
编码
调制
制振荡
红外
发射
接收
解码
解调
显示
1
·
方案选择
方案一一般通常采用专用编码译码配对芯片,组成红外发射和接收电路,完成对设备或电路的远程控制。
例如用MC145026/MC145027作为编、译码芯片,它们使用于电压范围宽,功耗低,功能强,宜于采用红外、超声、光纤、射频、电力线载波等各种传输方式的接口,用于各种控制。
如图2所示为按此方法进行红外遥控的一般工作过程。
红外遥控专用芯片系统工作原理示意图
使用专用的配对编、解码芯片来组成红外发射电路和红外接收电路,在控制路数较少时矛盾并不突出。
但是当控制路数较多时,其接口的设计和实现就显得比较繁琐;
此外因为编、解码芯片通常是专用配对使用的,即某种解码芯片只能识别某种编码芯片的编码,对其他型号的编码芯片的编码则不能识别。
因此,不同的编、解码芯片几乎没有互换性。
故在本设计中不采用此方案。
方案二
采用STC公司AT89C51单片机作为编码器和解码器硬件核心。
如下图为红外发射部分的原理图
STC89C52单片机
+5V电源
行列式键盘
低功耗空闲方式
控制电路
红外管发射电路
发射电路由:
按键电路,复位电路,AT89S51编码电路,红外发射电路,电源电路组成。
按键电路:
用于输入相应编码,输入到单片机后让单片机解码出相应按键。
复位电路:
用于当单片机出现故障或进入死循环后让单片机重新复位启动。
AT89S51编码电路:
电路采用不同的脉冲宽度电路实现不同的二进制信号的编码,由单片机完成。
载波信号采用38KHz的矩形波,它由子程序产生,矩形波周期为26μs,对要发送的信号进行调制。
电源电路:
外接有+5V电源插座
如下图是红外接收部分原理图
红外接收电路
状态指示电路
显示控制电路
+5V电源
其中发射模块的编码与接收部分的解码由单片机控制。
这里采用方案二
四.设计原理分析
4.1矩阵键盘和发射电路
根据红外发射管本身的物理特性,必须要有载波信号与即将发射的信号相“与”,然后将相“与”后的信号送发射管,才能进行红外信号的发射传送,而在频率为38KHz的载波信号下,发射管的性能最好,发射距离最远,所以在硬件设计上,本设计采用38KHz的晶振产生载波信号,与发射信号进行逻辑“与”运算后,通过三极管的功率驱动到红外发光二极管上[18]。
红外发送电路由4001MOS或非门38KHz振荡器,单片机发送控制电路和红外发送管驱动输出电路组成,当单片机P3.4口输出为“0”时,发射管不发光,当单片机P3.4口输出为“1”时,红外发送管发出38KHz调制红外线。
电路图:
4.2低功耗控制电路
4.2.1低功耗的实现方法
AT89C2051单片机的CPU有两种节电工作方式即空闲方式和掉电方式,遥控器采用了空闲节电方式。
当CPU执行完IDL=1(PCON.0=1)指令后,系统进入空闲工作方式,这时内部时钟不向CPU提供,而只供给中断、串行口、定时器部分。
遥控器退出低功耗空闲方式电路由与门来实现。
当有键按下时,由与门触发外部中断1发生中断,单片机退出空闲工作方式,进入键盘和红外发射程序,结束后又进入低功耗空闲方式待机。
使用过程中单片机基本上都处于空闲工作方式,功耗相当低,从而为使用电池电源提供保障。
4.2.2掉电保护和低功耗的设计
1.掉电保护
在单片机工作时,供电电源如果发生停电或瞬间停电,将会使单片机停止工作。
待电源恢复时,单片机重新进入复位状态,停电前RAM中的数据全部丢失,这种现象对于一些重要的单片机应用系统是不允许的。
在这种情况下,需要进行掉电保护处理。
掉电保护具体操作过程如下。
单片机应用系统的电压检测电路检测到电源电压下降时,触发外部中断(INT0或INT1),在中断服务子程序中将外部RAM中的有用数据送入内部RAM保存。
因单片机电源入口的滤波电容的储能作用,可以有足够的时间来完成中断操作。
备用电源自切换电路属于单片机内部电路。
它由两个二极管组成,当电源电压高于VPD引脚的备用电源电压时,VD1导通,VD2截止,单片机由电源供电;
当电源电压降到比备用电源电压低时,二极管VD1截止,VD2导通,单片机由备用电源供电[15]。
备用电源只为单片机内部RAM和专用寄存器提供维持电流,这时单片机外部的全部电路因停电而停止工作,时钟电路也停止工作,CPU因无时钟也不工作。
当电源恢复时,备用电源还会继续供电一段时间,大约10ms,以确保外部电路达到稳定状态。
在结束掉电保护状态时,首要的工作是将被保护的数据从内部RAM中恢复过来。
当用户检测到一个掉电保护电路时,立即通过外部中断输入线INT0来中断单片机现行操作。
外部中断0服务程序将有关数据信息送入片内RAM保存,然后向P1.0写入0,P1.0输出的这个低电平触发单稳态电路MC755。
它输出的脉宽取决于R、C的数值及VCC是否以掉电。
如果当单稳态定时输出后,若VCC仍然存在,这是一个假掉电报警,并从复位开始重新操作;
若VCC已掉电,则断电期间由单稳态电路给RESET/VPD供电,维持片内RAM处于“饿电流”供电状态保存信息,一直维持到VCC恢复为止。
80C51的掉电保护过程则不同。
当电压检测电路检测到电源电压降低时,也触发外部中断,在中断服务子程序中,除了要将外部RAM中的有用数据保存以外,还要将特殊功能寄存器的有用内容保护起来,然后对电源控制寄存器PCON进行设置。
PCON寄存器的各位定义如下。
D7D6D5D4D3D2D1D0
SMOD
—
GF1
GF0
PD
IDL
其中,SMOD是波特率倍增位,在串行通信中使用。
GF1、GF0:
通用标志,由软件置位、复位。
PD:
掉电方式控制位,PD=1,则进入掉电方式。
IDL:
待机方式控制位,IDL=1,则进入待机方式。
由软件将PD置1,就可以使单片机进入掉电保护状态。
这时,单片机的一切工作都停止,只有内部RAM和专用寄存器的内容被保存。
掉电保护时的备用电源是通过VCC引脚接入的。
当电源恢复正常后,系统要维持10ms的恢复时间后才能退出掉电保护状态,复位操作将重新定义专用寄存器,但内部RAM的内容不变,可将被保护的内容恢复。
2.低功耗设计
在很多情况下,单片机要工作在供电困难的场合,如野外、井下和空中,对于便携式仪器要求用电池供电,这时都希望单片机应用系统能低供耗运行。
以CMOS工艺制造的80C31/80C51/87C51型单片机提供了空闲工作方式。
空闲工作方式(通常也指待机工作方式)是指CPU在不需要执行程序时停止工作,以取代不停的执行空操作或原地踏步等待操作,达到减小功耗的目的。
空闲工作方式是通过设置电源控制寄存器PCON中的IDL位来实现的。
用软件将IDL位置1,系统进入空闲工作方式。
这时,送往CPU的时钟被封锁,CPU停止工作,但中断控制电路、定时/计数器和串行接口继续工作,CPU内部状态如堆栈指针SP、程序计数器PC、程序状态寄存器PSW、累加器ACC及其他寄存器的状态被完全保留下来。
在空闲工作方式下,80C51消耗的电流由正常的24mA将为3mA。
单片机退出空闲状态有如下两种方法。
第一种是中断退出。
由于空闲方式下,中断系统还在工作,所以任何中断的响应都可以使IDL位由硬件清零,而退出空闲方式下,单片机就进入中断服务程序。
第二种是硬件复位退出。
复位时,各个专用寄存器都恢复默认状态,电源控制寄存器PCON也不例外,复位使IDL清零,退出空闲工作方式。
MCS—51的掉电保护也是一种节电工作方式,它和空闲工作方式一起构成了低功耗工作方式。
一旦用户检测到掉电发生,在VCC下降之前写一个字节到PCON,使PD=1,单片机进入掉电方式。
在这种方式下,片内震荡器被封锁,一切功能都停止,只有片内RAM00H—7FH单元的内容被保留。
在掉电方式下,Vcc可降至2V,使片内RAM处于50微安左右的“饿电流”供电状态,以最小的耗电保存信息,Vcc恢复正常之前,不可进行复位;
当Vcc正常后,硬件复位10ms即能使单片机退出掉电方式[17]。
在该电路中,退出空闲工作方式采用中断的方法。
当遥控键盘上的人任一个按键按下以后,与门输出即为低电平,触发INT1引脚,外部中断1响应,使IDL位清零,退出空闲工作方式,恢复正常状态。
4.3红外接收电路的设计
电路图
4.4最小系统设计
五.编码原理
编码图:
遥控器发射信号时序
遥控编码脉冲由引导码、用户码、功能码和功能码的相反码组成,用户码是同一组码发送两次,。
用户码为8位,所以整个脉冲码为32位。
引导码作为接收数据的准备脉冲,他由8TCP(415ms)的高电平和8TCP(415ms)的低电平组成。
用户码和功能码采用脉冲位置调制(PPM)方式编码,根据脉冲之间的时间间隔来区分码值的“0”或“1”。
对应于二进制数字信号的“0”或“1”,脉冲时间间隔分别为2TCP(11125ms)和4TCP(2125ms),而每一脉冲的宽度仍不变,均为TCP(015626ms)。
由于用户码发送两次,功能码与其相反码一起发送,因此系统的误动作很少。
图10 遥控编码脉冲
本遥控器采用第一次发送的遥控信号的编码脉冲和第二、第三次连续发送的遥控信号的编码脉冲不同的工作方式。
这样,当按键一直按着的时候,从第二次连续发送开始,只发送引导码和用户码第一位SO的相反码SO,因此可减少接收处理时间和红外发光二极管功耗,遥控编码脉冲经脉冲载波调制后由TC9021F的第⑤脚输出,再经激励器驱动红外发光二极管,发送出波长为940nm的脉冲红外光。
假设用户码为十六进制的76H,则第一次发送的遥控信号的编码脉冲
第一次发送的遥控信号的编码脉冲
第二以后连续发送的遥控信号的编码脉冲
可以看出,遥控编码脉冲波形的输出时间为192TCP或224TCP,a为用户码(8位)的输出时间。
当a≥26TCP时,遥控编码脉冲波形输出时间为224TCP。
另外,对于连续发送的编码脉冲中用户码第一位的相反码的脉冲间隔时间,当SO=“1”时,则SO=“0”,该时间为2TCP,当SO=“0”时,则SO=“1”,该时间为4TCP。
六、单片机程序设计
发射单片机程序主要解决的问题就是如何对发射的信号进行编码。
4x4矩阵键盘通过中断形式接到单片机,在按键没被按下时,单片机处于休眠状态,当按键被按下时,通过中断唤醒单片机,驱动红外管发射相应信号。
开始
初始化、进入休眠
中断0?
获取键盘值
继续休眠
发相应波形
接受单片机程序主要解决的问题就是如何对接收到发射的信号进行解码,编码脉冲信号是由引导码、用户码、和功能码等部分组成,我们只对获取其功能码过程进行分析。
在单片机设置中,将单片机AT89C51内部定时器/计数器T0设为定时方式1,定时时间为1ms;
设外部中断INT0为下降沿中断触发方式,由于在接收时将编码脉冲信号进行反相,因此,每当INT0外管脚信号下降沿到来时,外部中断INT0发生中断,启动定时器T0,定时器每次中断定时时间为1ms并累加到定时计数器中,在下一次外部中断INT0发生中断时读取定时计数器中的时间,通过对两个脉冲之间的定时时间的分析来对遥控器功能码进行解码。
图18、图19和图20分别给出解码器主程序、定时器T0中断程序和外部中断INT0中断程序的流程图。
图18主程序流程图图19定时器T0中断程序流程图
六测试方案与测试结果
1、调试方法与仪器:
调试方法:
PROTUES仿真,把电路分为好几个模块,分别调试
仪器:
示波器,万用表,pc机
2、测试结果分析:
通过protues仿真和真实电路(一体化接收头)都实现发射端按下一个键,接收端lcd1602显示相应的键值。
通过示波器捕捉发射的波形,跟理论上程序预想的发射波形一致。
七.心得体会
八、附录
发射电路图
接受电路图
发射程序:
#include"
reg52.h"
#defineucharunsignedchar
#defineuintunsignedint
#defineKEYP1
//sbitLED=P1^1;
sbitIR_OUT=P2^2;
//sbitkey=P1^2;
sbitp3_2=P3^2;
sbitp3_3=P3^3;
sbitrow1=P0^0;
sbitrow2=P0^1;
sbitrow3=P0^2;
sbitrow4=P0^3;
sbitcol1=P0^4;
sbitcol2=P0^5;
sbitcol3=P0^6;
sbitcol4=P0^7;
ucharflag=0;
ucharkey=0;
ucharpwm=0,Cycle=4,Duty=1;
ucharfre=38;
ucharKeyScan();
voidTimer_init(void);
voidSend_Char(uchar,int);
voiddelay_ms(uint);
voiddelay(uchar);
voidmain()
{
uchartemp=0,tmp;
Timer_init();
KEY=0xf0;
PCON=(PCON&
0xfc)|0x02;
while
(1)
{
EA=1;
//IR_OUT=1;
if(flag)
{
delay_ms(100);
Send_Char(key,fre);
flag=0;
}
else
KEY=0xf0;
PCON=0x02;
}
ucharKeyScan()
uchartemp,key;
P1=0xfe;
temp=P1;
temp=temp&
0xf0;
if(temp!
=0xf0)
delay(10);
switch(temp)
case0xee:
key=0;
break;
case0xde:
key=1;
case0xbe:
key=2;
case0x7e:
key=3;
}
while(temp!
//P1=0xfe;
return(key);
P1=0xfd;
case0xed:
key=4;
case0xdd:
key=5;
case0xbd:
key=6;
case0x7d:
key=7;
temp=P3;
//P1=0xfc;
P1=0xfb;
case0xeb:
key=8;
case0xdb:
key=9;
case0xbb:
key=10;
case0x7b:
key=11;
P1=0xf8;
P1=0xf7;
case0xe7:
key=12;
case0xd7:
key=13;
case0xb7:
key=14;
case0x77:
key=15;
//P1=0xf0;
//发送引导码发送方:
4.5ms高电平4.5ms低电平
voidSend_Start_Bit(void)//TR1的值=发送的电平
{
//4.5ms1
TH0=(65536-8295)/256;
TL0=(65536-8295)%256;
TR0=1;
TR1=1;
while(!
TF0);
TR1=0;
TF0=0;
TR0=0;
IR_OUT=0;
//4.5ms0
TH0=(65536-4146)/256;
TL0=(65536-4146)%256;
}
//发送0
voidSend_Bit_0(void)
//0.565ms1
TH0=(65536-521)/256;
TL0=(65536-521)%256;
//0.565ms0
//发送1
voidSend_Bit_1(void)
//0.565ms1
//1.685ms0
TH0=(65536-1563)/256;
TL0=(65536-1563)%256;
voidSend_over(void)//发送一个结束码,因为最后一个位只有遇到下降沿才能读取(发射端的上升沿)
//0.500ms1//小于0.5ms接收端很难识别到
TH0=(65536-500)/256;
TL0=(65536-500)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 红外 发射 接收 课程设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)