您当前的位置: 首页 >  单片机

咸鱼弟

暂无认证

  • 1浏览

    0关注

    165博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

基于单片机GSM的防火防盗系统的设计

咸鱼弟 发布时间:2022-07-31 21:41:04 ,浏览量:1

目录

【功能介绍】

【原理图】

【PCB】

【实物图】

【元器件清单】

【源程序】

【原理介绍】

【参考资料】

【参考文献】

【功能介绍】

本系统建立了一个基于GSM网络及短信息平台上的安防系统,设计中采用了STC89C52单片机系统、无线GSM短信模块及传感器技术。通过对主控模块、通信网络、传感器模块、短信模块及接口电路的控制。实现了系统的远程报警及控制功能,可以实现如下功能。

(1)该设计包括硬件和软件设计两个部分。模块划分为数据采集、单片机控制、GSM短信报警等模块子函数。

(2)系统可实现功能。当人员外出时,可把报警系统设置在外出状态,探测器开始工作,当有人闯入时,热释电红外传感器将探测到动作,并短信报警,向用户发送短信息实现远程防盗报警功能。

【原理图】

【PCB】

【实物图】

【元器件清单】 21-GSM防火防盗系统名称型号数量单片机STC89C521IC座DIP401万能板9*15cm1晶振11.0592M1电解电容10uF1电解电容1000uf1瓷片电容22pF2电阻10K3电阻1K4电阻2K1LED红5MM1LED绿5MM1蜂鸣器有源1三极管S90121按键5显示屏LCD16021排针16P1排母16P1人体红外模块HC-SR5011排母3P1温度传感器DS18B201烟雾传感器MQ-21模数转换器ADC08321IC座8P1GSM模块SIM800c1电源座5MM1电源线5V2A1自锁开关1继电器1小水泵1导线若干焊锡丝若干 【源程序】
#include
#include
#include "sim800.h"	
#define uchar unsigned char
#define uint  unsigned int
#define K_MG_MV    120/66 
typedef unsigned char  U8;       /* defined for unsigned 8-bits integer variable 	  无符号8位整型变量  */
typedef unsigned int   U16;      /* defined for unsigned 16-bits integer variable 	  无符号16位整型变量 */
unsigned char aa,bb,cc;
/********测试GSM是否启动**********/
int test_boot;
/********测试GSM是否注册网络**********/
int test_net_register;
/********GSM串口接收数据缓存**********/
unsigned char idata GSM_receive[60];
/********GSM串口接收计数器**********/
unsigned char  GSMDATA_count;
unsigned char *content_fire = "Please note that!  There are fire,no thief!\r\n";  //请注意!无盗贼,有火灾!
unsigned char *content_thief = "Please note that! There are thieves, no fire!\r\n";  //请注意!有盗贼,无火灾!
unsigned char *content_fire_thief = "Please note that! There are thieves, there are fires!\r\n";	//请注意!有盗贼,有火灾!
unsigned char str_yw[12];//烟雾值
unsigned char T_baojing = 30;  //温度报警值
unsigned int  C_baojing = 200; //烟雾浓度报警值
unsigned char T_buff[3];  //温度报警值显示缓存
unsigned char C_buff[4];  //烟雾报警值显示缓存
bit sdbj_flag=0; //手动报警标志
bit sf_flag=0; //设防标志
bit sf_flag_buff=0; //布放开始计时标志
unsigned char moshi=0;//设置模式
unsigned char data1;  //AD转换中间值
long Value;// AD转换结果值
/*******引脚定义********************/
sbit  Infra	 = P3^2; //  人体红外模块
sbit bADcs=P3^4; //	 模数转换器引脚定义
sbit bADda=P3^5; //	 模数转换器引脚定义
sbit bADcl=P3^6; //	 模数转换器引脚定义
sbit baojing=P3^7;	  //手动报警
sbit  BUZZER = P2^0; //  LED蜂鸣器
sbit shuibeng = P2^1;	//水泵
sbit fengshan = P2^2;	//风扇
sbit  sf_led = P1^3;//   设防指示灯
sbit  shefang= P1^4;//   设防按键
sbit  shezhi = P1^5; //  设置
sbit  jia    = P1^6; //	 加
sbit  jian   = P1^7; //  减	

unsigned char IntToString(unsigned char *str, int dat);
extern bit Start18B20();
extern bit Get18B20Temp(int *temp);				//	  ;;;;;、‘       
extern void InitLcd1602();
extern void LcdShowStr(unsigned char x, unsigned char y, unsigned char *str);
float intT, decT;  //温度值的整数和小数部分

 
/*------------------------------------------------
                    定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
 TMOD |= 0x01;	  //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响		     
 TH0=(65536-1000)/256;		  //重新赋值 1ms
 TL0=(65536-1000)%256;
 EA=1;            //总中断打开
 ET0=1;           //定时器中断打开
 TR0=1;           //定时器开关打开
 PT0=1;           //优先级打开
}

long kssj()   //开始收集
 {
   unsigned char i;

     bADcs = 0;//当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用.
	 bADcl=0;
	 bADda=1;
	 bADcl=1;
	 bADcl=0;//i down
	 bADda=1;
	 bADcl=1;
	 bADcl=0;	//   2 down
	 bADda=0;
	 bADcl=1;
	 bADcl=0;	//   3 down
	 bADda=1;
	 bADcl=1;
	 bADcl=0;	//   4 down

	 for(i=8;i>0;i--)
	 	{
		
	 	data1=999 )C_baojing =999;
			}		
		 }
	 }
	 if(jian == 0)
	 {
	    Delay_Ms(10);
	    if(jian == 0)
	    {
		    while(!jian);
	        if(moshi==1)
			{
			 T_baojing-- ;
			 if( T_baojing            
关注
打赏
1663644285
查看更多评论
0.1337s