功能:
0.本系统采用STC89C52作为单片机
1.模拟汽车灯光控制系统,支持双闪,转向灯光控制
2.上锁后,非法进入,灯光双闪,喇叭报警,报警电路采用的LED和蜂鸣器组成的声光报警系统
3.本系统采四个功能按键来操控转弯灯、双闪灯
4.采用DC002作为电源接口可直接输入5V给整个系统供电
5.采用HC-SR501人体红外传感器判断车辆内是否有人
6.车门锁采用一个波动开关来模拟演示
原理图:
PCB :
主程序:
#include "main.h"bit refreshFlag = 1;bit doubleFlashFlag = 0; //双闪标志bit leftFlag = 0; //左转标志bit rightFlag = 0; //右转标志bit alarmSwitch = OFF; //报警开关bit alarmFlag = 0; //报警标志void main(void){Timer0_Init();while (1) //主循环{if (refreshFlag == 1) //100ms获取数据{refreshFlag = 0;if (alarmSwitch == ON){if (ALARM_PIN == 0) //非法进入检测{if (alarmFlag == 0){alarmFlag = 1;doubleFlashFlag = 1;LED_LEFT = OFF;LED_RIGHT = OFF;}}else{if (alarmFlag == 1){alarmFlag = 0;doubleFlashFlag = 0;LED_LEFT = OFF;LED_RIGHT = OFF;}}}if (alarmFlag == 1){BUZZER = ~BUZZER;}else{BUZZER = OFF;}if (LOCK_PIN == CLOSE) //车辆上锁{if (alarmSwitch == OFF){alarmSwitch = ON;}}else{if (alarmSwitch == ON){alarmSwitch = OFF;alarmFlag = 0;doubleFlashFlag = 0;LED_LEFT = OFF;LED_RIGHT = OFF;}}}KeyProcess();}}/*------------------------------------------------定时器初始化子程序------------------------------------------------*/void Timer0_Init(void){TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响TL0 = 0x00;//设置定时初值TH0 = 0x4C;//设置定时初值 50msEA = 1; //总中断打开ET0 = 1; //定时器中断打开TR0 = 1; //定时器开关打开}/*------------------------------------------------定时器中断子程序------------------------------------------------*/void Timer0_Interrupt(void) interrupt 1{static unsigned int time50ms = 0;TL0 = 0x00;//设置定时初值TH0 = 0x4C;//设置定时初值 50mstime50ms++;if (time50ms >= 10) // 0.5s{time50ms = 0;refreshFlag = 1;if (doubleFlashFlag == 1) //双闪{LED_LEFT = ~LED_LEFT;LED_RIGHT = ~LED_RIGHT;}else if (leftFlag == 1) //左转灯{LED_LEFT = ~LED_LEFT;LED_RIGHT = OFF;} else if (rightFlag == 1) //右转灯{LED_RIGHT = ~LED_RIGHT;LED_LEFT = OFF;}else{LED_LEFT = OFF;LED_RIGHT = OFF;}}}
仿真演示视频:
/video/BV1N5411X7bQ/
实物演示视频:
/video/BV1N14y1E7GA/