资源简介
这个算是智能家居的一部分,单片机通过传感器检测的结果,处理去后,判断是否达到溢出值,超过溢出值,就短信报警~~
文件内有字库软件,方便转换
代码片段和文件信息
/************************************************************
程序说明:
功能:
通过检测模块(红外+火焰+煤气),实现GSM发中文信息,蜂鸣器报警,并且处理突发状况
时间:2018年8月日
作者:画中仙
不足:
1、火焰检测模块。在太阳光下,会错误识别,产生低电平:可以通过调节滑动变阻器调节灵敏度
2、继电器高电平开启,蜂鸣器低电平开启
3、发信息过程,不能处理其他事件
注意:蓄电池用久了,可能没电
*************************************************************/
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
bit fame1111=1; //情况处理标志位
bit thief111=1;
bit gas111=1;
sbit gas=P1^0; //煤气:
sbit fame=P1^1; // 火焰
sbit thief=P0^2; //红外检测:防盗
sbit buzzer=P1^4; //蜂鸣器:低电平开启
sbit fan=P2^0; //风扇 :高电平开启
sbit water=P2^5; //水泵:高电平开启
//以下是开机后发送到手机的内容,发送的号码在程序中修改。
unsigned int REC_data=0; //标记Buffer_Uart0接收数组
unsigned char idata BufferUART_Rec[25]={0}; //Uart0中断接收数组
/*--------------------------------
*硬件上晶振要是12M的,11.092M不行!!!真的坑!!
这个是预编译决定的
*
*/
#define FOSC_12M
/*初始化程序(,次程序将会使用定时器1*/
void SerialInti()//初始化程序(必须使用,否则无法收发)
{
TMOD=0x20;//定时器1操作模式2:8位自动重载定时器
#ifdef FOSC_12M //在这里根据晶振大小设置不同的数值初始化串口
TH1=0xf3;//装入初值,波特率2400
TL1=0xf3;
#else
TH1=0xfd;//装入初值,波特率9600
TL1=0xfd;
#endif //end of SOC_12M
TR1=1;//打开定时器
SM0=0;//设置串行通讯工作模式,(10为一部发送,波特率可变,由定时器1的溢出率控制)
SM1=1;//(同上)在此模式下,定时器溢出一次就发送一个位的数据
REN=1;//串行接收允许位(要先设置sm0sm1再开串行允许)
EA=1;//开总中断
ES=1;//开串行口中断
}
/*
确认数据发送完毕函数打电话函数中可以不使用
*/
void Uart1Send(uchar c)
{
SBUF=c;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;
}
/*
串行口连续发送char型数组,遇到终止号/0将停止
*/
void Uart1Sends(uchar *str)
{
while(*str!=‘\0‘)
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;
str++;
}
}
/*100MS延时*/
void delay(void) //100MS延时
{
unsigned char abc;
for(c=151;c>0;c--)
for(b=24;b>0;b--)
for(a=164;a>0;a--);
}
/*延时1S函数*/
void DelaySec(int sec) //1S延时
{
//12M 晶振,1S误差 0.14%。10S误差0.15%
unsigned char abci;
for(i=0; i for(c=71;c>0;c--)
for(b=168;b>0;b--)
for(a=250;a>0;a--);
}
/*发信息驱动函数*/
void sendtestqudong()
{
Uart1Sends(“AT+CSCS=\“UCS2\“\r\n“);
DelaySec(2);//延时大约2秒
Uart1Sends(“AT+CMGF=1\r\n“);
DelaySec(2);//延时2秒
Uart1Sends(“AT+CSCA?\r\n“);
DelaySec(2);//延时2秒
Uart1Sends(“AT+CSMP=17167025\r\n“);
DelaySec(2);//延时2秒
Uart1Sends(“AT+CMGS=\“xxxxxxxxxxxxxx\“\r\n“);//此处修改为对方的电话号,电话话的UNICON编码,可使用我们配套的
//资料包中的 中文转UNICON编码工具来获取。特别注意:那个软件
//获得的unicon 编码待有空格,实际中要去掉,否则模块会报错
DelaySec(3);//延时3秒
}
/*
*火灾检测GSM报警函数
*/
void GSMfire()
{
if(fame1111==0)
{
fame1111=1;
sendtestqudong();
if(fame==0)
{
Uart1Sends(“4EB2723176844E3B4EBAFF0C4F605BB67740706B5566FF01FF01FF01“); //着火
Uart1Send(0x1a);
DelaySec(3);//延时3秒
}
else
{
Uart1Sends(“4EB2723176844E3B4EBAFF0C4F605BB6521A521A68C06D4B5230660E706BFF0C4F465DF25E2E4F606251706DFF0C8BF7653E5F
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-08-24 07:22 GSM报警程序\
目录 0 2018-08-24 07:21 GSM报警程序\Listings\
文件 15150 2018-08-24 07:21 GSM报警程序\Listings\GSM报警.m51
文件 14350 2018-08-24 07:21 GSM报警程序\Listings\main.lst
文件 15222 2018-08-15 21:17 GSM报警程序\Listings\决赛啦.m51
目录 0 2018-08-24 07:21 GSM报警程序\ob
文件 11726 2018-08-24 07:21 GSM报警程序\ob
文件 975 2018-08-24 07:21 GSM报警程序\ob
文件 3406 2018-08-24 07:21 GSM报警程序\ob
文件 95 2018-08-24 07:21 GSM报警程序\ob
文件 13170 2018-08-24 07:21 GSM报警程序\ob
文件 11883 2018-08-15 21:17 GSM报警程序\ob
文件 990 2018-08-15 21:17 GSM报警程序\ob
文件 93 2018-08-15 21:17 GSM报警程序\ob
文件 857 2018-08-17 20:57 GSM报警程序\ReadMe.txt
文件 6324 2018-08-24 07:21 GSM报警程序\main.c
文件 71663 2018-08-24 07:22 GSM报警程序\决赛啦.uvgui.Administrator
文件 5172 2018-08-17 15:31 GSM报警程序\决赛啦.uvopt
文件 14104 2018-08-17 15:31 GSM报警程序\决赛啦.uvproj
目录 0 2018-08-19 21:51 GSM报警程序\字库软件\
文件 398848 2011-03-22 21:28 GSM报警程序\字库软件\Chiness_Unicode-中文转UNICON编码工具.exe
- 上一篇:杭电操作系统往年期末试卷
- 下一篇:arcgis api for js 缓冲区分析
评论
共有 条评论