Untuk menjalin komunikasi yang baik antara dunia manusia dan dunia mesin, unit paparan memainkan peranan penting. Oleh itu, mereka adalah bahagian penting dalam sistem terbenam. Unit paparan - besar atau kecil, menggunakan prinsip asas yang sama. Selain unit paparan yang kompleks seperti paparan grafik dan paparan 3D, seseorang mesti tahu bekerja dengan paparan sederhana seperti unit 16x1 dan 16x2. Unit paparan 16x1 akan mempunyai 16 aksara dan berada dalam satu baris. The 16x2 LCD akan mempunyai 32 watak dalam jumlah 16in 1 st talian dan satu lagi 16 dalam 2 ndgarisan. Di sini seseorang harus memahami bahawa dalam setiap watak terdapat 5x10 = 50 piksel jadi untuk memaparkan satu watak, semua 50 piksel mesti berfungsi bersama. Tetapi kita tidak perlu risau kerana terdapat pengawal lain (HD44780) di unit paparan yang melakukan tugas mengawal piksel. (anda dapat melihatnya dalam unit LCD, ia adalah mata hitam di belakang).
Komponen Diperlukan
Perkakasan:
Mikrokontroler ATmega32
Bekalan kuasa (5v)
Pengaturcara AVR-ISP
JHD_162ALCD (LCD 16x2)
Kapasitor 100uF.
Perisian:
Studio atmel 6.1
Progisp atau sihir kilat
Rajah dan Penjelasan Litar
Seperti yang ditunjukkan dalam antara muka LCD dengan rangkaian ATmega32, anda dapat melihat bahawa PORTA ATMEGA32 disambungkan ke port data LCD. Di sini kita harus ingat untuk mematikan komunikasi JTAG di PORTC ATMEGA dengan menukar bait fius, jika seseorang ingin menggunakan PORTC sebagai port komunikasi biasa. Dalam LCD 16x2 terdapat 16 pin di atas semuanya, jika ada lampu belakang, jika tidak ada lampu belakang akan ada 14 pin. Seseorang boleh menghidupkan atau meninggalkan pin lampu belakang. Sekarang dalam 14 pin terdapat 8 data pin (7-14 atau D0-D7), 2 pin bekalan kuasa (1 & 2 atau VSS & VDD atau GND & + 5V), 3 rd pin untuk kawalan kontras (VEE-kawalan berapa tebal watak-watak perlu ditunjukkan), 3 pin kawalan (RS & RW & E)
Dalam litar di atas untuk menghubungkan LCD 16x2 dengan mikrokontroler AVR, anda dapat melihat bahawa saya hanya mengambil dua pin kawalan. Ini memberi fleksibiliti pemahaman yang lebih baik. Bit kontras dan BACA / MENULIS tidak sering digunakan sehingga boleh dipendekkan ke tanah. Ini meletakkan LCD dalam mod kontras dan baca tertinggi. Kita hanya perlu mengawal pin ENABLE dan RS untuk menghantar watak dan data dengan sewajarnya.
Sambungan antara mikrokontroler ATmega32 dan LCD 16x2 diberikan di bawah:
PIN1 atau VSS - tanah
PIN2 atau VDD atau VCC - + 5v kuasa
PIN3 atau VEE - ground (memberikan kontras maksimum terbaik untuk pemula)
PIN4 atau RS (Pemilihan Daftar) - PD6 mikrokontroler
PIN5 atau RW (Baca / Tulis) - tanah (meletakkan LCD dalam mod baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Dayakan) - PD5 mikrokontroler
PIN7 atau D0 - PA0 mikrokontroler
PIN8 atau D1 - PA1
PIN9 atau D2 - PA2
PIN10 atau D3 - PA3
PIN11 atau D4 - PA4
PIN12 atau D5 - PA5
PIN13 atau D6 - PA6
PIN14 atau D7 - PA7
Di litar anda dapat melihat kami telah menggunakan komunikasi 8bit (D0-D7) namun ini tidak wajib dan kami juga dapat menggunakan komunikasi 4bit (D4-D7) tetapi dengan program komunikasi 4 bit menjadi agak rumit untuk pemula jadi kami terus saja Komunikasi 8 bit.
Oleh itu, dari pemerhatian dari jadual di atas, kami menyambungkan 10 pin LCD ke pengawal di mana 8 pin adalah pin data dan 2 pin untuk kawalan.
Bekerja
Untuk memulakan, anda mesti mengetahui fungsi 10 pin LCD 16x2 (8 pin data + 2 pin kawalan). 8 pin data adalah untuk menghantar data atau arahan ke LCD. Dalam dua pin kawalan:
1. Pin RS (pemilihan pilihan) adalah untuk memberitahu LCD sama ada kita menghantar data kepadanya atau memerintahkannya.
Sebagai contoh:
Pada jadual di atas satu untuk nilai port Data (D7-D0) "0b0010 1000 atau 0x28" memberitahu LCD untuk menunjukkan simbol "(". Dalam jadual dua nilai yang sama 0x28 memberitahu LCD "anda adalah LCD 5x7 dot dan berkelakuan seperti satu ", jadi untuk nilai yang sama pengguna dapat menentukan dua perkara, sekarang keadaan ini dineutralkan oleh pin Pemilihan Daftar, jika pin RS diatur rendah maka LCD memahami bahawa kita sedang mengirimkan perintah. Sekiranya kita menetapkan pin RS ke tinggi maka LCD memahami bahawa kami mengirimkan data. Oleh itu, dalam kedua-dua kes, LCD menghormati nilai port data mengikut nilai pin RS.
2. E (Enable) pin hanya untuk memberitahu "LED indikasi daya dari PC", pin ini diatur ke tinggi untuk memberitahu LCD "untuk menerima port data form data dari pengawal". Setelah pin ini menjadi rendah setelah tinggi, LCD memproses data yang diterima dan menunjukkan hasil yang sesuai. Jadi pin ini diset ke tinggi sebelum mengirim data dan ditarik ke bawah setelah mengirim data.
Sekarang setelah menyambungkan perkakasan, mulakan Atmel studio dan mulakan projek baru untuk menulis program, sekarang buka skrin pengaturcaraan dan mulailah program wring. Program ini mesti diikuti seperti persembahan berikut.
Mula-mula kita memberitahu pengawal mana port yang kita gunakan untuk data dan kawalan LCD. Kemudian beritahu pengawal kapan hendak menghantar data atau arahan dengan bermain dengan pin RS dan E.
Penjelasan ringkas mengenai konsep yang digunakan dalam program ini:
1. E diatur tinggi (memberitahu LCD untuk menerima data) dan RS diatur rendah (memberitahu LCD bahawa kita memberi perintah)
2. Memberi nilai 0x01 ke port data sebagai arahan untuk membersihkan skrin
3. E diatur tinggi (memberitahu LCD untuk menerima data) dan RS diatur tinggi (memberitahu LCD bahwa kita memberikan data)
4. Mengambil rentetan watak yang menghantar setiap watak dalam rentetan satu persatu.
5. E diatur rendah (memberitahu LCD bahawa kita sudah selesai mengirim data)
6. Selepas arahan terakhir LCD menghentikan komunikasi dan memproses data dan memaparkan rentetan watak di skrin.
Dalam senario ini kita akan menghantar watak satu demi satu. Karakter diberikan kepada LCD oleh kod ASCII (Kod standard Amerika untuk Pertukaran Maklumat).
Jadual kod ASCII ditunjukkan di atas. Di sini agar LCD menunjukkan watak "@" kita perlu menghantar kod heksadesimal "64". Sekiranya kita menghantar '0x62' ke LCD, ia akan menunjukkan simbol '>'. Seperti ini kita akan menghantar kod yang sesuai ke LCD untuk memaparkan nama.
Cara komunikasi antara mikrokontroler AVR LCD dan ATmega32 paling baik dijelaskan dalam langkah demi langkah kod C di bawah,