avatar_ete

PIC Basic Ders-03 (LCD Kullanımı)

Başlatan ete, 28 Ağustos 2011, 14:45:56

ete

Bu dersimizde  LCD Kullanımından bahsedeceğiz. Yazığımız programlardan elde edeceğimiz neticeleri görsel olarak takip edebilmek amacı ile Pic'lere muhtelif büyüklüklerde LCD ekranlar bağlandığını biliyorsunuz. Şimdi Pic ile LCD kullanımı konusunda detaylı bir uygulama yapacağız ve LCD kullanımını her yönü ile
öğreneceğiz.


Önce biraz LCD leri tanıyalım. Bu konuda en çok kullanılan LCD 2 sıra ve her sırada 16 karakter
yer alan LCD ler kullanılır. Bunların 4 sıralı olanları olduğu gibi her sırada karakter adedi 40 'a
kadar olanlarda mevcuttur.


mhmtklhci

#1
ete hocam, sizin ve muhittin kaplan hocamın notları yardımıyla küçük bir LCD çalışması yaptım ama çalıştıramadım.Program şöyle,
Device 16F877A
XTAL 4
Clear PORTD
Clear PORTE
LCD_DTPIN=PORTD.4
LCD_INTERFACE=4
LCD_LINES=1
LCD_RSPIN=PORTE.0
LCD_ENPIN=PORTD.1
LCD_TYPE=0                                                   
LCD_COMMANDUS = 2000
LCD_DATAUS = 50
ALL_DIGITAL TRUE
 
Print At 1,1,"Merhaba"
DelayMS 10   
Stop   


sizce hata ve eksiklikler neler,saygı ve sevgilerimle....

ete

Prptonda yazdığın için çok fazla yardımcı olamayacağım.
Programda hata gözükmüyor eksikler var.
Birincisi Tris registerlerini ayarlaman gerek.
İkincisi çalışma frekansını belirtmen gerek.
Üçüncüsü, sisteme bir açılış gecikmesi vermen gerek 10 ms vermişsin ama yeterli değil.
Onu en azından 150-200 ms yapman gerek.
2 satır LCD bağlamışsın 1 satır LCD tanımlaması yapmışsın.
Bunları tamamladığın zaman sistemin çalışması gerekir.
Tabiiki çalışmayan simulasyonmu yoksa gerçek devremidir tam olarak belirtmemişsin.
Gerçek devre ise;
Pic 'e kristal yada rezonatör bağlaman gerekir.
Programa ADCON1=7 komutunu verip analog pinleri digital yapman gerekiyor. PortE.0 analog açılır. Söylediğim komut ile pinler digital olur. Kullandığın 16F877A ise ayrıca CMCON=7 komutunu vererek komparatörleri de iptal etmen gerekir.
Senin sorunun muhtemelen ADCON1=7 komutunun eksikliğidir.

Ete

mhmtklhci

Hocam söylediğiniz herşeyi yaptım ama ''çalışma frekansı'' kısmını anlamadım.Ben Xtal 4 komutuyla bunu yaptığımı düşünüyorum ama,ilginiz için teşekkür ederim.

''Çok çalışmam lazım çok''

ete

Tamam doğru. Onuda ben atlamışım.
Ete

mhmtklhci

hocam LCDOUT komutu hangi dile ait bir komuttur.

ete


Reytabu

Adaşım

Lcd derslerindeyim şu an . Delikli pertinanksa proje 2a' devresini uyguladım . LCD ye yazı yazdırmayı beceremedim.

PCB de devre yapmak istiyorum. ARES te LCD ye uygun kılıf bulamıyorum ve LCD yi PCB ye nasıl monte edeceğimi bilmiyorum.
kullandığım LCD 2*16  ve 16 pinli. LCD nin her iki yanında da 16 şar pin var. Pinler delik şeklinde. Yani pic gibi bacakları yok.

LCD bağlantısı (her iki taraftaki pinlerin kullanılabilirliği konusu) ve montajı konusunda bilgi verebilir misiniz?

Saygılarımla

ete

