文档库 最新最全的文档下载
当前位置:文档库 › 基于单片机的红外遥控设计与制作

基于单片机的红外遥控设计与制作

基于单片机的红外遥控设计与制作
基于单片机的红外遥控设计与制作

基于单片机的红外遥控设计与制作

13工试2班陈舒佳章韬略

一、设计目的

对于本课题的研究,其理论中的价值是对红外线这种电磁波的特性进行更加深入的研究。同时在与单片机和电子电路的共同作用下,找到单片机及电子电路在实际运用中的更多功能,从而挖掘出红外线和硬件设备结合中的更多可能性。在现实意义中,对于红外线的使用,它不仅提高了单片机、硬件设备和硬件系统在智能遥控领域的广泛应用,而相对了在硬件设施上使用了红外线的遥控技术,也同时大大拓宽了硬件设施的应用范围。在不久的将来,我相信,人们对于红外遥控控制的运用,会变得越来越广。

二、设计要求

基本功能要求:

1.以一个单片机作为控制遥控器,另一个单片机控制系统为被遥控对象;

2.用遥控器的10个遥控开关,控制遥控对象的10个电源开关通断;

3.能实现10个电源开关状态显示;

4.能实现定时开关某一个电源开关。

扩展功能:

1.能实现灯光亮度连续调节;

2.能根据不同电器实现不同时间通断控制;

3.其他扩展功能。

三、方案设计

3.1红外遥控发射电路的方案

采用指令键产生电路产生不同的控制指令,单片机进行状态的编码,直接由单片机的口输出方波信号控制红外发射管进行发射。红外发射管采用普通的红外发射二极管。

3.2红外遥控接收电路的方案

遥控系统采用红外线脉冲个数编码,直接利用单片机软件解码,实现功能的遥控。

3.3单片机的选择

本设计所编写的程序比较简单,功能也比较少,所用到的输入输出端口也不是很多,所以我们决定用STC89C52单片机来完成本设计,既方便也很实用。

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

各部分作用:

(1)行列式键盘

行列式键盘又称为矩阵式键盘,用I/O线组成行列结构,按键设置在行列的交点上,行列式分别连接到按键开关的两端。键盘中有无按键按下是由行线送入扫描字及列线读入列线状态字来判断的,有键按下时通过查键并执行键功能程序。

(2)红外线发射电路

遥控器信息码由单片机的定时器1中断产生40KHZ红外线方波信号。由P3.5口输出,经过三极管放大,由红外线发射管发送。

(3)单片机

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

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

各部分作用: (1)+5V电源电路

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

(2)红外接收电路

红外接收电路把接收到的状态在内部进行解码,从而实现不同的功能。

(3)控制电路

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

3.6系统硬件电路的设计

红外发射电路:

红外接收电路:

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

4.1 软件设计流程图

4.1.1键扫描程序流程图

相应的按键扫描程序:#include

#define uint unsigned int

#define uchar unsigned char

#define keyrow P0

#define keyline P2

uchar code keyv[8]={1,2,4,8}; uchar keyscan(void)

{

uchar 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!=0xff)

for(i=0;i<4;i++)

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

if(keyline!=0xff)

for(i=0;i<4;i++)

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

if(keyline!=0xff)

for(i=0;i<4;i++)

if(~keyline==keyv[i]) keyval=i+13; while(keyline!=0xff);

return(keyval);

}

红外信号发射过程:

该遥控器采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为2个脉冲,最大为17个脉冲,为了使接收可靠,第一位码宽为3ms,其余为1ms,遥控码数据帧间隔大于10ms 。当某个被控电器的电源开关被按下时,单片机先读出键值,然后根据键值设定遥控码的脉冲个数,再调制成40kHz 方波由红外线发光管发身出去。

sbit remoteout=P3^5;

extern void delay1ms(uint time);

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

void init(void) {

remoteout=0;

IE=0x00;

IP=0x08;

TMOD=0x22;

TH1=0xf3;

TL1=0xf3;

EA=1;

}

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

void send_infrared(uchar keyval)

{

uchar m;

ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;

for(m=keyval;m>0;m--) {

delay1ms(1);

ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; }

delay1ms(10);

}

/******************40KHZ发生器************/ void time_intt1(void) interrupt 3 {

remoteout=~remoteout; }

4.1.3遥控发射主程序流程图

遥控发射的主程序流程图:首先初始化程序,然后调用键扫描程序。相应的发射主程序如下:

#include

#define uint unsigned int

#define uchar unsigned char

extern uchar keyscan(void);

extern void init(void);

extern void send_infrared(uchar keyval);

void delay1ms(uint time) {

uint i,j;

for(i=0;i

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

}

void main()

{

uint keyval;

init();

while(1)

{

keyval=keyscan();

while(keyscan());

if(keyval) {send_infrared(keyval);}

}

}

4.1.4 中断程序流程图

中断过程:首先判断低电平脉宽

度是否大于2ms,若脉宽不到2ms,则中断返回;若低电平大于2ms,则接收并对低电平脉冲计数,接下来看判断高电平脉宽度冲是否大于3ms,若脉宽不到3ms,则返回上一接收计数过程;若高电平脉宽大于3ms,则按照脉冲个数至对应功能程序。此时中断返回。相应的中断程序如下:

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit remotein=P3^1;

extern void delay1ms(uint time);

uchar value;

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

void clearmen(void)

{

EX0=1;

EA=1;

}

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

void intt0(void) interrupt 0

{ uchar keyval,k,sign;

EX0=0;sign=0;keyval=0;

if(remotein==0)

{

delay1ms(2);

if(remotein==0)

while(1)

{

while(remotein==0);

keyval++;k=0;delay1ms(1);

while(remotein==1)

{

delay1ms(1);k++;

if(k>2)

{

value=keyval-1;

sign=1;

break;

}

} if(sign) break;

}

}

EX0=1;

}

4.1.5遥控接收器主程序流程图

相应的接收主程序:

#include

#include

#define uchar unsigned char

#define uint unsigned int

extern void clearmen(void);

extern uchar value;

uchar temp;

void delay1ms(uint time) {

uint i,j;

for(i=0;i

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

void youyi(void) //7个流水灯逐个闪动

{ uint i;

temp=0x01;

for(i=0;i<8;i++)

{

P2=~temp;

delay1ms(1000);

temp<<=1;

}

}

void zuoyi(void) //7个流水灯反向逐个闪动{ uint i;

temp=0x80;

for(i=0;i<8;i++)

{

P2=~temp;

delay1ms(1000);

Temp>>=1;

}

}

void quanliang(void)

{uint i;

temp=0xfe;

for(i=0;i<8;i++) //7个流水灯依次全部点亮{

P2=temp;

delay1ms(1000);

temp<<=1;

}

}

void fquanliang(void)

{

uint i;

temp=0x7f;

for(i=0;i<8;i++) //7个流水灯依次全部点亮{

P2=temp;

delay1ms(1000);

Temp>>=1;

}

void main()

{ 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();

}

}

