STM32F103单片机智能门禁热释人体感应报警程序芯片解密
芯片解密单片机源程序如下:
- #include "delay.h"
- #include "sys.h"
- #include "usart.h"
- #include "key.h"
- #include "led.h"
- #include "lcd1602.h"
- u8 lighFlag=0; //光照 标志
- u8 doorFlag=0; //门检测 标志
- u8 manFlag=0; //人检测 标志
- u8 menlingFlag=0; //门铃检测 标志
- u8 baojFlag=0; //报警 标志
- int main(void)
- {
- u32 time10ms=0;
-
- delay_init(); //延时函数初始化
- KEY_Init(); //初始化 按键
- LED_Init(); //初始化电机引脚 作为输出 类似led
- delay_ms(1);
-
- Lcd_GPIO_init(); //初始化lcd引脚
- Lcd_Init(); //初始化lcd屏幕
- delay_ms(20);
-
- Lcd_Puts(0,0,"Waitting for you"); //初始化显示
- Lcd_Puts(0,1,"Nobody! ");
-
- buzzer=1; //打开 上电开关一下 方便检测
- ligh=1;
- led_hot = 0;
- delay_ms(200);
- led_hot = 1;//关闭 用于测试
- buzzer=0;
- ligh=0;
-
- while(1)
- {
- delay_ms(10);
- if(manFlag==1)
- {
- Lcd_Puts(0,0,"Welcome to home!"); //显示有人
- if(lighFlag==1) //有人情况查看是否需要开灯
- {
- ligh=1;//打开 灯
- }
- else
- {ligh=0;}//关闭
- time10ms++;
- if(time10ms>=3000) //有人超过30s 报警
- {
- buzzer=1; //打开蜂鸣器
- baojFlag=1;//报警
- }
- }
- else
- {
- Lcd_Puts(0,0,"Waitting for you"); //没有人情况 显示等待
- ligh=0; //没有人关闭led
- time10ms=0; //清零紧急报警
- baojFlag=0;
- }
- if(doorFlag==1)
- {
- Lcd_Puts(0,1,"Somebody! "); //家中有人
- if(baojFlag==0) //非紧急情况
- {
- if(menlingFlag==1) //门铃
- {
- buzzer=1;//打开蜂鸣器
- }
- else
- {buzzer=0;} //关闭蜂鸣器
- }
- }
- else
- {
- Lcd_Puts(0,1,"Nobody! "); //家中无人
- if(baojFlag==0) //非紧急情况
- { buzzer=0;}
- }
-
- if(key_menling==0) //检测
- {
- menlingFlag=1;
- }
- else
- {menlingFlag=0;} //否则复位标志
- if(key_redhot==1) //检测人体
- {
- manFlag=1;led_hot = 0;//标志
- }
- else
- {manFlag=0;led_hot = 1;} //否则复位标志
- if(key_door==1) //检测 门状态
- {
- doorFlag=1;
- }
- else
- {doorFlag=0;} //否则复位标志
- if(key_ligh==1) //检测光度
- {
- lighFlag=1;
- }
- else
- {lighFlag=0;} //否则复位标志
- }
- }

芯片解密