HC-SR501人体红外感应模块程序

 

 

 当感应到时,输出一个高电平。这里我对io口进行了配置,要不然读不到高电平。建议大家以后养成习惯,对io口进行配置,stm32中会用到。

在这里我额外提下,一般在stm32中  浮空输入 芯片内部没有接上下拉电阻。由于其输入阻抗较大,这种模式一般用于标准通信协议,如I2C、USART的接收端等

模拟输入模式:芯片内部由另一条线路把电压信号传送到片上外设模块。如传送至ADC模块,由ADC采集电压信号。使用ADC外设时候必须使用该模式。

普通推挽一般用于输出电压0-3.3V,普通开漏一般用于输出5V高电平场合。(注:任何一种开漏模式,都需要接上拉电阻)

#include<stc12c5a60s2.h>
sbit renti=P1^4; //人体红外输出接收口

void ioinit()  //设P1.3口为高阻输入
{
	P1M0=0x08;
	P1M1=0;
}

void ganying()
{
	if(renti==1) d=0;
	else d=1;
}

void main()
{
   ioinit();
   while(1)
   {
      ganying();
   }

}

猜你喜欢

转载自blog.csdn.net/zy19981110/article/details/89947118