當前位置:名人名言大全網 - 端午節短信 - 51單片機與sim900a連接最簡單的程序是什麽?

51單片機與sim900a連接最簡單的程序是什麽?

/************************************************************

程序描述:

該程序運行後,如果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。