继电器就好比一个电子开关,是通过软件或者单片机来控制他的通断。继电器有输出端和输入端,输出端就是用来对控制电路的通断,输入端就是软件或者单片机对它输入信号。
输入端有VCC、GND、IN三个引脚,VCC和GND分别接在单片机的5V电源和GND,IN引脚可以根据自己的选择接在单片机的哪个引脚,我这里接的是P1^1引脚。
输出端这里暂时不接,输出端有三个口,分别是COM、NO、NC。COM口是必须接的口,也可以称为公共端。
NO口,我们通常成为常开口。也就是说,当你把继电器NO口接入一个电路里面,它会使得电路为断路,电路通不起来,当你给它一个高电平或者低电平时,这个电路才会导通。
NC口,我们通常称为常闭口,他与NO相反。当你用NC口接入电路时,他会使得整个电路为通路,当你给一个高电平或者低电平时,他才会断开。
#include "reg52.h" //51单片机的头文件
#include "intrins.h" //_nop_()函数的头文件
sbit DO = P3^3; //震动传感器DO的引脚定义
sbit IN = P1^1; //继电器IN口的引脚定义
void Delay1000ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 43;
j = 6;
k = 203;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
//用while不断查询震动传感器的状态
while(1)
{
//当DO为低电平时,说明震动传感器感受到了震动
if(DO == 0)
{
//当发生震动的时候,导通继电器,给继电器IN输出一个低电平
IN = 0;
Delay1000ms();
//高电平,NO和COM不通
IN = 1;
}
else
{
IN = 1;
}
}
}
整个业务逻辑就是,当震动传感器感应到震动时就给继电器一个低电平让它导通,震动传感器可以查看上一章。