资源简介

51单片机 GSM模块 烟雾模块 有源码Keil4/5 有仿真 送参考论文

资源截图

代码片段和文件信息

#include
#include 
#include    //头文件
#define uint unsigned int
#define uchar unsigned char   //宏定义

//按键
sbit key1=P3^2;    //布防
sbit key2=P3^3;    //撤防
sbit key3=P3^4;    //紧急报警

sbit BUZZ=P0^4;    //蜂鸣器
sbit rsd=P2^4;    //热释电输入
sbit yanwu=P2^5;
sbit LED_B=P2^3;   //布防指示灯
sbit LED_S=P2^0;   //发送消息指示灯

uchar code PhoneNO[] =“15046397767“; //接受号码

uchar code somebody[] =“67094EBA8FDB5165FF0C8BF76CE8610F3002“; //有人进入,请注意。
uchar code somebody1[] =“70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F3002“; //烟雾浓度过高,请注意。   
uchar code somebody2[] =“67094EBA8FDB5165FF0C70DF96FE6D535EA68FC79AD8FF0C8BF76CE8610F3002“; //有人进入,烟雾浓度过高,请注意。

uint TIME_50ms=0;    //计时的最小分辨率50ms
uint time_continue;
uchar TIME_ALAM=0;
bit flag=0flag_BF=0;
bit flag_time_start=0;
bit again=0;
bit flag_alam;
bit SOS;
bit flag_continue;
bit into_BF=0;

void delay(uint z)//延时函数
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

void Uart_init()
{
TMOD= 0X20; //T1  方式2  ,8位   自动重装   
TH1=0Xfd;
TL1=0Xfd;     //9600
TR1=1;      // 定时器1启动  
SM0=0;     // 设置串口的工作模式
SM1=1;      //方式1

REN=0;   // 不允许串口接收数据   

ES=0;       // 串口中断不允许 
EA=1;  // 开启中断总开关
}

void SendASC(uchar d)
{

SBUF=d;
while(!TI);

TI=0;
}

void SendString(uchar *str)
{
while(*str)
{
SendASC(*str) ;
str++;
//delay_uart(1);
}
}

void TIME()
{
if(flag==0)
{
delay(50);
TIME_50ms++;
if(TIME_50ms%10==0)
LED_B=!LED_B;

if(TIME_50ms>=400)
{
TIME_50ms=0;
flag_BF=1;
LED_B=0;
flag_time_start=0;
again=1;
}
}
else
{
delay(50);
TIME_50ms++;
if(TIME_50ms%10==0)
{
LED_B=!LED_B;
if(flag_alam==1)
{

if(flag_continue==0)
{
flag_continue=1;
time_continue=TIME_50ms;
}
BUZZ=!BUZZ;
if(TIME_50ms>=time_continue+100)
{
BUZZ=1;
flag_continue=0;
flag_alam=0;
time_continue=0;
}
}
}
if(TIME_50ms>=1200)
{
LED_B=0;
TIME_50ms=0;
flag_time_start=0;
again=1;
}
}
}

//按键扫描函数
void keyscan()
{
if(key1==0&&flag_BF==0)//布防
{
delay(5);//延时
if(key1==0)
{
LED_B=0;
flag=0;
flag_time_start=1;
}
while(key1==0);
}
if(flag_time_start==1)
{
TIME();
}
if(key2==0)
{    
delay(5);//撤防
if(key2==0)
{
BUZZ=1; //关闭蜂鸣器 
flag_alam=0;
flag_BF=0;
flag=0;
flag_time_start=0;
LED_S=1;
LED_B=1;
}
while(key2==0);
}
if(key3==0)
{
delay(5);
if(key3==0)
{
SOS=1;
flag_alam=1;
}
while(key3==0);
}


void GSM_work()
{
unsigned char send_number;
if((rsd==0||yanwu==0)&&flag_BF==1)
flag_alam=1;
if(((rsd==0||yanwu==0)&&flag_BF==1&&again==1)||SOS==1)
{
LED_S=0;
BUZZ=1;
SendString(“AT+CMGF=1\r\n“);

delay(200);

SendString(“AT+CSCS=\“UCS2\“\r\n“);

delay(200);

SendString(“AT+CSMP=170225\r\n“)

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件     813056  2014-12-04 23:25  单片机控制红外报警系统毕业设计.doc

     文件     355328  2015-04-03 10:13  基于GSM模块的防盗报警系统-毕业论文设计终稿.doc

     文件     231424  2014-12-04 23:27  单片机的红外防盗系统.doc

----------- ---------  ---------- -----  ----

              1399808                    3


评论

共有 条评论