Deney 1 - WordPress.com

Transkript

Deney 1 - WordPress.com
MİKRODENETLEYİCİLER LAB.
;
;
" Temel Uygulama 1 – LED yakma”
;
; Bu uygulamayı PIC Eğitim Seti‟nde denemek için, Assembly Dili‟nde yazılmış program dosyasını (bu
sayfanın arka yüzünde anlatıldığı şekilde)
MPASMWIN programından faydalanarak derleyip
mikrodenetleyiciye yükleyin.
;
; Aşağıdaki Program PORTD „nin 0. , 3. , 4. ve 7. bitlerini (1), diğerlerini (0) yapmaktadır.
; Yani RD0, RD3, RD4, RD7 =1, RD1, RD2, RD5, RD6 =0 olması hedeflenmektedir.
;
; ÖNEMLİ NOT 1 : Derste incelenen PIC16F84 „de Çıkış için genellikle PORTB kullanılmaktaydı.
; Laboratuardaki Eğitim setinde ise 40 bacaklı PIC16F877 bulunduğu için bu Mikrodenetleyicide
; PORTB yerine PORTD kullanılmış ve çıkış LED „leri bu porta bağlanmıştır.
; O halde Eğitim Setinde LED‟leri kullanacak bir program çalıştırmak için derslerde yazılan
; programlardaki PORTB yerine PORTD, TRISB yerine TRISD konulmalıdır.
;
; ÖNEMLİ NOT 2 : Eğitim setindeki PIC16F877 entegresi boş olmayıp deneyin yapılabilmesini
;sağlayacak ve silinmesi engellenmiş “Plab v2.0” programıyla kartı üreten firma tarafından yüklenmiştir.
; Bu yüzden normalde PIC için program başlangıç adresi (0x000) iken “Plab v2.0” programı buradan
; başladığı için bizim yazacağımız programın (0x003) adresinden itibaren başlaması gerekmektedir.
; Bu nedenle programın başına ORG 0x003 ve GOTO BASLANGIC komutları eklenmiştir.
;
* * * *
temel_1.asm Programı
* * * *
;
;*********************************************************************
Etiket
Komut
Adres yada Veri
Açıklama
LIST
P=16F877
INCLUDE “P16F877.INC”
; Kullanacağımız PIC „i derleyiciye bildiriyoruz.
; Kullanacağımız Registerleri tanıtmak için.
ORG
GOTO
; Program bu adresten başlasın.
; BASLANGIC etiketine git ...
0x003
BASLANGIC
;************************************* Asıl Program ***************************
BASLANGIC CLRF
BSF
DONGU
PORTD
STATUS, 5
; PORTD „ yi temizle.
; Bank 1'e geç. Çünkü TRISD bu banktadır.
MOVLW h‟00'
MOVWF TRISD
; PORTD 'nin tüm bitlerini çıkış yapmak için
; TRISD „nin bütün bitleri (0) yapılmalıdır.
BCF
; Bank 0 ' a geç, Çünkü PORTD bu bankta.
STATUS, 5
MOVLW b'10011001'
MOVWF PORTD
; b‟10011001‟ = h‟99‟ sayısı önce W „ye sonra
; PORTD „ye yüklenmektedir.
; Böylece PORTD 'nin 0, 3, 4 ve 7. bitlerine
; bağlı LED'ler yanacak, diğerleri sönük
; kalacaktır.
GOTO
; PIC içindeki program akışı bu komut satırında
; devrenin enerjisi kesilene kadar sonsuz
; döngüye girecektir (bekleyecektir).
; Bu satır(komut) olmadan da program çalışır.
END
DONGU
; Son
DENEYDE YAPILACAKLAR
1) Verilen kabloyu kullanarak PC „nin RS232 (Seri) çıkışını (USB adaptör ile) Eğitim Setinin
USB girişine bağlayın.
2) Besleme kaynağını setin DC besleme girişine jackla bağlayın. PC „yi çalıştırın.
3) Metin Editöründe (Not defteri) arka sayfada verildiği tarzda temel_1.asm adlı assembly
programınızı yazın ve bu dosyayı MPASMWIN ile P16F877.INC „nin bulunduğu
(çalışma) klasörüne saklayın (save edin).
4) MPASMWIN programını çalıştırarak Browse (Gözat) ile çalışma klasöründeki
temel_1.asm programını bulun. Assemble (Derle) „yi tıklayarak programınızı derleyin.
5) Çalışma klasöründe temel_1.hex uzantılı dosya Eğitim Setindeki PIC16F877 „ye
yükleyeceğiniz makine dilindeki heksadesimal koddur.
6) Programı yüklemek için masa üstünden “Hyperterminal” ya da “Tera Term” programını
çalıştırın. Sonra eğitim setinin bağlı olduğu portu (COM 1 gibi) seçin.
7) Bu portu 9600 bps, 8 data biti, parity: YOK, stop biti : 1 ve akış kontrol: YOK şeklinde
yapılandırın. Ayrıca satır gecikmesini 100‟e ayarlayın.
8) Set üzerindeki RESET butonuna ve ardından hemen PC deki Enter‟e basın. Böylece
Kontrol PC ye geçecek ve ekranda bazı bilgilerden sonra PIClab> ifadesini görülecektir.
9) Önce “u” yazın. Hyperterminal/Tera Term size “ Are you sure? ” diyerek
PIC16F877 de daha önce bir program var idiyse bunu silmek istediğinizden emin
olup olmadığınızı soracaktır. “Y” (evet) basarsanız ekranda Erasing (siliniyor)
yazarken eski program silinecek ve Ready (hazır) mesajı ile artık yeni programın
yüklenmeye hazır olduğu bildirilecektir.
10) Bundan sonra yapacağınız işlem, çalışma klasörünüzde bulunan temel_1.hex adlı
dosyayı açıp “tümünü seç” tikten sonra copy ( kopyala) demek ve bu kodu getirip
Hyperterminal/Tera Term programında bulunan Ready mesajının altına paste
(yapıştır)maktan ibarettir. Programlama tamamlanınca ekranda “Upload succesful”
(Yükleme başarılı) mesajı alacaksınız.
11) Son olarak hiçbir şey yazmadan PC „nin Enter tuşuna basıp daha sonra PC de “Q”
yazıp tekrar Enter yaparsanız programınızın çalıştığını (koştuğunu) görmeniz
gerekmektedir. Artık Eğitim Seti kartı PC den bağımsız olarak çalışmaktadır.
12) Eğer Programı değiştirmek veya başka bir program yüklemek isterseniz, aynı tarzda
önce RESET‟e basıp hiç vakit geçirmeden PC „nin Enter tuşuna basın. Artık kontrol
tekrar PC „ye geçmiştir.
13) Bundan sonra Programınızda aynı işlemleri b‟10011001‟ = h‟99‟ dan farklı değerler
için birkaç kere yapıp her defasında yeniden derleyerek tekrarlayın.
14) Program komutları haricindeki açıklamaların “ ; “ den sonra yazıldığına dikkat
edin.
NOT:




Firma tarafından yüklenen “Plab v2.0” programı 4 kB bir yer işgal
etmektedir. PIC16F877 ise 8 kB „lik bir program hafızasına sahiptir.
O halde bizim yükleyeceğimiz hex program kodu 4 kB ile sınırlıdır. Zaten bu
sınırlara erişmek 4096 satır (komut) yazmak demektir ki bu oldukça büyük bir
program sayılır.
Program konfigürasyonu kalıcı “Plab v2.0” firma programı ile yapıldığı için
WDT_OFF , PWRT_ON, OSC_XT gibi konfigürasyon değişkenleri yazmaya
ihtiyaç yoktur.
Deneyiniz bittiğinde bilgisayarı kapatıp Eğitim Setinin enerjisini kesiniz ve yoklamanızı
veriniz .

Benzer belgeler

HUNRobotX - Makaleler - PIC ile LED Yakıp Söndüren Devre

HUNRobotX - Makaleler - PIC ile LED Yakıp Söndüren Devre ; Aslında A portunu kullanmadığımızdan çok da önemli ; değil. MOVLW B'00000010' MOVWF TRISB ; B portunun 1. bitini giriş diğer bit'lerini çıkış ; yaptık. BCF STATUS, RP0 ; Tekrar bank değiştirdik. ...

Detaylı

PIC MİKRODENETLEYİCİ KULLANARAK BİR SİSTEMİN

PIC MİKRODENETLEYİCİ KULLANARAK BİR SİSTEMİN için gerekli kontrol sinyalini göndermek ve karşıdan bu kontrol sinyalini almak için bir hat veya bir sistem tasarlamak yerine hazırda bulunan telefon hatları üzerinden kontrol sinyalini göndererek...

Detaylı

PIC_NOTLARI_1516_GUZ_Vize

PIC_NOTLARI_1516_GUZ_Vize Sayı sistemleri iyi anlaşılmadan mikroişlemcilerle (ya da mikrodenetleyicilerle) uğraşmak ve onların kullanımlarını anlamak imkansız gibidir. Bu nedenle çeşitli örnekler üzerinde sayı sistemleri ve...

Detaylı