Elektrik Elektronik Teknolojisi Alanı Temrinleri

 
Hoşgeldiniz Ziyaretçi. Lütfen giriş yapın veya kayıt olun.

Kullanıcı adınızı, şifrenizi ve aktif kalma süresini giriniz

Mikrodenetleyiciler Dersi Temrinleri / Led Uygulaması 1

Temrin No: 9

İSTENİLEN ÇIKIŞLARA BAĞLANAN LEDLERİ YAKMA

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ı:

  1. Sayı sistemlerinin birbirine dönüşümü hakkında öğrendiğiniz bilgileri tekrar edip, ilk sayfada verilmiş olan  2 tablodaki boş yerleri doldurunuz.
  2.  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.
  3. Derlediğiniz programı PIC16F84A mikrodenetleyicisine yükleyiniz.
  4. Programladığınız mikrodenetleyicideki programı pic programlama kartında çalıştırınız.
  5. Devre şemasını deney bordu üzerine kurup çalıştırın.

 

 

 

 

 

 

 

DEĞERLENDİRME

Adı soyadı

İşlem Basamakları

Tertip düzen

İş güv.

Süre

Toplam

1

2

3

4

5

 

10

20

20

15

20

5

5

5

100

 

 

 

 

 

 

 

 

 

Temrin sayfasını bilgisayarınıza indirmek için buraya tıklayınız.