GSM-modulen brukes i mange kommunikasjonsenheter som er basert på GSM-teknologi (Global System for Mobile Communications). Den brukes til å samhandle med GSM-nettverk ved hjelp av en datamaskin. GSM-modulen forstår bare AT-kommandoer, og kan svare tilsvarende. Den mest grunnleggende kommandoen er "AT". Hvis GSM svarer OK, fungerer den bra, ellers svarer den med "FEIL". Det er forskjellige AT-kommandoer som ATA for å svare på en samtale, ATD for å ringe en samtale, AT + CMGR for å lese meldingen, AT + CMGS for å sende sms osv. AT-kommandoer skal følges av Vognretur dvs. \ r (0D i heks), som “AT + CMGS \ r”. Vi kan bruke GSM-modul ved hjelp av disse kommandoene.
GSM-grensesnitt med 8051
I stedet for å bruke PC, kan vi bruke mikrokontrollere til å samhandle med GSM-modul og LCD for å få svaret fra GSM-modulen. Så vi skal grensesnitt GSM med en 8051 mikrokontroller (AT89S52). Det er veldig enkelt å grensesnitt GSM med 8051, vi trenger bare å sende AT-kommandoer fra mikrokontroller og motta svar fra GSM og vise det på LCD. Vi kan bruke mikrokontrollers serielle port til å kommunisere med GSM, betyr å bruke PIN 10 (RXD) og 11 (TXD).
Først må vi koble LCD til 8051, du kan lære dette herfra: LCD-grensesnitt med 8051 mikrokontroller. Da må vi koble GSM-modulen til 8051, nå her skal vi ta litt hensyn. Først må du sjekke om GSM-modulen din kan jobbe med TTL-logikk, eller om den bare kan fungere med RS232. I utgangspunktet hvis modulen din har RX og TX (med GND) pins ombord, kan den fungere med TTL-logikk. Og hvis den ikke har noen RX-, TX-pinner og bare har en RS232-port (seriell port med 9), må du bruke MAX232 IC for å koble seriell port til mikrokontrolleren. I utgangspunktet MAX232brukes til å konvertere seriell data til TTL-logikk fordi Microcontroller bare kan jobbe med TTL-logikk. Men hvis GSM-modulen har RX, TX-pinner, trenger du ikke å bruke MAX232 eller seriell omformer. Du kan koble RX of GSM direkte til TX (PIN 11) på 8051 og TX på GSM til RX (PIN 10) på 8051 I vårt tilfelle har jeg brukt SIM900A-modulen og den har RX, TX-pinner, så jeg har ikke brukt MAX232.
Kretsdiagram for GSM-grensesnitt med AT89S52 mikrokontroller er vist i figuren ovenfor. Nå etter tilkoblingen, trenger vi bare å skrive program for å sende AT-kommandoer til GSM og motta svaret på LCD. Det er mange AT-kommandoer som beskrevet ovenfor, men vårt omfang av denne artikkelen er bare å grensesnitt GSM med 8051, så vi skal bare sende kommandoen "AT" etterfulgt av "\ r" (0D i heks). Dette vil gi oss et svar “OK”. Men du kan utvide dette programmet til å bruke alle fasilitetene til GSM.
Kode forklaring
Foruten alle LCD-relaterte funksjoner, her har vi brukt Serial port and timer mode register (TMOD). Du kan lære om LCD-funksjoner og annen kode ved å gå gjennom 8051-prosjektdelen, her forklarer jeg om seriekommunikasjonsrelaterte kodefunksjoner:
GSM_init () -funksjon:
Denne funksjonen brukes til å stille inn Baudrate for mikrokontroller. Baudrate er bare biter / sekund overført eller mottatt. Og vi må matche baudratet på 8051 til Baud-hastigheten til GSM-modulen, dvs. 9600. Vi har brukt Timer 1 i Mode 2 (8-bit auto-reload mode) ved å sette TMOD-registeret til 0X20 og Higher byte of Timer 1 (TH1) til 0XFD for å få baudhastigheten på 9600. Også SCON-register brukes til å stille modus for seriell kommunikasjon, vi har brukt Mode1 (8-bit UART) med mottak aktivert.
GSM_write-funksjon:
SBUF (spesialbuffer for seriell buffer) brukes til seriell kommunikasjon, hver gang vi ønsker å sende en byte til en seriell enhet, setter vi den byten i SBUF-registeret, når fullstendig byte er sendt, blir TI-bit satt av maskinvare. Vi må tilbakestille den for å sende neste byte. Det er et flagg som indikerer at byte er sendt. TI er den andre biten av SCON-register. Vi har sendt “AT” ved hjelp av denne funksjonen.
GSM_read-funksjon:
Samme som å sende, når vi mottar noen byte fra en ekstern enhet som byten blir satt i SBUF-registeret, trenger vi bare å lese den. Og når komplett byte har blitt mottatt, blir RI-bit satt av maskinvare. Vi må tilbakestille den for å motta neste byte. RI er den første biten av SCON-register. Vi har lest svaret “OK” ved hjelp av denne funksjonen.