五、演示结果

当按下键1时,发光二极管LED1亮;

当按下键2时,发光二极管LED2亮;

当按下键3时,发光二极管LED3亮;

当按下键4时,发光二极管LED4亮;

当按下键5时,发光二极管LED5亮;

当按下键6时,发光二极管LED6亮;

当按下键7时,发光二极管LED7亮;

当按下键8时,发光二极管LED8亮;

当按下键9时,发光二极管LED9亮;

当按下键10时,发光二极管LED10亮;

当按下键11时,发光二极管LED8-LED1依次渐亮;

当按下键12时,发光二极管LED1-LED8依次渐亮;当按下键13时,发光二极管LED8-LED1依次全亮;当按下键14时,发光二极管LED1-LED8依次全亮;附录:

1.程序:

#include

#define uint unsigned int

#define uchar unsigned char

#define keyrow P0

#define keyline P2

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

uchar keyscan(void)

{

uchar 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!=0xff)

for(i=0;i<4;i++)

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

keyrow=0xfb;

if(keyline!=0xff)

for(i=0;i<4;i++)

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

keyrow=0xf7;

if(keyline!=0xff)

for(i=0;i<4;i++)

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

while(keyline!=0xff);

return(keyval);

}

sbit remoteout=P3^5;

extern void delay1ms(uint time);

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

void init(void) {

remoteout=0;

IE=0x00;

IP=0x08;

TMOD=0x22;

TH1=0xf3;

TL1=0xf3;

EA=1;

}

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

void send_infrared(uchar keyval)

{

uchar m;

ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;

for(m=keyval;m>0;m--) {

delay1

ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; } delay1ms(10);

}

/******************40KHZ发生器************/

void time_intt1(void) interrupt 3 {

remoteout=~remoteout; }

extern uchar keyscan(void);

extern void init(void);

extern void send_infrared(uchar keyval);

