目录
【功能介绍】
【原理图】
【PCB】
【实物图】
【元器件清单】
【源程序】
【原理介绍】
【参考资料】
【参考文献】
【功能介绍】本系统建立了一个基于GSM网络及短信息平台上的安防系统,设计中采用了STC89C52单片机系统、无线GSM短信模块及传感器技术。通过对主控模块、通信网络、传感器模块、短信模块及接口电路的控制。实现了系统的远程报警及控制功能,可以实现如下功能。
(1)该设计包括硬件和软件设计两个部分。模块划分为数据采集、单片机控制、GSM短信报警等模块子函数。
(2)系统可实现功能。当人员外出时,可把报警系统设置在外出状态,探测器开始工作,当有人闯入时,热释电红外传感器将探测到动作,并短信报警,向用户发送短信息实现远程防盗报警功能。
【原理图】#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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?