3.4.3 总体硬件电路设计
系统以C51单片机为核心,分别与GPRS模块、人机交互接口和其他接口等相连。为了防止静电损坏SIM卡和SIM300模块,在SIM卡的引脚上加瞬变电压抑制二极管。
3.4.4 与单片机接口设计
SIM300C的异步串行通信接口特点如下:
当模块上电后,推荐等待3s~5s的时间然后再发送AT指令,否则未定义的字符会返回。模块开启自动波特率侦测功能后,原来系统自动产生的字符如:“RDY”,“+CFUN:1”和“+CPIN:READY”不会出现。自动波特率侦测的要求串行口发送的数据为8位,无奇偶校验,1位停止位。
3.5 声光报警模块电路设计
声光报警模块主要由LED灯和蜂鸣器组成。D1到D8为发光二极管,电阻均为1K,当图中VCCLED供上电后,当P1口输出相应的电平时可改变D1~D8LED亮灭。图中R26是1K的三极管基极限流电阻,Q5是一个NPN型三极管,BUZZ是有源蜂鸣器。当单片机的P3.5口输出一个低电平的时候,三极管的发射极正偏,此时发射极的VCC就导通到三极管的集电极,从而驱动蜂鸣器发声。
图9 声光报警模块原理图
4. 系统的软件设计
4.1 系统软件实现流程图
在所有硬件全部准备好之后就开始进行软件部分设计,如图10所示的系统软件流程图。
系统软件流程图设计思路是:启动系统之后,先延时1s消除上电抖动,然后初始化串口、GSM模块、定时器和系统中断,之后就检测是否收到GSM命令,没有就一直检测,当检测到GSM命令就改变检测模式,无异常情况就恢复到原来检测模式。最后就检测是否继续检测,否的话就关闭GSM模块[7]。
一旦有中断产生,就相应进入开关中断、人体感应模块中断或定时器0中断。当进入开关中断时,就开或关GSM和人体感应模块,相应中断后返回;如果进入人体感应中断,就通过GSM模块报警,然后返回;要是进入的是定时器0中断,就控制检测时间间隔,然后返回。具体各模块相应的软件设计下文将会介绍。中断处理流程如图11所示。
图10 系统软件流程图
图11 中断处理流程图
4.2 GSM模块的软件设计和实现流程
在了解和熟悉GSM模块工作原来的基础上,编程实现模块在整个系统中所应完成的功能。首先初始化GSM模块,流程图如图12。
图12 GSM初始化流程图
注:所需AT指令见表2
表2 SIM300常用的AT指令
ATE0 关回显
AT+CSQ 当前信号
AT+COPS 网络营运商
AT+CSCA 短信中心号码
AT+CPMS 选择短信储存地点
AT+CMGL 列出指定状态的短信息的PDU代码
AT+CMGR 列出指定序号的短信息PDU代码
AT+CMGS 发送短信
AT+CMGD 删除指定的短信
AT+CMGF 短信格式,分为Text模式和PDU模式
AT+CNMI 设置新短消息通知电脑端
AT+CSCA 短信中心
从表2中指令不难看到,其中第一条用于关闭系统的回显,是初始化的一部分;第二条到的八条(共十二条)起到短信的设置、读写、发送等作用。
在这里采用GSM模块发送英文短信进行报警,因为发送英文短信最为简单易懂。具体软件设计流程如图13所示。
4.3 串口通信模块的软件设计和实现流程
图14 串口通信的软件流程图
在研究串行通信软件时,涉及到PC机与PC机、PC与单片机、PC机与外部设备之间通过RS-232串口进行异步通信技术的问题。在研究其异步串行通信软件的基础上,给出了在Windows环境下实现异步通信的方案、相应的软件程序。该方案可通过串口数据采集和传输,主要应用于计算机接口通信,也可应用于工业控制的串口通信领域,实现实时数据采集与系统控制。大多数计算机包括两个基于RS-232的串口。串口同时也是仪器仪表设备通用的通信协议,同时串口通信协议也可以用于获取远程采集设备的数据[8]。 52单片机基于GSM短信模块的家庭防盗报警系统设计+电路原理图(5):http://www.751com.cn/tongxin/lunwen_499.html