程序描述:
此程序運行後,如果gprs模塊發現服務提供商的信號,它將呼叫指定的電話。
1.將自己的51單片機的串口1連接到GSM的tx rx gnd。
2.找到程序前面的#define,根據說明修改妳的SCM配置,編譯程序。
下載程序
3.按下模塊復位按鈕,啟動模塊,等待信號燈慢慢閃爍,單片機復位。
4.等待傳輸成功
*************************************************************/
# include & ltREGX52。H & gt
#定義uchar無符號字符
#定義uint無符號整數
//下面是板上的LED配置。把Px_x換成自己對應的腳。
#定義LED1_ON P1_0 = 0
#定義led 1 _ OFF p 1 _ 0 = 1
#定義LED2_ON P1_1 = 0
#定義led 2 _ OFF p 1 _ 1 = 1
#定義LED3_ON P1_2 = 0
#定義LED3_OFF P1_2 = 1
#定義LED4_ON P1_3 = 0
#定義LED4_OFF P1_3 = 1
//下面是妳的51單片機的晶振尺寸。
# define FOSC _ 110592m
//#define FOSC_12M
//以下是手機開機後發送到手機上的內容,發送的號碼在程序中進行了修改。
uchar SMS _ text[]= " 123 ";
//註意,不管信號是接收還是發送,都會進入中斷服務程序。
/*初始化程序(必須使用,否則無法發送或接收),第二個程序將使用定時器1*/
Void SerialInti()//初始值設定項(必須使用,否則無法發送或接收)
{
TMOD = 0x 20;//Timer1工作模式2:8位自動過載定時器
# ifdeffosc _ 12m//根據這裏晶振的大小設置不同的值來初始化串口。
th 1 = 0x F3;//以2400的波特率加載初始值。
TL 1 = 0x F3;
#否則
th 1 = 0x FD;//以9600的波特率加載初始值。
TL 1 = 0x FD;
# endif//SOC _ 12M結束
tr 1 = 1;//打開計時器
SM0 = 0;//設置串口通信的工作模式(10為壹次傳輸,波特率可變,由定時器1的溢出率控制)。
sm 1 = 1;//(同上)在這種模式下,壹旦定時器溢出,就發送壹位數據。
任= 1;//串行接收使能位(在打開串行使能之前設置sm0sm1)
EA = 1;//打開主機中斷
ES = 1;//打開串行端口中斷
}
/*串行通信中斷,接收發送後進入*/
無效串行中斷()中斷4
{
//a = SBUF;
P2 = SBUF;
RI = 0;//接收中斷信號清零,表示接收將繼續。
//flag = 1;//進入中斷的符號
}
void Uart1Send(uchar c)
{
SBUF = c;
而(!TI);//等待傳輸完成信號(TI=1)出現。
TI = 0;
}
//串口連續發送char數組,遇到終止號/0就會停止。
void Uart1Sends(uchar *str)
{
while(*str!='\0')
{
SBUF = * str
而(!TI);//等待傳輸完成信號(TI=1)出現。
TI = 0;
str++;
}
}
//延遲函數大概是1s,但是延遲大的話就不允許了。...
無效延遲時間(中間秒)
{
uint i,j = 0;
for(I = 0;我& ltseci++)
{
for(j = 0;j & lt65535;j++)
{
}
}
}
void main()
{
uchar I = 0;
led 1 _ OFF;
LED2 _ OFF
LED3 _ OFF
LED4 _ OFF
serial inti();
while(1)
{
led 1 _ ON;
LED2 _ OFF
UART 1 sends(" AT+CMGF = 1 \ r ");
德萊賽克(3);//延遲3秒
UART 1 sends(" AT+CSCS = \ " GSM \ " \ r ");
德萊賽克(3);//延遲3秒
UART 1 sends(" AT+CSMP = 17,167,0,250 \ r ");//設備短信模式(手機自動保存模式)
//UART 1 sends(" AT+CSMP = 17,167,0,240 \ r ");//設備短信模式(手機非自動保存模式)
德萊賽克(3);//延遲3秒
UART 1 sends(" AT+CMGS = \ " 18332563682 \ " \ r ");
德萊賽克(5);//延遲3秒
UART 1 sends(SMS _ text);
UART 1 send(0x 1a);
LED2 _ ON
led 1 _ OFF;
德萊賽克(15);//延遲20秒
}
}
//可以連接p3.0和p3.1。