51单片机遥控器 这里有遥控器的键码图,求大神写一个点亮led灯的例程,

小弟我好学习学习啊!!空有键码不会用啊😭😭😭😭可以的话大哥普及一下遥控器知识吧!!!... 小弟我好学习学习啊!!空有键码不会用啊😭😭😭😭
可以的话大哥普及一下遥控器知识吧!!!
展开
 我来答
百度网友3fb99e8
2016-04-26 · TA获得超过451个赞
知道小有建树答主
回答量:640
采纳率:0%
帮助的人:259万
展开全部
//红外一体化接收头接P3.2 外部中断0 负边沿触发
//采用外部中断0  因此IRIN必须使用p3.2 
#include <reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint  unsigned int
sbit IRIN = P3^2;         //红外接收器数据线
sbit led = P1^5;         //蜂鸣器驱动线
uchar key=0;//键值储存
uchar x=4; //遥控器一般为4个数据 不同时修改此处
uchar IRCOM[7];
void delay1(int ms);
void beep();
void delay(unsigned char m)    //x*0.14MS
{
 unsigned int time;
  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)
    {
        case 0x45:led=~led;key=0;break;//键值0x45 其他键值自己加
        default : break;
    }
 }
} //end main
/**********************************************************/
void IR_IN() interrupt 0 using 0
{
  unsigned char j,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;
   }//end for k
  }//end for j
/***数据收集完毕*****************************/
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;
}
追问
您看看我这个要怎么解决
中洲贸易
2024-10-30 广告
上海中洲国际贸易有限公司致力于MACNEE马可尼、禹鼎、SAGA沙克工业无线遥控器产品在中国地区的销售、技术支持、售后服务。我们拥有经验非常丰富的技术支持人员,完善的工业无线遥控技术的咨询、支持和售后服务。在冶金、起重机械、工程机械、建筑机... 点击进入详情页
本回答由中洲贸易提供
化疏慧RN
2016-04-26 · TA获得超过600个赞
知道小有建树答主
回答量:1304
采纳率:0%
帮助的人:268万
展开全部
你的硬件做好了吗 原理图发给我看看 我做单片机的9736
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式