資源簡介
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
- 上一篇:并網雙饋異步風力發電機運行控制
- 下一篇:Hspice 很經典的教程,寫的特別好
評論
共有 條評論