- Gerekli Bileşenler:
- Grafik LCD:
- 8051 kullanarak Grafik LCD'de Resim Gösterme:
- Devre Açıklaması:
- Programlama Açıklaması:
Günlük hayatımızda, Metin, Resim ve Grafikleri görüntülemek için birçok türde cihaz görüyoruz. LCD'ler, Elektronikte en popüler Görüntü Cihazlarından biridir ve çoğunlukla bir tür bilgi gösteren tüm projelerde kullanılır. Elektronik Projelerde kullanılan birçok LCD türü vardır. Projelerimizin çoğunda 16X2 LCD kullandık ve Arduino ile TFT LCD kullandık. 16X2 LCD ile ilgili tüm projemizi 8051, AVR, Arduino ve çok daha fazlası ile arayüz dahil olmak üzere bu bağlantıyı takip ederek bulabilirsiniz.
Bu eğitimde , 8051 mikro denetleyici ile Grafik LCD arabirimi yapacağız. Bu projede, bir Görüntünün Grafik LCD'de (GLCD) nasıl görüntüleneceğini göstereceğiz.
Gerekli Bileşenler:
- Grafik LCD
- AT89c52 8051 Mikrodenetleyici
- 7805 voltaj regülatörü
- 1000 uf kapasitör
- 10 uF kapasitör
- 10K direnç
- 10K Tencere
- Kristal Osilatör 12 MH
- Bağlantı teli
- Ekmek Tahtası
- Burg şeritler erkek
- Güç kaynağı
- LED
- 220 Ohm direnç
- 1K direnç
Grafik LCD:
Basit bir 16x2 LCD 16 pime sahiptir, ancak Grafik LCD 20 pime sahiptir. Pin açıklaması, veri sayfasına göre aşağıda verilmiştir:
Pin No. | Pin Adı | Açıklama | Fonksiyon |
1 | VSS | Zemin | 0 Volt |
2 | VDD | Güç kaynağı | 5 Volt |
3 | V0 | LCD Kontrast ayarı | |
4 | RS | Komut / veri Kayıt seçimi | RS = 0: Komut Seçimi ve RS = 1: Veri Seçimi |
5 | R / W | Okuma / Yazma Kayıt | R / W = 0: Seçimi Yaz ve R / W = 1: Seçimi Oku |
6 | E | Signal'i etkinleştir | |
7 | DB0 | Veri giriş / çıkış pini (DB0-DB7) | 8 Bit (DB0-DB7) |
8 | DB1 | ||
9 | DB2 | ||
10 | DB3 | ||
11 | DB4 | ||
12 | DB5 | ||
13 | DB6 | ||
14 | DB7 | ||
15 | CS1 | Çip Seçimi | CS1 = 1, IC1 için Çip Seçme Sinyali |
16 | CS2 | Çip Seçimi | CS2 = 1, IC2 için Çip Seçme Sinyali |
17 | RST | Sıfırla | GLCD'yi sıfırla |
18 | VEE | LCD Sürücüsü için Negatif Voltaj | |
19 | Bir | Arka ışık LED | 5 Volt |
20 | K | Arka ışık LED | Zemin |
8051 kullanarak Grafik LCD'de Resim Gösterme:
Bir Görüntüyü Grafik LCD'de göstermek için, önce bu görüntüyü Montaj Koduna dönüştürmemiz gerekir, böylece 8051 Mikroişlemci onu anlayabilir ve okuyabilir. Bu nedenle, Görüntüyü HEX koduna Dönüştürmek için aşağıdaki Adımları izlememiz gerekir :
Adım 1: Öncelikle Image (BMP formatı) Assembly Code'a dönüştüren bir uygulama indirmemiz gerekiyor. Bu nedenle, BMP2ASM Görüntü Dönüştürme Uygulamasını bu bağlantıdan indirin, bağlantıya Sağ Tıklayın ve ardından Bağlantıyı farklı kaydet… seçeneğine tıklayın.
Adım 2: Daha sonra, görüntülemek istedikleri görüntüyü seçmek Grafiksel LCD ve BMP dönüştürmek (zaten BMP biçiminde değilse), MS Paint, Photoshop vb gibi herhangi bir uygulamayı kullanarak, Yoksa birçok online web sitesi bulabilirsiniz Görüntü biçimi dönüştürme için. 128x64 boyutunda BMP resminin altında:
Adım 3: Şimdi 1. Adımda indirdiğimiz BMP2ASM.zip dosyasını çıkartın ve içindeki Bmp2asm.exe dosyasını açın ve BMP görüntüsünü seçin.
Adım 4: Şimdi BMP2ASM uygulama penceresinde "Dönüştür" e basın.
Adım 5: Daha sonra üretilen kodu kopyalayın ve Keil uVision'daki 8051 programına yapıştırın. Bazı değişiklikler yapın ve kodu derleyin.
Artık kodunuz 8051 Mikrodenetleyiciye yüklenmeye hazır.
Devre Açıklaması:
Grafik LCD'yi 8051 Mikrodenetleyiciye Arabirim için devre bağlantıları kolaydır ve 16x2 LCD'yi 8051'e bağlamakla hemen hemen aynıdır. Ancak 16x2 LCD'de 16 pin ve GLCD'de 20 pin vardır.
GLCD için kontrast ayarı için 10K pot kullanılır. GLCD RS, R / W ve E'nin Kontrol Pinleri, 89C52 pin numarası P1.0, P1.1 ve P1.2'ye doğrudan bağlanır. LCD'nin CS1 ve CS2 çip seçme pimleri sırasıyla P1.3 ve P1.4 pimlerine bağlanır. DB0-DB7 veri pinleri doğrudan PORT P2'ye bağlanır. Normal 5 volt besleme için bir 7805 Voltaj regülatörü kullanılır. Tanıtım videosunda Arduino güç kaynağı kullandım.
Programlama Açıklaması:
Öncelikle gerekli başlık dosyalarını programa dahil ediyoruz ve GLCD'nin Kontrol ve Veri Pinleri için bitleri tanımlıyoruz.
#Dahil etmek
Ondan sonra bir gecikme fonksiyonu oluşturduk.
boşluk gecikmesi (int itime) {int i, j; için (i = 0; i
İşlev void lcd_disp_on () , ekranı açmak için kullanılır.
İşlev void setCursorY (int y) GLCD'de sütunu ayarlamak için ve Function void setCursorX (int x) GLCD'de sayfayı ayarlamak için oluşturulur. Tam Kod dosyası aşağıdaki Kod Bölümünde verilmiştir.
Sütun ve Sayfayı ayarladıktan sonra GLCD'ye komut ve veri göndermek için bir fonksiyon yazdık.
void lcdprint (char dat, int size) {unsigned int i; için (i = 0; i
In void main () fonksiyonu, biz GLCD temizlenir ve ardından Sütun ve Sayfa belirledik. Bundan sonra, void lcdprint (char dat, int size) işlevini kullanarak verileri LCD'ye gönderin.
void main () {int x, y; P3 = 0xff; while (1) {lcdclear (); for (y = 0; y <8; y ++) {for (x = 0; x <128; x ++) {lcd_disp_on (); setCursorX (y); setCursorY (x); lcdprint (resim, x); }}…………………..
Kod Akışı:
- İlk olarak sistemi çalıştırdığımızda, program GLCD'yi temizler ve ekranı açar.
- Sonra imleci Verileri yazmak istediğimiz yerden Sütun'a getirin.
- Ardından, Verileri yazmak istediğimiz yerden imleci Sayfa'ya getirin.
- Artık program Verileri 128X8 Kez'e kadar tek tek seçilen konuma gönderir. Çünkü bir GLCD'nin 8 sayfası ve 128 Sütunu vardır.