Ⅰ 用51单片机做红外遥控器的电路图,只要将红外发射管上拉,然后连到单片机管脚上就行吗
如果你的红外发射二极管的发射电流小于20mA 可以 VCC接电阻连接到二极管的阳极,二极管阴极直接连接在单片机的IO口上。你的图纸上用三极管驱动的那个LED 你不接限流电阻不怕烧坏了吗?
还有你的单片机能复位吗??
Ⅱ 51单片机怎么用红外线
--你是指红外遥控解码吧,给你一点提示,在单片机定义一个I/O口为红外遥控的输入端口,(红外遥控解码不一定要用到定时器和中断方式.具体方法有很多的,看场合选取)当然输入这个端口的信号是经过遥控接收电路处理过的一串数据,如TTL或者CMOS电平。再然后就是对这个输入信号进行处理,也就是解调出遥控码值出来,要解这个码,首先又要知道其波形如何,即是逻辑电平和时序等问题...
建议你还是先熟知一下各种IR的遥控协议,有挺多的,典型的有NEC,飞利浦等。说说NEC的也有两种,简单的一种就是有32位数据,前16bit为地址码,后16bit为遥控码值的正码与反码,地址码用于区分相同协议下不同的遥控所带来的干扰等,正码和反码用于解调后进行校验数据。不多说了,主要是找点相关资料研究研究就明白了。图片是一个32bitNEC的遥控波形,这个波形的地址码是807F,正码是0x12,如果看懂了,用MCU解遥控码就很容易了..
Ⅲ 51单片机 红外遥控
脉冲到来(下降沿)进入中断程序中,中断后开定时器,同时要不断地判断低电平是否结束,然后关闭定时器,根据定时器计数大小判断是0还是1,并判断接收了多少位,除打开定时器外,所有这些工作都要在脉冲结束后(定时器关闭后)的560US内进行,时间是否足够,是否会影响下一次的中断?还有引导码怎么处理?思路是对的,但若单片机频率太低的话,有可能会超过560 US,既然思路已明,编程应该不难,试一试吧,毕竟对单一芯片解码容易得多,我整学习型遥控可费老大劲儿了
没看明白可能你是每次中断后读定时器,读的是上次中断到这次中断的时间然后就开始处理,时间还比较宽裕
Ⅳ 51单片机试验仪的遥控器怎么用
你好!
51单片机配的遥控器一般都是NEC解码的;
通过解码可以实现一些简单红外控制功能。
Ⅳ 51单片机最小系统怎样连接红外遥控模块
红外信号的发射由红外发射电路中的红外发光二极管完成,通常情况下为了提高抗干扰能力与降低电源消耗,遥控器将遥控信号(二进制脉冲码)调制在载波(载波是传送信息的物理基础和承载工具)上经放大后发送至红外二极管,再由二极管转换为红外信号发送出去。遥控器上不同的按键有着不一样的键值,按下相对应的键,红外二极管就会发送对应的信号,接收装置接收到信号后会对信号进行信号解调后会得到相应按键的键值,再根据不同的键值执行相应的操作。
Ⅵ 51单片机通过红外遥控器点亮/熄灭LED程序
首先!你的遥控器是什么遥控器?不同的遥控器键码也是有区别的!一般都是将红外接收一体管的信号引脚接到单片机外部中断引脚!在中断服务程序中解码
Ⅶ 可以用51单片机做红外遥控器吗
用 51单片机做红外接收比较好,发射器的话直接用普通电视或空调遥控器成品,成本很低,省去许多麻烦。
Ⅷ 51单片机红外遥控
需要找读码器读出来,给你一具C51的红外C程序,试用过,可以用。
/*
红外遥控编码识别工具软件
C51红外遥控键码识别软件,用软件方法测量红外遥控编码,由串口送出,利用串口调试助手接收,显示键码规律,
由显示的高低电平长度,可以分析出是PHILIPS编码(PPM编码),还是NEC编码(PWM编码),再根据编码的长度,
编写识别软件,我做实验的晶体频率是11.0592MHZ,长度是软件执行周期的相对值,如果识别软件采用相同的脉冲
宽度测量方法,可以用于键码识别。
*/
#include <reg51.H>
sbit IFda = P3^3;
unsigned char idata dat[230]={1,};
void main(void)
{
SCON=0X52;
TMOD=0X20;
TH1=0XFD;
TR1=1;
EX1=1;
EA =1;
IFda =1;
while (1);
}
void IFreceiver(void) interrupt 2
{
unsigned char i;
unsigned int s;
EA=0;
if(IFda==0)
{
dat[i]=0XF0;
i++;
for(s=1;s!=0; s++) if(IFda==1) break;
dat[i]=s/256;
i++;
dat[i]=s;
i++;
}
if(IFda==1)
{
dat[i]=0xFF;
i++;
for(s=1;s!=0;s++) if(IFda==0) break;;
dat[i]=s/256;
i++;
dat[i]=s;
i++;
}
for(i=0;i<216;i++)
{
TI=0;
SBUF=dat[i];
while(TI==0);
}
for(s=1;s!=0;s++);
EA=1;
}
Ⅸ 单片机如何实现红外遥控
以下文件是51单片机实现遥控解码,通过数码管显示键码的程序,P0口驱动数码管段选,p2.6和p2.7为数码管位选,接收头连到P3.2口。此程序以通过验证,可以直接编译使用,另外还有一个继电器和蜂鸣器的控制,不用可以屏蔽掉。
;********************************************************************************
;* 描述: *
;* 遥控键值读取器 *
;* 数码管显示, P0口为数码管的数据口 *
;* *
;********************************************************************************
;遥控键值解码-数码管显示 *
;********************************************************************************/
#include <reg51.h>
#include <intrins.h>
void IR_SHOW();
void delay(unsigned char x);//x*0.14MS
void delay1(unsigned char ms);
void beep();
sbit IRIN = P3^2;
sbit BEEP = P3^7;
sbit RELAY= P1^3;
sbit GEWEI= P2^7;
sbit SHIWEI= P2^6;
unsigned char IRCOM[8];
unsigned char code table[16] =
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
main()
{
IE = 0x81; //允许总中断中断,使能 INT0 外部中断
TCON = 0x1; //触发方式为脉冲负边沿触发
delay(1);
IRIN=1;
BEEP=1;
RELAY=1;
for(;;)
{
IR_SHOW();
}
} //end main
void IR_IN() interrupt 0 using 0
{
unsigned char i,j,k,N=0;
EA = 0;
I1:
for (i=0;i<4;i++)
{
if (IRIN==0) break;
if (i==3) {EA =1;return;}
}
delay(20);
if (IRIN==1) goto I1; //确认IR信号出现
while (!IRIN) //等 IR 变为高电平
{delay(1);}
for (j=0;j<4;j++)
{
for (k=0;k<8;k++)
{
while (IRIN) //等 IR 变为低电平
{delay(1);}
while (!IRIN) //等 IR 变为高电平
{delay(1);}
while (IRIN) //计算IR高电平时长
{
delay(1);
N++;
if (N>=30) {EA=1;return;}
}
IRCOM[j]=IRCOM[j] >> 1;
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;}
N=0;
}//end for k
}//end for j
if (IRCOM[2]!=~IRCOM[3]) {EA=1;return;}
IRCOM[5]=IRCOM[2] & 0x0F;
IRCOM[6]=IRCOM[2] & 0xF0;
IRCOM[6]=IRCOM[6] >> 4;
beep();
EA = 1;
}
void IR_SHOW()
{
P0 = table[IRCOM[5]];
GEWEI = 0;
SHIWEI = 1;
delay1(4);
P0 = table[IRCOM[6]];
SHIWEI = 0;
GEWEI = 1;
delay1(4);
}
void beep()
{
unsigned char i;
for (i=0;i<100;i++)
{
delay(5);
BEEP=!BEEP;
}
BEEP=1;
}
void delay(unsigned char x)//x*0.14MS
{
unsigned char i;
while(x--)
{
for (i = 0; i<13; i++) {}
}
}
void delay1(unsigned char ms)
{
unsigned char i;
while(ms--)
{
for(i = 0; i<120; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
Ⅹ 红外遥控器与51单片机
org 00h ORG 30H MOV P1,#0FFH MOV P2,#0FFH MOV P3,#0FFH START:
JB P3.7,$;等待遥控信号出现 SB: MOV R4,#8 ;8毫秒为高电平错误 SBA: MOV R5,#250 SBB: JB P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP SBC SXB1: MOV R5,#5 SXB2: ;去掉20US的尖峰干扰信号 JNB P3.7,SBB DJNZ R5,SXB2 JMP START SBC: MOV R5,#250 SB1: JB P3.7,SB2 ;2MS内不为高电平错误(监测9MS的低电 平引导码) DJNZ R5,SB1 DJNZ R4,SBC JMP START SB2: ;去掉20US的尖峰干扰信号 MOV R5,#5 SB2_A: JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3 SB2_1: MOV R5,#250 SB3: ;监测4.5MS高电平,如3MS内出现低电平错误 JNB P3.7,SXC DJNZ R5,SB3 DJNZ R4,SB2_1 MOV R4,#2 JMP SB3_1 SXC: ;去掉20US的尖峰干扰信号 MOV R5,#5 SXC1: JB P3.7,SB3 DJNZ R5,SXC1 JMP START SB3_1: ;监测4.5MS高电平,如5MS内不为低电平错误 MOV R5,#250 SB3_2: JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP START SB4: ;去掉20US的尖峰干扰信号 MOV R5,#5 SB4_1: JB P3.7,SB3_2 DJNZ R5,SB4_1 MOV R1,#1AH ;设定1AH为起始RAM区 MOV R2,#4 PP: MOV R3,#8 JJJJ: MOV R5,#250 JJJJ2: ;1MS内不为低电平错误 JB P3.7,JJJJ3 DJNZ R5,JJJJ2 JMP START JJJJ3: LCALL YS1 ;高电平开始后用882微秒的时间尺去判断信 号此时的高低电平状态 MOV C,P3.7 ;将P3.7引脚此时的电平状态0或1存入C中 JNC UUU ;如果为0就跳转到UUU MOV R5,#250 JJJJ4: JNB P3.7,UUU NOP DJNZ R5,JJJJ4 JMP START UUU:MOV A,@R1 ;将R1中地址的给A RRC A ;将C中的值0或1移入A中的最低位 MOV @R1,A ;将A中的数暂时存放在R1中 DJNZ R3,JJJJ ;接收地址码的高8位 INC R1 ;对R1中的值加1,换成下一个RAM DJNZ R2,PP ;接收完16位地址码和8位数据码和8位数据 反码,存放在1AH/1BH/1CH/1DH的RAM中 ;以下对代码是否正确和定义进行识别 MOV A,1AH;比较高8位地址码 XRL A,#00000000B;判断1AH的值是否等于00000000, 相等的话A为0 JNZ EXIT;如果不相等说明解码失败退出解码程序 MOV A,1BH;比较低8位地址 XRL A,#11111111B;再判断高8位地址是否正确 JNZ EXIT;如果不相等说明解码失败退出解码程序 LCALL YS3 MOV A,1CH;比较数据码和数据反码是否正确? CPL A XRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢 弃,核对数据是否准确 JNZ EXIT;如果不相等说明解码失败退出解码程序 LCALL YS3 AJMP BIJIAO ;判断在118毫秒内是否有连发码 AA:MOV R1,#25 XX:ACALL YS2 JNB P3.7,HH;跳转到判断连发代码是否正确的程序段 DJNZ R1,XX EXIT: ;对所有端口清零
AJMP START ;连发码判断程序段-----------HH:MOV R6,#4 S: ACALL YS1;调用882微秒延时子程序 JB P3.7,EXIT;延时882微秒后判断P3.7脚是否出现高电平 如果有就退出解码程序 DJNZ R6, S;重复4次,目的是确认连发码的低电平信号波 形 JNB P3.7, $ ;等待高电? LCALL YS3 AJMP AA
BIJIAO:MOV A,1CH;按键数值判断执 CJNE A,#10h,TT1 clr p0.0 TT1: CJNE A,#03h,T2 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.1 T2: CJNE A,#01h,T3 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.2 T3: CJNE A,#06h,T4 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.3 T4: CJNE A,#09h,T5 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.4 T5: CJNE A,#1dh,T6 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.5 T6:CJNE A,#1fh,T7 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.6 T7: CJNE A,#0dh,T8 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p0.7 T8:CJNE A,#19h,t9 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.0 T9:CJNE A,#1bh,t10 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.1 T10: CJNE A,#11h,t11 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.2 T11: CJNE A,#15h,t12 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.3 T12: CJNE A,#17h,t13 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.4 T13: CJNE A,#12h,t14 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.5 T14: CJNE A,#16h,t15 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.6 T15: CJNE A,#4ch,t16 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p1.7 T16: CJNE A,#40h,t17 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.0 T17: CJNE A,#48h,t18 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.1 T18: CJNE A,#04h,t19 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.2 T19: CJNE A,#00h,t20 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.3 T20: CJNE A,#02h,t21 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.4 T21: CJNE A,#05h,t22 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.5 T22: CJNE A,#54h,t23 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.6 T23: CJNE A,#4dh,t24 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p2.7 T24: CJNE A,#0ah,t25 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p3.0 T25: CJNE A,#1eh,t26 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p3.1 T26: CJNE A,#0eh,t27 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p3.2 T27: CJNE A,#,t28 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p3.3 T28: CJNE A,#1ch,t29 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p3.4 T29: CJNE A,#14h,t31 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
clr p3.5 T31: CJNE A,#0ch,t32 mov p0,#0ffh mov p1,#0ffh mov p2,#0ffh mov p3,#0ffh
t32:AJMP AA YS1:MOV R4,#20 ;延时子程序1,精确延时882微秒 D1: MOV R5,#20 DJNZ R5,$ DJNZ R4,D1 RET YS2: MOV R4,#10 ;延时子程序2,精确延时4740微秒 D2: MOV R5,#235 DJNZ R5,$ DJNZ R4,D2 RET YS3:MOV R4,#2;延时程序3,精确延时1000微秒 D3:MOV R5,#248 DJNZ R5,$ DJNZ R4,D3 RET END