Apa gunanya D0-D3 pada LCD?


10

The Arduino LiquidCrystal perpustakaan memiliki 4 konstruktor dengan argumen yang berbeda:

LiquidCrystal(rs, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d4, d5, d6, d7) 
LiquidCrystal(rs, enable, d0, d1, d2, d3, d4, d5, d6, d7) 
LiquidCrystal(rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7)

Komentar berikut dinyatakan untuk argumen konstruktor:

[...] d0, d1, d2, dan d3 adalah opsional; jika dihilangkan, LCD akan dikontrol hanya menggunakan empat jalur data (d4, d5, d6, d7).

Apa gunanya d0-d3jika tidak dibutuhkan? Apakah mereka akan mengurangi waktu respons?

Jawaban:


12

Jenis LCD itu memiliki dua mode operasi utama: mode 4-bit yang menggunakan 4 pin data (d4-d7), dan mode 8-bit yang menggunakan semua 8 pin data (d0-d7).

Mode 4-bit memiliki keuntungan karena membutuhkan pin output yang lebih sedikit pada Arduino Anda. Namun, itu berarti sketsa Anda perlu mengirim setiap perintah / karakter sebagai dua kumpulan 4-bit yang terpisah (satu demi satu). Ini ditangani untuk Anda secara otomatis oleh pustaka LiquidCrystal, sehingga Anda tidak memerlukan kompleksitas tambahan dalam kode Anda. Namun, itu berarti bahwa sketsa Anda membutuhkan sekitar dua kali lipat jumlah siklus prosesor untuk mengirim apa pun ke LCD.

Sebaliknya, mode 8-bit mengirimkan setiap perintah / karakter sebagai satu batch 8-bit. Itu berarti secara teknis berjalan sedikit lebih cepat.

Dengan demikian, seseorang yang melihat layar mungkin tidak akan melihat perbedaan kecepatan yang signifikan sebagian besar waktu, karena masih berjalan sangat cepat. Dampak utama akan ada pada mikrokontroler (Arduino dalam kasus ini). Jika itu dapat menggunakan mode 8-bit yang lebih cepat maka dapat mencurahkan lebih banyak waktu pemrosesan untuk hal-hal lain. Itu bisa sangat membantu untuk aplikasi waktu-kritis.


With that said, a person looking at the display probably won't see a significant speed difference most of the time, as it still goes very quickly.Yang biasanya tidak menjadi masalah karena banyak modul (terutama modul Cina yang murah seperti yang ada di eBay) cenderung memiliki kecepatan refresh yang rendah, jadi Anda tidak dapat memperbaruinya terlalu cepat tanpa mengubahnya menjadi berantakan yang buram dan tidak dapat dibaca.
Synetech

3

Jawabannya ada di halaman yang sama dengan kutipan yang Anda sebutkan (saya telah menyoroti pernyataan penting):

Membuat variabel tipe LiquidCrystal. Layar dapat dikontrol menggunakan 4 atau 8 jalur data . Jika yang pertama, hilangkan nomor pin untuk d0 ke d3 dan biarkan garis-garis itu tidak terhubung. Pin RW dapat diikat ke ground alih-alih terhubung ke pin pada Arduino; jika demikian, hilangkan dari parameter fungsi ini.

Ternyata layar LCD Hitachi HD44780 dapat bekerja dalam mode 4-bit atau 8-bit.


1
Ya, katanya bisa dikontrol menggunakan 4 dan 8 jalur data. Tapi apa gunanya menggunakan 8 jika Anda hanya perlu 4? Maksud saya, tidak ada keuntungan menggunakan 8 lebih dari 4? Mengapa membuang 4 jalur data jika tidak digunakan?
Teman Kim

1
Menggunakan mode 8 bit sedikit lebih cepat di sisi Arduino dan lebih sederhana (kode kurang). Tetapi secara umum, itu tidak benar-benar layak, dibandingkan dengan menghemat 4 pin output.
jfpoilpret

@ jfpoilpret Layak jika Anda memiliki empat pin output ekstra ...
Anonymous Penguin

@annon, bisakah Anda lebih konkret tentang BAGAIMANA layak menggunakan mode 8 pin? Nilai percobaan konkret?
jfpoilpret

1
@ jfpoilpret Seperti yang dinyatakan dalam jawaban Peter , itu memberikan sedikit waktu pemrosesan ke chip. Jika Anda memiliki empat pin tambahan, silakan dan tambahkan. Jika itu mengharuskannya menjadi jauh lebih besar / lebih mahal, itu tidak benar-benar layak.
Penguin Anonim

1

Kehadiran pin tersebut merupakan persyaratan teknik yang harus digunakan untuk menghubungkan LCD ke mikroprosesor yang tersedia kembali ketika chip pengontrol HD44780U dikembangkan.

Mikrokontroler chip tunggal seperti yang kita ketahui masih ada di masa depan dan LCD harus dihubungkan ke chip mikroprosesor 8-bit saat itu menggunakan teknik yang sama seperti perangkat I / O 8-bit lain atau perangkat memori yang merupakan 8- bit bus.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.