84a da uyguladığım kodla 877a da Lcd süremiyorum.

Başlatan cimcom, 13 Kasım 2010, 19:39:56

cimcom

16f84a da kullandığım basit, ekrana elektronik yazan kodu 16f877a da çalıştırmıyorum. Cep telefonu ile mobil araç kontrolü projemi geliştirmek amacıyla çeşitli eklemeler yapıorum ve bu yuzden bellek olarak 8kb lık 877a yı kullanmayı tercıh ettım fakat bahsettıgım sorun ortaya cıktı ve sadece lcd de değil comparatör modunda da aynı şekilde sorun var .

16f84a da çalışan kod;

   
   LIST P=16F84A
   INCLUDE "P16F84A.INC"
   CBLOCK H'0C'
   SAYAC1,SAYAC2,SAYICI
   ENDC
   BSF STATUS,5
   CLRF TRISB
   CLRF TRISA
   BCF STATUS,5
   CLRF SAYICI
   CLRF PORTB
   CLRF PORTA
BASLA
   MOVLW H'01'
   CALL KOMUTYAZ
   MOVLW H'30'
   CALL KOMUTYAZ
   MOVLW H'0C'
   CALL KOMUTYAZ
   CALL SATIRYAZ
DEVAM
   GOTO DEVAM
KOMUTYAZ
   BCF PORTA,1
   MOVWF PORTB
   BSF PORTA,0
   CALL GECIKME
   BCF PORTA,0
   RETURN
SATIRYAZ
   CALL GECIKME
   BSF PORTA,1
   MOVF SAYICI,W
   CALL MESAJ
   IORLW H'00'
   BTFSC STATUS,Z
   GOTO BITIR
   MOVWF PORTB
   INCF SAYICI,F
   BSF PORTA,0
   CALL GECIKME
   BCF PORTA,0
   GOTO SATIRYAZ
BITIR
   GOTO BITIR

MESAJ
   ADDWF PCL,F
   RETLW 'E'
   RETLW 'L'
   RETLW 'E'
   RETLW 'K'
   RETLW 'T'
   RETLW 'R'
   RETLW 'O'
   RETLW 'N'
   RETLW 'I'
   RETLW 'K'
   RETLW H'00'
GECIKME
   MOVLW H'FF'
   MOVWF SAYAC1
D1
   MOVLW H'FF'
   MOVWF SAYAC2
D2
   DECFSZ SAYAC2,F
   GOTO D2
   DECFSZ SAYAC1,F
   GOTO D1
   RETURN
   
   END
   
Bu da ekran görüntüsü ;

[IMG]http://img573.imageshack.us/img573/2585/84aaa.png[/img]

Uploaded with ImageShack.us

Bu da 877a ya senkronladığım kod;

   
     
   LIST P=16F877A
   INCLUDE "P16F877A.INC"
   ORG H'00'
   CBLOCK H'0C'
   SAYAC1,SAYAC2,SAYICI
   ENDC
   BSF STATUS,5
   CLRF TRISB
   CLRF TRISE
   BCF STATUS,5
   CLRF SAYICI
   CLRF PORTB
   CLRF PORTE
BASLA
   MOVLW H'01'
   CALL KOMUTYAZ
   MOVLW H'30'
   CALL KOMUTYAZ
   MOVLW H'0C'
   CALL KOMUTYAZ
   CALL SATIRYAZ
DEVAM
   GOTO DEVAM
KOMUTYAZ
   BCF PORTE,1
   MOVWF PORTB
   BSF PORTE,0
   CALL GECIKME
   BCF PORTE,0
   RETURN
SATIRYAZ
   CALL GECIKME
   BSF PORTE,1
   MOVF SAYICI,W
   CALL MESAJ
   IORLW H'00'
   BTFSC STATUS,Z
   GOTO BITIR
   MOVWF PORTB
   INCF SAYICI,F
   BSF PORTE,0
   CALL GECIKME
   BCF PORTE,0
   GOTO SATIRYAZ
BITIR
   GOTO BITIR

MESAJ
   ADDWF PCL,F
   RETLW 'E'
   RETLW 'L'
   RETLW 'E'
   RETLW 'K'
   RETLW 'T'
   RETLW 'R'
   RETLW 'O'
   RETLW 'N'
   RETLW 'I'
   RETLW 'K'
   RETLW H'00'
GECIKME
   MOVLW H'FF'
   MOVWF SAYAC1
D1
   MOVLW H'FF'
   MOVWF SAYAC2
D2
   DECFSZ SAYAC2,F
   GOTO D2
   DECFSZ SAYAC1,F
   GOTO D1
   RETURN
   
   END
   


Bu kodu çalıştırınca sadece yeşil ekran çıkıyor yazılar gelmiyor. Yardımlarınızı beklıyorum.

stlg

16f84 de porta yı tanımlamıssın 16f877 de ise porte kontrol edermisin
ALLAHA EMANET OLUNUZ Hoştur bana senden gelen,  Ya gonca gül yahut diken,  Ya kaftandır yahut kefen,  Kereminde hoş lütfunda hoş.

cimcom

877a da porta analog giriş/çıkış ünitesi olduğu için eneble ve rs uclarını porta yerine porte ye bağladım .

neural

16F877A için oluşturduğun kodda CBLOCK değerinde 0x0C adresinden başlatmışsın. Bunu 0x20 yapmalısın.

cimcom

Teşşekkür ederim mesajı işlemeye başladı d0-d7 arası ama nedense şimdi de porte' nin 1. biti 1 e çekilmiyo bu yüzden ekranda görüntü çıkmıyor

neural

ADC modulunu kapatman gerekiyor eğer kullanmıyorsan.
movlw  0x06
movwf  ADCON1   ; bank1 'e geçmen gerekiyor

Analog karşılaştırıcıyıda kullanmıyorsan kapatmalısın.
movlw  0x07
movwf  cmcon

ADCON1 ve CMCON a yüklenen değerler için kullandığın denetleyicinin teknik dökümanına başvurabilirsin.

cimcom

#6
normalde kulanıyorum ama deneme amaclı bunu ilk önce tek basına çalıştırmayı denerken unutmuşum, bayram hediyesi oldu bana sen yardımcı olmasan aklıma gelmezdi; devre çalışıyor artık çok ama çok teşekkür ederim.