LCD Deneyi Raporu

7
Abdullah H. Özcan 03102414 _________________________LCD: Otomatik Kayan Yazı___________________________ LCD kullanılırken belli bir işlem sırası takip edilmelidir. LCD ' nin çalışması aşağıdaki işlem sırasına göre olmaktadır: 1)Resetlenir. 2)Data uzunluğu, satır adedi, karakter fontu belirtilir. 3)Display ON/OFF yapılır. 4)Kursör ayarlanır. 5)Verilerin sağa doğru mu, yoksa sola doğru mu kayacağı belirtilir. 6)Display data RAM 'a istenilen karakterler yazılır. Entegrede, RS pini komut yada data bilgisini bildirir.Eğer bu pin; lojik-0 ise gelen bilgilerin komut, lojik-1 ise display'e yazılmasını istediğimiz verilerin olduğunu bildirir. RW pini displayden veri okumak ya da display'e veri yazmak için kullanılır.Eğer bu pin; lojik-0 ise display'e veri yazılır. lojik-1 ise displayden veri okunur. E pini veri yada komut kabul etmesini sağlar.Fakat bu pin düşen kenarda tetiklenir.Display'e bir karakter gönderirken , okurken yada onu programlarken önce bu ucun lojik-1 ardından da lojik-0 yapılması gerekir. D0--D7 hatları program yada karakter bilgilerini tutar. Sonuç olarak LCD, E ucu tetiklendiğinde RS,RW ve data hatlarının durumlarına bakarak o anki bilgilerin ne anlama geldiğini anlar. HD44780U kendisine verilen komutları icra ederken belli bir zaman harcar.Pic'in doğru olarak programlanması için kendisine verilen bir önceki işlemin bitmesini beklemek gerekir. Bu işlem iki şekilde olur.Ya delay macroları hazırlayarak yapılan işin zamanını hesaplarız yada pic'in BF bitini kontrol ederek yapılır. Bizim programımızda bu işlem Delay makroları ile yapılmıştır.

Transcript of LCD Deneyi Raporu

Page 1: LCD Deneyi Raporu

Abdullah H. Özcan03102414

_________________________LCD: Otomatik Kayan Yazı___________________________

LCD kullanılırken belli bir işlem sırası takip edilmelidir. LCD ' nin çalışması aşağıdaki işlem sırasına göre olmaktadır:1)Resetlenir.2)Data uzunluğu, satır adedi, karakter fontu belirtilir.3)Display ON/OFF yapılır.4)Kursör ayarlanır.5)Verilerin sağa doğru mu, yoksa sola doğru mu kayacağı belirtilir.6)Display data RAM 'a istenilen karakterler yazılır.

Entegrede, RS pini komut yada data bilgisini bildirir.Eğer bu pin;lojik-0 ise gelen bilgilerin komut,lojik-1 ise display'e yazılmasını istediğimiz verilerin olduğunu bildirir. RW pini displayden

veri okumak ya da display'e veri yazmak için kullanılır.Eğer bu pin;lojik-0 ise display'e veri yazılır.lojik-1 ise displayden veri okunur.

E pini veri yada komut kabul etmesini sağlar.Fakat bu pin düşen kenarda tetiklenir.Display'e bir karakter gönderirken , okurken yada onu programlarken önce bu ucun lojik-1 ardından da lojik-0 yapılması gerekir.

D0--D7 hatları program yada karakter bilgilerini tutar.

Sonuç olarak LCD, E ucu tetiklendiğinde RS,RW ve data hatlarının durumlarına bakarak o anki bilgilerin ne anlama geldiğini anlar.

HD44780U kendisine verilen komutları icra ederken belli bir zaman harcar.Pic'in doğru olarak programlanması için kendisine verilen bir önceki işlemin bitmesini beklemek gerekir. Bu işlem iki şekilde olur.Ya delay macroları hazırlayarak yapılan işin zamanını hesaplarız yada pic'in BF bitini kontrol ederek yapılır. Bizim programımızda bu işlem Delay makroları ile yapılmıştır.

Page 2: LCD Deneyi Raporu

;------------------------------------------------------------; OTO_KAY.ASM;------------------------------------------------------------

Title "Otomatik kayan yazı"list p=18f452

#include <P18F452.INC>;__CONFIG _PWRTE_ON&_WDT_OFF&_XT_OSC&_LVP_OFF

;------------------------------------------------------------; Değişkenler (yazmaç);------------------------------------------------------------

cblock 0x020

SAYACLCDADRES

endc

;------------------------------------------------------------; Değişkenler (bit);------------------------------------------------------------

RS PORTE,0 ;"Register Select",Karakter(1), ;Komut(0), ÇIKIŞ, dijital I/O

EN PORTE,1 ;"Enable", ÇIKIŞ, dijital I/ORW PORTE,2 ;Read (1) / Write (0), ÇIKIŞ,

;dijital I/O

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

org 0x0000 ;Reset vektörügoto Start

