• Sonuç bulunamadı

16F84 DENETLEYİCİSİ İLE 2x16 LCD KONTROL

N/A
N/A
Protected

Academic year: 2022

Share "16F84 DENETLEYİCİSİ İLE 2x16 LCD KONTROL"

Copied!
5
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

DENEYİN ADI 16F84 DENETLEYİCİSİ İLE 2x16 LCD KONTROL DENEY NO 10 AMAÇ : Mikrodenetleyici ile HD44780 uyumlu 2x16 LCD üzerinde mesaj görüntüleme

GENEL BİLGİ : Karakter tabanlı LCD’ler kendi iletişim standartlarına sahip özel devrelerdir. Deney devresinde LCD 4 bit modda kontrol edilmektedir. Ayrıca R/W’ ucu da toprağa bağlanarak 5 tane mcu portundan tasarruf edilmiştir.

Devredeki butonlardan btn1 butonuna basıldığında ekrana mesaj basılmakta, btn2 butınuna basıldığında LCD ekranı silinmektedir. Ders notlarınızdan da yardım alarak deneye ait asm programı inceleyiniz. Ekrana farklı yazılar yazmak için asm programda değişiklik yaparak sonuçları gözleyiniz.

Devre 4 MHz. frekansta çalışmaktadır. Devrenin frekansı değiştirildiğinde bunun için program kodunu da değiştirmeniz gerekebilir. Çünkü LCD birimin komutları algılaması için bir takım zaman gecikmelerine ihtiyaç vardır. Bunlar 4MHz. için yazılmıştır. Frekans değişirse zaman döngülerinin ürettiği sürelerde değişecektir.

DEVRE ŞEMASI :

İŞLEM BASAMAKLARI :

1.. Öncelikle breadboard üzerine deney devresini kurunuz.

2.. Programı text editörde yazınız ve uygun bir klasöre kaydediniz.

3.. Yazdığınız programı MPASM ile derleyiniz, hataları varsa gideriniz.

4.. Elde edilen hex dosyayı programlayıcı yardımıyla 16F84’e yükleyiniz.

5.. Devrenize 5 volt gerilim uygulayın ve devrenizi çalıştırın.

6.. Butonlara basarak etkilerini ledler üzerinde görünüz.

(2)

YÜKLENECEK PROGRAM :

; --- 16F84 ile LCD Kontrolü --- 16f84_4bit_lcd.asm LIST P=16F84 ; 16F84 RUNS AT 4 MHZ

INCLUDE "P16F84.INC"

__CONFIG _PWRTE_ON & _XT_OSC & _WDT_OFF

ERRORLEVEL -224 ; SUPRESS ANNOYING MESSAGE FROM TRIS ERRORLEVEL -302 ; SUPRESS MESSAGE FROMF PAGE CHANGE

; DEFINE INFORMATION

#DEFINE RS PORTA, 3

#DEFINE E PORTA, 2 #DEFINE BTN1 PORTA, 0

#DEFINE BTN2 PORTA, 1

;---MACRO

ESTROBE MACRO ; STROBE THE "E" BIT BSF E

BCF E ENDM

CBLOCK 0CH

TEMP ; Gecici degisken

CNTMSEC ; Zaman dongu değişkeni ENDC

ORG 0

GOTO MAIN

;---;

; Mesaj Ciktilari icin Bilgiler ;

;---;

SHOMSG: ; Mesaj goster ADDWF PCL, F

M0 DT "AD SOYAD : AHMET YILMAZ", 0 M1 DT "NO : 571", 0

;---;

; INITIALIZE THE PORTS ;

;---;

INIT:

CLRF PORTA CLRF PORTB

MOVLW B'00010011' ; TRIS PORTA

MOVLW B'11110000' TRIS PORTB RETURN

;---;

; INITIALIZE THE LCD ;

;---;

INITLCD:

MOVLW D'40'

CALL NMSEC ; WAIT 40 MSECS BEFORE RESET

BCF RS ; SEND AN 8 BIT INSTRUCTION

MOVLW 0X03 ; RESET COMMAND

(3)

CALL NYBBLEOUT ; SEND THE NYBBLE

