基于单片机的红外遥控设计与制作Word文件下载.docx

上传人:b****6 文档编号:16981390 上传时间:2022-11-27 格式:DOCX 页数:17 大小:19.64KB
下载 相关 举报
基于单片机的红外遥控设计与制作Word文件下载.docx_第1页
第1页 / 共17页
基于单片机的红外遥控设计与制作Word文件下载.docx_第2页
第2页 / 共17页
基于单片机的红外遥控设计与制作Word文件下载.docx_第3页
第3页 / 共17页
基于单片机的红外遥控设计与制作Word文件下载.docx_第4页
第4页 / 共17页
基于单片机的红外遥控设计与制作Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

基于单片机的红外遥控设计与制作Word文件下载.docx

《基于单片机的红外遥控设计与制作Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的红外遥控设计与制作Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

基于单片机的红外遥控设计与制作Word文件下载.docx

采用指令键产生电路产生不同的控制指令,单片机进

行状态的编码,直接由单片机的口输出方波信号控制红外

发射管进行发射。

红外发射管采用普通的红外发射二极管。

3.2 

红外遥控接收电路的方案

遥控系统采用红外线脉冲个数编码,直接利用单片机

软件解码,实现功能的遥控。

3.3 

单片机的选择

本设计所编写的程序比较简单,功能也比较少,所用到的

输入输出端口也不是很多,所以我们决定用 

STC89C52 

单片

机来完成本设计,既方便也很实用。

3.4 

红外遥控系统电路的原理框图以及各部分作用

各部分作用:

(1)行列式键盘

行列式键盘又称为矩阵式键盘,用 

I/O 

线组成行列结构,按

键设置在行列的交点上,行列式分别连接到按键开关的两

端。

键盘中有无按键按下是由行线送入扫描字及列线读入

列线状态字来判断的,有键按下时通过查键并执行键功能

程序。

(2)红外线发射电路

遥控器信息码由单片机的定时器 

中断产生 

40KHZ 

红外线

方波信号。

由 

P3.5 

口输出,经过三极管放大,由红外线发

射管发送。

(3)单片机

单片机用于输出方波信号控制红外发射电路的工作。

3.5 

红外接收部分原理框图以及各部分作用

(1)+5V 

电源电路

给单片机最小系统、控制电路提供以及红外接收电路提

供电压。

(2)红外接收电路

红外接收电路把接收到的状态在内部进行解码,从而实

现不同的功能。

(3)控制电路

通过发射电路的按键实现对控制电路的控制作用。

3.6 

系统硬件电路的设计

红外发射电路:

红外接收电路:

4、遥控发射及接收控制电路的软件设计

4.1 

软件设计流程图

4.1.1 

键扫描程序流程图

相应的按键扫描程序:

#include<

reg52.h>

#define 

uint 

unsigned 

int

ucharunsigned 

char

keyrowP0

keylineP2

uchar 

code 

keyv[8]={1,2,4,8};

keyscan(void)

{

keyval,i;

keyval=0;

keyrow=0xfe;

if(keyline!

=0xff)

for(i=0;

i<

4;

i++)

if(~keyline==keyv[i])keyval=i+1;

keyrow=0xfd;

if(~keyline==keyv[i])keyval=i+5;

keyrow=0xfb;

if(~keyline==keyv[i])keyval=i+9;

keyrow=0xf7;

if(~keyline==keyv[i])keyval=i+13;

while(keyline!

=0xff);

return(keyval);

}

4.1.2 

遥控码发射程序流程图

红外信号发射过程:

该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的

码,最小为 

个脉冲,最大为 

17 

个脉冲,为了使接收可靠,

第一位码宽为 

3ms,其余为 

1ms,遥控码数据帧间隔大于

10ms 

当某个被控电器的电源开关被按下时,单片机先读出

键值,然后根据键值设定遥控码的脉冲个数,再调制成 

40kHz

方波由红外线发光管发身出去。

相应的遥控码发射程序如下:

sbit 

remoteout=P3^5;

extern 

void 

delay1ms(uint 

time);

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

init(void) 

remoteout=0;

IE=0x00;

IP=0x08;

TMOD=0x22;

TH1=0xf3;

TL1=0xf3;

EA=1;

/*****************发射函数***********/

send_infrared(uchar 

keyval)

m;

ET1=1;

TR1=1;

delay1ms(3);

ET1=0;

TR1=0;

for(m=keyval;

m>

0;

m--){

delay1ms

(1);

delay1ms(10);

/******************40KHZ 

发生器************/

time_intt1(void) 

interrupt 

remoteout=~remoteout;

4.1.3 

遥控发射主程序流程图

遥控发射的主程序流程图:

首先初始化程序,然后调用键扫

描程序。

相应的发射主程序如下:

keyscan(void);

init(void);

keyval);

