Teknikim

Üye Girişi

PIC Uygulamaları 8-LCD'ye Kayan Yazı Yazdırma
 

Yazan: Tuna BULUT, Tarih: 21-06-2008 15:18

Okunma Sayısı : 340

Beğenilme : 4

Yayınlama yeri : Dersler, PIC Dersleri

Bir önceki uygulamamızda 16x2 LCD'ye 4 bit üzerinden yazı yazdırmıştık. Bu uygulamada ise yazıyı sağa doğru kaydıracağız. Konuyla ilgili devre şemalarını "PIC Uygulamaları 7-LCD'ye Yazı Yazdırma" başlıklı yazıda bulabilirsiniz.

PIC Assembly Kodu

;------------------------------16x2 LCD'ye Kayan Yazı Yazdırma----------------------------

;---------------------------Tuna Bulut tarafından yazıldı-------------------------------------

LIST     P=16F628A

INCLUDE  "P16F628A.INC"

__CONFIG  _XT_OSC & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF

CBLOCK   H'20'

ADRES1

ADRES2

MESAJ

KRKTR

TEMP

SAYAC1

SAYAC2

ENDC 

#DEFINE  RS      PORTA,0

#DEFINE  E       PORTA,1

;-------------------------BAĞLANTILAR----------------------------

;RS=RA0

;E=RA1

;D4..D7=RB0..RB3

;----------------------------------------------------------------

MOVLW   H'07'

MOVWF   CMCON  ;COMPARATOR ÖZELLİĞİ KAPALI VE PORTA I/O İÇİN AKTİF MODDA

CLRF    PORTB   ;PORTB Yİ SIFIRLA

;GİRİŞ-ÇIKIŞ TANIMLAMALARI

BANKSEL TRISA   ;BANK1 E GEÇİŞ YAP

CLRF    TRISA   ;PORTA NIN BÜTÜN PİNLERİNİ ÇIKIŞ YAP

CLRF    TRISB   ;PORTB NİN BÜTÜN PİNLERİNİ ÇIKIŞ YAP

MOVLW   H'80'

MOVWF   OPTION_REG

BANKSEL PORTB      ;TEKRAR BANK0 A GEÇ

CLRF    PORTB      ;PORTB Yİ SIFIRLA

CLRF    PORTA

MOVLW   B'10000000'

MOVWF   ADRES1      ;1.SATIR 1.HÜCRE

MOVLW   B'11000000'

MOVWF   ADRES2      ;2.SATIR 1.HÜCRE

;---------------------KOMUT GÖNDERME MAKROSU------------------------------------

KMT MACRO

CALL   KISA_GECIKME

BCF    RS

BSF    E

NOP

BCF    E

NOP

ENDM

;--------------------MESAJ GÖNDERME MAKROSU-------------------------------------

MSJ MACRO

CALL   KISA_GECIKME

BSF    RS

BSF    E

NOP

BCF    E

NOP

ENDM

;------------------KURSÖRÜ BAŞA AL------------------------------------------

MOVLW  D'02'

MOVWF  PORTB

KMT

;-----------------LCD'Yİ 4 BİT 2 SATIRA AYARLA, B'00101000'-----------------

CALL   UZUN_GECIKME

MOVLW  B'00000010' ;ÖNCE ÜST 4 BİTİ GÖNDER

MOVWF  PORTB

KMT

MOVLW  B'00001000' ;SONRA ALT 4 BİTİ

MOVWF  PORTB

KMT

;------------------EKRANI AÇ VE KURSÖRÜ KAPAT-------------------------------------

CALL   UZUN_GECIKME

CLRF   PORTB        ;ÜST 4 BİTİ GÖNDER

KMT

MOVLW  B'00001100' ;ALT 4 BİTİ GÖNDER

MOVWF  PORTB

KMT

;-----------------ARTIŞ SAĞA DOĞRU-----------------------------------------

CALL   UZUN_GECIKME

CLRF   PORTB      ;ÜST 4 BİTİ GÖNDER

KMT

MOVLW  B'00000110' ;ALT 4 BİTİ GÖNDER

MOVWF  PORTB

KMT

;-----------------EKRANI TEMİZLE-------------------------------------------

TEMIZLE MACRO

CALL   UZUN_GECIKME

CLRF   PORTB         ;ÜST 4 BİTİ GÖNDER

KMT

MOVLW  B'00000001'   ;ALT 4 BİTİ GÖNDER

MOVWF  PORTB

KMT

CALL   UZUN_GECIKME

ENDM

;-----------------BİRİNCİ MESAJI GÖNDER-------------------------------------------

BASLA

CALL   ADRESE_GIT1

CLRF   KRKTR

MSJ_GONDER

MOVF   KRKTR,W

CALL   MESAJ1 ;MESAJI ÇAĞIR

MOVWF  TEMP ;KARAKTERİ DEĞİŞKENE AT

XORLW  H'00' ;0 İLE XOR İŞLEMİ YAP

BTFSC  STATUS,Z ;İŞLEM SONUCU 1 SE 2. MESAJI YAZ

