X
Teknomerkez
Teknomerkez
TR EN ES
Konular

PICBASIC ile LCD Kullanımı

Yazar: Aykut Yılmaz
Tarih: 23.04.2007
Türkçe

Bu yazımızda LCD ( Liquid Crystal Display ) tanıyacağız ve bol uygulamalar ile bilgilerimizi pekiştireceğiz.

LCD nedir: LCD ( Liquid Crystal Display ) LCD’ler ilk olarak 1960 yılında kullanılmış olup günümüzdede kullanılan yüksek teknolojik sistemlerdir. LCD'ler cep telefonu, hesap makinası ve televizyonlarda kullanılmaktadır.

LCD çeşitleri: İki adet LCD vardır bunlardan bir tanesi normal, sadece yazı gösteren yeşil ve mavirenkli LCD’ler diğeri ise renkli ekran cep telefonlarında kullanılan GLCD ( Grapich Liquid Crystal Display )’dir



Resim 1: LCD ( Liquid Crystal Display ) genel görünümü



Resim 2: GLCD ( Grapich Liquid Crystal Display ) genel görünümü

Piyasa satılan LCD’ler 1x8, 2x8, 2x16, 4x16, 4x20, 4x24 ilk sayı satır sayısı son sayı ise karakter sayısıdır.

Örneğin; 2x16 LCD 2 satır 16 karakterden oluşur.



Resim 3: Proteus elektronik programındaki 2x16 LCD’nin genel görüntüsü

LCD PİNLERİNİ TANIYALIM

1 Vss, Toprak (Ground), Logic Vss, Logic Ground

2 Vcc, +5 Volt, Logic Vcc, Logic Power

3 VLc, VBias,Bias,Contrast (Kontrast)

4 RS, Register Select

5 R/W, Read/Write(Okuma yada Yazma Modu)

6 E, Enable, Strobe

7-14 D0-D7 (DATA girisleri)

15* Led+, A, Backlight+, Backlight Anode (LCD Panel ısıgı (+5 Volt))

16* Led-, K, Backlight-, Backlight Cathode (Toprak (Ground))

*15 ve 16. bacaklar bazı displaylerde yoktur. Bu uçlar paneli aydınlatmak icin kullanılırlar.



Resim 4: 2x16 LCD’nin arkadan görüntüsü

PİCBASİC’te kullanılan LCD komutlarını tanıyalım

$FE,1 Ekranı siler.

$FE,2 Satir basına donülür.

$FE,$0C Kursörün görüntüsünü yok eder

$FE,$0E Kursörü alt çizgi biçimine getirir

$FE,$0F Kursörü yanıp/Soner yapar

$FE,$10 Kursörü 1 pozisyon sola getirir

$FE,$14 Kursörü 1 pozisyon saga getirir

$FE,$C0 Kursörü ikinci satirin başına getirir

$FE,$94 Kursörü üçüncü satirin başına getirir

$FE,$D4 Kursörü dördüncü satirin başına getirir

PİCBASİC’te LCD’veri göndermek için kullanılan komut; LCDOUT komutudur

PİCBASİC’te kullanılan LCD_DEFINE TANIMLAMALARI

DEFINE LCD_DREG PORTB 'LCD DATA BACAKLARI PORTB'YE BAGLI

DEFINE LCD_DBIT 4 LCD DATA BITLERI HANGİ BITTEN BASLIYOR

DEFINE LCD_EREG PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI

DEFINE LCD_EBIT 3 LCD ENABLE BITI HANGI PORTA BAGLI

DEFINE LCD_RWREG PORTB 'LCD RW BACAGI HANGI PORTA BAGLI

DEFINE LCD_RWBIT 2 LCD RW BACAGI HANGI BITE BAGLI

DEFINE LCD_RSREG PORTB 'LCD RS BACAGI HANGI PORTA BAGLI

DEFINE LCD_RSBIT 1 LCD RS BACAGI HANGI BITE BAGLI

DEFINE LCD_BITS 4 LCD 4 BIT BAGLI

DEFINE LCD_LINES 2 LCD KAC SIRADAN OLUSUYOR

ÖNEMLİ BİR NOT:

DEFINE LCD_RWREG PORTB 'LCD RW BACAGI HANGI PORTA BAGLI
DEFINE LCD_RWBIT 2 LCD RW BACAGI HANGI BITE BAGLI

Yukardaki defıne tanımlaması kullanıldığı zaman aşağıdaki kodun programa eklenmesi gerekir.
LOW PORTB.2 RW BACAGI EKRANA YAZMAYA IMKAN VERMEK ICIN LOW YAPILDI

ÖNEMLİ BİR NOT:

Diğer bir çözüm ise yukarıdaki notta bulunan komutları kullanmayıp RW pinini direkt toprağa bağladığımız zaman sorunu çözeriz iki şekilde program çalışacaktır.

ÖNEMLİ BİR NOT:

LCD_DEFINE tanımlamalarından sonra pause 500 komutunun yazılması gerekiyor çünkü bu komut LCD’nin açılması için gerekli olan süre

