Modul GSM digunakan dalam banyak alat komunikasi yang berdasarkan teknologi GSM (Sistem Global untuk Komunikasi Bergerak). Ia digunakan untuk berinteraksi dengan rangkaian GSM menggunakan komputer. Modul GSM hanya memahami perintah AT, dan dapat bertindak balas dengan sewajarnya. Perintah paling asas adalah "AT", jika GSM memberi respons OK maka ia berfungsi dengan baik jika tidak, ia bertindak balas dengan "KESALAHAN" Terdapat pelbagai perintah AT seperti ATA untuk menjawab panggilan, ATD untuk memanggil panggilan, AT + CMGR untuk membaca mesej, AT + CMGS untuk menghantar sms dan lain-lain. Perintah AT harus diikuti dengan Carriage return iaitu \ r (0D dalam hex), seperti "AT + CMGS \ r". Kita boleh menggunakan modul GSM menggunakan perintah ini.
Antaramuka GSM dengan 8051
Daripada menggunakan PC, kita boleh menggunakan pengawal mikro untuk berinteraksi dengan modul GSM dan LCD untuk mendapatkan respons dari modul GSM. Oleh itu, kami akan menghubungkan GSM dengan mikrokontroler 8051 (AT89S52). Sangat mudah untuk menginterface GSM dengan 8051, kita hanya perlu menghantar arahan AT dari mikrokontroler dan menerima respons dari GSM dan memaparkannya di LCD. Kita boleh menggunakan port bersiri mikrokontroler untuk berkomunikasi dengan GSM, artinya menggunakan PIN 10 (RXD) dan 11 (TXD).
Mula-mula kita perlu menyambungkan LCD ke 8051, anda boleh mempelajarinya dari sini: LCD Interfacing dengan 8051 Microcontroller Maka kita perlu menyambungkan modul GSM ke 8051, sekarang di sini kita harus memberi perhatian. Mula-mula anda perlu memastikan sama ada modul GSM anda mampu berfungsi pada logik TTL atau hanya boleh berfungsi dengan RS232. Pada asasnya jika modul anda mempunyai Pin RX dan TX (dengan GND), maka ia boleh berfungsi dengan logik TTL. Dan jika ia tidak mempunyai pin RX, TX dan hanya mempunyai port RS232 (port bersiri dengan 9), maka anda perlu menggunakan IC MAX232 untuk menyambungkan port bersiri ke mikrokontroler. Pada dasarnya MAX232digunakan untuk menukar data bersiri menjadi logik TTL kerana Mikrokontroler hanya dapat berfungsi pada logik TTL. Tetapi jika modul GSM mempunyai pin RX, TX maka anda tidak perlu menggunakan MAX232 atau penukar bersiri, anda boleh terus menghubungkan RX GSM ke TX (PIN 11) 8051 dan TX GSM ke RX (PIN 10) dari 8051 Dalam kes kami, saya telah menggunakan modul SIM900A dan ia mempunyai pin RX, TX jadi saya belum menggunakan MAX232.
Diagram Litar untuk antara muka GSM dengan mikrokontroler AT89S52 ditunjukkan dalam rajah di atas. Sekarang setelah sambungan, kita hanya perlu menulis program untuk menghantar perintah AT ke GSM dan menerima responsnya di LCD. Terdapat banyak perintah AT seperti yang dijelaskan di atas, tetapi ruang lingkup artikel kami hanya untuk menghubungkan GSM dengan 8051, jadi kami hanya akan mengirim perintah "AT" diikuti oleh "\ r" (0D dalam hex) Ini akan memberi kita respons "OK". Tetapi anda boleh memperluas program ini untuk menggunakan semua kemudahan GSM.
Penjelasan kod
Selain semua fungsi yang berkaitan dengan LCD, di sini kami telah menggunakan Port Serial dan register mod pemasa (TMOD). Anda boleh mengetahui fungsi LCD dan kod lain dengan melalui bahagian projek 8051 kami, di sini saya menerangkan mengenai fungsi kod berkaitan komunikasi bersiri:
Fungsi GSM_init ():
Fungsi ini digunakan untuk menetapkan Baudrate untuk mikrokontroler. Baudrate tidak lain adalah bit / saat dihantar atau diterima. Dan kita perlu memadankan kadar baud 8051 dengan kadar Baud modul GSM iaitu 9600. Kami telah menggunakan Pemasa 1 dalam Mod 2 (mod tambah semula automatik 8-bit) dengan menetapkan daftar TMOD ke 0X20 dan bait Tinggi Timer 1 (TH1) hingga 0XFD untuk mendapatkan tingkat baud 9600. Juga daftar SCON digunakan untuk mengatur mod komunikasi bersiri, kami telah menggunakan Mode1 (8-bit UART) dengan penerimaan diaktifkan.
Fungsi GSM_write:
SBUF (register fungsi khas buffer bersiri) digunakan untuk komunikasi bersiri, setiap kali kami ingin mengirim byte ke peranti bersiri, kami memasukkan bait itu ke dalam daftar SBUF, apabila bait lengkap telah dikirim maka bit TI ditetapkan oleh perkakasan. Kami perlu menetapkannya semula untuk menghantar bait seterusnya. Bendera itu menunjukkan bahawa bait berjaya dihantar. TI adalah bit kedua daftar SCON. Kami telah menghantar "AT" menggunakan fungsi ini.
Fungsi GSM_read:
Sama seperti pengiriman, setiap kali kita menerima byte dari peranti luaran yang dimasukkan ke dalam daftar SBUF, kita hanya perlu membacanya. Dan setiap kali bait lengkap diterima, bit RI ditetapkan oleh perkakasan. Kita perlu menetapkannya semula untuk menerima bait seterusnya. RI adalah bit pertama daftar SCON. Kami telah membaca jawapan "OK" menggunakan fungsi ini.