CALL DLAY5 ; WAIT 5 MSECS BEFORE SENDING AGAIN ESTROBE

CALL DLAY160 ; WAIT 160 USECS BEFORE SENDING 2ND TIME ESTROBE

CALL DLAY160 ; WAIT 160 USECS BEFORE SENDING 3RD TIME BCF RS ; SEND AN 8 BIT INSTRUCTION

MOVLW 0X02 ; SET 4 BIT MODE CALL NYBBLEOUT

CALL DLAY160

MOVLW 0X028 ; 4 BIT, 2 LINE, 5X7 FONT CALL SENDINS

MOVLW 0X010 ; DISPLAY SHIFT OFF CALL SENDINS

MOVLW 0X001 ; CLEAR THE DISPLAY RAM CALL SENDINS

CALL DLAY5 ; NOTE, CAN TAKE UP TO 4.1 MSECS MOVLW 0X006 ; INCREMENT CURSOR

CALL SENDINS

MOVLW 0X00C ; DISPLAY ON CURSOR OFF CALL SENDINS

RETURN

CLRDISP

MOVLW 0X001 ; CLEAR THE DISPLAY RAM CALL SENDINS

CALL DLAY5 ; NOTE, CAN TAKE UP TO 4.1 MSECS RETURN

;---;

; SEND THE CHARACTER IN W OUT TO THE LCD ;

;---;

SENDASCII

ADDLW '0' ; SEND NBR AS ASCII CHARACTER SENDCHAR ; SEND THE CHARACTER TO THE LCD MOVWF TEMP ; SAVE THE TEMPORARY VALUE SWAPF TEMP, W ; SEND THE HIGH NYBBLE BSF RS ; RS = 1

CALL NYBBLEOUT

MOVF TEMP, W ; SEND THE LOW NYBBLE BSF RS

CALL NYBBLEOUT

RETURN

;---;

; SEND AN INSTRUCTION IN W OUT TO THE LCD ;

;---;

SENDINS ; SEND THE INSTRUCTION TO THE LCD

MOVWF TEMP ; SAVE THE TEMPORARY VALUE SWAPF TEMP, W ; SEND THE HIGH NYBBLE BCF RS ; RS = 0

CALL NYBBLEOUT

MOVF TEMP, W ; SEND THE LOW NYBBLE BCF RS

CALL NYBBLEOUT

RETURN

(4)

;---;

; SEND THE NIBBLE IN W OUT TO THE LCD ;

;---;

NYBBLEOUT ; SEND A NYBBLE TO THE LCD MOVWF PORTB

ESTROBE ; STROBE OUT THE LCD DATA CALL DLAY160 ; DELAY FOR 160 MSEC

RETURN

;---;

; OUTPUT THE MESSAGE ON THE LCD ;

;---;

OUTMESSAGE:

MOVWF FSR ; POINT AT FIRST LETTER OUTLOOP:

MOVF FSR, W ; GET POINTER INTO W INCF FSR, F ; SET UP FOR NEXT LETTER

CALL SHOMSG ; GET CHARACTER TO OUTPUT IORLW 0 ; AT THE END OF THE MESSAGE?

BTFSC STATUS, Z ; SKIP IF NOT AT END RETURN ; YES - EQUAL TO ZERO

CALL SENDCHAR ; OUTPUT THE ASCII CHARACTER GOTO OUTLOOP ; GET THE NEXT CHARACTER

;---;

; TIME DELAY ROUTINES ;

;---;

DLAY160

MOVLW D'40' ; 160 USEC DELAY ENTRY POINT MICRO4

ADDLW H'FF' ; SUBTRACT 1 FROM 'W' BTFSS STATUS,Z ; SKIP WHEN YOU REACH ZERO GOTO MICRO4 ; MORE LOOPS

RETURN DLAY5:

MOVLW D'5' ; 5 MSEC DELAY ENTRY POINT

GOTO NMSEC

MSEC250: ; A SUBROUTINE TO DELAY 250 MSEC MOVLW D'250'

;*** N MILLISECOND DELAY ROUTINE ***

NMSEC:

MOVWF CNTMSEC ; DELAY FOR N (IN W) MILLISEC MSECLOOP:

MOVLW D'248' ; 1 USEC FOR LOAD

