EKLEME: sorun çözülmüştür arkadaşlar, config ayarları ile ilgili bir sıkıntı yaşıyormuşum. kodu lcd konusunda sıkıntı çekmiş arkadaşlar inceleyip kullanabilir. config ayarlarından lvpyi kapatmayı unutmayın.
merhaba arkadaşlar, birkaç gündür asm dili ile lcd ye komut ve yazı göndermeye çalışıyorum. programı isis ile denediğimde -ki programlarken sürekli deneyerek gidiyorum- yapması gerekeni yapıyor. ancak devreyi breadboard üzerine kurduğumda devre çalışmıyor. kullandığım işlemci pic16f628a, sorunun nerede olduğunu tam olarak anlayamıyorum, deneme imkanı olan arkadaşlardan, kodu çalıştırmaya çalışmalarını rica ediyorum.
bacak bağlantıları
B0 = RS
B1 = RW
B2 = E
B4-B7 = DB4 - DB7
;EKRAN.ASM
;TANIMLAMALAR
LIST P=16F628A
PCL EQU h'02'
STATUS EQU h'03'
PORTA EQU h'05'
PORTB EQU h'06'
TRISA EQU h'85'
TRISB EQU h'86'
G1 EQU h'21'
G2 EQU h'22'
BOLUM1 EQU h'20'
BOLUM2 EQU h'23'
SYC EQU h'24'
;AYARLAR
BSF STATUS,5
CLRF TRISA
CLRF TRISB
BCF STATUS,5
CLRF PORTA
CLRF PORTB
MOVLW D'0'
MOVWF SYC
;ANA PROGRAM
CALL LCD4BIT
; MOVLW b'00001000'
; CALL LCD_V_GONDER
BASLA
CALL G15MS
CALL G15MS
CALL G15MS
CALL G15MS
MOVF SYC,0
CALL MESAJ
CALL LCD_GONDER
INCF SYC,1
MOVLW d'7'
XORWF SYC,0
BTFSS STATUS,2
GOTO BASLA
; MOVLW b'00001111'
; CALL LCD_V_GONDER
BITIS
GOTO BITIS
;MESAJLAR
MESAJ
ADDWF PCL,1
DT "OZDEMIR"
RETURN
;FONKSIYONLAR
LCD_GONDER
MOVWF BOLUM1
MOVWF BOLUM2
SWAPF BOLUM2,1
MOVLW b'11110000'
ANDWF BOLUM1,1
ANDWF BOLUM2,1
MOVF BOLUM1,0
MOVWF PORTB
BSF PORTB,0
CALL EN
MOVF BOLUM2,0
MOVWF PORTB
BSF PORTB,0
CALL EN
CLRF PORTB
RETURN
LCD_V_GONDER
MOVWF BOLUM1
MOVWF BOLUM2
SWAPF BOLUM2,1
MOVLW b'11110000'
ANDWF BOLUM1,1
ANDWF BOLUM2,1
MOVF BOLUM1,0
MOVWF PORTB
CALL EN
MOVF BOLUM2,0
MOVWF PORTB
CALL EN
CLRF PORTB
RETURN
LCD4BIT
CALL G15MS
MOVLW b'00110000'
MOVWF PORTB
CALL EN
CALL G15MS
CALL EN
CALL G100US
CALL EN
MOVLW b'00100000'
MOVWF PORTB
CALL EN
MOVLW b'00101000'
CALL LCD_V_GONDER
MOVLW B'00001000'
CALL LCD_V_GONDER
MOVLW B'00000001'
CALL LCD_V_GONDER
MOVLW B'00000110'
CALL LCD_V_GONDER
MOVLW b'00001111'
CALL LCD_V_GONDER
CLRF PORTB
RETURN
EN
BSF PORTB,2
CALL G100US
BCF PORTB,2
CALL G100US
RETURN
G15MS
MOVLW d'196'
MOVWF G1
G15D1
MOVLW d'255'
MOVWF G2
G15D2
DECFSZ G2,1
GOTO G15D2
DECFSZ G1,1
GOTO G15D1
RETURN
G100US
MOVLW d'3'
MOVWF G1
G100D1
MOVLW d'111'
MOVWF G2
G100D2
DECFSZ G2,1
GOTO G100D2
DECFSZ G1
GOTO G100D1
RETURN
END
kodu 16f877 entegresine uyarlayıp denedim ama çalışmadı. ccs c dede denedim, simülasyonlarda çalışıyor ama pice attğım zaman çalışmıyor. sebebi ne olabilir? entegrede led yakıp söndürme programı denedim, çalışıyor. acaba konfigürasyon bitlerinde mi bir hata yapıyorum? fikir verebilirseniz sevinirim.
Merhabalar ve iyi çalışmalar. Osilator bağladınız mı? Ve reset bağlantısı?
Alıntı yapılan: Bayramsumbul - 03 Ağustos 2014, 22:33:20
Merhabalar ve iyi çalışmalar. Osilator bağladınız mı? Ve reset bağlantısı?
tabi ki evet. bağlantılarla ilgili bir sıkıntı yok. ancak dün farkettim ki rb0, rb4 ve rb5 pinleri çalışmıyor. sanıyorum işlemcimde sıkıntı var. kodu siz denediniz mi?