A. 用51单片机做红外遥控器的电路图,只要将红外发射管上拉,然后连到单片机管脚上就行吗
如果你的红外发射二极管的发射电流小于20mA 可以 VCC接电阻连接到二极管的阳极,二极管阴极直接连接在单片机的IO口上。你的图纸上用三极管驱动的那个LED 你不接限流电阻不怕烧坏了吗?
还有你的单片机能复位吗??
B. 用51单片机制作红外线遥控器需要哪些元器件,电路图怎么画有程序更好
一个89C51,一个三极管8050,一个红外发射管,很容易的。
C. 这是一段51单片机的红外遥控代码,主要就是用了遥控器上的三个键。看不懂呀,求大神帮助注释或解释下
这就是一个红外解码程序,按标准来做就行了。普及一下红外解码知识:
采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制
的"0";以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的"1,;上述"0"和
"1"组成的32位二进制码经38kHz的载频进行二次调制以提高发射效率,;达到降低电源功耗的
目的。然后再通过红外发射二极管产生红外线向空间发射,;遥控编码是连续的32位二进制码
组,其中前16位为用户识别码,能区别不同的电器设备,;防止不同机种遥控码互相干扰。该
芯片的用户识别码固定为十六进制01H;后16位为8位操作码(功能码)及其反码。
当一个键按下超过36ms,振荡器使芯片激活,将发射一组108ms的编码脉冲,这108ms发射代码
由一个起始码(9ms),一个结果码(4.5ms),低8位地址码(9ms~18ms),高8位地址码
(9ms~18ms),8位数据码(9ms~18ms)和这8位数据的反码(9ms~18ms)组成。如果键按下超
过108ms仍未松开,接下来发射的代码(连发代码)将仅由起始码(9ms)和结束码(2.5ms)
组成。
解码的关键是如何识别"0"和"1",接收端而言,"0"是0.56ms的高+0.56ms的低。"1"是1.68ms
的高+0.56ms的低。所以可以根据高电平的宽度区别"0"和"1"。当高电平出现时开始延时,
0.56ms以后,若读到的电平为低,说明该位为"0",反之则为"1",为了可靠起见,延时必须
比0.56ms长些,但又不能超过1.12ms,否则如果该位为"0",读到的已是下一位的高电平,因此
取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。
D. 51单片机遥控器 这里有遥控器的键码图,求大神写一个点亮led灯的例程,
//红外一体化接收头接P3.2外部中断0负边沿触发
//采用外部中断0因此IRIN必须使用p3.2
#include<reg51.h>
#include<intrins.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitIRIN=P3^2;//红外接收器数据线
sbitled=P1^5;//蜂鸣器驱动线
ucharkey=0;//键值储存
ucharx=4;//遥控器一般为4个数据不同时修改此处
ucharIRCOM[7];
voiddelay1(intms);
voidbeep();
voiddelay(unsignedcharm)//x*0.14MS
{
unsignedinttime;
while(m--)
{
for(time=0;time<100;time++);
}
}
/*******************************************************************/
main()
{
delay1(10);//延时
IE=0x81;//允许总中断中断,使能INT0外部中断
TCON=0x01;//触发方式为脉冲负边沿触发
SCON=0x50;//REN=1允许串行接受状态,串口工作模式2
while(1)
{
switch(key)
{
case0x45:led=~led;key=0;break;//键值0x45其他键值自己加
default:break;
}
}
}//endmain
/**********************************************************/
voidIR_IN()interrupt0using0
{
unsignedcharj,k,N=0;
EX0=0;
delay(15);
if(IRIN==1)//确认IR信号出现
{
EX0=1;
return;
}
while(!IRIN)delay(1);//跳过9ms的前导低电平信号,等IR变为高电平。
/***收集数据*******************************/
for(j=0;j<x;j++)//收集x组数据
{
for(k=0;k<8;k++)//每组数据有8位
{
while(IRIN);//delay(1);//等IR变为低电平,跳过4.5ms的前导高电平信号。
while(!IRIN);//delay(1);//等IR变为高电平
while(IRIN)//计算IR高电平时长
{
delay(1);
N++;
if(N>=30)
{
EX0=1;
return;
}//0.14ms计数过长自动离开。
}//高电平计数完毕
IRCOM[j]=IRCOM[j]>>1;//数据最高位补“0”
if(N>=8){IRCOM[j]=IRCOM[j]|0x80;}//数据最高位补“1”
N=0;
}//endfork
}//endforj
/***数据收集完毕*****************************/
if(IRCOM[0]=~IRCOM[1])
key=IRCOM[2];
N=0;
for(k=0;k<100;k++)//长按不使用时可屏蔽此处
{
delay(10);
if(IRIN==0)
{
k=0;N++;
if(N>60)
{
N=0;
SendString("长按");
}
}
}
SendOneByte(0x0d);SendOneByte(0x0a);
beep();
EX0=1;
}
E. 红外遥控器控制单片机
这个问题你还是自己解决比较好,不要忘了你买单片机学习板的目的是学习,学习单片机是要多实践的,先试着自己写,实在写不出来的时候在发出来问下
这里给你点建议:
电机硬件驱动做成H型桥接电路比较简单。
遥控器如果不是自带的,请选用彩电的或是DVD、机顶盒的,不要选用空调的做解码,空调的编码是随模式的变化而变化的。
F. 遥控电子玩具里有单片机吗单片机与电路板有什么关系
简单的可以没有,一般的都有。
单片机就是一片集成电路构成的计算机,简单的只有8脚,复杂的有64脚,尤其是专用单片机,性价比更高。
单片机是智能玩具的大脑,是电路板上的核心器件,其他外围元器件都受单片机控制,完成各自的功能。
电子循迹小车,有单片机。
G. 电视机遥控器上有单片机吗听说买一块单片机要很贵的呀为什么一个遥控器那么便宜
电视摇控器是专用的微处理器价格很便宜.与一般工业控制的单片机不同.一般的只需要几元钱.
H. 家电遥控器里是单片机控制吗,大才小用了吧
现在 很多 家用电器,都用单片机来做控制系统,少数也用专用芯片,
其实 单片机 根本不是 大才, 现在价格 也很便宜, 一元 左右的 单片机 很多。
单片机 可以 灵活应用 ,想怎么控制 都行 ,只要编好程序 就可以了。
I. 红外遥控器原理 遥控器原理图
遥控器是一种用来远控机械的装置。现代的遥控器,主要是由集成电路电板和用来产生不同讯息的按钮所组成。下面一起来看看红外遥控器原理以及遥控器原理图吧。
红外遥控器原理
红外线遥控系统一般由发射器和接收器两部分组成。发射器由指令键、指令信号产生电路、调制电路、驱动电路及红外线发射器组成。当指令键被按下时,指令信号产生电路便产生所需要的控制信号,控制指令信号经调制电路调制后,最终由驱动电路驱动红外线发射器,发出红外线遥控指令信号。
接收器由红外线接收器件、前置放大电路、解调电路、指令信号检出电路、记忆及驱动电路、执行电路组成。当红外接收器件收到发射器的红外指令信号时,它将红外光信号变成电信号并送到前置放大电路进行放大,再经过解调器后,由信号检出电路将指令信号检出,最后由记忆电路和驱动电路驱动执行电路,实现各种操作。
控制信号一般以某些不同的特征来区分,常用的区分指令信号的特征是频率和码组特征,即用不同的频率或者编码的电信号代表不同的指令信号来实现遥控。所以红外遥控系统通常按照产生和区分控制指令信号的方式和特征分类,常分为频分制红外线遥控和码分制红外线遥控。
1红外遥控系统发射部分
红外遥控发射器由键盘矩阵、遥控专用集成电路、驱动电路和红外发光二极管三部分组成,结构如图1所示。
当有键按下时,系统延时一段时间防止干扰,然后启动振荡器,键编码器取得键码后从ROM中取得相应的指令代码(由0和1组成的代码),遥控器一般采用电池供电,为了节省电量和提高抗干扰能力,指令代码都是经32~56kHz范围内的载波调制后输出到放大电路,驱动红外发射管发射出940nm的红外光。当发送结束时振荡器也关闭,系统处于低功耗休眠状态。载波的频率、调制频率在不同的场合会有不同,不过家用电器多采用的是38kHz的,也就是用455kHz的振荡器经过12分频得到的。
遥控发射器的信号是由一串0和1的二进制代码组成的,不同的芯片对0和1的编码有所不同,现有的红外遥控包括两种方式:脉冲宽度调制(PWW)和脉冲位置调制(PPM或曼彻斯特编码)。两种形式编码的代表分别是NEC和PHILIPS的RC-5。
2红外遥控系统接收部分
接收部分是由放大器、限幅器、带通滤波器、解调器、积分器、比较器等组成的,比如采用较早的红外接收二极管加专用的红外处理电路的方法,如CXA20106,此种方法电路复杂,现在一般不采用。但是在实际应用中,以上所有的电路都集成在一个电路中,也就是我们常说的一体化红外接收头。一体化红外接收头按载波频率的不同,型号也不一样。由于与CPU的接口的问题,大部分接收电路都是反码输出,也就是说当没有红外信号时输出为1,有信号输出时为0,它只有三个引脚,分别是+5V电源、地、信号输出。
系统的设计
1单片机编码发射部分
①键盘部分
红外遥控器的发射器电路比较简单,由一个4×4矩形键盘、一个PNP驱动三极管、一个红外线发光二极管和两个限流电阻组成。要遥控哪台接收器由键盘输入,即由键盘输入要红外遥控的地址,地址经过编码、调制后通过红外发光二极管发射出去。
矩阵键盘部分由16个轻触按键按照4行4列排列,将行线所接的单片机的I/O口作为输出端,而列线所接的作为输入。当没有键被按下时,所有输出端都是高电平,代表没有键按下。有键按下时,则输入线就会被拉抵,这样,通过读入输入线的状态就可以知道是否有键被按下。
键盘的列线接到P1口的低4位,行线接到P1口的高4位,列线P1.0~P1.3设置为输入线,行线P1.4~P1.7设置为输出线。
检测当前是否有键被按下。检测的方法是使P1.4~P1.7输出为0,读取P1.0~P1.3的状态,若P1.0~P1.3为全1,则无键闭合,否则有键闭合。
去除键抖动。当检测到有键按下后,延时一段时间再做下一步检测判断。
若有键按下,应该识别出是哪一个键闭合。方法是对键盘的行线进行扫描。P1.4~P1.7按下面4种组合依次输出1110,1101,1011,0111,在每组行输出时读取P1.0~P1.3,若全为1,则表示0这行没有键输入,否则有键闭合。由此得到闭合键的行值和列值,然后采用计算的方法或者查表的方法将闭合键的行值和列值转换成所定义的值。
为了保证每闭合一次CPU仅作一次处理,必须去除键释放时的抖动。产生的键值放在发送数据库区,30H存放的是产生的键值,即要遥控的8位地址共1字节,31H放的是和30H中的相同的8位地址,地址码重发了一次,主要是加强遥控器的可靠性,如果两次地址码不相同,则说明本帧数据有错,应该丢弃。32H放的是00H(为了编程简单),33H放的是0FFH,一共32位数据。要发送数据时,只要到那里读取数据即可,然后调用发射子程序发送。
②载波部分
根据前面介绍的红外遥控的基本原理,红外遥控器编码调制的方法其实很简单,只要生成一定时间长的电平就可以。再通过一个38kHz载波调制便可以发射编码。载波的产生方法有多种,可以由CMOS门电路RC振荡器构成,或者由555时基电路构成等。
在此次设计中采用的是CPU延时,即用定时器中断完成,用单片机的T0定时产生38kHz载波。设定定时器为方式2,即自动恢复初值的8位计数器。TL0作为8位计数器,TH0作为计数初值寄存器,当TL0计数溢出时,一方面置1溢出标志位TF0,向CPU请求中断,同时将TH0内容送入TL0,使TL0从初值开始重新加1计数。因此,T0工作于方式2,定时精度比较高。根据计算,设定38KHz的定时初值,采用12kHz晶振的定时初值为0F3H,用11.0592kHz晶振时的初值为0F4H,设定好定时器中断,在中断程序中只写入取反P2.0(CPLP2.0),当要发送数据1时,前面560μs高电平发送时,先打开定时器中断,再启动定时器,允许定时器工作,延时560μs再关定时器,后面1690μs的低电平因为不发送信号,所以可以直接置P2.0高电平后,延时1690μs即可;数据0前面的560μs高电平和数据1的一样,后面560μs的低电平因为不发送信号,所以可以直接置P2.0高电平后,延时560μs即可。
2红外接收解码电路
红外遥控接收采用一体化红外接收头,它将红外接收二极管、放大器、解调、整形等电路安装在一起,只有三个引脚。红外接收头的信号输出端接单片机的INT0端,单片机中断INT0在红外脉冲下降沿时产生中断。电路如图3.3所示,图中增加一只PNP三极管对输出信号放大,R和C组成去耦电路抑制电源干扰。
3遥控信号的解码算法
平时,遥控器无键按下时,红外发射二极管不发出信号,遥控接收头输出信号1,有键按下时,0和1的编码的高电平经遥控接收头反相后会输出信号0,由于与单片机的中断脚相连,将会引起单片机中断(单片机预先设定为下降沿产生中断)。
遥控码发射时由9ms的高电平和4.5ms的低电平表示引导码,用560μs的高电平和560μs的低电平表示数据“0”,用560μs的高电平和1690μs的低电平表示数据“1”,引导码后面是4字节的数据。接收码是发射码的反向,所以判断数据中的高电平的长度是读出数据的要点,在这里用882μs(560~1690μs之间)作为标尺,如果882μs之后还是高电平则表示是数据1,将1写入寄存器即可(数据为1时还需要再延时一段时间使电平变低,用来检测下一个低电平的开始)。882μs后电平为低电平则表示是数据0,则将0写入寄存器中,之后再等待下一个低电平的到来。
继续接收下面的数据,当接收到32位数据时,说明一帧数据接收完毕,然后判断本次接收是否有效,如果两次地址码相同并且等于本系统的地址码,数据码和数据反码之和等于0FFH,则接收的本帧数据有效,点亮一只发光二极管,否则丢弃本次接收到的数据。
接收完毕后,初始化本次接收到的数据,准备下次遥控接收。
以上就是小编为大家介绍的遥控器原理,希望能够帮助到您。更多关于遥控器原理的相关资讯,请继续关注土巴兔学装修。