Şekil 1-PIC16F628A Pin Diyagramı
PIC ve LCD Devresi
Not: Benim kullandığım LCD pinleri datasheetine göre ters numaralandırılmıştı. O yüzden LCD’nin pinlerini doğru bağlayabilmek için ilk önce en uçtaki 2 panel ışık pinlerine besleme girişlerini vererek yanıp yanmadığına bakın ve pin numaralandırmasının hangi uçtan başladığını bulun, benim kullandığım modelden farklı bir model kullanacaksanız da pin bağlantılarını datasheet ine bakarak bulun.
LCD Pinleri’nin İşlevleri Nedir?
|
Pin Numarası
|
Pin Adı
|
Pin Tanımı
|
|
1
|
LEDK
|
Panel Işık Beslemesi(-)
|
|
2
|
LEDA
|
Panel Işık Beslemesi(+)
|
|
3
|
VSS
|
Toprak
|
|
4
|
VDD
|
Lojik Besleme(+5 V)
|
|
5
|
Vo
|
Kontrast
|
|
6
|
RS
|
Yazmaç Seçimi(Register Select)
|
|
7
|
R/W
|
Okuma/Yazma Modu(Read/Write)
|
|
8
|
E
|
Etkinleştirme(Enable)
|
|
9-16
|
DB0-DB7
|
Veri Girişleri
|
RS(Register Select): RS pini 0 yapıldığında LCD komut gönderimi için, 1 yapıldığında ise veri gönderimi için aktif hale getirilmiş olur.
R/W(Read/Write): R/W pini 0 yapıldığında yazma, 1 yapıldığında ise okuma modundadır. Yazma modu LCD’ yazı yazdırmak için kullanılır, okuma modu ise LCD’nin meşgul olup olmadığını anlamak için kullanılır. Biz bu uygulamamızda her bir karakteri yazdırdıktan sonra uygun sürede gecikme koyacağımız için LCD’nin meşgul olup olmadığına bakmamıza gerek kalmayacak bu yüzden de bu pini direk toprağa bağlayarak hep yazma modunda tutacağız.
E(Enable): E pini LCD veri pinlerinin bu pinlere gönderilen veriyi okuması için kullanılır. Bunun için de E pini önce 1 yapılır biraz bekledikten sonra da tekrar 0 yapılır.
Vo(Kontrast): Vo pini LCD’nin kontrast ayarı için kullanılır. Biz uygulamamızda 2K5’ lik direnç üzerinden bu pini toprağa bağlayacağız.
Veri Girişleri: Bu girişler LCD’ye komut gönderimi ve yazdıracağımız veri gönderimi için kullanılır. Pinlerin 8’ i de kullanılabileceği gibi 4’ü nü de kullanmak mümkündür. Pic üzerinde fazla pin işgal etmemesi için biz sadece 4 pinini kullanacağız. Veri gönderirken de önce 8 bitlik verinin üst 4 bitini(MSB) sonra da alt 4 bitini(LSB) LCD’ ye göndereceğiz.
LCD Komutları
|
İşlem
|
D7
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
Açıklama
|
|
Ekranı Sil
|
0
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
Ekranı siler
|
|
Kursörü Başa Al
|
0
|
0
|
0
|
0
|
0
|
0
|
1
|
*
|
Kursörü Başa Alır
|
|
Ekran Seçenekleri
|
0
|
0
|
0
|
0
|
1
|
P
|
K
|
Y
|
(P)Panel Aç(1)/Kapa(0)
(K)Kursör Aç(1)/Kapa(0)
(Y)Yanıp Sönme(Blink) Aç(1)/Kapa(0)
|
|
Fonksiyon Ayarları
|
0
|
0
|
1
|
D
|
N
|
0
|
*
|
*
|
(D)Veri Girişi 8 Bit(1)/4 Bit(0)
(N)Çift Satır(1)/Tek Satır(0)
|
|
CGRAM Adres Ayarı
|
0
|
1
|
C5
|
C4
|
C3
|
C2
|
C1
|
C0
|
(C5-C0) CGRAM’e gidecek veriler
|
|
DDRAM Adres Ayarı
|
1
|
D6
|
D5
|
D4
|
D3
|
D2
|
D1
|
D0
|
(D6-D0) DDRAM’e gidecek veriler
|
|
Meşgul Bayrağı/Adres sayaç okuma
|
BF
|
AC
6
|
AC
5
|
AC
4
|
AC
3
|
AC
2
|
AC
1
|
AC
0
|
Meşgul bayrağı(BF) RW=1, RS=0 iken D7 pininden okunur. D6-D0’dan adres sayaç verisi okunur.
|
|
Kursör Kaydırma
|
0
|
0
|
0
|
1
|
SC
|
RL
|
*
|
*
|
(SC)Kursör Kaydırma(1)
(RL)Sağ(1)/Sol(0)
|
|
Girdi Modu
|
0
|
0
|
0
|
0
|
0
|
1
|
ID
|
S
|
(ID)Artır(1)/Azalt(0)
(S)Kaydırma Açık(1)/Kapalı(0)
|
Karakter Kodları
LCD’yi Yazma İşlemine Hazırlamak için Yapılacaklar
LCD’ ye yazı yazdırmadan önce sırasıyla şu işlemleri izleyeceğiz.
- LCD’yi resetle
- 25 ms’lik gecikme.
- LCD’yi 4 bit, 2 satıra ayarla.
- 25 ms’lik gecikme.
- Ekranı ve kursörü aç.
- 25 ms gecikme.
- Artışı sağa doğru ayarla(Yazdırma işlemini soldan sağa doğru yapabilmek için).
- Ekranı temizle.
<< Başa Dön < Önceki 1 2 Sonraki > Sona Git >>
Lütfen sorularınızı foruma yazın
Yazan:: Tuna (Kayıtlı ) Tarih: 30-08-2008 17:26
İyi çalışmalar...
» Yorumu cevapla...