void delay1ms(uint time) {

uint i,j;

for(i=0;i

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

}

void main()

{

uint keyval;

init();

while(1)

{

keyval=keyscan();

while(keyscan());

if(keyval) {send_infrared(keyval);}

}

接收系统:

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit remotein=P3^1;

extern void delay1ms(uint time);

uchar value;

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

void clearmen(void)

{

EX0=1;

EA=1;

}

/**************外中断遥控接收函数**************/ void intt0(void) interrupt 0

{ uchar keyval,k,sign;

EX0=0;sign=0;keyval=0;

if(remotein==0)

{

delay1ms(2);

if(remotein==0)

while(1)

{

while(remotein==0);

keyval++;k=0;delay1ms(1);

while(remotein==1)

{

delay1ms(1);k++;

if(k>2)

{

value=keyval-1;

sign=1;

break;

}

} if(sign) break;

}

EX0=1;

}

接收主程序:

extern void clearmen(void); extern uchar value;

uchar temp;

void delay1ms(uint time) { uint i,j;

for(i=0;i

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

}

void youyi(void)

{ uint i;

temp=0x01;

for(i=0;i<8;i++)

{

P2=~temp;

delay1ms(1000);

temp<<=1;

}

}

void zuoyi(void)

{ uint i;

temp=0x80;

for(i=0;i<8;i++)

{

P2=~temp;

delay1ms(1000);

Temp>>=1;

}

}

void quanliang(void) {uint i;

temp=0xfe;

for(i=0;i<8;i++)

{

P2=temp;

delay1ms(1000);

temp<<=1;

}

void fquanliang(void)

{

uint i;

temp=0x7f;

for(i=0;i<8;i++)

{

P2=temp;

delay1ms(1000);

Temp>>=1;

}

}

void main()

{ 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();

}

}

2.个人小结

这次课程设计我们的题目是设计单片机遥控系统设计,以51单片机为基础通过红外发射与接收装置来实现信息的传递,通过这次课程设计,我学会了红外通信装置的使用以及它们之间编码的设计。另外,通过自己设计焊接单片机让我对单片机的结构有了新的认识与理解。单片机的每一个端口都有自己所需的结构与电路,特别是P0口,需要接上拉电阻。这次课程设计我负责接收模块与部分程序设计,我用了一个hs0038一体化红外接收头,使接收电路大大的简洁化了,为了找hs0038的电路,还上网找了很多版本的资料,最终确定了一个相对简单的电路,且比较稳定。最后实验结果虽然不尽如人意,但是也学会了很多电路设计的方法。

——————章韬略

这次课程设计,我们的设计共分为两个模块,我负责的是红外发射模块。首先我在网上查询了一些关于红外发射模块硬件电路的资料,确定所需要的硬件材料。运用软件来绘制出了硬件电路图。再购买到了材料之后,开始了硬件电路的焊接工作,焊接完成后,开始编写程序。在写程序的过程中,我了解到了51单片机芯片的工作原理,学会了矩阵键盘的扫描原则。同时,也认清了红外发射的原理,这次我采用的是按脉冲个数来对应相应的功能,相对来说更为简单易懂。再完成这些工作之后,我们开始了测试和调节,虽然最终并没有完全达到预期的效果,但通过这次课程设计,我还是了学会了很多电路设计和单片机的知识。

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

基于51单片机的红外遥控

基于51单片机的红外遥控 红外遥控是无线遥控的一种方式,本文讲述的红外遥控,采用STC89C52单片机,1838红外接收头和38k红外遥控器。 1838红外接收头: 红外遥控器: 原理: 红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚,也比较全面,https://www.wendangku.net/doc/6e2795756.html,/view/c353e8360b4c2e3f57276349.html 我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每按下一个键,遥控器上的红外发射头都会发出一个32位的编码(32位编码分成4组8位二进制编码,前16位为用户码和用户反码,后16位为数据码和数据反码,用户码表示遥控器类型,数据码表示按键编码),不同的键对应不同的编码,红外接收头接收到这个编码后,发送给单片机,再进行相关操作。 源程序1:(这个程序的功能是将用户码和用户反码,数据码和数据反码显示在1602液晶上,因为遥控器买回来是不会说明按键对应什么码值,所以先自己测试,确定每个 按键的码值) #include #include #include #define uint unsigned int #define uchar unsigned char #define _Nop() _nop_() #define TURE 1 #define FALSE 0

/*端口定义*/ sbit lcd_rs_port = P3^5; /*定义LCD控制端口*/ sbit lcd_rw_port = P3^6; sbit lcd_en_port = P3^4; #define lcd_data_port P0 /////////////////////////////////// void delay1 (void)//关闭数码管延时程序 { int k; for (k=0; k<1000; k++); } //////////////////////////////////// uchar code line0[16]={" user: "}; uchar code line1[16]={" data: "}; uchar code lcd_mun_to_char[16]={"0123456789ABCDEF"}; unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4];//用来存放用户码、用户反码、数据码、数据反码unsigned char irdata[33];//用来存放32位码值 void ShowString (unsigned char line,char *ptr); ////////////////////////////////////////////// void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void); void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数 { irtime++; } void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数 { static unsigned char i; static bit startflag; if(startflag){ if(irtime<63&&irtime>=33)//引导码TC9012的头码 i=0; irdata[i]=irtime; irtime=0; i++; if(i==33){ irok=1; i=0; }

单片机的红外遥控器解码设计

第1章红外解码系统分析 第1节设计要求 整个控制系统的设计要求:被控设备的控制实时反应,从接收信号到信号处理及对设备控制反映时间应小于1s;整个系统的抗干扰能力强,防止误动作;整个系统的安装、操作简单,维护方便;成本低。 红外载波、编码电路设计要求:单片机定时器精确产生38KHz红外载波;根据控制系统要求能对红外控制指令信号精确编码并迅速发送。 红外解码电路设计要求:精确接收红外信号,并对所接收信号进行解码、放大、整形、解调等处理,最后输出TTL电平信号;对非红外光及边缘红外光抗干扰能力强。 设备扩展模块设计要求:直流控制交流;抗干扰能力强;反应迅速不产生误动作;能承受大电流冲击。 第2节总体设计方案 2.1方案论证 驱动与开关 方案一:采用晶闸管直接驱动。 其优点是体积小,电路简单,外围元件少。但控制电流小,大电流晶闸管成本高,并且隔离性能差。 方案二:采用三极管驱动继电器。 其体积大,外围元件多。优点是控制电流大,隔离性能好。 根据实际情况,拟采用方案二。 2.2总体设计框图 经过上述方案的分析选择,得出系统硬件由以下几部分组成:电视红外遥控器,51单片机最小系统,接收放大于一体集成红外接收头,1602液晶显示驱动电路。 整体设计思路为:根据扫描到不同的按键值转至相对应的ROM表读取数据。确认设备及菜单选择键后AT89S2将从ROM读取出来的值,按照数据处理要求从P2.5输出控制脉冲与T0产生的38KHz的载波(周期是26.3μs)进行调制,经NPN三极管对信号放大驱动红外发光管将控制信号发送出去。红外数据接收则是采用HS0038一体化红外接收头,内部集成红外接收、数据采集、解码的功能,只要在接收端INT0检测头信号低电平的到来,就可完成对整个串行的信号进行分析得出当前控制指令的功能。然后根据所得的指令去操作相应的用电器件工作,如图1-1所示。

红外线遥控器应用技术论文

红外线遥控器应用技术论文 红外线遥控器常用于电视机、空调、VCD、DVD、音响、门锁等的控制,下面是由 ___的红外线遥控器应用技术,谢谢你的阅读。 红外线遥控器检测仪的电路设计与制作 摘要:以往检测遥控器的好坏,常用收音机测听,但是收音机只能收到遥控信号的高次谐波,信号微弱,检测效果不理想。该文中设计制作的遥控检测仪是专门用来检测红外线遥控器和其他红外线的产品,只要判断是否发射了红外遥控信号,使用220V AC供电,声光被检测的遥控器的好坏一目了然,是一种简单实用的红外遥控器检测仪。 关键词:遥控器放大检测电路设计 :TP2 :A :1007-3973(xx)003-092-02 1、引言 红外线遥控器常用于电视机、空调、VCD、DVD、音响、汽车门锁等的控制,人们通常在判别故障时很难确定是机器本身的问题,还是遥控器的问题,借助于遥控器检测仪便可简捷直接作出判断。遥

控失灵是一种常见的故障,要排除故障,首先必须检测遥控器是否完好,以往检测遥控器的好坏,常用收音机测听。由于收音机只能收到遥控信号的高次谐波,信号微弱,检测效果不理想,本文提出一种简单实用的红外遥控器检测仪的设计与制作。 2、遥控器检测仪电路设计 对照原理图,简述遥控器检测仪的工作过程及各部分电路的功能。 (1)检测仪接通220V的交流电源电压后,经过变压器(T)降压,得到约6V的交流信号。 (2)经过整流桥(VD1-VD4)将6V交流信号整流为直流信号,此时直流信号含有较多纹波。 (3)整流桥输出的直流信号经过电解电容(C1)滤波、三端集成稳压器(78L05)稳压以后,输出平滑稳定的直流电压,同时电源指示灯LED1(绿色发光二极管)点亮。

基于51单片机的红外遥控器设计

天津职业大学 二○一五~二○一六学年第1学期 电子信息工程学院 通信系统综合实训报告书 课程名称:通信系统综合实训 班级:通信技术(5)班 学号:1304045640 1304045641 1304045646姓名:韩美红季圆圆陈真真指导教师:崔雁松 2015年11月17日

一、任务要求 利用C51单片机设计开发一套红外线收发、显示系统。 具体要求: ●编写相关程序(汇编、C语言均可); ●用Proteus绘制电路图并仿真实现基本功能; ●制作出实物 二、需求分析(系统的应用场景、环境条件、参数等) 现在各种红外线技术已经源源不断进入我们的生活中,在很多场合发挥着作用。 机场、宾馆、商场等的自动门,会在人进出时自动地开启和关闭。原来,在自动门的一侧有一个红外线光源,发射的红外线照射到另一侧的光电管上,红外线是人体察觉不到的。当人走到大门口,身体挡住红外线,电管接收不到红外线了。根据设计好的指令,触发相应开关,就把门打开了。等人进去后,光电管又可以接到红外线,恢复原来的线路,门又会自动关闭。因此这种光电管被称为“电眼”,在许多自动控制设备中大显身手。 在家庭中,许多电子设备如彩色电视、空调、冰箱和音响等,都使用了各种“红外线遥控器”。利用它我们可以非常方便的转换电视频道或设定空调的温度档次。 三、概要设计(系统结构框图/系统工作说明流程图) 红外线收发、显示系统硬件由以下几部分组成:红外遥控器,51单片机最小系统,接收放大器一体集成红外接收头,LED灯显示电路。 红外线接收是把遥控器发送的数据(已调信号)转换成一定格式的控制指令脉冲(调制信号、基带信号),是完成红外线的接收、放大、解调,还原成发射格式(高、低电位刚好相反)的脉冲信号。这些工作通常由一体化的接收头来完成,输出TTL兼容电平。最后通过解码把脉冲信号转换成数据,从而实现数据的传输。 红外遥控系统电路框图

基于单片机的红外遥控系统设计

课程设计 基于单片机的红外遥控系统设计 学院:计算机与通信工程学院 专业:通信工程 班级:通信11-3班 姓名: 学号:

天津理工大学 摘要 本设计采用51单片机作为遥控发射接收芯片,HS003B作为红外一体化接收发射管,在此基础上设计了一个简易的智能红外遥控系统。系统包括接收和发射两大部分,发射部分有16个按键,接收部分含有8盏彩色LED灯、一片二位数码管和蜂鸣器系统。发射部分通过键盘扫描判断哪个键被按下,经过单片机编码程序进行编码,控制红外发射电路发送信号。接收部分解码信号,实现相应的输出。本设计方案结合红外遥控设计简单、作方便、成本低廉等特点。 关键字:红外遥控信号调制编码解码

天津理工大学 目录 摘要................................................................................................................................................... I I 1.绪论 (1) 1.1课题目的和意义 (1) 1.2红外线简介 (1) 1.3红外遥控系统简介 (1) 2 课题方案和设计思路 (2) 2.1总体方案 (2) 2.2红外发射器设计 (3) 2.2.1红外发射器原理 (3) 2.2.2红外编码 (3) 2.3红外接收端设计 (4) 3硬件结构设计与介绍 (5) 3.1AT89C51系列单片机功能特点 (5) 3.1.1主要特性 (5) 3.1.2管脚说明 (5) 3.1.3基本电路 (7) 3.2红外发射电路 (8) 3.3红外接收电路设计 (9) 3.3.1红外接收模块 (9) 3.3.2数码管 (9) 3.3.3彩灯系统 (10) 3.3.4蜂鸣器系统 (11) 3.3.5红外接收端电路图 (12) 4 软件设计 (12) 4.1定时/计数器功能简介 (12) 4.2遥控码的发射 (13) 4.3红外接收 (14) 5.课程设计总结和心得 (15) 参考文献 (16) 附录 (17) 附录1P ROTEUS仿真图 (17) 附录2发射程序 (17) 附录3接收程序 (20)

基于单片机的红外遥控智能小车设计报告

基于单片机的红外遥控智能小车设计报告

毕业设计(论文)题目:基于单片机的红外遥控智能小车

西安邮电学院 毕业设计(论文)任务书 学生姓名指导教师职称工程师学院电子工程学院系部光电子技术 专业光电信息工程 题目基于单片机的红外遥控智能小车 任务与要求 任务:以51单片机为控制核心,实现具有自动避障、加速、减速等功能的红外遥控智能小车。 要求:1 搜集资料,熟悉单片机开发流程;熟悉红外传感器等相关器件; 掌握单片机接口和外围电路应用;具备一定的单片机开发经 验。 2 学会电路设计、仿真等相关软件的使用; 3 具备一定的硬件调试技能。 4 学会查阅资料; 5 学会撰写科技论文。 开始日期2010年3月22日完成日期2010年6月27日主管院长(签字) 年月日

西安邮电学院 毕业设计 (论文) 工作计划 学生姓名赵美英指导教师崔利平职称工程师学院电子工程学院系部光电子技术 专业光电信息工程 题目基于单片机的红外遥控智能小车 工作进程

主要参考书目(资料) 1、何立民,单片机应用系统设计,北京:航天航空大学出版社; 2、李广弟,单片机基础,北京:北京航空航天大学出版社,2001; 3、何立民,MCS-51系列单片机应用系统设计系统配置与接口技术,北 京航空航天大学出版社,1990.01; 4、赵负图,传感器集成电路手册,第一版,化学工业出版社,2004; 5、Atmel.AT89S51数据手册.https://www.wendangku.net/doc/6e2795756.html, 主要仪器设备及材料 1.普通计算机一台,单片机开发环境; 2.电路安装与调试用相关仪器和工具。 (如示波器、万用表、电烙铁、镊子、钳子等)。 论文(设计)过程中教师的指导安排 每周四进行交流与总结;其余时间灵活安排,及时解决学生问题。 对计划的说明 依学生实际情况,适当调整工作进度。

单片机红外遥控原理

红外遥控原理 人的眼睛能看到的可见光按波长从长到短排列,依次为红、橙、黄、绿、青、蓝、紫。其中红光的波长范围为0.62~0.76um;紫光的波长范围为0.38~0.46。比紫光的波长还要短的光叫紫外线,比红光的波长还要长的光叫红外线。红外线遥控技术就是利用波长为0.76~1.5μm之间的近红外线来传送控制信号的。常用的红外遥控系统一般分发射和接收两个部分。发射部分的主要元件为红外发光二极管。它实际上是一只特殊的发光二极管,由于其内部材料不同于普通发光二极管,因而在其两端施加一定电压时,它便发出的是红外线而不是可见光。目前大量使用的红外发光二极管发出的红外线波长为940nm左右,外形与普通5发光二极管相同,只是颜色不同。红外发光二极管一般有黑色、深蓝、透明三种颜色。判断红外发光二极管好坏的办法与判断普通二极管一样:用万用表电阻挡量一下红外发光二极管的正、反向电阻即可。红外发光二极管的发光效率要用专门的仪器才能精确测定,而业余条件下只能用拉距法来粗略判定。接收部分的红外接收管是一种光敏二极管。 在实际应用中要给红外接收二极管加反向偏压,它才能正常工作,亦即红外接收二极管在电路中应用时是反向运用,这样才能获得较高的灵敏度。红外接收二极管一般有圆形和方形两种。由于红外发光二极管的发射功率都较小,所以红外接收二极管接收到的信号比较微弱,因此就要增加高增益放大电路。 前些年常用μPC1373H、CX20106A等红外接收专用放大电路。最近几年不论是业余制作还是正式产品,大多都采用成品红外接收头。成品红外接收头的封装大致有两种:一种采用铁皮屏蔽;一种是塑料封装。均有三只引脚,即电源正、电源负和数据输出(VO或OUT)。红外接收

c51、c52单片机红外线遥控接收解码c程序(可直接使用)

/ 亲,此程序以经过测试,可直接使用!!!/ #include #define uchar unsigned char #define uint unsigned int void delay(uchar x); sbit IRIN = P3^2; uchar IRCOM[4]; void main() { IE = 0x81; TCON = 0x01; IRIN=1; /* 此处可以根据按键码自由编写程序 /以下为3*7遥控按键码/ /(也可以应用与其他类型遥控,本程序只以3*7遥控为例)/ / 0x45 0x46 0x47 / / 0x44 0x40 0x43 / / 0x07 0x15 0x09 / / 0x16 0x19 0x0d / / 0x0c 0x18 0x5e / / 0x08 0x1c 0x5a / / 0x42 0x52 0x4a / 例如: while(1) {switch(IRCOM[2]) {case 0x45: P2=0x7f; break; case 0x44: P2=0xbf; break; case 0x07: P2=0xdf; break; case 0x16: P2=0xef; break; case 0x0c: P2=0xf7; break; case 0x08: P2=0xfb; break; case 0x42: P2=0xfd; break; case 0x52: P2=0xfe; break; case 0x4a: P2=0xff; break; case 0x5a: P2=0x00; break;} } */ while(1); } //end main /**********************************************************/ void IR_IN(void) interrupt 0 //外部中断服务程序 {unsigned char j,k,N=0; EX0 = 0; delay(15); if (IRIN==1) { EX0 =1;

基于单片机的红外遥控系统

单片机原理与应用技术课程设计报告(论文) 题目(基于单片机的红外遥控系统) 专业班级:电气102班 姓名: 时间:2013.11.07 ~2013.11.28 指导教师:徐君鹏邵锋苗青林 完成日期:2013年11月28 日 1

红外系统设计任务书 1.设计目的与要求 设计一个红外遥控系统。准确地理解有关要求,独立完成系统设计,要求所设计的电路具有以下基本功能: (1)有效遥控距离大于10米。 (2)遥控控制的路数在5路以上。 (3)采用数码管显示当前工作的控制电路。 2.设计内容 (1)画出电路原理图,正确使用逻辑关系; (2)确定元器件及元件参数; (3)进行电路模拟仿真; (4)SCH文件生成与打印输出; (5)PCB文件生成与打印输出; 3.编写设计报告 写出设计的全过程,附上有关资料和图纸,有心得体会。 4.答辩 在规定时间内,完成叙述并回答问题。 2

基于单片机的红外遥控系统 电子102班马艳红 摘要:随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功 能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设 计,具有编程灵活多样、操作码个数可随便设定等优点。本设计主要应用了AT89s52单片机作为核心,综合应用了 单片机中断系统、定时器、计数器等知识,应用红外光的优点。遥控操作的不同,遥控发射器通过对红外光发射频 率的控制来区别不同的操作。遥控接收器通过对红外光接收频率的识别,判断出控制操作,来完成整个红外遥控发 射、接收过程。其优点硬件电路简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。 关键词:单片机,红外遥控,中断,定时,计数,频率 1 引言 红外技术的一个重要分支是红外通信技术的应用,这个应用的发展非常迅速,尤其是红外通信应用于计算机设备中,近几年的发展已经表现出其非常成熟的特性。 基于单片机的红外线遥控系统力求概念清楚,层次分明,经过大量翻阅工作,了解设计基本过程,结合自己设计的原始资料,从而进一步指导设计的开展。本次设计首先通过对指导老师的咨询确定了设计的基本思路,即分别用两块单片机驱动发射和接收两个电路,这样设计外围器件简单,主要通过编程实现其功能。后来又通过对图书馆资料和网络资料以及和指导老师的讨论逐步对电路进行了完善。电路完成后,通过对《单片机应用程序设计技术》《单片机实验与实践技术》等书的研究确定了编程的大致思想,通过不断的仿真,一步一步的改进程序,直至仿真成功。把程序烧入做好的PCB板中,进行硬件调试,直到功能实现。 2 总体设计方案 目前市场上一般采用的遥控编码及解码集成电路。此方案具有制作简单、容易等特点,但由于功能键数及功能受到特定的限制,只适合用某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随意设定等优点。本单片机遥控应用系统采用红外线发射频率的不同,来识别不同的遥控功能。当单片机通电后p2.0口持续发射38khz的方波,我们按下某一个按键的时候,由单片机识别出该按键后,由p2.1口发射一定频率的脉冲,该脉冲与38KHz左右的载波脉冲进行调制,然后将已调制的脉冲进行缓冲放大,激励红外发光二极管将电能转化为光能,使得红外发光二极管发射出一定频率的红外线,当接收控制系统接收到该红外光后,由单片机内定时/计数器得到该红外光的频率,然后将该频率送往CPU,由CPU对该信号进行反编码,识别出控制信号,从而对控制电路实施控制功能。完成整个遥控功能。 2.1 设计思路 红外遥控系统分为发射和接收两部分。 单片机红外遥控接收器主要有单片机、hs0038组成的红外遥控接收电路、状态指示电路、发光led指示电路理论以及单片机的一些外围电路组成。 单片机接收到信号由接收电路解调并从外部中断0输入单片机。门控制位GATE使计数器T0受INT0控制,当GATE为1,TR0为1时,只有INT0引入高电平时才开始计数,利用此功能可以计算高电平脉冲宽度,从而找到对应的波形,使发光led和数码管正确显示。 3

红外遥控文献综述

杭州电子科技大学 毕业设计(论文)文献综述 毕业设计(论文)题目基于单片机的红外遥控电路设计 文献综述题目基于单片机的红外遥控编码方式学院电子信息学院 专业电子科学与技术 姓名刘正国 班级07042011班 学号07042019 指导教师方志华

基于单片机的红外遥控编码方式 前言 随着科学技术的发展,单片机因其高可靠性和高性价比,在智能化家用电器、仪器仪表等诸多领域内得到了极为广泛的应用。当前单片机对家用电器控制呈现出外型简单化、功能多样化、性能优越化的发展趋向。红外遥控是目前使用较多的一种遥控手段。红外线遥控装置具有体积小、功耗低、功能强、成本低等特点。在家庭生活中,录音机、音响设备、空调彩电都采用了红外遥控系统。本文主要研究采用单片机发送并接收红外遥控信号的方法。 主题 1 单片机红外遥控系统概述 红外遥控有发送和接收两个组成部分。发送端采用单片机的定时中断功能,由定时器 T0 产生周期性的 26us 的矩形脉冲,即每隔13us,定时器 T0 产生中断输出一个相反的信号使单片机输出端产生周期为38KHz的脉冲信号。脉冲图如图 1 所示。将待发送的二进制信号编码调制为一系列的脉冲串信号,通过红外发射管发射红外信号。红外接收端普遍采用价格便宜,性能可靠的一体化红外接收头(如HS0038 , 它接收红外信号频率为38KHz ,周期约26μs)接收红外信号,它同时对信号进行放大、检波、整形,得到TTL 电平的编码信号,再送给单片机,经单片机解码并执行,去控制相关对象。整个系统如图 2所示。 图 1 38KHz 载波信号 图 2 红外线遥控系统框图

2 红外遥控编码方式 2.1 脉冲个数编码方式 该方式中遥控端采用脉冲个数编码,不同的脉冲个数代表不同的码,最小为2个脉冲,最大为17个脉冲。为了使接收可靠,在编码发射的起始处设置引导帧,即第一位码宽为3ms ,用来使接收端判别遥控操作已开始。其余为1ms ,遥控码数据帧间隔大于10ms ,如图3所示。 2.1.2 遥控码的发射 系统中可采用89S51 芯片。并用P1口组成键盘,获取键值,用内部的定时器T0产生一个38KHz 的软件定时中断,当作红外遥控的调制基波,当某个操作按键按下时,单片机先读出键值,然后根据键值设定待发射遥控码的脉冲个数,再调制成38kHz 方波由红外线发光管发射出去。单片机P3.5端口的输出调制波形如图3所示。 2.1.3遥控码的接收 当红外线接收器接收到红外遥控信号,并输出脉冲帧数据时,第一位码的低电平将启动中断程序,实时接收数据帧。在数据帧接收时,将对第一位(起始位)码的码宽进行验证。若第一位低电平码的脉宽小于2ms ,将作为错误码处理。当间隔位的高电平脉宽大于3ms 时,结束接收,然后根据累加器A 中的脉冲个数,执行相应输出口

基于单片机的红外遥控系统设计

单片机红外遥控系统设计 随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的遥控系统开始进入了人们的生活。传统的遥控器采用专用的遥控编码及解码集成电路,这种方法虽然制作简单、容易,但由于功能键数及功能受到特定的限制,只实用于某一专用电器产品的应用,应用范围受到限制。而采用单片机进行遥控系统的应用设计,具有编程灵活多样、操作码个数可随便设定等优点。 本设计主要应用了AT89C51单片机作为核心,综合应用了单片机中断系统、定时器、计数器等知识,应用红外光的优点,设计了一个红外线遥控系统。本系统包含发射和接收两大部分,利用编码/解码芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED 红外线发射器;接收部分包括红外线接收芯片、光电转换器、调解电路。其优点硬件电路 简单,软件功能完善,性价比较高等特点,具有一定的使用和参考价值。 关键词:单片机AT89C51;LED红外线发射器

目录 目录 (2) 1 绪论 (2) 1.1研究背景 (2) 1.2国内外研究现状 (3) 1.3研究目的与意义 (3) 2系统方案设计论证 (5) 2.1单片机红外遥控发射器设计原理 (5) 2.2单片机红外遥控接收器设计原理 (5) 2.3方案选择和论证 (6) 3红外解码硬件电路设计 (8) 3.1红外解码系统设计 (8) 3.2单片机及其硬件电路设计 (8) 3.3红外发射电路设计 (10) 3.4红外接收电路设计 (11) 3.5本章小结 (13) 4红外解码程序设计 (14) 4.1红外接收电路主程序流程图 (14) 4.2红外接收电路子程序流程图 (14) 4.3本章小结 (15) 5 联机与调试 (16) 结论和展望 (23) 附录A:系统原理图 (24) 附录B:系统PCB图 (25) 附录C:系统仿真图 (26) 附录D:系统源程序 (27) 1 绪论 1.1研究背景 目前市场上采用的一般是遥控编码及解码集成的电路。此方案的特点是制作简单、容

红外遥控解码单片机课程设计报告

单片机课程设计报告 ——————————红外遥控解码 学校:东莞理工学院 院系:电子工程学院 作者:官炎钦 同组人员:陈帅、林志鹏、洪楚明

目录: 一、前言 ------------------------------------------- 1 二、设计原理 --------------------------------------- 1 1、红外通信原理 -------------------------------------------------- 1 2、红外编码原理 -------------------------------------------------- 3 三、硬件电路设计 ----------------------------------- 5 1、总体电路图 ----------------------------------------------- 5 2、数码管与LED显示电路图 ---------------------------------------6 四、软件设计 --------------------------------------- 7 1、程序框图 ----------------------------------------------------- 8 2、程序清单 ----------------------------------------------------- 8 3、总结与心得 --------------------------------- 14

一、前言 随着科学技术的发展,单片机因其该可靠性和高性价比,在智能化家用电器仪表仪器等恒多领域得到极为广泛的应用。在很多实际单片机系统中,常常使用非电信号,如光信号,超声波信号等,来传播信息,以实现遥控和遥测的功能,其中红外遥控是目前最广泛的一种通信和控制手段。由于红外遥控使用方便、功耗低、成本低廉、功能强、抗干扰强等特点,因而,继彩电、录像机之后,在录音机、音响备、空凋机以及玩具等其它小型电器装置上也纷纷采用红外线遥控。 本设计以STC89C52单片机作为控制中心,综合应用了单片机内部结构及中断系统等知识,应用红外光的优点,实现对红外遥控器的解码和通信。 二、设计原理 1、红外通信原理 红外通信,即以红外线作为通信载体,通过红外光在空中的传播来传输数据的通信方式,它有发射红外线的电路和接收端来完成。在发射端,发送的数字信号经过适当的调制编码后,送入电光变换电路,经红外发射管转变为红外光脉冲发射到空中;在接收端,红外接收器对接收到的红外光脉冲进行光电变换,解调,再经单片机处理,便可以恢复出原数据信号。 红外通信原理图 2、红外编码原理 常用的红外线信号传输协议有ITT 协议、NEC 协议、Nokia NRC 协议、Sharp 协议、Philips RC-5 协议、Philips RC-6协议,Philips RECS-80协议,以及Sony SIRC 协议等。 1)协议组成:一般由引导码,用户码,数据码,重复码或数据码的反码和结束码构成。2)载波:常用的有33K,36K,36.6K,38K,40K,56K,无载波 3)占空比:常用的有1/3,1/2,不常用1/4 4)调制方式:脉宽调制,相位调制,脉冲位置调制 本次设计红外发射端选用的是NEC协议编码的,由38K载波调制的红外编码的红外遥控器。 (1)0和1的编码 遥控器发射的信号由一串0和1的二进制代码组成。不同芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。TC9012的0和1采用PWM方法编码,即脉冲宽度调制。以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,如下图所示:

怎样用安卓智能手机做红外万能遥控器

怎样用安卓智能手机做红外万能遥控器 标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]

用安卓智能手机做红外万能遥控器 摘要: 本课题旨在利用现已成熟的且功能十分强大的安卓智能手机操作系统为软件基础,配合一种合适各种手机的外接硬件模块,通过将手机耳机接口输出的高低电压信息在外接模块内转化为红外线输出,达到能遥控各种以红外遥控器控制的家用电器。 本课题的创新点有如下两点。其一是将各个红外遥控器的功能集合在一部智能手机上的集合性。其二是利用了耳机接口输出的音频电压信号进行信息的传输,保证软硬件的高度适应性。 关键词: 智能手机万能遥控器红外遥控器耳机接口 绪论 课题由来 遥控控制的家用电器越来越多,家里各种各样的遥控器也越来越多,日常存放、寻找和使用都很不方便。要是一个老型号的家电的遥控器丢了,配都配不到。 手机是现在人们最常使用的一种手持式的通讯设备,大家都已经习惯随身携带手机和把手机经常放在身边。所以,很多人都希望手机也可以当家用电器的遥控器使用。

现在,智能手机的软硬件已经十分强大,大尺寸的触摸屏可以设计成各种键盘布局的控制器。只要有合适的软件,配合小的附件,智能手机都可以当作家用电器的万能遥控器来使用。 众所周知,任何红外线的信号都是可以由一串二进制编码翻译表达出来的,而任何一段由手机耳机接口输出的音频电压信号都可以传递出一串含有二进制编码信息,只要根据一定的规则,配合合适的硬件模块,就可以将手机耳机插口输出的音频电压信号转化为红外遥控器的红外线发射出来。 本课题旨在通过智能手机的软件支持,配合一个外接硬件红外发射模块,通过将手机耳机接口输出的高低电压信息在外接模块内转化为红外线输出,达到各种电器遥控器合为一体的目的,力求为使用者带来方便。 研究背景 微软的Windows Mobile、谷歌的Android和苹果的iOS等手机操作系统都有成熟的软件开发平台,个人和第三方组织为智能手机开发专门的应用软件是一门成熟的技术。 目前市面上已经存在的能达到类似功能的万能遥控器主要有以下几类,下面对主要几种类型进行分析,并与本课题进行优劣比较。 1)学习试的万能电视遥控器。图(1) 这种遥控器能够达到学习已有遥控器发出的红外编码,储存在自身内部并映射在固定实体面板的每个按键上。它最大的不足之处是,只能有一种固定的面板,操控一个电视或家电。如果要更换操纵对象,就必须对每个按键所对应的红外编码再一次进行学习与记录。与本课题相比,此类学习试的万能电视遥控器没有高度集合性。