org 0x0020 ;Kod başlangıcı

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

Page 3: LCD Deneyi Raporu

;Burada PCL in içerigi kaç ise o RETLW komutuna sapar ve geri döner. Sonuçta W ;saklayicisinin içerigi, sapilan karakter olur. PCL adres yazmaci ise INCLUDE ;ettigimiz dosya içerisinde tanimlanmistir. Return, Retfie ve Retlw komutlari yiginin ;en tepesindeki elemaninin içerigini PCL' ye aktarir. Sonuçta kullanilan yöntem, PCL ;degeri kaç ise o karakteri W ye yükleyip geri dönmektir.

CharacterTableaddwf PCL,Fretlw 'G'retlw '.'retlw 'Y'retlw '.'retlw 'T'retlw '.'retlw 'E'retlw '.'

#include <LCD.INC> ; LCD rutinleri!!!

;;;;;___________________________________

;DELAY Makroları

DELAY_5WREGplus5_usec_in_4Mhz

decf WREG,W,ACCESSbc DELAY_5WREGplus5_usec_in_4Mhzreturn

DELAY_10WREGplus10_usec_in_4Mhz

decf WREG,W,ACCESSbc DELAY_10WREGplus10_usec_in_4Mhzreturn

DELAY_10WREG1plus10_usec_in_4Mhz

decf WREG,W,ACCESSbtfss STATUS,C,ACCESSdecf WREG1,F,ACCESSbc DELAY_10WREG1plus10_usec_in_4Mhzreturn

;;;;;___________________________________

Page 4: LCD Deneyi Raporu

;_______________________________________;Alt Programlar

read_modebsf RWsetf TRISDreturn

write_modebcf RWclrf TRISDreturn

data_modebsf RSreturn

ctrl_modewrite_mode

bcf RSreturn

lcd_enablebsf ENbcf ENreturn

lcd_clearctrl_mode

MOV1_reg H'01', LATDlcd_anable

CALLw d'163', DELAY_10WREGplus10_usec_in_4Mhzreturn

put_commandctrl_mode

movf LATDlcd_enable

CALLw d'7', DELAY_5WREGplus5_usec_in_4Mhzreturn

put_addressctrl_mode

iorlw H'80'movf LATD

lcd_enableCALLw d'7', DELAY_5WREGplus5_usec_in_4Mhzreturn

;__________________________________________

Page 5: LCD Deneyi Raporu

Start

movlw B'00000010'movwf ADCON1clrf TRISD ;D ve E portları sıfırlanıyorclrf TRISE ;Yani D ve E portları çıkış yapılıyor.clrf LCDADRES ;Burada LCDADRES bir değişkendir.

;Temel yapılandırma. ;Bu yapılandırma yapılmazsa, temel yapılandırma ön-değerleri geçerli;(8-bit veri arayüzü, karakterler 5X7 noktalı, 1 satır) olacaktır.;Yapılandırma: 8-bit veri arayüzü, karakterler 5X7 noktalı, 2 satır.

CALLw H'38', put_command

;Gösterge ve imleç yapılandırması.;Yapılandırma yapılmazsa,imleç ve gösterge yapılandırma ön-değerleri ;geçerli (gösterge KAPALI, imleç altçizgisi YOK, imleç yanıp-sönmesi ;YOK) olacaktır.;Yapılandırma:Gösterge AÇIK, imleç yanar-söner, imleç alt çizgisi VAR.

CALLw H'0F', put_command

;Karakter girişinin yapılandırılması.İmleç adresi her karakter ;girişinden sonra bir artar, gösterge kayması ;yok.(Daktilo modu)

CALLw H'06', put_command

;------------------------------------------------------------;Ana program:;------------------------------------------------------------

_Program

call lcd_clear ;LCD temizleniyormovf LCDADRES,W ;İlk hanenin adresi LCD'yecall put_address ;gönderiliyor.clrf SAYAC ;sayaç sıfırlandıincf LCDADRES,F ;Sonraki çevrim için hane adresi

;bir artırılıyor.

Page 6: LCD Deneyi Raporu

Tekrarlamovf SAYAC,W ;Yazılacak yazının karakter sayısı

;ve sırasının tutulduğu yazmaç.SUBLW .16btfsc STATUS,Z ;"G.Y.T.E." 8 haneli olduğu için,goto _Program ;SAYAC yazmacının içeriği her movf SAYAC,W ;seferinde 8'den çıkarılmakta, call CharacterTable ;farklıysa SAYAC yazmacındaki sayının call put_char ;işaret ettiği karakter tablodan çağırılamaktadır.

movlw HIGH(d'10000')movf WREG1,ACCESSmovlw LOW(d'10000')

DELAY_10WREG1plus10_usec_in_4MhzMOVLW 2ADDWF SAYAC,F

goto Tekrarla ;SAYAC yazmacının içeriği ;Eşitse LCDADRES artırılmakta ve;süreç baştan tekrarlanmaktadır.

end

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