CALL MICRO4 ; THIS INSTRUCTION IS 995 USEC NOP ; 1 USEC

DECFSZ CNTMSEC,F ; 1 USEC, (2 IF SKIP TAKEN) GOTO MSECLOOP ; 2 USEC HERE 995+5 = 1 MSEC

RETURN

(5)

;---;

; ANA PROGRAM BLOĞU ;

;---;

MAIN:

CALL INIT ; Program ayarları yükleniyor.

CALL INITLCD ; LCD ayarları yükleniyor.

REPEAT

BTFSS BTN1 ; 1nci buton basıldı mı?

CALL CLRDISP ; Ekranı sil.

BTFSS BTN2 ; 2nci buton basıldı mı?

GOTO WRITE ; Ekrana mesajı yaz.

GOTO REPEAT ; Butonları kontrole devam et.

WRITE ; Mesaj yazılıyor…

MOVLW H'80' ; İlk satır ilk sütun ayarlandı.

CALL SENDINS ; Konuma pozisyon al.

MOVLW M0 -2 ; İlk satır mesajını ayarla.

CALL OUTMESSAGE ; İlk satır mesajını yaz.

MOVLW H'C0' ; İkinci satır ilk sütunu ayarlandı.

CALL SENDINS ; Konuma pozisyon al.

MOVLW M1 -2 ; İkinci satır mesajını al.

CALL OUTMESSAGE ; İkinci satır mesajını yaz.

GOTO REPEAT ; Mesaj yazıldı. Buton kontrolüne devam..

END ; PROGRAM SONU

SORULAR

1.. Ekrandaki mesajı kendi adınız ve numaranıza uygun olarak değiştiriniz. Adınızı ve soyadınızı yazmak istediğinizde LCD ekranına sığıyor mu?

(Öğretmeniniz deney kontrolü sırasında sizden başka mesajlar yazmanızı isteyecektir. Bunun için devreniz çalıştıktan sonra kendiniz farklı denemeler yapınız.)

CEVAPLAR :

1..

DENEYE BAŞLAMA DENEYİ BİTİRME DEĞERLENDİRME ÖĞRETMEN KONTROL

TARİH : TARİH : BAŞLAMA BİTİRME

SAAT : SAAT : SOSYAL DİSİPLİN 25 SÜRE : SÜRE : TEKNİK DİSİPLİN 25

ÖĞRENCİ BİLGİLERİ TEKNOLOJİ 35

ADI SOYADI : SÜRE 15 AÇIKLAMA

NUMARASI : TOPLAM 100

SINIF :

Referanslar

Benzer Belgeler

Monitörü duvara, duvara monte edilmiş sehpaya veya diğer montaj elemanlarõna monte etmeden önce, monitör tabanõnõ ve kaideyi çõkarmalõsõnõz.. Bir yõldõz

Bu ürünleri yerel yönetmeliklere uygun şekilde iade etmek, geri dönüşüme vermek veya işlenmesini sağlamak için lütfen kamusal toplama sistemini

(Kullanıcı) R (0-100) Kırmızı renk sıcaklığının ince ayarı G (0-100) Yeşil renk sıcaklığının ince ayarı B (0-100) Mavi renk sıcaklığının ince ayarı Return (Dön)

Bu tip sistemlerde; hız regülatörü olmadığı için, MLA3 kartının kullanılmasına gerek yoktur. A3 

1) Parametre “ İptal ” iken kontaktör kontrolu yapılmaz. 3) Parametre “ Tam Aktif “ iken kontaktörlerin hem çektiği hem de bıraktığı sırada kontrol yapılır. Hatanın

(Luminance (Parlaklık)) öğesini seçmek için veya öğesine basın ve girmek için MENU (MENÜ) 'ye basın.. Alt menü seçmek için veya

Teklif edilen cihazlar sürekli çalışabilecek kapasitede (7 gün/24 saat) olacaktır. Teklif edilen cihaz piyasaya en son sürülmüş ve en son teknolojiye sahip olacaktır.

• Aksi halde, bu durum elektrik çarpması veya yangınla sonu- çlanabilir.. Fişi çıkarırken veya prize takarken elektrik fişine ıslak elle