基于单片机的红外无线控制

中国矿业大学徐海学院 技能考核培训 姓名:陈思彤学号: 22110838 专业:信息11-2班 题目:基于单片机的红外无线控制 专题:音乐播放器 指导教师:有鹏老师翟晓东老师 设计地点:电工电子实验室 时间: 2014 年 4 月

通信系统综合设计训练任务书 学生姓名陈思彤专业年级信息11-2班学号22110838 设计日期:2014年4 月5日至2014 年4 月10 日 设计题目: 基于单片机的红外无线控制 设计专题题目: 音乐播放器 设计主要内容和要求: 1. 主要内容: 单片机内部结构 红外遥控解码 C语言程序设 2. 功能扩展要求 实现音乐播放器的功能 指导教师签字:

摘要:近年来随着计算机在社会领域的渗透, 单片机的应用正在不断地走向深入。红外线技术也被广泛应用于各个电子领域,先设计一种基于单片机的红外遥控的简易音乐播放器。通信蜂鸣器来发声,来完成音乐播放器的功能。该系统可实现对音乐播放的远距离遥控,且结构简单,速度快,抗干扰能力强。通过本次课程设计,我对单片机中断系统等知识有了进一步的了解,对单片机的相关知识做到理论联系实际。 关键词:单片机,中断系统,红外遥控,音乐播放

