原创 反射式红外报警

2008-4-16 00:36 3639 4 8 分类: MCU/ 嵌入式

 EDN51验证  ,不过,我不知道为什么,在台灯下面存在问题,就是会误报,不知道是不台灯也是38KHZ,呵呵,谁来解释哈撒


 


/**************************************************************************
简单的被动式红外线报警器
 PA=P1^0发射;
 PB=P0^7LED闪;
 PC=P0^6;灯


PD="P1"^7蜂鸣器
***************************************************************************/


#include   //


#include
void delay_nus(unsigned int n);//函数声明,本实验中会用到这两个函数
void delay_nms(unsigned int n);
sbit PA="P1"^0;
sbit PB="P0"^7;
sbit PD="P1"^7;
sbit PC="P0"^6;


 


void main(void)//主函数

  unsigned int i;
 
  unsigned int n;


  unsigned int j;
 
  IP="0x02";
  TMOD="0x01";
  PA="0";
  //TH0=-(26/256);
  //TL0=-(26%256);
   TH0=0xD1;
  TL0=0x33;
  IT0=1;  //电平触发
  EA="1";
  ET0=1;
  TR0=1;
  EX0 = 1; //允许外部中断0
 
 // TR0=1;
  //EX0 = 1; //允许外部中断0


  
   PB="0";
   PC="1";
   PD="1";
   j="0";
  
 
 while(1)
    {
     EX0 = 1;
  
  if(PC==0)
   {
        j++;
        if(j>10)
       {
     for(i=0;i<5;i++)
      {
          PB="0";//led
    PD="0";
       delay_nms(100);
    PB="1";//led
    PD="1";
    }
      j="0";
  
  
     }
     PC="1";
   }
 
    } 
}


void time() interrupt 1 using 1//产生38KHz的方波信号
{
  PA=!PA;
  TH0=0xD1;
  TL0=0x33;
}



void xian() interrupt 0 using 0
{  
    PC="0"; 
 EX0 = 0;
}



void delay_nus(unsigned int n)//n微秒延时函数
{
unsigned int i;
for (i=0;i  {
      _nop_();
  }
}


void delay_nms(unsigned int n)//n毫秒延时函数
{
  unsigned int i;
  for (i=0;i  delay_nus(1000);
}

文章评论4条评论)

登录后参与讨论

用户13449 2010-5-9 16:06

博主我最近在做一个红外线报警系统,要求静态功耗要低于0.072mA可否给我一下指导

用户187290 2009-5-4 22:26

LZ真是勤奋啊 东西都很有用哦

用户393407 2008-4-18 15:33

这么奇怪,你到网上查查嘛

用户1364249 2008-4-18 12:40

还请博主解释一下原理和使用方法,哈哈哈
相关推荐阅读
jizzll_617398179 2010-02-08 10:53
正确理解A/D转换器的输入
http://www.freescale.com.cn/tech_ariticles/2005/1102_1.asp 许多嵌入式应用都会用到A/D转换器。然而,如果错误连接了A/D转换器输入端的电路,...
jizzll_617398179 2010-01-12 13:37
好久没来,都长草了
好久没来,都长草了,呵呵。整天忙得很,不过估计再过两个月会轻松点~\(≧▽≦)/~啦啦啦...
jizzll_617398179 2009-03-16 21:57
很奇怪,我收到站内信,但是却找不到发信人呢
发信人是个[],点击就跳到我自己的主页了。只好在这里给那位朋友留言了。 我不知道你说的哪篇文章,还有我也不知道你的EDN的ID。你可以在博客上面留言的。...
jizzll_617398179 2009-03-14 13:08
如何在EXCEL中使用16进制数
最近需要计算串口发送的数据,太多而且比较麻烦。知道EXECL功能强大,所以网上找了找,刚好,不错,很方便。网上找到的http://hi.bccn.net/space-99452-do-blog-id-...
jizzll_617398179 2009-03-05 14:37
〖常识〗不同晶振的最大波特率及其误差
最近犯了个错误,呵呵,晶振和波特率的问题,特查了记在这里,O(∩_∩)O~〖常识〗不同晶振的最大波特率及其误差http://www.aoxue.org/bbs/read.php?tid=65585不同...
jizzll_617398179 2009-02-11 14:30
大端模式和小端模式
转载http://www.cnblogs.com/TsuiLei/archive/2008/10/29/1322504.html大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则...
我要评论
4
4
关闭 站长推荐上一条 /2 下一条