16F84A LCD çalışmıyor acil yardım..!!

bural41

Üye
Katılım
2 Eki 2010
Mesajlar
14
Puanları
1
Arkadaşlar 16F84 pic ile sıvı seviye ölçer yapıyorum bitirme projem haftaya sunumum olacak isis'de similasyonda denedim çalışıyor fakat devreyi kurup görmek istediğimde devreden hiç tepki almıyorum nerede hatam var lütfen yardım çok acil!!!

Aşağıda programı ve çizimi bulabilirisinz...

Program

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=255 'A portu çıkış olarak ayarlandı
TRISB=0 'B.0 pini giriş diğerleri çıkış olarak ayarlandı.


SYMBOL TUS0=PORTA.0
SYMBOL TUS1=PORTA.1
SYMBOL TUS2=PORTA.2
SYMBOL TUS3=PORTA.3





LCDOUT $FE,1


LOW PORTB.2
BASLA:
PAUSE 2000
IF TUS0= 0 THEN
LCDOUT $FE,1


LCDOUT $FE,$84,"DEPO BOS"
LCDOUT $FE,$C3,"DOLDURUN(!)"








ENDIF


IF TUS0= 0 THEN
TOGGLE PORTB.7
ENDIF


IF TUS0= 1 THEN
LCDOUT $FE,1
LCDOUT $FE,$84,"doluluk"
LCDOUT $FE,$C6,"% ^"
ENDIF


IF TUS1= 1 THEN
LCDOUT $FE,$84,"doluluk"
LCDOUT $FE,$C6,"P ^"
ENDIF


IF TUS2= 1 THEN
LCDOUT $FE,$84,"doluluk"
LCDOUT $FE,$C6,"u ^"
ENDIF


IF TUS3= 1 THEN
LCDOUT $FE,$83,"doluluk 0"
LCDOUT $FE,$C3,"***DOLU***"
LOW PORTB.7
ENDIF


IF TUS3=0 THEN
TOGGLE PORTB.7
ENDIF


goto basla
END
 
4 numaralı ayağı MCLR ucunu boş bırakmışsınız. Bu nednele PIC sürekli reset alıyor olabilir.
10K direnç ile + ya bağlayın .
Microkontolör ve kristal frekans durumlarınızı belirtmemişsiniz.
 
4 numaralı ayağı MCLR ucunu boş bırakmışsınız. Bu nednele PIC sürekli reset alıyor olabilir.
10K direnç ile + ya bağlayın .
Microkontolör ve kristal frekans durumlarınızı belirtmemişsiniz.

Kristal ve pic 4MHz
 
Programda bunları belirtmemişsiniz...
 
öncelikle Trisb=0 yerine Trisb=%00000001 yazın ve portb.7 ye bağladığınız ledi portb.0'a bağlayın portb..7 tüm satırlarınızı portb.0 olarak değiştirin, ve bütün transistörlerin emiter uçlarına birer direnç bağlayıp şaseye çekin. sonra yeniden konuşalım. kolay gelsin
 
yanlış görmediysem lcdnin + besleme bacağı ve kontrast bacağı da karışmış düzeltince çalışacaktır
 
bu arada bir talihsizlik yaşadım rb3 bacağı kırıldı o nedenle enable yi rb0 olarak yazdım... MCLR ucunu 10k dirençle + ya bağladım... kristali de DEFINE OSC 4 olarak tanımladım pic i tanıtırken hangi komutu kullanmam lazım acaba?? device 16F84A dediğim zaman hata veriyo...
 
arkadaşlar tavsiyeleriniz için çok teşekkür ederim... :)
 

Forum istatistikleri

Konular
127,952
Mesajlar
913,873
Kullanıcılar
449,599
Son üye
Gksn

Yeni konular

Geri
Üst