目录 1 绪论 (4) 1.1概述 (4) 1.2功能 (4) 2 硬件电路 (5) 2.1总体设计方 (5) 2.2单片机最小系统 (5) 2.3红外遥控收发电路 (5) 2.3.1 红外遥控发射电路 (6) 2.3.2 红外遥控接收电路 (7) 2.4蜂鸣器电路 (7) 2.5 LED指示灯电路 (8) 3软件编程 (9) 3.1 C语言实现系统设计 (9) 3.2乐谱的改编 (10) 参考文献 (11) 附录 (12)

单片机如何通过捕获来实现对红外遥控器解码

单片机如何通过捕获来实现对红外遥控器解码 一、内容提要 上讲介绍并应用了单片机动态扫描驱动数码管,并给出了实例。这一讲将重点介绍单片机如何通过捕获来实现对红外遥控器解码。通过该讲,读者可以掌握红外遥控器的编码原理以及如何通过单片机对遥控器进行解码。 二、原理简介 随着家用电器、视听产品的普及,红外线遥控器已被广泛使用在各种类型的家电产品上(如遥控开关、智能开关等)。其具有体积小、抗干扰能力强、功耗低、功能强、成本低等特点,在工业设备中也得到广泛应用。 一般而言,一个通用的红外遥控系统由发射和接收两大部分组成,如图1 所示: 图1 红外遥控系统框图 其中发射部分主要包括键盘矩阵、编码调制、红外发射管;接收部分包括光、电信号的转换以及放大、解调、解码电路。举例来说,通常我们家电遥控器信号的发射,就是将相应按键所对应的控制指令和系统码(由0 和1 组成的序列),调制在32~56kHz 范围内的载波上,然后经放大、驱动红外发射管将信号发射出去。此外,现在流行的控制方法是应用编/ 解码专用集成电路芯片来实现(如下文提到的SAA3010 红外编码芯片和HS0038 红外接收头)。 不同公司的遥控芯片,采用的遥控码格式也不一样。在此介绍目前广泛使用较普遍的两种,一种是NEC Protocol 的PWM(脉冲宽度调制)标准,一种是Philips RC-5 Protocol 的PPM(脉冲位置调制)标准。 NEC 标准:遥控载波的频率为38kHz(占空比为1:3);当某个按键按下时,系统首先发射一个完整的全码,然后经延时再发射一系列简码,直到按键松开即停止发射。简码重复为延时108ms,即两个引导脉冲上升沿之间的间隔都是108ms。一个完整的全码如图2所示。

