不知道怎么不行,哭
/**************************************************************************
简单的被动式红外线报警器
PA=P1^0发射;
PB=P0^7LED闪;
//PC=P0^6;灯
***************************************************************************/
#include<reg51.h> //
#include <intrins.h>
void delay_nus(unsigned int n);//函数声明,本实验中会用到这两个函数
void delay_nms(unsigned int n);
sbit PA="P1"^0;
sbit PB="P0"^7;
//sbit PD="P3"^2;
//sbit PC="P1"^2;
void main(void)//主函数
{
unsigned int i;
unsigned int j;
unsigned int n;
IP="0x02";
TMOD="0x01";
PA="0";
TH0=-(26/256);
TL0=-(26%256);
IT0=1; //电平触发
EA="1";
ET0=1;
TR0=1;
EX0 = 1; //允许外部中断0
// TR0=1;
//EX0 = 1; //允许外部中断0
j="1";
PB="0";
while(1)
{
if(j>10)
{
for(i=0;i<20;i++)
{
PB=!PB;//led
//PC=0;
// PC=!PC;//灯快闪
delay_nms(10000);
}
j="0";
}
}
}
void time() interrupt 1 using 1//产生38KHz的方波信号
{
PA=!PA;
TH0=-(26/256);
TL0=-(26%256);
}
void xian() interrupt 0 using 0
{ unsigned int j;
j++;
EX0 = 0;
}
void delay_nus(unsigned int n)//n微秒延时函数
{
unsigned int i;
for (i=0;i<n;i++)
{
_nop_();
}
}
void delay_nms(unsigned int n)//n毫秒延时函数
{
unsigned int i;
for (i=0;i<n;i++) //执行n次1毫秒延时
delay_nus(1000);
}
jizzll_617398179 2008-4-16 21:03
jizzll_617398179 2008-4-16 21:02
用户10754 2008-4-16 11:18