grafik lcd ile 2 bayt veri yollama

Başlatan ido2323, 25 Ekim 2014, 16:02:20

ido2323

Cümleten Selamun Aleyküm, aşağıdaki program lcdnin sol tarafını seçiyor lcdyi açıyor, 0. sayfa ve 0. satıra gidiyor ardından lcd ye 2 bayt komut yolluyor mplab da yapılmıştır. Herhangi bir error almadım pinlerde doğru fakat görüntü yok acaba bi yerde yanlış mı var?

Denemede yaptım;
http://www.dinceraydin.com/djgfxlcdsim/djgfxlcdsim.html

list p=18f4550
#include	<P18F4550.INC>
CONFIG	FOSC = HS

;************************************************************
; DE???KENLER

Count	equ	0x000
sayac1  equ 0x002
sayac2  equ 0x004
sayac3  equ 0x006
kolon_ind   ;equ   20h;
	tablo_ind   ;equ   21h;
	LCD_CS      ;equ   25h;
	LCD_PAGE   ;equ   26h;
	LCD_ADR      ;equ   27h;
	LCD_DATA   ;equ   28h;
	COUNTER1   ;equ     29h;
	COUNTER2   ;equ   2Ah;
	COUNTER3   ;equ   2Bh;
	TEMP      ;equ   2Ch;
	satir      ;equ   0x22
;************************************************************

org	00000h	; Reset noktas?

goto	Start
;************************************************************
;program kodu burada çal???yor.
	org	00020h	; Program?n ba?lang?ç adresi

Start
CLRF PORTC
CLRF PORTD

#define RST   LATC,0      ;
	#define   E   LATC,1      ;
	#define   DI   LATC,2      ;
	#define   CS1   LATC,5      ;
	#define   CS2   LATC,6      ;
	#define RDWR   LATC,7      ;

MOVLW 0Fh ; Configure A/D
MOVWF ADCON1 ; for digital inputs
MOVLW 07h ; Configure comparators
MOVWF CMCON ; for digital input

BSF   CS1
BCF   CS2

;****************************************************
bcf   DI      ; komut yazma moduna ;geç
          call Pause
	      call   LCD_ON      ; glcd ;aç  
          call Pause       ;bekle
	      bcf   RST      ; hafıza sıfırlamaya hazırlan
	      call   Pause      ;bekle
	      bsf   RST      ;   glcd sıfırlama işlemini bitir.
	      call   Pause      ;bekle
	      bcf   DI      ; komut yazma moduna ;geç

          call   LCD_ON   ;glcd ;aç
	      movlw   b'10111000'   ;  (184) 0. sayfaya git
	      movwf   LCD_PAGE   ;
	      call   LCDPage      ;
	      movlw   b'01000000'   ;   0. satır başı
      movf   LCD_ADR, w   ;
	      call   Adress      ;

bsf   DI ;komut yazma modundan çık
;***********************************************
movlw   b'00111111'
CALL Adress
nop
movlw   b'00100011'
CALL Adress
asd
goto asd

;################################################
LCD_ON; komut/veri yazmak ;için kullan?ma açar
	      bsf   E
	      nop
	      movlw   b'00111111'   ; 63 komutu (lcd aç)
	      movwf   TRISD
	      nop
	      bcf   E
	      return
;#########################################
LCDPage
	      bsf   E
	      nop
	      movf   LCD_PAGE, w
	      movwf   TRISD
	      nop
	      bcf   E
	      return
;########################################
Adress;
	      bsf   E
	      nop
	      movwf   TRISD
	      nop
	      bcf   E
	      return

;######################################
Pause
movlw h'ff'
   MOVWF sayac1

DONGU11
   movlw h'ff'
   MOVWF sayac2

DONGU12
   DECFSZ sayac2,F ;sayac2'nin de?erini 1 azalt s?f?r olursa "DECFSZ sayac1,F" komutuna atla
   GOTO DONGU12
   DECFSZ sayac1,F ;sayac1'nin de?erini 1 azalt s?f?r olursa "DECFSZ sayac1,F" döngüden ç?k
   GOTO DONGU11
RETURN



end