El mòdul GSM s'utilitza en molts dispositius de comunicació que es basen en la tecnologia GSM (Sistema global de comunicacions mòbils). S'utilitza per interactuar amb la xarxa GSM mitjançant un ordinador. El mòdul GSM només entén les ordres AT i pot respondre en conseqüència. L'ordre més bàsic és "AT", si el GSM respon bé, funciona bé en cas contrari, respon amb "ERROR". Hi ha diverses ordres AT com ATA per respondre una trucada, ATD per marcar una trucada, AT + CMGR per llegir el missatge, AT + CMGS per enviar els missatges de sms, etc.), com ara "AT + CMGS \ r". Podem utilitzar el mòdul GSM mitjançant aquestes ordres.
Interfície GSM amb 8051
En lloc d’utilitzar PC, podem utilitzar microcontroladors per interactuar amb el mòdul GSM i l’LCD per obtenir la resposta del mòdul GSM. Per tant, farem una interfície GSM amb un microcontrolador 8051 (AT89S52). És molt fàcil interfície GSM amb 8051, només necessitem enviar comandes AT des del microcontrolador i rebre la resposta del GSM i mostrar-la a la pantalla LCD. Podem utilitzar el port sèrie del microcontrolador per comunicar-nos amb GSM, és a dir, utilitzar PIN 10 (RXD) i 11 (TXD).
![]()
En primer lloc, hem de connectar la pantalla LCD al 8051; podeu aprendre-ho des d’aquí: Interfície LCD amb el microcontrolador 8051. Després hem de connectar el mòdul GSM al 8051, ara aquí hauríem de prestar una mica d’atenció. Primer heu de comprovar si el vostre mòdul GSM és capaç de treballar en lògica TTL o només pot funcionar amb RS232. Bàsicament, si el vostre mòdul té pins RX i TX (amb GND) a la placa, pot funcionar amb lògica TTL. I si no té pins RX, TX i només té un port RS232 (port sèrie amb 9), haureu d’utilitzar el MAX232 IC per connectar el port sèrie al microcontrolador. Bàsicament MAX232s’utilitza per convertir dades en sèrie en lògica TTL perquè el microcontrolador només pot funcionar amb lògica TTL. Però si el mòdul GSM té pins RX, TX, no cal que utilitzeu MAX232 ni cap convertidor en sèrie, podeu connectar directament RX de GSM a TX (PIN 11) de 8051 i TX de GSM a RX (PIN 10) de 8051 En el nostre cas, he utilitzat el mòdul SIM900A i té pins RX, TX, de manera que no he utilitzat MAX232.

El diagrama de circuits per a la interfície GSM amb el microcontrolador AT89S52 es mostra a la figura anterior. Ara, després de la connexió, només necessitem escriure un programa per enviar comandes AT a GSM i rebre la seva resposta en pantalla LCD. Hi ha moltes ordres AT tal com es va descriure anteriorment, però el nostre objectiu d’aquest article és només relacionar GSM amb 8051, de manera que només enviarem l’ordre “AT” seguida de “\ r” (0D en hexadecimal). Això ens donarà una resposta "D'acord". Però podeu ampliar aquest programa per utilitzar totes les instal·lacions de GSM.
Explicació del codi
A més de totes les funcions relacionades amb el LCD, aquí hem utilitzat el port sèrie i el registre de mode temporitzador (TMOD). Podeu obtenir més informació sobre les funcions LCD i altres codis mitjançant la secció de projectes 8051, aquí us explico sobre les funcions de codi relacionades amb la comunicació en sèrie:
Funció GSM_init ():
Aquesta funció s'utilitza per configurar la velocitat de transmissió per al microcontrolador. La velocitat de transmissió no és res més que els bits / segon transmesos o rebuts. I hem de fer coincidir la velocitat de transmissió de 8051 amb la velocitat de transmissió del mòdul GSM, és a dir, 9600. Hem utilitzat el temporitzador 1 en mode 2 (mode de recàrrega automàtica de 8 bits) configurant el registre TMOD a 0X20 i un byte superior del temporitzador 1 (TH1) a 0XFD per obtenir la velocitat de transmissió de 9600. També s’utilitza el registre SCON per configurar el mode de comunicació en sèrie, hem utilitzat Mode1 (UART de 8 bits) amb la recepció habilitada.
Funció GSM_write:
SBUF (registre de funcions especials de memòria intermèdia de sèrie) s’utilitza per a la comunicació en sèrie, sempre que volem enviar qualsevol byte al dispositiu serial, posem aquest byte al registre SBUF, quan s’ha enviat el byte complet, el bit TI el defineix el maquinari. Hem de restablir-lo per enviar el següent byte. És un indicador que indica que el byte s’ha enviat amb èxit. TI és el segon bit de registre SCON. Hem enviat "AT" mitjançant aquesta funció.
Funció GSM_read:
Igual que l'enviament, sempre que rebem algun byte des d'un dispositiu extern que aquest byte es posa al registre SBUF, només hem de llegir-lo. I sempre que s’ha rebut el byte complet, el bit RI el defineix el maquinari. Hem de restablir-lo per rebre el següent byte. RI és el primer bit de registre SCON. Hem llegit la resposta "D'acord" mitjançant aquesta funció.
