Unit paparan adalah peranti output terpenting dalam projek terbenam dan produk elektronik. LCD 16x2 adalah salah satu unit paparan yang paling kerap digunakan. LCD 16x2 bermaksud bahawa terdapat dua baris di mana 16 aksara dapat ditampilkan setiap baris, dan setiap watak mengambil ruang matriks 5X7 pada LCD. Dalam tutorial ini kita akan menyambungkan modul LCD 16X2 ke mikrokontroler 8051 (AT89S52). LCD antara muka dengan mikrokontroler 8051 mungkin kelihatan agak rumit untuk pemula, tetapi setelah memahami konsepnya, ia akan kelihatan sangat mudah dan mudah. Walaupun mungkin mengambil masa kerana anda perlu memahami dan menyambungkan 16 pin LCD ke mikrokontroler. Oleh itu, mari kita fahami modul LCD 16 pin.
Kita boleh membahagikannya dalam lima kategori, Pin Kuasa, pin kontras, Pin Kawalan, pin Data dan pin Lampu Latar.
Kategori |
Pin TIDAK. |
Nama Pin |
Fungsi |
Pin Kuasa |
1 |
VSS |
Ground Ground, disambungkan ke Ground |
2 |
VDD atau Vcc |
Pin Voltan + 5V |
|
Pin Kontras |
3 |
V0 atau VEE |
Pengaturan Kontras, disambungkan ke Vcc dengan teliti perintang berubah. |
Pin Kawalan |
4 |
RS |
Daftar Pilih Pin, RS = 0 Mod arahan, RS = 1 mod Data |
5 |
RW |
Pin Baca / Tulis, RW = 0 Mod penulisan, Mod RW = 1 Baca |
|
6 |
E |
Aktifkan, nadi tinggi hingga rendah perlu mengaktifkan LCD |
|
Pin Data |
7-14 |
D0-D7 |
Pin Data, Menyimpan Data yang akan dipaparkan di LCD atau arahan arahan |
Pin Lampu Latar |
15 |
LED + atau A |
Untuk menghidupkan Lampu Belakang + 5V |
16 |
LED- atau K |
Tanah Lampu Latar |
Semua pin dapat difahami dengan jelas dengan nama dan fungsinya, kecuali pin kawalan, sehingga dijelaskan di bawah:
RS: RS adalah pin pilih daftar. Kita harus menetapkannya menjadi 1, jika kita mengirim beberapa data untuk ditampilkan di LCD. Dan kami akan menetapkannya ke 0 jika kami mengirimkan beberapa arahan arahan seperti membersihkan layar (hex code 01).
RW: Ini adalah pin Baca / tulis, kami akan menetapkannya menjadi 0, jika kami akan menulis beberapa data pada LCD. Dan tetapkan ke 1, jika kita membaca dari modul LCD. Umumnya ini diatur ke 0, kerana kita tidak perlu membaca data dari LCD. Hanya satu arahan "Dapatkan status LCD", perlu dibaca beberapa kali.
E: Pin ini digunakan untuk mengaktifkan modul apabila nadi tinggi hingga rendah diberikan kepadanya. Nadi 450 ns harus diberikan. Peralihan dari TINGGI ke RENDAH menjadikan modul diaktifkan.
Terdapat beberapa arahan arahan yang telah ditetapkan dalam LCD, kami telah menggunakannya dalam program kami di bawah ini untuk menyiapkan fungsi LCD (dalam fungsi lcd_init ()). Beberapa arahan arahan penting diberikan di bawah:
Kod Hex |
Perintah ke Daftar Arahan LCD |
0F |
LCD ON, kursor AKTIF |
01 |
Skrin paparan yang jelas |
02 |
Pulang ke rumah |
04 |
Kursor penurunan (beralih kursor ke kiri) |
06 |
Kursor kenaikan (beralih kursor ke kanan) |
05 |
Anjakan paparan ke kanan |
07 |
Shift paparan ke kiri |
0E |
Paparan HIDUP, kursor berkelip |
80 |
Paksa kursor ke permulaan baris pertama |
C0 |
Paksa kursor ke permulaan baris kedua |
38 |
2 baris dan matriks 5 × 7 |
83 |
Baris kursor 1 kedudukan 3 |
3C |
Aktifkan baris kedua |
08 |
Paparkan MATI, kursor MATI |
C1 |
Lompat ke barisan kedua, kedudukan 1 |
OC |
Paparkan HIDUP, kursor MATI |
C1 |
Lompat ke barisan kedua, kedudukan 1 |
C2 |
Melompat ke barisan kedua, kedudukan 2 |
Rajah dan Penjelasan Litar
Gambarajah litar untuk antara muka LCD dengan mikrokontroler 8051 ditunjukkan dalam gambar di atas. Sekiranya anda mempunyai pemahaman asas tentang 8051 maka anda mesti mengetahui mengenai EA (PIN 31), XTAL1 & XTAL2, pin RST (PIN 9), Vcc dan Pin Tanah 8051 mikrokontroler. Saya telah menggunakan Pin ini di litar di atas. Sekiranya anda tidak mempunyai idea mengenai hal itu, maka saya cadangkan anda membaca Artikel ini Interfacing LED dengan 8051 Microcontroller sebelum melalui LCD interface.
Oleh itu selain pin di atas ini kami telah menghubungkan pin data (D0-D7) LCD ke mikrokontroler Port 2 (P2_0 - P2_7). Dan pin kawalan RS, RW dan E masing-masing ke pin 12,13,14 (pin 2,3,4 dari port 3) mikrokontroler.
PIN 2 (VDD) dan PIN 15 (Bekalan lampu latar) LCD disambungkan ke voltan (5v), dan PIN 1 (VSS) dan PIN 16 (ground Backlight) disambungkan ke tanah.
Pin 3 (V0) disambungkan ke voltan (Vcc) melalui perintang boleh ubah 10k untuk menyesuaikan kontras LCD. Kaki tengah perintang berubah disambungkan ke PIN 3 dan dua kaki yang lain disambungkan ke bekalan voltan dan Ground.
Penjelasan Kod
Saya telah cuba menerangkan kod tersebut melalui komen (dalam kod itu sendiri).
Seperti yang telah saya jelaskan sebelumnya mengenai mod perintah dan mod data, anda dapat melihat bahawa semasa menghantar perintah (fungsi lcd_cmd) kami telah menetapkan RS = 0, RW = 0 dan denyut HIGH to LOW diberikan kepada E dengan menjadikannya 1, kemudian 0 Juga ketika mengirim data (fungsi lcd_data) ke LCD kita telah menetapkan RS = 1, RW = 0 dan denyut HIGH to LOW diberikan kepada E dengan menjadikannya 1 hingga 0. Fungsi msdelay () telah dibuat untuk mewujudkan kelewatan dalam milisaat dan sering dipanggil dalam program, dipanggil sehingga modul LCD dapat memiliki cukup waktu untuk menjalankan operasi dan perintah internal.
Gelung sementara telah dibuat untuk mencetak rentetan, yang memanggil fungsi lcd_data setiap kali untuk mencetak watak hingga watak terakhir (terminator null- '\ 0').
Kami telah menggunakan fungsi lcd_init () untuk menyiapkan LCD dengan menggunakan arahan arahan yang telah ditetapkan (dijelaskan di atas).