16f628 2*16 lcd sürme sorunu

Başlatan eozkantar, 12 Nisan 2012, 23:30:15

eozkantar

 arkadaşlar 16f628 de bu şekilde yazınca 2*16  lcd çalışmıyor  porta 0 ve 1 de mi sorun var

@CONFIG_REQ
@__CONFIG XT_OSC & MCLRE_On & PWRTE_ON  & CP_OFF &  WDT_OFF   &  BODEN_OFF
Device = 16F628A
XTAL = 4
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTA.0
Declare LCD_RSPIN PORTA.1
Declare LCD_INTERFACE 4
Declare LCD_LINES 2

ALL_DIGITAL=On
     PORTB_PULLUPS = On
TRISB = %00000100
TRISA = %00000000

FUNKY

Declare LCD_ENPIN PORTB.0
Declare LCD_RSPIN PORTB.1  yaparsan çalışır. lcd yi aynı porta bağlamak zorundasın   . protonda+ da böyle..

eozkantar

16f84 bağlarsam karışık port ta çalışıyor 16f628 de çalışmadı..

FUNKY


Maxim

#4
Alıntı yapılan: FUNKY - 12 Nisan 2012, 23:36:51
Declare LCD_ENPIN PORTB.0
Declare LCD_RSPIN PORTB.1  yaparsan çalışır. lcd yi aynı porta bağlamak zorundasın   . protonda+ da böyle..
hayir zorunda değilsin


edit:
olayı yanlış anlamışsın

farklı olamayan sadece data pinleri (4lü pin)
yani Declare LCD_DTPIN PORTB.4 satırı

bu satır A portunda veya B portunda olabilir
fakat, ya sıfırdan veya 4. uçtan başlamak zorundadır

yani
porta.0 olur
porta.4 olur
portb.0 olur
portb.4 olur

ama portb.2 olmaz yada portb.6 olmaz, porta.3 olmaz

diğer kullanılan 2 pin
RS ve E pinleri için ise istediğin portu ve pini kullanabilirsin


kısacası bu bağlantı doğrudur
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTA.0
Declare LCD_RSPIN PORTA.1

izzethoca

RS ve EN pinlerinin ayrı olması çalışmayı etkilemez, ama data pinleri birbirini aynı portta takip eder şekilde olacak. Birde F628 de comparatör pinlerini dijitale çevirirsen sanırım sorun düzelir. "CMCON=7" gibi

ibrsel

16F628a da A portunu digital giriş-çıkış kullanabilmek için comparator özelliğini kapatman gerekir.Bunun için programının başına
"ALL_DIGITAL TRUE" komutunu eklemen veya
"CMCON=7" komutunu eklemen yeterlidir.

Sonrasında LCD için Data pinlerin sıralı olmalı.Ya PORTB.4 den itibaren yada PORTB.0 dan itibaren sıralı kullanabilirsin 16F628 de. RS ve EN pinlerinide yukarıdaki ayarlamadan sonra A0 veya A1 e bağlayabilirsin.

elektroacemi

Bunu eklemeyi dener misin ?

Declare LCD_Type 0 

Birde RW ucu toprağa bağlı mı ?

eozkantar

arkadaşlar görüldüğü gibi
@CONFIG_REQ
@__CONFIG XT_OSC & MCLRE_On & PWRTE_ON  & CP_OFF &  WDT_OFF   &  BODEN_OFF
Device = 16F628A
XTAL = 4
Declare LCD_DTPIN PORTB.4
Declare LCD_ENPIN PORTA.0
Declare LCD_RSPIN PORTA.1
Declare LCD_INTERFACE 4
Declare LCD_LINES 2

ALL_DIGITAL=On
     PORTB_PULLUPS = On
TRISB = %00000100
TRISA = %00000000

datalar sıralı
analog lar da  kapalı  16f628 de çalışmıyor 
                                  16f84 de çalışıyor
diğer portlarda yazınca çalışıyor da ,bu portların suçu ne onu amlamaya çalışıyorum..............

elektroacemi

Proteus ta mı deniyorsun, reel de mi ?

eozkantar

reel de gerçek devrede, deniyorum

izzethoca

kardeş "CMCON=7" yazsana zormu okadar yazıp derlemek?

mustafa_cmbz

realde deniyorsan baskı devreni kontrol edeceksin agam...

ibrsel

Devre şemanı yada baskı devreni paylaşırmısın.Sorun devrende olabilir.
Birde Config tanımlamalarında MCLRE_OFF,PWRTE_OFF yapıp dene.
Programda tanımlamalarının sonuna,program başlangıcından hemen önce DELAYMS 1000 gibi bir süre bekleme komutu kullan.LCD nin hazırlanması için bir müddet bekleme yap.

eozkantar

 LVP_OFF  yapınca çalıştı
ne alakaysa.....