红外遥控技术

红外遥控技术 红外遥控系统的组成红外遥控系统主要由遥控发射器、一体化接收头、单片机、接口电路组成,如图一所示。遥控器用来产生遥控编码脉冲,驱动红外发射管输出红外遥控信号,遥控接收头完成对遥控信号的放大、检波、整形、解调出遥控编码脉冲。遥控编码脉冲是一组串行二进制码,对于一般的红外遥控系统,此串行码输入到微控制器,由其内部CPU 完成对遥控指令解码,并 执行相应的遥控功能。使用遥控器作为控制系统的输入,需要解决如下几个关键问题:如何接收红外遥控信号;如何识别红外遥控信号以及解码软件的设计、控制程序的设计。 红外遥控信号的接收接收电路使用集成一体化红外接收头SM0038(1 )。 图一红外遥控系统组成方框图 SM0038 对外只有3 个引脚:VS、GND 和1 个脉冲信号输出引脚OUT,外形引脚如图二所示。与单片机接口非常方便,如图三所示。VCC 接电源+5V 并经电容进行滤波,以避免电源干扰; GND 接系统的地线(0V);脉冲信号输出接CPU 的中断输入引脚(例如8051 的13 脚INT1)。采取这种连接方法,软件解码既可工作于查询方式,也可工作于中断方式。 图二红外接收头SM0038 图三SM0038 与单片机接口电路 红外遥控编码规律目前应用中的各种红外遥控系统的原理都大同小异,区别只是在于各系统的信号编码格式不同。遥控专用集成电路的编码格式是公开的,可以查阅到。下面就以TC9012 组成的遥控器说明它的编码体制规律。当按下遥控器上任一按键时,TC9012 即产生一串脉冲编码如图四所示。TC9012 形成的遥控编码脉冲对40kHz 载波进行脉冲幅度调制后便形成遥控信号,经驱动电