time) 

i,j;

time;

for(j=0;

j<

110;

j++);

main()

keyval;

init();

while

(1)

keyval=keyscan();

while(keyscan());

if(keyval) 

{send_infrared(keyval);

4.1.4 

中断程序流程图

中断过程:

首先判断低电平脉宽度是否大于 

2ms,若脉宽不到

2ms,则中断返回;

若低电平大于 

2ms,则接收并对低电平脉冲

计数,接下来看判断高电平脉宽度冲是否大于 

3ms,若脉宽不

到 

3ms,则返回上一接收计数过程;

若高电平脉宽大于 

3ms,则

按照脉冲个数至对应功能程序。

此时中断返回。

相应的中

断程序如下:

intrins.h>

remotein=P3^1;

value;

/***********初始化********/

clearmen(void)

EX0=1;

/**************外中断遥控接收函数**************/

intt0(void) 

keyval,k,sign;

EX0=0;

sign=0;

if(remotein==0)

delay1ms

(2);

while(remotein==0);

keyval++;

k=0;

while(remotein==1)

k++;

if(k>

2)

value=keyval-1;

sign=1;

break;

}if(sign) 

4.1.5 

遥控接收器主程序流程图

相应的接收主程序:

clearmen(void);

temp;

youyi(void)//7 

个流水灯逐个闪动

i;

temp=0x01;

8;

P2=~temp;

delay1ms(1000);

temp<

<

=1;

zuoyi(void) 

//7 

个流水灯反向逐个闪动

temp=0x80;

Temp>

>

quanliang(void)

{uint 

temp=0xfe;

i++)//7 

个流水灯依次全部点亮

P2=temp;

fquanliang(void)

temp=0x7f;

clearmen();

P0=0xff;

while

(1) 

if(value==1){P2=0xfe;

if(value==2){P2=0xfd;

if(value==3){P2=0xfb;

if(value==4{P2=0xf7;

if(value==5){P2=0xef;

if(value==6){P2=0xdf;

if(value==7){P2=0xbf;

if(value==8){P2=0x7f;

if(value==9){P1=0xfe;

if(value==10){P1=0xfd;

if(value==11)youyi();

if(value==12)zuoyi();

if(value==13)quanliang();

if(value==14)fquanliang();

5、演示结果

当按下键 

时,发光二极管 

LED1 

亮;

LED2 

LED3 

LED4 

LED5 

LED6 

LED7 

LED8 

LED9 

LED10 

11 

LED8-LED1 

依次渐亮;

12 

LED1-LED8 

依次全亮;

14 

附录:

1.程序:

keyrow 

P0

keyline 

P2

if(~keyline==keyv[i]) 

keyval=i+1;

keyval=i+13;

delay1

}

接收系统:

接收主程序:

youyi(void)

zuoyi(void)

2.个人小结

这次课程设计我们的题目是设计单片机遥控系统设计,以 

51 

单片机为基础通过

红外发射与接收装置来实现信息的传递,通过这次课程设计,我学会了红外通

信装置的使用以及它们之间编码的设计。

另外,通过自己设计焊接单片机让我

对单片机的结构有了新的认识与理解。

单片机的每一个端口都有自己所需的结

构与电路,特别是 

P0 

口,需要接上拉电阻。

这次课程设计我负责接收模块与部

分程序设计,我用了一个 

hs0038 

一体化红外接收头,使接收电路大大的简洁化

了,为了找 

的电路,还上网找了很多版本的资料,最终确定了一个相对

简单的电路,且比较稳定。

最后实验结果虽然不尽如人意,但是也学会了很多

电路设计的方法。

——————章韬略

这次课程设计,我们的设计共分为两个模块,我负责的是红外发射模块。

首先

我在网上查询了一些关于红外发射模块硬件电路的资料,确定所需要的硬件材

料。

运用软件来绘制出了硬件电路图。

再购买到了材料之后,开始了硬件电路

的焊接工作,焊接完成后,开始编写程序。

在写程序的过程中,我了解到了 

51

单片机芯片的工作原理,学会了矩阵键盘的扫描原则。

同时,也认清了红外发

射的原理,这次我采用的是按脉冲个数来对应相应的功能,相对来说更为简单

易懂。

再完成这些工作之后,我们开始了测试和调节,虽然最终并没有完全达

到预期的效果,但通过这次课程设计,我还是了学会了很多电路设计和单片机

的知识。

-----------陈舒佳

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1