Dersleri yazdığım dönemde bazı şeyleri atladığımı şimdi farkediyorum. Bu elbette mesliğimin Öğretmenlik olmamasından kaynaklanıyor.
Atladığım şeyler şunlar,
- Verilen devre şemaları tamamlanmış durumda değiller.
- Zaten simulasyonda işlemci besleme bacakları gözükmüyor. Dolayısıyla işin başında olan öğrenenler bu pinleri bağlamadan devre yapmaya çalışıyorlar. İşlemcinin 14 Nolu bacağın +5V bağlanacak, 5 Nolu bacağada GND bağlanacaktır.
- Sİmulasyonda işlemciye kristal bağlamasanızda o bağlı kabul ediyor ve simulasyonlar çalışabiliyor. Ama aynı şekilde devreyi delikli karta yada deney boardına kurduğun zaman çalışmıyor elbette. Sebebide işlemcilere ya bir kristal yada bir rezonatör bağlanması gerekmesidir. Rezonatörü daha fazla öneriyorum. 3 bacaklı bir malzemedir. Ortadaki pin GND ye bağlanacak dıştaki iki pin ise işlemcinin OSC bacaklarına (15-16) bağlanması gerekiyor. Kristal bağlamak isterseniz iki bacaklı olan bu eleman yine OSC bacaklarına bağlanıyor ama bacakların her bir ayrıca 22pf kondansatörle GND ye bağlanıyor. Yani 22pF ın bir ucu OSC bacağında diğer ucu ise GND de olacaktır.
- Örneklerde kullanılan Pic16F84 işlemcisi MCLR bacağında 10K pullup direnci olmadan çalışmaz. Sİmulasyonda bu direnci bağlamamış olabilirim. Çünki simulasyon bunu bağlı kabul eder. 5 Nolu pin olan MCLR bacağına 10K direncin bir ucu bağlanacak diğer ucu ise +5V ta (14 Nolu pin) bağlanacaktır.
- Örnek devrelerde kullanılan Ledlere seri akım sınırlama direnci bağlamamış olabilirim. Normnalde pic'in led bağlanan bacağına bir 220 Ohm direnç bağlayıp direncin diğer ucu Led'in Anot ucuna (Uzun olan bacaktır) bağlanacak ve Led in katod bacağı ise GND ye bağlanmalıdır.
Şimdilik devre eksiklikleri bunlar.  LCD bağlantısında da bir takım eksiklikler olabilir. Satın aldığınız LCD nin mutlaka 1 nolu bacağını tespit etmeye çalışınız. Mutlaka bu bacağa bir numara koyarlar. Bu bacağı bulduktan sonra işiniz kolaydır.
- LCD nin 1 nolu ucu GND ye bağlanmalıdır.
- LCD nin 2 nolu bacağı +5V ta bağlanmalıdır.
- LCD nin 3 nolu bacağı kontrast ayarı içindir. Bir 10-22K arası bir trimpot un ortadaki gezinen ucunu 3 nolu LCD pinine bağlayacaksınız. Trimpotun dışta kalan bacakları ise +5V ve GND ye bağlanmalıdır. Devre çalıştırıldıktan sonra ekranda karekterler gözükene kadar tirmpot ayarlanmalıdır. Şayet ekranda tek sırada siyah kutucuklar görüyorsanız ya bağlantınız yanlış yada işlemciniz çalışmıyordur. Devrenizi kontrol etmeniz gerekir. Şayet iki sıra kutucuklar görüyorsanız muhtemelen kontrast ayarı aşırı gelmiştir.
LCD  lerde genelde arka plan ışığıda yer alır. 15 ve 16 nolu pinler bu ışık için ayrılmıştır. Denemelerinizde bu pinleri (şimdilik) kullanmayın.

Malzemecilerde sıralı Pin diy ebir malzeme satılır. Bu LCD nin pin delikleri ile aynı ölçüdedir. Bu sıralı pini alıp deliklere sokarak lehimlerseniz soketli olarak kullanabilirsiniz. Sıralı pinlere uygun ölçüde birde dişisi satılır. Bunuda fiş olarak kullanabilirsiniz. Aslında PCB üzerine sıralı pin yerleştirip lehimelemek ve LCD pin deliklerine ise sıralı yassı kablo lehimlemek ve kablonun diğer ucunada dişi sıralı pin bağlamak işinizi daha kolay hale getirir.

Bu dediklerimi uygula ve yine devre çalışmıyor ise biraz daha detay vererek açıklaki asıl sorunu bulabilelim.
Bu arada unutmadan söyleyeyim. Devrelerinizde genelde 9-12V DC besleme kullanın. Bunu yine devrenize bağlayacağınız 7805 voltaj regülatörüne girerek onu 5V değerine sabitleyin ve bu voltajı pic işlemcisine verin. Aksi halde çok fazla işlemci yakarsınız bunu unutmayın. Bir diğer tavsiyemde pice voltaj vermeden önce iki defa yönünün doğru olduğunu kontrol edin. Aksi halde ters takılmış pic anında yanacak veya zarar görecektir.  Pic besleme bacaklarına mutlaka 100nf kondansatör bağlayın. Bu kondansatör tamda picin besleme bacaklarına en yakın yerde olsun veya tam bacakların üzerine lehimleyin.
Hepsi Bu kadar
Ete


sinancnc

ete hocam 2x16 LCD Display Yeşil Ekran için teknik bilgi
ACM1602K-FL-YBH bu lcd ve 16f628a ile kristal kullanmadan sitemi kurdum sadece yeşil ekran geldi yazıları malesef göremedim . MCLR off yaptım resette kullanmıyorum sizce bu pice lcd uygun değilmi
Paylaşmayı seven insan toprak olup gitmez. Bir şeyler bırakır...!

sinancnc