基于51单片机的红外遥控

基于51单片机的红外遥控 红外遥控就是无线遥控的一种方式,本文讲述的红外遥控,采用STC89C52单片机,1838红外接收头与38k红外遥控器。 1838红外接收头: 红外遥控器: 原理: 红外接收的原理我不赘述,百度文库上不少,我推荐个网址,这篇文章写得比较清楚,也比较全面, 我主要讲下程序的具体意思,在了解原理的基础上,我们知道,当我们在遥控器上每按下一个键,遥控器上的红外发射头都会发出一个32位的编码(32位编码分成4组8位二进制编码,前16位为用户码与用户反码,后16位为数据码与数据反码,用户码表示遥控器类型,数据码表示按键编码),不同的键对应不同的编码,红外接收头接收到这个编码后,发送给单片机,再进行相关操作。 源程序1:(这个程序的功能就是将用户码与用户反码,数据码与数据反码显示在1602液晶上,因为遥控器买回来就是不会说明按键对应什么码值,所以先自己测试,确定每个按 键的码值) #include #include #include #define uint unsigned int #define uchar unsigned char #define _Nop() _nop_() #define TURE 1 #define FALSE 0

/*端口定义*/ sbit lcd_rs_port = P3^5; /*定义LCD控制端口*/ sbit lcd_rw_port = P3^6; sbit lcd_en_port = P3^4; #define lcd_data_port P0 /////////////////////////////////// void delay1 (void)//关闭数码管延时程序 { int k; for (k=0; k<1000; k++); } //////////////////////////////////// uchar code line0[16]={" user: "}; uchar code line1[16]={" data: "}; uchar code lcd_mun_to_char[16]={"0123456789ABCDEF"}; unsigned char irtime;//红外用全局变量 bit irpro_ok,irok; unsigned char IRcord[4];//用来存放用户码、用户反码、数据码、数据反码unsigned char irdata[33];//用来存放32位码值 void ShowString (unsigned char line,char *ptr); ////////////////////////////////////////////// void Delay(unsigned char mS); void Ir_work(void); void Ircordpro(void); void tim0_isr (void) interrupt 1 using 1//定时器0中断服务函数 { irtime++; } void ex0_isr (void) interrupt 0 using 0//外部中断0服务函数 { static unsigned char i; static bit startflag; if(startflag){ if(irtime<63&&irtime>=33)//引导码TC9012的头码 i=0; irdata[i]=irtime; irtime=0; i++; if(i==33){ irok=1; i=0; }

用单片机解码红外遥控器

用单片机解码红外遥控器 遥控器使用方便,功能多.目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。如果能将遥控器上许多的按键解码出来.用作单片机系统的输入.则解决了常规矩阵键盘线路板过大、布线复杂、占用I/O口过多的弊病。而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。下面以TC9012编码芯片的遥控器为例。谈谈如何用常用的51系统单片机进行遥控的解码。 一、编码格式 1、0和1的编码 遥控器发射的信号由一串O和1的二进制代码组成.不同的芯片对0和1的编码有所不同。通常有曼彻斯特编码和脉冲宽度编码。TC9012的O和1采用PWM方法编码,即脉冲宽度调制,其O码和1码如图1所示(以遥控接收输出的波形为例)。O码由O.56ms低电平和0.56ms高电平组合而成.脉冲宽度为1.12ms.1码由0.56ms低电平和1.69ms高电平组合而成.脉冲宽度为2.25ms。在编写解码程序时.通过判断脉冲的宽度,即可得到0或1。 2、按键的编码

当我们按下遥控器的按键时,遥控器将发出如图2的一串二进制代码,我们称它为一帧数据。根据各部分的功能。可将它们分为5部分,分别为引导码、地址码、地址码、数据码、数据反码。遥控器发射代码时.均是低位在前。高位在后。由图2分析可以得到.引导码高电平为4.5ms,低电平为4.5ms。当 接收到此码时.表示一帧数据的开始。单片机可以准备接收下面的数据。地址码由8位二进制组成,共256种.图中地址码重发了一次。主要是加强遥控器的可靠性.如果两次地址码不相同.则说明本帧数据有错.应丢弃。不同的设备可以拥有不同的地址码.因此。同种编码的遥控器只要设置地址码不同,也不会相互干扰。图中的地址码为十六进制的0EH(注意低位在前)。在同一个遥控器中.所有按键发出的地址码都是相同的。数据码为8位,可编码256种状态,代表实际所按下的键。数据反码是数据码的各位求反,通过比较数据码与数据反码.可判断接收到的数据是否正确。如果数据码与数据反码之间的关系不满足相反的关系.则本次遥控接收有误.数据应丢弃。在同一个遥控器上.所有按键的数据码均不相同。在图2中,数据码为十六进制的0CH,数据反码为十六进制的0F3H(注意低位在前).两者之和应为0FFH。 二、单片机遥控接收电路

相关文档
相关文档 最新文档