Soru: Okul numaranızın son iki hanesine ait decimal
sayının binary karşılığını PIC16F84 entegresinin B portu çıkışında ledlerle gözlenmesini
sağlayan programı microbasic programında yazarak programı uygulayan devreyi
kurup çalıştırınız.
Aşağıdaki işlem
basamaklarını dikkatli bir şekilde uygulayarak sonuca ulaşacağız:
İşe programın yazılımı sırasında gerekli olacak okul numaranızın 74 olduğunu
varsayarak bu sayının binary ve hexadecimal karşılıklarını hesaplayarak
başlayalım.
Decimal (Onlu)
|
Binary (İkili)
|
Hexadecimal (Onaltılı)
|
74
|
01001010
|
4A
|
|
|
|
Boş haneleri kendi okul numaranıza uygun olarak
doldurunuz.
Portb’nin 8 çıkışı olduğundan
binary karşılık 8 bit ile ifade edilmiştir.
|
74 sayısının binary karşılığı portb çıkışında lojik
olarak aşağıdaki şekilde görüntülenecektir.
RB7
|
RB6
|
RB5
|
RB4
|
RB3
|
RB2
|
RB1
|
RB0
|
0
|
1
|
0
|
0
|
1
|
0
|
1
|
0
|
|
|
|
|
|
|
|
|
Boş haneleri kendi okul numaranıza uygun olarak
doldurunuz.
|
MicroBasic Programın kullanımı ve programın yazılımı:
|
MicroBasic programı çalıştırılır.
Açılan pencerede kullanacağımız mikrodetleyicinin
adı P16F84A ve kullanacağımız osilatör frekansı ve 4 MHz olarak seçilir.
|
Yeni proje oluşturmak üzere üst menüden sırasıyla
Project
New Project
tıklanarak yeni açılan pencerede
Next
tıklanır.
|
|
|
Next
tıklanmasıyla beraber mevcut pencere kapanarak yeni bir pencere açılır. Bu
pencereyi kullanarak masa üstünde projemize ve kendi adımıza ait bir klasör
oluşturacağız. Sırasıyla
Browse
Masa üstü
Yeni klasör oluştur
tıklanır.
Klasör ismi yazılıp
Tamam
tıklandığında mevcut pencere kapanır.
|
|
|
|
|
Project Name kısmına projemize ait bir isim yazılır.
Project folder bölümünü bir önceki işlemi başarı ile tamamlamış
iseniz program kendisi doldurur.
Device Name
bölümü de otomatik olarak program kendisi doldurur. Bu bölümdeki
mikrodenetleyici 16F84A değilse düzeltilir.
Device Clock bölümü de program kendisi doldurmaktadır. Ancak
kullandığımız kristal frekansı 4 MHz olduğundan farklı bir değer
görünüyorsa düzeltilir ve Next tıklanır.
|
Bu bölümü Next tıklayarak geçiyoruz.
|
|
|
Bu bölümü Next tıklayarak geçiyoruz.
|
Finish
tıkladığımızda projemize ait klasörü oluşturmuş oluyoruz. Masa üstünde
ismimize ait leyla isimli klasörü açtığımızda içerisinde şu
dosyaların bulunduğunu görürüz:
B portunda okul numaranı goster.cfg
B portunda okul numaranı goster.dct
B portunda okul numaranı goster.mbas
B portunda okul numaranı goster.mbppi
B portunda okul numaranı goster.user.dic
Buraya kadar olan işlemleri başarı ile tamamladığımızda bu 5 dosyayı
program kendisi oluşturmaktadır.
|
|
|
|
|
|
Metin editörüne baktığımızda projemizin ismini
programın otomatik olarak metin editörüne program komutundan sonra
işlediğini görürüz. İsterseniz bu ismi kelimeler arasındaki alt çizgiler
kalmak ve Türkçe karakterleri (Ç, ç, Ğ, ğ, ı, İ, Ö, ö, Ü, ü) kullanmamak
şartıyla değiştirebilirsiniz.
En baştaki program kelimesi programın ilk
komutudur ve bu kelimeden sonra da yanına bir boşluk bırakılarak programın
ismi yazılı olmalıdır.
|
' Declarations section ve ' Main program yazan satırlar
bilgilendirme amaçlıdır. Bu satırları silebilir ya da en baştaki ' (kesme)
işareti kalmak şartıyla farklı açıklamalar yazabilirsiniz. Kesme
işaretinden sonra yazılan yazıların programın çalışmasına bir etkisi
yoktur. Program kodları yazılırken ya da incelenirken yanında bulunan
program komutlarına ait açıklamalar yazabilme amacıyla kullanılır. Ana
program main: ile end yazan satırlar arasına yazılır.
|
Editördeki gereksiz açıklamaları silerek
programımızı yazmaya başlayabiliriz.
|
|
|
Programın editöre yazılması
|
|
|
|
|
trisb=0 ya da trisb=1 ne anlama geliyor?
|
trisb=0
|
trisb=1
|
B portunu çıkış yap.
|
B portunu giriş yap.
|
Aynı işlevi yerine getiren programı aşağıdaki örneklerde görüldüğü gibi 2
değişik şekilde daha yazabilirdik.
program
B_portunda_okul_numarani_goster
main:
trisb=0
portb=%01001010
end.
|
' program başlangıcı
' Ana program başlangıcı
' b portu çıkış yapıldı
' Okul no binary olarak
girildi
' Program sonu
|
Çıkışların binary sayı sisteminde ifade
edilmesiyle hazırlanmış program.
|
|
|
program
B_portunda_okul_numarani_goster
main:
trisb=0
portb=$4A
end.
|
' program başlangıcı
' Ana program başlangıcı
' b portu çıkış yapıldı
' Okul no binary olarak
girildi
' Program sonu
|
Çıkışların hexadecimal sayı sisteminde ifade
edilmesiyle hazırlanmış program.
|
|
|
program
B_portunda_okul_numarani_goster
main:
trisb=0
portb=74
end.
|
' program başlangıcı
' Ana program başlangıcı
' b portu çıkış yapıldı
' Okul no binary olarak
girildi
' Program sonu
|
Çıkışların decimal sayı sisteminde ifade
edilmesiyle hazırlanmış program.
|
Programın yazılımı
tamamlandı kaydet ikonuna tıklayarak projemizi kaydediyoruz. Dosyamız masa
üstünde leyla ismindeki klasörün içindeki B portunda okul numaranı
goster.mbppi isimli dosyadır. Ancak programı mikrodenetleyiciye
aktarmadan önce mbppi uzantılı dosyamızı derleyerek hex
uzantılı dosya haline getirilmesi gerekir. Bunun için programımızın Build
menüsü altındaki Build sekmesine ya da üst menüdeki build
ikonuna tıklayarak hazırlamış olduğumuz programı derliyoruz. Derleme işlemi
neticesinde program otomatik olarak leyla klasörünün içine B portunda okul
numaranı goster.hex isminde hex uzantılı dosya oluşturacaktır.
MicroBasic programının
yazılımı ve derleme işlemi tamamlanmıştır. Bundan sonraki aşama oluşturmuş
olduğumuz hex uzantılı dosyadaki program komutlarını MicroPro programı
ile mikrodenetleyiciye yüklemek.
MicroPro Programının
Kurulumu ve Kullanılması
Pic programlama kartı bilgisayara bağlanıp, MicroPro
programı bilgisayara kurulur. Programlama kartının takılı olduğu comport
programa tanıtılır.
File Menüsü: Bu menüden yükleme (Load), kopyalama (Save), başka
bir dosyayla birleştirme (Merge), yenileme (Refresh), ekranı temizleme
(Clear) gibi işlemler yapılabilir.
Load: Bu seçenek veya Load butonu PIC’e
yazdırılacak olan programı yüklemek için kullanılır.
Programmer: Bu seçenek elinizde bulunan programlayıcı
software’i seçmeniz için kullanılır. Örneğin K149-A programlayıcınız varsa
K149-A seçmelisiniz. PAM. Bu işlem normal olarak MicroPro açıkken
programlayıcıyı (PAM) bilgisayarınıza bağladığınızda otomatikman seçilir.
Port: Bu seçenekle COM port seçimini
değiştirebilmek için bir iletişim penceresi açılır. Seri port MicroPro
ekranının sol alt köşesindeki COMx yazısı üzerine çift tıklamak suretiyle de
yapılabilir. COM port seçimi doğru yapıldıysa açılan pencerede COM
kelimesinin hemen yanında numarası da görülecektir. Port seçimi doğru
yapılmadığında COMx görülecek ve hata mesajı görüntülenecektir. Bazen COM
port doğru seçilmiş görülse bile program donanımı bulamayabilir. Bu durumda
iletişim penceresinde görülen portta başka bir donanım bağlı olabilir.
Örneğin pencerede görüldüğü halde siz donanımı COM2’ye bağlamış
olabilirsiniz.
Turn Serial Off: MicroPro programı kapatılmadan seri portu
başka bir donanımın kullanılabilmesi için seri portu serbest bırakmak için
kullanılır.
Programmer Menüsü: Bu menüde ise PIC’i programlama, okuma,
karşılaştırma, silme, sigortaları belirleme ve osilatör seçme işlemleri
yapılmaktadır. Bu işlemler aşağıda görüldüğü MicroPro ekranından da
yapılabilir.
Program: Micropro belleğine yüklenmiş
olan program kodlarını PIC’e yüklenmesi için ilgili çıkış portuna gönderir.
Read: Chip selector listesinden uygun PIC seçildikten sonra
read butonuna tıklandığında PIC’te yazılı olan program okunur ve MicroPro
ekranında görüntüler. İstenirse bu kodlar kaydedilebilir. Eğer PIC kod
korumalı (code protected) ise ekranda 0000 verileri görüntülenir.
Verify: Chip selector listesinden uygun chip seçildikten
sonra verify read butonuna tıklandığında PIC’te yazılı olan program ile
MicroPro ekranındaki program karşılaştırır. Karşılaştırma neticesinde hatalar
varsa bu bir pencere içerisinde görüntülenir.
Blank: Menüden blank seçildiğinde veya blank butonuna
tıklandığında aşağıdaki şekildeki pencere açılır. “Erase Check” seçilirse
donanım üzerindeki sokete takılı bulunan PIC‘in boş olup olmadığını kontrol
eder, yeni açılan bir pencerede silinmiş ve silinmemiş olan yerleri belirtir.
Erase chip seçilirse PIC içerisindeki kodları siler, silindiğini belirten
pencere görülür. Silinmiş bir PIC tekrar okunduğunda ekranda görülen veriler
3FFF’dir.
OSCAL : Bazı PIC’lerde dahili osilatör
bulunmaktadır, örneğin PIC 16F675. Bu osilatör aktif yapılarak harici bir
osilatör elemanlarından tasarruf edilmektedir. Dahili osilatörün ürettiği
sinyalin frekansı chip’ten chip’e çok az da olsa farklılık göstermektedir. Bu
nedenle kalibrasyonu sağlamak için PIC’in içerisinde özel bir adres içerisine
kalibrasyon verisi yazılmak suretiyle osilatöre donanımsal olarak müdahale
edilerek istenen frekansta osilasyon sağlanır. OSCAL seçeneğin silinmesi veya
yeniden yazılması için kullanılır. Normal olarak bu tip PIC’lere üretim
esnasında yazılan OSCAL değeri kesinlikle değiştirilmemesi gerekir. Aksi
takdirde PIC gerekli tam doğru osilasyon frekansı ile çalışmaz. Bu değerin
doğruluğundan şüphe edilmesi durumunda müdahale edilebilir. Bu seçenek sadece
seçilen chip’in bu özelliği varsa aktif olur.
Cancel: Bu seçenekle gerçekleştirilmekte olan tüm Micropro
işlemlerini durdurur. Aynı işlem ekranın sağ alt köşesindeki butonla da
yapılabilir.
Reset Vector: Bu seçenek F serisi bazı PIC’lerde reset
vektör adı verilen adrese veri yazmak için veya okumak için kullanılır. Reset
vektörüne yazılamayacak PIC’lerde bu seçenek aktif değildir. Bu konuda
detaylı bilgi için ilgili PIC’in datasheet’ine bakınız.
Reset programmer: Bu seçenek programlayıcı soketine yakılı
olan PIC’in MCLR ucunu 200 mS süreyle 0V (Low) yapar. Bu PIC’in reset
yapmasına neden olur. Eğer reset işlemi başarılı olduysa Micropro programında
“Board connected” mesajı görülür.
Fuses: Bu seçenek PIC’lerin sigorta (fuse) olarak adlandırılan
bazı donanımsal özelliklerinin belirlenmesinde kullanılır. PIC
programlandığında bu sigorta bilgileri PIC’in bu iş için ayrılmış özel
adreslerine yazılır. Fuse seçenekleri, osilatör tipi, watchdog timer’ın açık
veya kapalı tutulması, power-up timer’ın aktif veya pasif durumda oluşu gibi
donanımsal bilgileri içerir. Sigorta seçeneklerinin neler olduğu PIC’ten
PIC’e değişir. Bu nedenle kullanılan PIC’in datasheet’i veya bu konuda
hazırlanmış kitaplara başvurmanız tavsiye edilir. Sigorta verileri kaynak
program içerisinde yazılmadığında, PIC’i programlamak için program butonuna
tıklandığında bir uyarı penceresi gelir. Bu pencerede, sigortaların default
(programın belirlediği değerler) değerlere ayarlandığını, bu değerleri
değiştirip değiştirmek istemediğiniz sorulur. Programlamaya başlamadan önce
bu değerleri kendi seçiminize göre ayarlamak istiyorsanız YES butonuna
basmanız gerekir. Programın kabul ettiği değerlerin aynen yazılmasını
isterseniz NO butonuna basmanız gerekir. Sigorta değerlerini kaynak program
içerisinde yazdıysanız uyarı penceresi ekrana gelmeden direkt olarak
programlamaya geçilecektir. Örneğin PIC16F628A chip’inin sigorta verilerinin
ne olduğunu aşağıdaki şekli vererek inceleyelim: Bu penceredeki disable
konfigürasyon bilgisinin pasif durumda, enable ise aktif durumda olacağını
belirler. Oscillator liste kutusunu açtığınızda seçilen PIC’e bağlanabilecek
osilatör seçenekleri listelenir. Uygun osilatör üzerine tıklanarak seçim
yapılır.
Options Menüsü: Bu menüde kullanılan seçeneklerin birkaçı
kullanıcının seçimine bağlı olarak aktif veya pasif yapılabilecek
seçeneklerdir. Örneğin Ignore blank check, Auto update Files, Auto program
bunlardan bazılarıdır. Bu seçeneklerin aktif veya pasif olduğunu göz ile
seçmek biraz zordur. Bunun için seçeneklerin solunda bulunan simgelere
bakınız. Simge görünümü gömülü biçimdeyse seçenek aktif, simge normal
görünümde ise pasiftir.
Hex uzantılı dosyanın
mikrodenetleyiceye yüklenmesi:
|
MicroPro programı çalıştırılarak load
tıkanır ve açılan pencereden projemize ait MicroPro programı ile
oluşturduğumuz hex uzantılı dosya açılır. Chip selector bölümünden
kullanacağımız mikrodenetleyici 16F84A olarak seçilir.
Fuses
tıklanarak açılan pencereden gerekli ayarlamalar aşağıda görüldüğü gibi
yapılır.
WDT: Enabled
PWRTE: Disabled
Oscilator: XT
Code Protect: Disabled
|
Program
butonuna tıklanır. Şekildeki gibi gelen uyarıya yes cevabı verilir.
|
|
|
Bu aşamada program mikrodenetleyice
yüklenmektedir. Yükleme işlemi tamamlandığında Programming complete
şeklinde uyarı gelir. Bundan sonra programlama kartınız üzerinde
mikrodenetleyicideki programın çalışıp çalışmadığını programlama kartı
üzerinde test edebilirsiniz.
|
|
|
|
Tekopic2
mikrodenetleyici programlama kartının kullanılması:
Devre şemasının
hazırlanması:
Öncelikle PIC16F84’ün asgari donanım yapısı çizilir daha sonra da B portu
çıkışlarına aşağıdaki şekilde görüldüğü gibi çıkışları gözlemlemek üzere led
bağlantıları çizime ilave edilir.
İşlem Basamakları:
- Sayı sistemlerinin
birbirine dönüşümü hakkında öğrendiğiniz bilgileri tekrar edip, ilk
sayfada verilmiş olan 2 tablodaki boş yerleri doldurunuz.
- Okul numaranızın son 2
rakamını B portunda binary sayı formatında görüntüleyen programı
MicroBasic programında yazıp derleyiniz.
- Derlediğiniz programı
PIC16F84A mikrodenetleyicisine yükleyiniz.
- Programladığınız
mikrodenetleyicideki programı pic programlama kartında çalıştırınız.
- Devre şemasını deney
bordu üzerine kurup çalıştırın.
|