程序描述:
該程序運行後,如果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
# define led 1 _ OFF p 1 _ 0 = 1
#定義LED2_ON P1_1 = 0
# define led 2 _ OFF p 1 _ 1 = 1
#定義LED3_ON P1_2 = 0
# define led 3 _ OFF p 1 _ 2 = 1
#定義LED4_ON P1_3 = 0
# define led 4 _ OFF p 1 _ 3 = 1
//以下是您的51單片機的晶振尺寸。
# define FOSC _ 110592m
//#define FOSC_12M
//以下是手機開機後發送到手機的內容,發送的號碼在程序中修改。
uchar SMS _ text【】=“123“;
//註意,無論信號是接收還是發送,都會進入中斷服務程序。
/*初始化程序(必須使用它,否則無法發送或接收),第二個程序將使用定時器1*/
void serial inti()//初始值設定項(必須使用,否則無法發送或接收)
{
TMOD = 0x 20;//定時器1工作模式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;//(同上)在這種模式下,壹旦定時器溢出,就會發送壹位數據。
REN = 1;//串行接收使能位(開啟串行使能前設置sm0sm1)
EA = 1;//打開主機中斷
ES = 1;//打開串行端口中斷
}
/*串行通信中斷,將在接收和發送後進入*/
無效串行中斷()中斷4
{
//a = SBUF;
P2 = SBUF;
RI = 0;//接收中斷信號被清除,表示接收將繼續。
//flag = 1;//進入中斷的符號
}
void UART 1 send(uchar c)
{
SBUF = c;
而(!TI);//等待傳輸完成信號(TI=1)出現。
TI = 0;
}
//串口連續發送char數組,遇到終止號/0時停止。
void UART 1 sends(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。