4.4 定时器和中断的软件设计和实现流程
CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作。转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。
51单片机定时/计数器的工作由两个特殊功能寄存器控制。TMOD用于设置其工作方式,TDON用于控制其启动和中断申请。软件流程图如图15。
图15 定时器和中断的软件流程图
5. 系统测试
5.1 人体感应模块单独测试
将人体感应模块接上5V电源,然后输出口接上万用表及一个LED灯,没人时一直输出低电平,LED灯一直点亮;如果检测到人时,则有一个低高电平脉冲产生,LED灯会随即熄灭。
图16 人体感应模块测试图
5.2 GSM模块与PC机间的串口调试
本设计采用串口调试助手与GSM模块通信,波特率设为9600,如图所示为调试过程[9]。
(1)先运行一个串口工具
图17 串口测试GSM模块型号
①用最常用的串口调试助手V2.2软件;
②选好串口号波特率, 其它不动,如图17,COM3,9600;
③注意放卡上好天线, 上电开机后,等20S;
④在指令区输入ATI后再按ENTER键后点“手动发送”;
指令功能:显示产品的标志信息。
⑤在指令区输入AT+CPIN?后再按ENTER键后点“手动发送”;
指令功能:查询SIM 卡状态,主要是PIN码。
⑥在指令区输入AT+CSQ后再按ENTER键后点“手动发送”;
指令功能:查询信号,如果没有信号, 要查看天线有没有连接上。
⑦在指令区输入AT+COPS?后再按ENTER键后点“手动发送”;
指令功能:查询SIM卡移动提供商,只有连上网络后才有,其它都为空。
图18 串口测试SIM卡状态、信号和提供商
⑧在指令区输入ATE1后再按ENTER键后点“手动发送”;
指令功能:开回显。
⑨在指令区输入ATV1后再按ENTER键后点“手动发送”;
指令功能:以OK方式显示。
以上输入完后有OK字样出现才能使用,如果没有回复, 请查检,串口号,波特率,模块是否开机。
(2)向13696502331手机发送英文Ring
先输入AT+CMGF=1再按ENTER键后点“手动发送”,指令功能:英文方式发送,状态有OK回复;
再输入AT+CMGS=“13696502331” 再按ENTER键后点“手动发送”,指令功能:向13696502331发送短信, 状态有>回复;
收到>后才可以输入内容Ring再点“手动发送”。
图19 串口测试为发短信做之前的准备
图20 串口测试发送英文短信内容及用户号码
图21 串口测试发送英文短信最关键一步图示
最后一步是最关键的,就是短信内容的结束;
在“十优尔进制发送”地方点一下,如图21;
①在指令区输入1A ;
②点“手动发送”之后就可以等待发送成功,如图22;
收到“+CMGS: 66”表示发送成功
图22 串口测试发送英文短信成功图示
5.3 整机联调
将涉及中的所有模块连接到一起进行调试,如图23所示。
首先打开单片机开发板电源和GSM模块电源,等待初始化,当听到GSM模块发出呲呲的声音后就说明GSM模块已初始化完成,这个时候为了避免干扰外界干扰尽量使人体不要靠近人体感应模块,此时开发板上排LED灯处于熄灭状态。当人体靠近人体感应模块时,该模块输出高电平信号,送往单片机的P0.0口。随即单片机将通过控制P1.0口电平的变化,使上排最右边的LED灯点亮;通过控制P3.5口电平变化,使蜂鸣器开启;通过RXD口(此处直接用线连GSM模块,更为简便)对GSM模块进行控制,使GSM模块按照既定功能向用户发送报警短信[10]。 52单片机基于GSM短信模块的家庭防盗报警系统设计+电路原理图(6):http://www.youerw.com/tongxin/lunwen_499.html