❶ 求51单片机红外遥控程序
sbitIR_OUT=P3^2;
unsignedcharSigInfo[4];//存储红外按键编码,SigInfo[2]为按键值
voidCmd_Require(void);
voidINT_Ext0()interrupt1//外部中断0
{
u8i,j;
u16time=8000;
EA=0;
for(i=0;i<10;i++){
delay0_7ms();
if(IR_OUT){
EA=1;
return;
}
}
while(!IR_OUT);
delay2_5ms();
if(!IR_OUT){
EA=1;
return;
}
while(IR_OUT&&time){
time--;
}
time=8000;
for(i=0;i<4;i++){
for(j=0;j<8;j++){
SigInfo[i]>>=1;
while(!IR_OUT);
delay0_7ms();
if(IR_OUT){
SigInfo[i]|=0x80;
while(IR_OUT&&time){
time--;
}
time=8000;
}
}
}
Cmd_Require();
EA=1;
}
voidCmd_Require(void)
{
switch(SigInfo[2]){
case0x0c:
//此处代码随意
break;
case0x18:
//...
break;
//...
default:
break;
}
}
延时没写,因单片机而异的,要精确点才能解码。
❷ 怎么用遥控器控制单片机
遥控器上有红外线发射管
受控制的单片机电路上有接收管
都是对号的,这个电路比较简单~~~
❸ 怎么用一个遥控器控制单片机上的一个LED灯
通过特定的编程写入单片机,用一个遥控器控制单片机上的一个LED灯。
此外,还需要加装遥控器信号接收装置,将遥控器脉冲信号变换成电流信号。
将电流信号输入单片机,然后对单片机进行适当编程,就可以达到用遥控器控制LED灯的效果。
❹ 如何用单片机控制遥控器
电视机遥控器,编码是固定的,空调遥控器编码是不固定的,如设置温度的编码是根据温度的变化编码是不同的,当然你可以测试空调遥控器不同状态的编码来设置单片机发送不同的编码就可以了。单片机是肯定可以做得到。
❺ 单片机的红外遥控的原理
1、发送端由单片机和红外发光二极管组成。
单片机控制红外发光二极管发射38KHz左右的红外光,这个红外光就可能起到传递信号的作用。你可以在你的程序中规定发射红外线时表示二进制的一个位‘1’无红外线时表示二进制的‘0’。这样你就可以发出一系列由‘1’和‘0’所级成的信号。
2、接收端是由红外接收二极管和单片机组成。
前面我们让发射端发出信号,现在接收头就开始收信号。
❻ 如何通过单片机遥控步进电机和调速
单片机本身没有遥控功能,可以扩展外部硬件的方式来实现功能,看你需要的是那一种遥控方式,可以扩展红外线,无线射频,WIFI,GPRS,等,然后这些模块是可以通过串口或是IIC的方式和单片机连接,写一段接收程序,就可以改变步进电机的速度快慢了,
❼ 单片机如何实现红外遥控
以下文件是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_();
}
}
}
❽ 单片机红外遥控按键定义
单片机红外遥控器按键输入系统实现 . 摘要 本设计主要应用了 AT89C52 单片机作为核心,综合应用了单片机中断系统、定 时器、计数器等知识,应用红外光的优点。
❾ 单片机开发板自带的遥控器是个什么意思,它里面和一般键盘一样吗怎么用呢
单片机开发板自带的遥控器通常是NEC编码的红外遥控器,是为用户学习红外遥控解码而配备的,用户需要自己构建遥控器信号的解码程序,并自己定义遥控器上按键的功能。
有些开发板还带有连接键盘的PS/2插口,这是为了让用户学习PS/2接口协议而配备的,用户同样需要自己构建相关的程序,并定义按键功能。
❿ 单片机遥控小车怎么做
首先确定要实现的功能,然后选择硬件,如小车是四驱还是双驱,要不要舵机
遥控发射/接收模块的选择,单片机型号选择,然后编程,并进行实验
当然要分步实施 ,先会驱动舵机 ,会使用电机驱动模块L298N,会无线模块的收发
最后组合一块才行
我选的小车是2 个驱动电机带舵机 电机驱动模块是L298N,无线模块是NRF24L01,单片机STC12C5A32S2,小车上用的是51最小系统板,遥控发射用的是TX-1C51单 片机开发板,小车电源用的是充电宝,NRF24L01供电是靠5V经二个二极管降压得到,模块与单片机接口直接连,基本成功
不过小车体积还是太小了,虽然长度达260mm,但前面是舵机要转 向,放不下东西 ,充电宝放不上去,实验时充电宝拖地运行,或专门手拿充宝随着小车跑,另外舵机回零时有抖动现象
5V供电行走速度较慢,如果换成电压高的电源供电,还需给单片机和舵机降压,麻烦
舵机转向瞬间电流较大, 但控制脉冲可以由单片机直接输出不需放大