Colección de citas famosas - Slogan de motivación - ¿Cuál es el procedimiento más sencillo para conectar el microcontrolador 51 y el sim900a?

¿Cuál es el procedimiento más sencillo para conectar el microcontrolador 51 y el sim900a?

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

Descripción del programa:

Después de ejecutar el programa, si el módulo gprs encuentra la señal del proveedor de servicios, llamará al teléfono especificado.

1. Conecte el puerto serie 1 de su propio microcontrolador 51 al tx rx gnd de GSM.

2. Busque #define delante del programa, modifique la configuración de SCM de acuerdo con las instrucciones y luego compile el programa.

Descarga el programa

3. Pulsa el botón de reinicio del módulo para iniciar el módulo, espera a que la luz de señal parpadee lentamente y reinicia el microcontrolador.

4. Espere a que la transferencia se realice correctamente

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

# incluir & ltREGX52. H & gt

#Definir carácter uchar sin signo

#Definir uint entero sin signo

//La siguiente es la configuración de LED en la placa. Reemplace Px_x con su pie correspondiente.

#define LED1_ON P1_0 = 0

# define led 1_OFF p 1_0 = 1

#define LED2_ON P1_1 = 0

# define led 2_OFF p 1 _ 1 = 1

#define LED3_ON P1_2 = 0

# define led 3 _ OFF p 1 _ 2 = 1

#define LED4_ON P1_3 = 0

# define led 4 _ OFF p 1 _ 3 = 1

//El siguiente es el tamaño del oscilador de cristal de su microcontrolador 51.

# define FOSC _ 110592m

//#define FOSC_12M

//El siguiente es el contenido enviado al teléfono móvil después de encenderlo. El número enviado está en el programa Revisar.

uchar SMS_text【】="123";

//Tenga en cuenta que ya sea que la señal se reciba o envíe, se ingresará la rutina del servicio de interrupción.

/*Programa de inicialización (debe usarlo, de lo contrario no se puede enviar ni recibir), el segundo programa usará el temporizador 1*/

void serial inti() // valor inicial Elemento de configuración (debe usarse, de lo contrario no se puede enviar ni recibir)

{

TMOD = 0x 20; //Temporizador 1 modo de trabajo 2: temporizador de sobrecarga automática de 8 bits< / p>

# ifdeffosc _ 12m//Establezca aquí diferentes valores según el tamaño del oscilador de cristal para inicializar el puerto serie.

th 1 = 0x F3; //Carga el valor inicial a una velocidad de 2400 baudios.

TL 1 = 0x F3;

# En caso contrario

th 1 = 0x FD //Carga el valor inicial a una velocidad de 9600 baudios.

TL 1 = 0x FD;

# endif //SOC _ fin de 12M

tr 1 = 1 //Encender el temporizador

SM0 = 0; //Establece el modo de trabajo de la comunicación en serie (10 es una transmisión, la velocidad en baudios es variable, controlada por la velocidad de desbordamiento del temporizador 1).

sm 1 = 1; //(igual que arriba) En este modo, una vez que el temporizador se desborda, se enviará un bit de datos.

REN = 1; //Bit de habilitación de recepción en serie (establezca sm0sm1 antes de activar la habilitación en serie)

EA = 1; //Active la interrupción del host

ES = 1; //Abrir interrupción del puerto serie

}

/*La interrupción de la comunicación serie se ingresará después de recibir y enviar*/

Interrupción serie no válida( ) interrumpir 4

{

//a = SBUF;

P2 = SBUF

RI = 0; La señal de interrupción se borra, lo que indica que la recepción continuará.

//flag = 1; //Ingrese el símbolo de interrupción

}

envío UART 1 nulo (uchar c)

{

SBUF = c;

And (!TI); // Espere a que aparezca la señal de finalización de la transmisión (TI=1).

TI = 0;

}

//El puerto serie envía continuamente la matriz de caracteres y se detiene cuando encuentra el número de terminación /0.

void UART 1 envía (uchar * str)

{

mientras (* str!='\0')

{

SBUF = * str

Y (!TI); //Espera a que aparezca la señal de finalización de la transmisión (TI=1).

TI = 0;

str++;

}

}

// La función de retardo se trata de 1s, pero no se permite cuando el retraso es grande. ...

Tiempo de retardo no válido (segundos intermedios)

{

uint i, j = 0;

for(I = 0;i<seci++)

{

para (j = 0;j & lt65535;j++)

{

}< /p >

}

}

void main()

{

uchar I = 0;

led 1 _ APAGADO;

LED2 _ APAGADO

LED3 _ APAGADO

LED4 _ APAGADO

serial inti(); p>

mientras(1)

{

led 1 _ ON

LED2 _ OFF

UART 1 envía( "AT+CMGF = 1\r");

Dresseq(3); //retraso 3 segundos

Envíos UART 1("AT+CSCS=" GSM "\r" );

Dressec(3); //retraso 3 segundos

Envíos UART 1("AT+CSMP = 17, 167, 0, 250 \r"); Modo SMS (modo de guardado automático del teléfono móvil)

//Envíos UART 1 ("AT+CSMP = 17,167,0,240 \r"); //Modo SMS del dispositivo (modo de no guardado automático del teléfono móvil) )

Dreuse (3); //Retraso de 3 segundos

Envíos UART 1 ("AT+CMGS="18332563682"\r" ); (5); //Retraso 3 segundos

Envíos UART 1 (SMS_text);

Envío UART 1 (0x 1a);

LED2_ON

led 1_OFF;

Dreuse (15); //Retraso 20 segundos

}

}

//Se puede conectar p3.0 ​​y p3.1.