通信系统综合设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

五邑大学

通信系统综合设计报告题目:多路红外遥控器

院系信息工程学院

专业通信工程

学号

学生姓名

指导教师

多路红外遥控器

摘要:本文介绍基于51单片机的多路红外遥控器,可以控制两个LED灯的开关,并且可以对一路LED进行亮度调节。该遥控器采用脉冲个数调制的编码方式,三个按键开关。该遥控器电路简单,体积小,功耗小,易于推广。

关键字:单片机红外发射红外接收

一.设计目的

1.通过实际设计了解加深对通信原理的理论了解;

2.增强同学的动手能力;

3.了解红外发射管和接收头的工作原理和应用方法;

4.了解红外遥控器的红做方式。

二.设计原理

这次课程设计用到了通信原理中的编码和解码,还有调制。利用单片机作为核心,通过程序编写调制和编码的方式,利用PH303红外发射二极管作为发射头发射遥控信号,用HS0038作为接收头接受信号并执行命令。

发射端用单片机控制红外二极管发射红外信号。当按键按下时,单片机读出按键值,根据按键设置的脉冲个数,再调制成40kHz的方波用红外发射管发射出去。

接收端用单片机读取接收管的接收信号,再发出命令控制LED。当没有信号时,HS0038持续输出高电平,当接收到红外光时,HS0038输出低电平。利用HS0038的工作原理,让单片机数脉冲个数来判断发来的指令并加以执行。

无线信号利用空间传输,相互之间必然会有干扰,所以基带信号必须要调制到一定频率的载波上进行传输,利用不同的频率来避免干扰。

该课红外遥控器的编码方式采用脉冲个数编码。按下按键时,先发送一个3ms的脉冲,延时1ms后再发送相应按键设置的脉冲数,每个脉冲1ms。

脉冲个数编码方式比PWM编码方式更容易理解和实现,不过也有缺点。当多路(很多)时,脉冲个数编码将发送很长的脉冲串,不实用。

图2.1 脉冲个数调制视图三.主要元件

STC89C52单片机(最小系统)

PH303红外发射二极管

HS0038红外接收一体头

四.硬件电路设计

1.红外发射电路

该电路采用8050三极管两级放大,这样能产生足够大的电流驱动红外发射管,能增加遥控距离。

2.单片机最小系统

图4.2 单片机最小系统

复位电路采用手动和自动复位,晶振用12M晶振。

3.按键电路

图4.3 按键电路

按键电路将三个按键接在P2.0,P2.1和P2.2口上,按下按键给单片机置低电平。

4.红外接收电路

红外接收采用一体头作为接受管,它起集成了红外接收、带通滤波和放大电路,使用起来方便简单。

图4.4 红外接收电路

5.LED电路

图4.5 LED电路

LED接在单片机P2.0和P2.1口,当单片机输出高电平,灯不亮;当单片机输出低电平,LED亮。

其中LED1可以改变亮度,通过单片机编程使P2.0口输出占空比不同的方波来改变灯的亮度。

五.单片机程序设计流程

1.红外发射部分

图5.1 发送主程序

图5.2 按键扫描流程图

按键扫描过程:先判断是否有按键按下,如果有,扫描P2口的值确定是哪个按键,并执行相应的程序。

图5.3 红外信号发射程序2.红外接收部分

图5.4 接收部分主程序

图5.5 中断过程程序

六.总电路图

1.发射电路图

2.接收电路图

七.总结

这次的通信系统综合设计是基于单片机的红外遥控器,要求每人设计自己的产品并做出实物,在巩固通信原理所学的知识的同时,增强了个人的动手能力和思考能力。

为了做出这次的课程设计,我查阅了不少关于红外遥控的资料,了解了红外遥控的基本原理和几种可用的编码方式,也了解了几种红外发射和接收的元件和连接电路。我对于各种编码方式的思想有了很好的理解和认识,也分析了不同编码方式的好坏。这次我做的红外遥控器采用脉冲个数编码,其特点就是程序简单,便于实现,在实现多路(较少)遥控时比较适合。PWM编码方式程序相对复杂,但准确性比较高,可以控制更多的线路。

总的来说,这次的课程设计使我收获很多,当看到自己的产品能良好的实现功能时,心里的成就感就涌出来,就觉得努力没有白费。

八.参考文献

[1] 樊昌信,曹丽娜.通信原理(第六版)[M].北京:国防工业出版社,2011.

[2] 刘焕成.工程背景下的单片机原理及系统设计(第二版)[M].北京:清华大学出版

社,2011.

[3] 聂诗良,李磊民.红外遥控信号的一种编码解码方法[J].仪表技术与传感器,2004(8).

附录:

发送程序:

#include

#define uchar unsigned char

#define uint unsigned int

/*sbit key0=P2^0; sbit key1=P2^1;

sbit key2=P2^2;*/

#define key P2

sbit hongwai=P1^0;

uint i,j,m;

uchar keyvol;

/*********1毫秒延时程序**********/

delay1ms(uint t)

{

for(i=0;i

for(j=0;j<120;j++);

}

/***********初始化函数**********/

init()

{

P2=0xff;

keyvol=0; //脉冲个数标记清零

hongwai=0; //关遥控输出

IE=0x00;

IP=0x01;

TMOD=0x20; //8位自动重装模式

TH1=0xf3; //40KHZ初值

TL1=0xf3;

EA=1; //开总中断

}

keywork()

{

if(key==0xfe) //按下第一个按键

{

相关文档
最新文档