GOTO   M_DEVAM

SWAPF  TEMP,F ;DEĞİŞKENİN ALT 4 BİTİYLE ÜST 4 BİTİNİ ARALARINDA DEĞİŞTİR

MOVF   TEMP,W

MOVWF  PORTB

MSJ

SWAPF  TEMP,F ;DEĞİŞKENİN ALT 4 BİTİYLE ÜST 4 BİTİNİ ARALARINDA DEĞİŞTİR

MOVF   TEMP,W

MOVWF  PORTB

MSJ

INCF   KRKTR,F ;KRKTR DEĞİŞKENİNİ 1 ARTIR

GOTO   MSJ_GONDER

;----------------İKİNCİ MESAJI GÖNDER---------------------------------------------

M_DEVAM 

CALL   ADRESE_GIT2

CLRF   KRKTR

MSJ_GONDER2

MOVF   KRKTR,W

CALL   MESAJ2    ;MESAJI ÇAĞIR

MOVWF  TEMP      ;KARAKTERİ DEĞİŞKENE AT

XORLW  H'00'     ;0 İLE XOR İŞLEMİ YAP

BTFSC  STATUS,Z  ;İŞLEM SONUCU 1 SE SONSUZ DÖNGÜYE GİR

GOTO   KAYDIR

SWAPF  TEMP,F ;DEĞİŞKENİN ALT 4 BİTİYLE ÜST 4 BİTİNİ ARALARINDA DEĞİŞTİR

MOVF   TEMP,W

MOVWF  PORTB

MSJ

SWAPF  TEMP,F ;DEĞİŞKENİN ALT 4 BİTİYLE ÜST 4 BİTİNİ ARALARINDA DEĞİŞTİR

MOVF   TEMP,W

MOVWF  PORTB

MSJ

INCF   KRKTR,F ;KRKTR DEĞİŞKENİNİ 1 ARTIR

GOTO   MSJ_GONDER2

;----------------------------------------------------------------------------------

MESAJ1

ADDWF  PCL,F

DT     "www.t-robot.info",0 ;Tırnak içindeki karakterleri ve 0 rakamını döndürür

MOVF   PCL,W

RETURN

MESAJ2

ADDWF  PCL,F

DT     "LCD UYGULAMASI",0 ;Tırnak içindeki karakterleri ve 0 rakamını döndürür

MOVF   PCL,W

RETURN

 

;----------------1.SATIRDA BELİRTİLEN ADRESE GİT--------------------------- 

ADRESE_GIT1

SWAPF  ADRES1,F

MOVF   ADRES1,W

MOVWF  PORTB

KMT

SWAPF  ADRES1,F

MOVF   ADRES1,W

MOVWF  PORTB

KMT

RETURN

;----------------2.SATIRDA BELİRTİLEN ADRESE GİT---------------------------

ADRESE_GIT2

SWAPF  ADRES2,F

MOVF   ADRES2,W

MOVWF  PORTB

KMT

SWAPF  ADRES2,F

MOVF   ADRES2,W

MOVWF  PORTB

KMT

RETURN

KAYDIR

INCF   ADRES1,F

MOVF   ADRES1,W

ANDLW  B'10001111'

MOVWF  ADRES1

INCF   ADRES2,F

MOVF   ADRES2,W

ANDLW  B'11001111'

MOVWF  ADRES2

CALL   UPUZUN_GECIKME

CALL   UPUZUN_GECIKME

CALL   UPUZUN_GECIKME

TEMIZLE

GOTO   BASLA

;-------------------195 MS'LİK GECIKME-----------------------------------

UPUZUN_GECIKME

MOVLW  H'FF'

MOVWF  SAYAC1

DONGU4

MOVLW  H'FF'

MOVWF  SAYAC2

DONGU5

DECFSZ SAYAC2,F

GOTO   DONGU5

DECFSZ SAYAC1,F

GOTO   DONGU4

RETURN

;-------------------25 MS'LİK GECIKME-----------------------------------

UZUN_GECIKME

MOVLW  H'FF'

MOVWF  SAYAC1

DONGU1

MOVLW  D'33'

MOVWF  SAYAC2

DONGU2

DECFSZ SAYAC2,F

GOTO   DONGU2

DECFSZ SAYAC1,F

GOTO   DONGU1

RETURN

;------------------255 US'LİK GECİKME-----------------------------------

KISA_GECIKME

MOVLW  H'FF'

MOVWF  SAYAC1

DONGU3

DECFSZ SAYAC1,F

GOTO   DONGU3

RETURN

END 



   
Beğenilme
E-mail olarak gönder
İlgili makaleler
Teknikim'e kaydet

Okuyucu yorumları  RSS feed Yorum
 

Ortalama Üye Değerlendirmesi

   (0 Oylama)

 


Yorumunuzu ekleyin
Sadece kayitli kullanicilar bir Makaleyi yorumlayabilir. Lütfen ücretsiz üye olun veya giriş yapın.

Gönderilen yeni yorum yok



mXcomment 1.0.8 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved