打印

红外传感器编程问题?

[复制链接]
1803|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wwaannggll|  楼主 | 2009-3-1 14:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这个程序没有明白谁给指教一下!!!谢谢
这是51接收红外线时的程序

#include <reg52.h>       //51芯片管脚定义头文件
#include <intrins.h>     //内部包含延时函数 _nop_();

#define uchar unsigned char
#define uint  unsigned int

sbit  IRIN = P3^2;         //红外接收器数据线
sbit  BEEP = P2^3;         //蜂鸣器驱动线


uchar IRCOM[]={0x00,0x00,0x00,0x00,0x10,0x10};
uchar  dis[8];

void delay(unsigned char x);
void beep();
main(void)
{
    EA=1;
    ET0=1;
    EX0=1;




void IR_IN() interrupt 0 //using 0
{
    unsigned char j,k,N=0;
    EA = 0;   
    delay(10);
    
    if (IRIN==1) 
    {
        EA =1;
        return;
    } 
                    //确认IR信号出现
    while (!IRIN)   //等IR变为高电平,跳过9ms的前导低电平信号。
    {
        delay(1);
    }
    while (IRIN)   //等IR变为高电平,跳过9ms的前导低电平信号。
    {
        delay(1);
    }  
    for (j=0;j<4;j++)         //收集四组数据
    { 
        for (k=0;k<8;k++)        //每组数据有8位
        {
            while (IRIN)            //等 IR 变为低电平,跳过4.5ms的前导高电平信号。
            {
                delay(1);
            }
            while (!IRIN)          //等 IR 变为高电平
            {
                delay(1);
            }
            while (IRIN)           //计算IR高电平时长
            {
                delay(1);
                N++;   
            }                        //高电平计数完毕     
               if (N>=30)
            { 
                EA=1;
                return;                  //0.14ms计数过长自动离开。
            }
            IRCOM[j]=IRCOM[j] >> 1;                  //数据最高位补“0”
            if (N>7) 
            {
                IRCOM[j] = IRCOM[j] | 0x80;
            }                          //数据最高位补“
            N=0;
        }//end for k
    }//end for j
    
    IRCOM[4]=IRCOM[2] & 0x0F;     //取键码的低四位
    IRCOM[5]=IRCOM[2] >> 4;       //右移4次,高四位变为低四位

    beep();
    EA = 1; 


void beep()
{
  unsigned char i;
    for (i=0;i<180;i++)
   {
     delay(6);
     BEEP=~BEEP;                 //BEEP取反
   }  
  BEEP=1;                      //关闭蜂鸣器
}

相关帖子

沙发
zdwabcdefg| | 2009-3-2 07:51 | 只看该作者

好熟悉的 编程思想啊!

我的老师 和您的 编程步骤差不多!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

6

帖子

0

粉丝