Uygulama1; Bu uygulamada LCD’de sabit yazı yazdıralım ilk önce devremizi verelim



Şemayı büyük görmek için tıklayınız.

PİCBASİC kodu

'*****LCD_DEFINE TANIMLAMALARI*****

DEFINE LCD_DREG PORTB 'LCD DATA BACAKLARI PORTB'YE BAGLI
DEFINE LCD_DBIT 4 'LCD DATA BITLERI HANGİ BITTEN BASLIYOR
DEFINE LCD_EREG PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI
DEFINE LCD_EBIT 3 'LCD ENABLE BITI HANGI PORTA BAGLI
DEFINE LCD_RWREG PORTB 'LCD RW BACAGI HANGI PORTA BAGLI
DEFINE LCD_RWBIT 2 'LCD RW BACAGI HANGI BITE BAGLI
DEFINE LCD_RSREG PORTB 'LCD RS BACAGI HANGI PORTA BAGLI
DEFINE LCD_RSBIT 1 'LCD RS BACAGI HANGI BITE BAGLI
DEFINE LCD_BITS 4 'LCD 4 BIT BAGLI
DEFINE LCD_LINES 2 'LCD KAC SIRADAN OLUSUYOR

TRISB=0

LOW PORTB.2 'RW BACAGI EKRANA YAZMAYA IMKAN VERMEK ICIN LOW YAPILDI

PAUSE 200 '200 ms BEKLEME YAP

LCDOUT $FE,1,"PiC BASiC PRO" 'ILK SATIRA YAZ
LCDOUT $FE,$C2,"OGRENIYORUM" 'IKINCI SATIRA YAZ

END

LCD’de simgesel olmayan karakterler yapmak

LCD’ler 5x7 dotmatrix tablodan oluşur. LCD’lerde Türkçe olmayan karakterler (ı,ö,ç,ş,ğ) harfleri kullanılamaz ancak gerekli ayarlamalar yapılırsa (ı,ö,ç,ş,ğ) harfleri kullanılabilinir. LCD’lerde tanımlayabileceğimiz 8 ayrı karakter vardır ve her bir karakter için 8 ayrı data vardır.

Her bir karakterin yerleştirilme adresi vardır bunlar;

0.karakter $40 4.karakter $60

1.karakter $48 5.karakter $68

2.karakter $50 6.karakter $70

3.karakter $58 7.karakter $78
Bu adreslerden hangisine karakter dataları yazılırsa program içinde ona ait karakter numarasını kullanılarak ilgili karakter ekrana yazdırılabilinir.

Türkçe karakterlere ait data numaraları ;
LCDOUT $FE,$40,$0A,$00,$11,$11,$11,$11,$0E,$00 'Ü

LCDOUT $FE,$48,$0E,$11,$10,$10,$11,$0E,$04,$00 'Ç

LCDOUT $FE,$50,$00,$0E,$04,$04,$04,$04,$0E,$00 'I

LCDOUT $FE,$58,$0A,$00,$0E,$11,$11,$11,$0E,$00 'Ö

LCDOUT $FE,$60,$0E,$00,$1F,$10,$13,$11,$1F,$00 'Ğ

LCDOUT $FE,$68,$0E,$11,$10,$0E,$01,$15,$0E,$04 'Ş
Örnek verecek olursak;

LCDOUT $FE,$58,$0E,$10,$10,$0E,$01,$05,$1E,$04 'Ş dataları

Bu ifade Ş harfine ait dataları içermektedir. Adres olarak da $58 kullanılmış. O halde bu karekteri kullanmak için programda 3 rakamını kullanacaksın demektir. Yani AŞIK yazdırabilmen için şöyle yapman gerekli;
LCDOUT $FE,1,"A",3,"IK"
Diyelimki Ş harfine ait dataları 0 nolu karektere ait olan $40 adresine koyduk;
LCDOUT $FE,$40,$0E,$10,$10,$0E,$01,$05,$1E,$04 'Ş dataları
Bu durumda AŞIK yazdırabilmen için şöyle yapman gerek;
LCDOUT $FE,1,"A",0,"IK"
hepsi bu kadar. Yalnızca Ş harfini yazdırman için LCDOUT $fe,1,0 yazman yeterli oluyor. Demekki karekter numarasını yazarsan o karekteri ekrana getirebiliyorsun. Yalnızca dikkat etmen gereken husus karekterin yazılacağı yeri iyi tayin etmek olacaktır.

Devre şekli yukardaki devre şeması ile aynıdır

