Hei ada! Saya pembekal modul COG LCD 12840 ST7565R, dan saya mendapat banyak soalan mengenai penetapan kedudukan kursor pada modul ini. Jadi, saya fikir saya akan mengumpulkan catatan blog ini untuk membantu anda.
Mula -mula, mari kita bercakap sedikit mengenai modul COG LCD 12840 ST7565R. Ia adalah paparan kecil yang cukup sejuk yang menawarkan jumlah resolusi dan fleksibiliti yang baik. Sama ada anda sedang menjalankan projek DIY kecil atau aplikasi perindustrian yang lebih kompleks, modul ini boleh menjadi pilihan yang hebat.
Sekarang, ke topik utama - menetapkan kedudukan kursor. Sebelum kita menyelam bagaimana, penting untuk memahami apa yang dimaksudkan dengan kedudukan kursor dalam konteks modul LCD ini. Kursor adalah seperti penanda yang memberitahu modul di mana untuk mula memaparkan watak seterusnya atau set data. Dengan menetapkan kedudukan kursor, anda boleh mengawal dengan tepat di mana teks atau grafik akan muncul di skrin.
Memahami asas pengawal ST7565R
ST7565R adalah cip pengawal yang digunakan dalam modul COG LCD 12840. Ia mempunyai set arahan tertentu yang perlu anda gunakan untuk berinteraksi dengan paparan dan menetapkan kedudukan kursor. Perintah ini dihantar ke modul melalui antara muka, yang boleh sama ada antara muka selari (seperti 6800 atau 8080) atau antara muka bersiri (SPI). Anda boleh menyemak lebih lanjut mengenai siri antara muka yang berbeza di kamiCOG LCD 6800 dan 8080 dan siri antara muka SPIhalaman.
Panduan langkah demi langkah untuk menetapkan kedudukan kursor
Langkah 1: Memulakan paparan
Sebelum anda dapat menetapkan kedudukan kursor, anda perlu memulakan paparan. Ini melibatkan menghantar satu siri arahan ke pengawal ST7565R untuk mengkonfigurasinya untuk operasi. Berikut adalah contoh mudah bagaimana anda boleh memulakan paparan menggunakan Arduino dan antara muka SPI:
#include <spi.h> // define pins const int cs_pin = 10; const int dc_pin = 9; const int rst_pin = 8; void setup () {// set up pin pinMode (cs_pin, output); pinmode (dc_pin, output); pinMode (rst_pin, output); // Tetapkan semula DigitalWrite Display (rst_pin, rendah); kelewatan (10); DigitalWrite (rst_pin, tinggi); // Inisialisasi spi spi.begin (); SPI.SetClockDivider (SPI_CLOCK_DIV16); // hantar perintah inisialisasi digitalWrite (cs_pin, rendah); DigitalWrite (dc_pin, rendah); // mod perintah // hantar arahan di sini (contoh perintah) spi.transfer (0xe2); // Reset perisian spi.transfer (0xa2); // set LCD Bias Ratio // Tambah lebih banyak arahan seperti yang diperlukan DigitalWrite (CS_PIN, HIGH); } void loop () {// kod utama anda pergi ke sini}
Langkah 2: Menetapkan alamat halaman
Pengawal ST7565R membahagikan paparan ke dalam halaman. Setiap halaman sepadan dengan baris piksel tertentu pada skrin. Untuk menetapkan kedudukan kursor secara menegak, anda perlu menetapkan alamat halaman. Perintah untuk menetapkan alamat halaman dalam format0xb0 + page_number, di manapage_numberberkisar dari 0 hingga 7.
Berikut adalah cara anda boleh menghantar arahan alamat halaman menggunakan kod Arduino:
void setPageAdDress (int page) {digitalWrite (cs_pin, rendah); DigitalWrite (dc_pin, rendah); // mod perintah spi.transfer (0xb0 + halaman); DigitalWrite (cs_pin, tinggi); }
Langkah 3: Menetapkan alamat lajur
Selepas menetapkan alamat halaman, anda perlu menetapkan alamat lajur untuk meletakkan kursor secara mendatar. Alamat lajur berkisar antara 0 hingga 127. Perintah untuk menetapkan alamat lajur mempunyai dua bahagian: 4 bit atas dan 4 bit yang lebih rendah.


Inilah kod untuk menetapkan alamat lajur:
void setColumnAddress (int lajur) {int upper = (lajur >> 4) | 0x10; int lower = (lajur & 0x0f); DigitalWrite (cs_pin, rendah); DigitalWrite (dc_pin, rendah); // mod perintah spi.transfer (atas); Spi.transfer (lebih rendah); DigitalWrite (cs_pin, tinggi); }
Langkah 4: Menggabungkan semuanya
Sekarang anda tahu cara menetapkan alamat halaman dan lajur, anda boleh menggunakan fungsi ini untuk menetapkan kedudukan kursor di mana sahaja yang anda mahu pada paparan. Berikut adalah contoh cara menetapkan kursor ke halaman 2, lajur 30:
void setup () {// code inisialisasi ...} void loop () {setPageadDress (2); setColumnAddress (30); // Sekarang anda boleh mula menghantar data ke paparan // sebagai contoh, untuk memaparkan watak DigitalWrite (cs_pin, rendah); DigitalWrite (dc_pin, tinggi); // mod data spi.transfer ('a'); DigitalWrite (cs_pin, tinggi); kelewatan (1000); }
Penyelesaian masalah
Jika anda menghadapi masalah menetapkan kedudukan kursor, berikut adalah beberapa perkara untuk diperiksa:
- Semak antara muka: Pastikan anda menggunakan antara muka yang betul (SPI, 6800, atau 8080) dan pendawaian anda betul.
- Format Perintah: Semak semula bahawa anda menghantar arahan dalam format yang betul. Kesalahan bit tunggal boleh menyebabkan paparan berkelakuan tanpa diduga.
- Bekalan kuasa: Pastikan paparan mendapat voltan yang betul dan bekalan kuasa stabil.
Modul LCD yang berkaitan
Jika modul COG LCD 12840 ST7565R bukanlah apa yang anda cari, kami juga menawarkan modul LCD yang lain. Sebagai contoh, kami16*2 paparan LCD monokrom kuning-hijaudanPaparan LCD 16x2adalah pilihan hebat untuk aplikasi yang lebih mudah di mana anda memerlukan paparan yang lebih kecil.
Kesimpulan
Menetapkan kedudukan kursor pada modul COG LCD 12840 ST7565R mungkin kelihatan agak rumit pada mulanya, tetapi apabila anda memahami asas -asas pengawal ST7565R dan arahan yang digunakannya, ia menjadi lebih mudah. Dengan mengikuti langkah -langkah yang digariskan dalam catatan blog ini, anda sepatutnya dapat meletakkan kursor dengan tepat di mana anda menginginkannya pada paparan.
Jika anda berminat untuk membeli modul COG LCD 12840 ST7565R atau mana -mana produk LCD kami yang lain, jangan ragu untuk menghubungi kami untuk sebut harga dan membincangkan keperluan khusus anda. Kami di sini untuk membantu anda mencari penyelesaian yang tepat untuk projek anda.
Rujukan
- Lembaran data pengawal ST7565R
- Dokumentasi Arduino untuk Komunikasi SPI