#10
kodlar aşağıda

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [Nurettin GÖKAŞAN]                                *
'*  Notice  : Copyright (c) 2005 [nurimelek]                    *
'*          : All Rights Reserved                               *
'*  Date    : 07.04.2005                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
@ DEVICE pic16F628A 'işlemci 16F628 
@ DEVICE pic16F628A, WDT_on 'Watch Dog timer kapalı 
@ DEVICE pic16F628A, PWRT_ON 'Power on timer açık 
@ DEVICE pic16F628A, PROTECT_OFF 'Kod Protek kapalı 
@ DEVICE pic16F628A, MCLR_off 'MCLR pini kullanılıyor. 
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 'Dahili osilatör kullanılacak
CMCON=7 


DEFINE LCD_DREG      PORTB   'LCD data bacakları PortB de bağlı
DEFINE LCD_DBIT         4      'LCD data bacakları 4. bitten başlıyor
DEFINE LCD_EREG      PORTB   'LCD Enable Bacağı PortB de bağlı
DEFINE LCD_EBIT         3      'LCD Enable Bacağı 3. bite bağlı   
DEFINE LCD_RWREG          PORTB   'LCD RW Bacağı PortB de bağlı
DEFINE LCD_RWBIT           2      'LCD RW Bacağı  2. bite bağlı
DEFINE LCD_RSREG      PORTB   'LCD RS Bacağı PortB de bağlı
DEFINE LCD_RSBIT      1      'LCD RS bacağı 1. Bite bağlı      
DEFINE LCD_BITS         4      'LCD 4 bit  olarak bağlı
DEFINE LCD_LINES      2      'LCD 2 sıra olarak çalışıyor.

TRISA=0  'A portu çıkış olarak ayarlandı.
TRISB=0  'B portu çıkış olarak ayarlandı.

LOW PORTB.2           'RW bacağı ekrana yazmaya imkan vermek için LOW yapıldı.

PAUSE 200                       ' LCD nin kullanıma hazır hale gelebilmesi için gerekli süre

LCDOUT $FE,1                'Önce Ekranı siliyoruz.
LCDOUT "BASIC DERSLERI"  'ilk sıra baştan itibaren yazdırıyoruz. Aslında bu komutu başka bir şekilde de yazabiliriz, şöyle
'      LCDOUT $FE,2,"BASIC DERSLERI"

LCDOUT $FE,$C0,"DERS No: 3"      'ikinci satıra yazdırıldı.

End                   'Program sonu

Paylaşmayı seven insan toprak olup gitmez. Bir şeyler bırakır...!

sinancnc

#11
ek olarakta lcd yanlarında ve + ve - r9 ve r8 diye bir giriş var ayrıca 15 ve 16 olan bacak var buralara bir şey bağlamıyorum ama yanlara 5 volt ve gnd girişi yağıyorum sadece yeşil ekran geliyor..
Paylaşmayı seven insan toprak olup gitmez. Bir şeyler bırakır...!

ete

Bu LCD standartlara uygun. Çalışması gerekiyor.
Aşağıdakileri kontrol et;
1. İŞlemci bacaklarına +5V - GND Voltaj geliyormu?
2. LCD nin 1 nolu bacağında GND , 2 nolu bacağında +5V olması gerek varmıdır.
3. LCD nin 3 Nolu bacağı 10 K lık trimpotun orta pinine bağlanmalı, trimpotun iki uçta kalan pinlerinden birisi +5V ta diğeri GND ye bağlanmalı ve Orta nokta GND ye yakın bir yere gelecek şekilde trimpota ayar verilmelidir.  Sisteme voltaj verdikten sonra görüntü yok ise veya tüm kareler siyah ise bu tirmpotla ayarlayarak görüntü yakalanmaya çalışılmalıdır.
4. İşlemci kristal ile çalışıyor ise kristal yada rezonatör bağlanmış olması gerekir. OSC pinlerinde bu bağlantı varmıdır kontrol edin. Kristal bağlı ise kristal bacakları ile GND arasına birer 22pf kondansatörle bağlanmalıdır.
5. İşlemcinin MCLR bacağı off yapılabiliyor ise off yapın değilse 1K lık bir direnç ile Pullup yapın.

Bütün bunlara rağmen LCD çalışmıyorsa bozuktur. Değiştirin.
LCD ler voltaja karşı çok hassastırlar. 5,5V dan daha fazla bir voltaj alırlarsa anında bozulurlar. Bu nedenle 5 Voltluk regülatörü olmayan devrelere LCD bağlamayınız.

LCD de 15 ve 16 nolu bacaklar arka aydınlatma içindir. Onları şimdilik kullanmayın.

Ete

sinancnc

16f628a kullandığım için kristal kullanmıyorum söylediklerini tekrar konrol edip döneceğim teşekkür ederim.
Paylaşmayı seven insan toprak olup gitmez. Bir şeyler bırakır...!

sinancnc

#14
birde hocam neden hep 100mf kondansaör kullanmam gerekli pic için 7805 çıkış bacağına 2200 mf kullansam sonra pic besleme bacaklarına 220 mf kullansam bir zararı olurmu......bu sorum başka bir devrede role çeken bir sistem için gerekli 1n4001 rolede mevcut ayrıca kutupsuz 100 nf faydası varmıdır.
Paylaşmayı seven insan toprak olup gitmez. Bir şeyler bırakır...!

Powered by EzPortal