经过最近艰难的调试 解决了各种各样的困难 我们组已经成功完成了GSM模块呼叫报警和发送短信提醒的程序 迈出了我们作品的最关键的一部 只差把烟雾传感器,热释红外传感器加进去
以下是我们程序的部分代码
//以下是板子上LED的配置, sbit P10=P1^0; sbit P11=P1^1; sbit P12=P1^2; sbit P13=P1^3; sbit P14=P1^4; sbit P15=P1^5; //以下是51单片机的晶振大小 #define FOSC_110592M //#define FOSC_12M //以下是开机后拨打的手机号 uchar num[] = "ATD15671225575;\r\n"; //这里我特地翻了很久的AT指令集 找到拨打电话的AT指令
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;//设置串行通讯工作模式
SM1=1;//(同上)在此模式下,定时器溢出一次就发送一个位的数据
REN=1;//串行接收允许位(要先设置sm0sm1再开串行允许)
EA=1;//开总中断
ES=1;//开串行口中断
}
为了同步模块与单片机的波特率,在单片机控制GSM模块前,要加上两条 AT 指令
Uart1Sends("ATI\r\n"); //握手,检测此条指令GSM模块是否执行OK
while(!hand("OK"))
AT+CSQ 检测信号质量
我要赚赏金