PİCBASİC kodu
'*****LCD_DEFINE TANIMLAMALARI*****
DEFINE LCD_DREG PORTB 'LCD DATA BACAKLARI PORTB'YE BAGLI
DEFINE LCD_DBIT 4 'LCD DATA BITLERI HANGİ BITTEN BASLIYOR
DEFINE LCD_EREG PORTB 'LCD ENABLE BACAGI HANGI PORTA BAGLI
DEFINE LCD_EBIT 3 'LCD ENABLE BITI HANGI PORTA BAGLI
DEFINE LCD_RWREG PORTB 'LCD RW BACAGI HANGI PORTA BAGLI
DEFINE LCD_RWBIT 2 'LCD RW BACAGI HANGI BITE BAGLI
DEFINE LCD_RSREG PORTB 'LCD RS BACAGI HANGI PORTA BAGLI
DEFINE LCD_RSBIT 1 'LCD RS BACAGI HANGI BITE BAGLI
DEFINE LCD_BITS 4 'LCD 4 BIT BAGLI
DEFINE LCD_LINES 2 'LCD KAC SIRADAN OLUSUYOR

TRISB=0

LOW PORTB.2 'RW BACAGI EKRANA YAZMAYA IMKAN VERMEK ICIN LOW YAPILDI

PAUSE 200 '200 ms BEKLEME YAP

'TÜRKÇE KARAKTERLİ SABİT YAZI'

LCDOUT $FE,$40,$0A,$00,$11,$11,$11,$11,$0E,$00 'Ü
LCDOUT $FE,$48,$0E,$11,$10,$10,$11,$0E,$04,$00 'Ç
LCDOUT $FE,$50,$00,$0E,$04,$04,$04,$04,$0E,$00 'I
LCDOUT $FE,$58,$0A,$00,$0E,$11,$11,$11,$0E,$00 'Ö
LCDOUT $FE,$60,$0E,$00,$1F,$10,$13,$11,$1F,$00 'Ğ
LCDOUT $FE,$68,$0E,$11,$10,$0E,$01,$15,$0E,$04 'Ş

LCDOUT $FE,1,"T",0,"RK",1,"E HARFLER"

LCDOUT $FE,$C5,0,1,2,3,4,5

END
Pic Basic ile yapılmış devre uygulamalarını indirmek için tıklayınız.


Etiketler: Pic Basic Lcd

Yorumlarınız

metin - 16.05.2007
emek çekerek yazdığınız proğram için teşekkürler elinize sağlık.çok güzel.fm vericide ts 5511ve 16f84a lcd kullandım bununla ilgili yazılım proğramında yardımcı olursanız memnun olurum.varsa hazır yazılım proğramı posta adresime göndermeniz mümkünmü.tekrar teşekürler ve çalışmalrınızda başarılar
Osman - 13.06.2007
Benim elimde bi LCD var yalnız bu LCD nin bağlantılarını bilmiorum yardımcı olursanız sevinirim LCD nin adı TX-T9801LCD
AYKUT YILMAZ - 13.06.2007
kardeşim çok basit aslında TX-T9801 lcd üzerindeki numarayı google yaz arat çıkar ve bağlantılarını burdan görürsün
kolay gelsin
Şaban usta - 24.11.2007
Teşekkürler el emeğinize
ÖMER - 08.01.2008
Verdigin bilgiler için teşekkürler çok yardımcı oldu ellerine saglık. elinde daha kapsamlı bir döküman varmı? bu konuyu tamamıyla yutmam lazım.
suat - 02.03.2008
emeğinize sağlık. bilgiler çok yardımcı olacak. picbasic ile nokia 3310 lcd kullanımı hakkında bilgi verebilirseniz çok sevinirim
ilker - 05.05.2008
eyvALLAH kardesim cok işime yaradı projeye rapor için umarsızca gezinirken buldum bu dökümanı ve cok işime yaradı teknik özellikler kısmına ekliyecek bilgimiz söyleyecek sözümüz oldu tebrik eder basarılar dilerim ;)
kenan - 16.06.2008
Elinize sağlık hocam. Verdiğiniz biligiler çok işime yaradı. Kolay gelsin.
tarık - 01.09.2009
teşekkürler sonunda aradığımı buldum
blackegon - 29.12.2009
Çok teşekkürler merak ettiğim bi konuydu sizin sayenizde pic ile LCD programlamayı öğrenebilicem ... Paylaşımlarınızın devamını bekliyorum...

musab - 17.03.2011
LCDOUT $FE,2,0,1,2,3,4,5
KOMUTU NIYE 2 TAN E2 YAZILMI? cvb yazarsanız çok i olur ihtiyacım var salun
ali - 29.03.2013
merhaba aykut jocam,verdiğiniz bilgilerden dolayı teşekkür ederim.2x16 lcd 1.satırın son adresi nedir?
lcdout $fe,$84,\"merhaba\",\" \",5 karakter adresi.ekranda cıkıyor.son satıra birkarekter daha koymak istiyorum.
lcdout $fe,$89,\"x\" bisey denedim son satıta gitmedi
uardımcı olursanız sevinirim.

Bir yorum ekleyin

İsim:
E-posta:
Yorumunuz:
Güvenlik Kodu:
 
Tüm alanları doldurmak zorunludur. Yorumunuz kontrol edilince yayınlanacaktır. E-posta adresi yayınlanmaz.
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>