基于51单片机的安全带控制(红外)原理图、流程图、物料清单、仿真图、源代码
基于51单片机的安全带控制(红外)
汽车安全带控制系统
1、如果驾驶座上没人,系统停止,安全带由电机控制收回
2、如果驾驶座上有人,安全带由电机控制释放;如果此时发动机启动,安全带没有锁上,则通过LED闪烁提示驾驶员。
#include "reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit led1=P3^5;//警示灯
sbit led2=P3^6;
sbit out1=P2^0;//电机
sbit out2=P2^1;
sbit in1= P1^0;//锁住
sbit in2= P1^1;//汽车发动
sbit in3= P1^2;//红外
uchar flag=0;//安全带状态
//延时函数
void delay_ms(uint i)
{
uchar j;
while(i--)
{
for(j=0;j<110;j++);
}
}
//主函数
void main()
{
while(1)
{
if(!in3)//座位有人
{
if(in1 && !in2)//发动机启动,安全带没锁
{
led1=0; //闪烁提示
delay_ms(500);
led1=1;
delay_ms(500);
}
else //安全带锁住
{
led1=1;
flag=1;
}
//伸出安全带
if(led2)
{
out1=0;
delay_ms(3000);
out1=1;
led2=0;
}
}
else//座位上没人
{
//收回安全带
if(!led2)
{
out2=0;
delay_ms(3000);
out2=1;
led2=1;
}
led1=1;
}
}
}