Teknikim

Üye Girişi

PIC Uygulamaları 7-LCD'ye Yazı Yazdırma
 

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

Okunma Sayısı : 941

Beğenilme : 6

Yayınlama yeri : Dersler, PIC Dersleri

 

PIC Assembly Kodu 

;------------------------------16x2 LCD'ye 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'

            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

;---------------------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 VE KURSÖRÜ AÇ-------------------------------------

            CALL        UZUN_GECIKME

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

            KMT

            MOVLW       B'00001110'     ;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-------------------------------------------

            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   

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

            CLRF        KRKTR  

MSJ_GONDER                     

            MOVF        KRKTR,W

            CALL        MESAJ1          ;MESAJI ÇAĞIR

            MOVWF       TEMP            ;KARAKTERİ DEĞİŞKENE AT 

            XORLW       H'00'           ;KARAKTER UZUNLUĞU(D'12') İ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

            CLRF        KRKTR

;-----İKİNCİ SATIRA GEÇ---------

            MOVLW       B'00001100'

            MOVWF       PORTB

            KMT

            CLRF        PORTB

            KMT    

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

MSJ_GONDER2

            MOVF        KRKTR,W

            CALL        MESAJ2          ;MESAJI ÇAĞIR

            MOVWF       TEMP            ;KARAKTERİ DEĞİŞKENE AT

            XORLW       H'00'           ;KARAKTER UZUNLUĞU(D'5') İLE XOR İŞLEMİ YAP

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

SNSZ_DONGU

            GOTO        SNSZ_DONGU

            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

 

;-------------------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

Isis simülasyon dosyalarını buradan indirebilirsiniz.

 



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

Okuyucu yorumları  RSS feed Yorum
 

Ortalama Üye Değerlendirmesi

   (1 Oylama)

 

Yorum Sayısı: 4 / 4

Lütfen sorularınızı foruma yazın

Yazan:: Tuna (Kayıtlı ) Tarih: 30-08-2008 16:26

Arkadaşlar yorum kısmı adı üstünde yazıyla ilgili fikirlerinizi sunmak içindir, lütfen sorularınızı foruma yazın, alttaki soru foruma taşındı, lütfen cevaplarınızı da bu konu altına yazın, anlayışınız için teşekkür ederim. Ayrıca birine yardım etmek amacıyla başka sitelerden bağlantı verebilirsiniz, ama tabiki amacınız reklam değil yardım olmalı. 
İyi çalışmalar...

 

» Yorumu cevapla...

yardıma cevap2

Yazan:: aNti (Kayıtlı ) Tarih: 30-08-2008 04:43

başka bir dil olan 
CCBasic ve Css c Bunlarda geniş kapsamlı bir dildir... 
bascom, Css c Ccbasic , virsual basic bunların hepsinin mantığı %90 aynıdır .Lakin Kodları farklıdır... 
 
Ben Pic Programlamayı biliyorum Temelini Bunun üzerine görsel anlatımım dahi var ilerleyen zamanlarda zamanım olursa paylaşıma sunarım...Ulaşabileceğiniz link veririm fakat reklam olur diye vermiyorum... :) Admin ile tartışmayalım :D

 

» Yorumu cevapla...

yardıma cevap

Yazan:: aNti (Kayıtlı ) Tarih: 30-08-2008 04:38

İlk olarak basit bir şekilde devrelerle uğaşmanı öneririm en azında hemen bunu gibi Lcd ile yapılmış devrelerle değilde ledlerler yapılmış devrelerle başlaya bilirsin... 
Öğreneceğin dile gelirsek 
 
ilk olarak Pic programlama internnet bir sürü döküman bulunmaktadır..Basit bir dildir..(çoğu üniveristede gösterinlen bir dildir..) 
 
ama dersen beni basit sarmaz işte o zaman sana 
 
Bir bilgisayar dili olan Virsual Basici öğrenmeni tavisye ederim %90 elektronik kodlarıyla aynı kodlardan oluşmaktadır... 
Bascom:Atmel entegrelerinde genelde kullanılarn bir dildir.virsal basic diline benzer..

 

» Yorumu cevapla...

yardım lütfen

Yazan:: ebru (Kayıtlı ) Tarih: 11-07-2008 14:29

programlamaya giriş için hangi yazılımı ögrene bilirim 
bunun için bana önere bileceğiniz program varmı devreler konusunda pek sıkıntım yok elektronik kompanentleri ve kullanım yeri ile ilgili sorunum yok ama yazılım yapmak istiyorum bunun için neler yapmalıyım neler ögrenmem gerektigi hakkında beni yönlendirirseniz sevinirim ögrenimim için nelere ihtiyacım olur yardım ederseniz sevinirim

 

» Yorumu cevapla...

» Tüm cevap(ları) 1 gör

Yorum Sayısı: 4 / 4



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


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