durmuş gÖkÇebay, bitirme Ödevi, niğde Üniversitesi,...

93
Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı 1 T.C Niğde Üniversitesi Mühendislik Mimarlık Fakültesi Elektrik Elektronik Mühendisliği Bölümü BİR ÇAMAŞIR MAKİNASI SİMÜLATÖRÜNÜN BİR PIC MİKRODENETLEYİCİSİ KULLANARAK KONTROLÜ Hazırlayan Durmuş GÖKÇEBAY BİTİRME ÖDEVİ Danışman Yrd. Doç. Dr. Murat UZAM

Upload: others

Post on 02-Feb-2020

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

1

T.C

Niğde Üniversitesi

Mühendislik Mimarlık Fakültesi

Elektrik Elektronik Mühendisli ği Bölümü

BİR ÇAMA ŞIR MAK İNASI SİMÜLATÖRÜNÜN B İR PIC

MİKRODENETLEY İCİSİ KULLANARAK KONTROLÜ

Hazırlayan

Durmuş GÖKÇEBAY

BİTİRME ÖDEV İ

Danışman

Yrd. Doç. Dr. Murat UZAM

Page 2: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

2

NİĞDE 2002

T.C.

NİĞDE ÜNİVERSİTESİ

MÜHEND İSLİK-M İMARLIK FAKÜLTES İ

ELEKTR İK-ELEKTRON İK MÜHEND İSLİĞİ BÖLÜMÜ

BİTİRME ÖDEV İ DERSİ SINAV TUTANA ĞI

ÖĞRENCİNİN:

Adı ve Soyadı :………………………………………………………

Sınıf ve Numarası : ………………………………………………………

Bitirme Ödevinin Adı : ………………………………………………………

………………………………………………………

Bitirme Ödevini Yöneten

Öğretim Elemanın Adı ve Soyadı : ………………………………………………………

BİTİRME ÖDEV İ SINAV JURİSİ

Başkan :………………………………………………………

Üye : ………………………………………………………

Üye : ………………………………………………………

Bu çalışma ….. /….. / 2002 tarihinde yapılan sınav sonucunda jürimiz tarafından oy

birli ği / çokluğu ile başarılı / başarısız bulunmuştur.

UYGUNDUR

…../…../2002

Doç. Dr. Saadetdin HERDEM

Bölüm Başkanı

Page 3: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

3

ÖZET

BİR ÇAMAŞIR MAK İNASI SİMÜLATÖRÜNÜN BİR PIC

MİKRODENETLEYİCİSİ KULLANARAK KONTROLÜ

Bu çalışmada, Niğde Üniversitesi, Mühendislik Mimarlık Fakültesi, Elektrik Elektronik

Mühendisliği Bölümü, Mikroişlemciler Labaratuvarında bulunan bir çamaşır makinesi

simülatörünün kontrolü gerçekleştirilmi ştir. Çalışmada kullanılan çamaşır makinası

simülatörü, bir çamaşır makinesinin yapacağı işlerin temsili şekilde gerçekleştirilebildiği

bir sitemdir. Çamaşır makinası simülatörünün farklı çalışma senaryoları için sekiz ayrı

program yazılmıştır. Yazılan bu programlar, sonuçta tek bir entegre devre ( PIC16F877

mikrodenetleyicisi ) içerisine yüklenmiştir.

Kontrol işleminin PIC16F877 mikrodenetleyicisi ile gerçekleştirilmesi ekonomi ve basitlik

anlamında pek çok avantajlar sağlamıştır. Ayrıca bir çok endüstriyel sistemin kontrolünün

nasıl yapılabileceğine dair fikirler zihnimizde daha net bir şekilde oluşmuştur.

Page 4: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

4

TEŞEKKÜR

Bu çalışmayı yöneten, uygulamaların yürütülmesi ve tez çalışmasının bu aşamaya kadar

gelmesinde yardımlarını esirgemeyen danışmanım Yrd. Doç. Dr. Murat UZAM’a, Arş.

Gör. M. Kürşat YALÇIN’a ve bütün bölüm hocalarıma teşekkürü bir borç bilirim.

Ayrıca bu çalışma esnasında maddi ve manevi desteklerini esirgemeyen bütün dostlarıma

teşekkür ederim.

Page 5: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

5

İÇİNDEKİLER

Sayfa No

ÖZET…………………………………………………………………………………..…..iii

TEŞEKKÜR………………………………………………………………………………..iv

İÇİNDEKİLER DİZİNİ…………………………………………………………………….v

ÇİZELGELER DİZİNİ…………………………………………………………………….ix

ŞEKİLLER DİZİNİ…………………………………………………………………………x

SİMGE VE KISALTMALAR……………………………………………………………..xi

BÖLÜM I GİRİŞ …..………………………………………………………………….……1

BÖLÜM II. TEMEL BİLGİLER…….………...…………………………………………...4

2.1. Mikrodenetleyiciler….………………………...……………………………….......4

2.2. PIC Mikrodenetleyicisi…………..………………………………………………...5

2.2.1. PIC mikrodenetleyici tercih nedenleri……..……………………………...….7

2.2.2. PIC programlamak için ……………………………………………...……….8

BÖLÜM3.PIC16F877’NİN KULLANILMASI ………..…………………..………….......9

3.1. PIC16F877’nin Özellikleri ……………………………….…………………..……9

3.2. PIC16F877 Portlarının Fonksiyonları …………..…………………………………9

3.2.1. Port a …….…………………………………………………………………...9

3.2.2. Port b……………………………………………………………………..…10

3.2.3. Port c………………………………………………………………………..11

3.2.4. Port d..............................................................................................................11

3.2.5. Port e………………………………..……………………………………….12

3.3. Program ve Kullanıcı RAM Bellek Organizasyonu...............................................12

3.4. Özel Fonksiyonlar…………………………..……….............................................13

3.4.1. Paralel Slave Port...........................................................................................13

3.4.2. Usart..........................................................................................…………….13

Page 6: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

6

3.4.3.Master synchronous serial port (MSSP)..........................................................14

3.4.4. Analog sayısal çevirici modülü......................................................................14

3.4.5. Capture compare pwm modülü......................................................................15

3.5. Ram Bellek………………………………………………………………………..15

3.6. PIC16F877’nin Besleme Uçları ve Beslenmesi…………………………………..16

3.7. PIC16F877’nin Reset Uçları……………………………………………………...17

3.8. PIC16F877’nin Clock Uçları ve Osilatör Tipleri…………………………………17

3.8.1. Kristal osilatör / seramik rezonatör………………………………………....18

3.8.2. RC osilatör………………………………………………………………….18

3.9. Kesmeler (Interrupts)……………………………………………………………..18

3.9.1. INTCON register……………………………………………………………19

3.9.2. Kesme kaynakları…………………………………………………………...21

3.9.3.TMRO sayıcsı zamanlayıcısı………………………………………………...21

3.9.4. OPTION register……………………………………………………………21

3.9.5. Prescaler kullanımı………………………………………………………….22

BÖLÜM IV BYTRONIC ÇAMAŞIR MAK İNASI SİMÜLATÖRÜ ................................25

4.1. Giriş………….........................................................................................................25

4.2. Başlangıç ……........................................................................................................25

4.2.1.Çamaşır makinesinin ibm ya da uygun bir donanıma bağlanması..................26

4.2.1.1. Ibm iç arabağı için (MPIBM1) çamaşır makinası……………..….26

4.2.1.2. Ibm dış arabağı için (mpibm2) için çamaşır makinası .................26

4.2.1.3. Çamaşır makinasının 8051 mikro denetleyiciye bağlanması……..27

4.2.1.4. Çamaşır makinasının bir programlanabilir lojik denetleyiciye

bağlanması………………………………………………………...27

4.2.1.5. Güç kaynağının bağlantısı .……………………………………….27

4.3. Bytronic Çamaşır Makinası Simülatörünün Özellikleri……………..……………27

4.4. Çamaşır Makinası Elektroniği…………………………………………………….28

4.4.1. Yedi parçalı display sürücü………………………………………………....29

Page 7: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

7

4.4.2. Motor sürüşü ve yön kontrolü………………………………………………30

4.4.3. Buzzer………………………………………………………………………31

4.4.4. Anahtar girişi set / reset mandallı devreler……………………………..…..31

4.4.5. Kızıl ötesi hız sensörü ……………………………………………….……..33

4.5. Anahtarlama Hataları……………………………………………………………..34

4.6. Labaratuvar Çalışması Yazılımları…………………………………………….…35

4.6.1. Labaratuvar çalışması-1 (digital çıkışların kontrolü)……………………….35

4.6.2. Labaratuvar çalışması-2 (yedi parçalı displayın kontrolü)……………….....36

4.6.3. Labaratuvar çalışması-3 (program seçici anahtarları okuma)………………36

4.6.4. Labaratuvar çalışması-4 (dc motorun açık / kapalı kontrolü)……………….37

4.6.5. Labaratuvar çalışması-5 (açık döngüde dc motorun hız kontrolü)………….38

4.6.6. Labaratuvar çalışması-6 (motor hız geri beslemesini okumak)……………..40

4.6.7. Labaratuvar çalışması-7 (renkli yıkama program devri)…………………....41

4.6.8. Labaratuvar çalışması-8 (dc motorun kapalı döngü kontrolü)……………...41

4.6.8.1. Orantılı kod modu……………………………………………...….43

4.6.8.2. Toplam kontrol modu……………………………………………..44

4.6.8.3. Fark kontrol modu……………………………………….………..44

4.7. Kontrol Listeleri……………………………………………………………..……45

4.8. Ekler………………………………………………………………………...…….46

4.8.1. Ek-1 ibm bağlantı (header) konfigürasyonları…………………………..….46

4.8.2. Ek-2 mikro bilgisayar kontrol port adresleri………………………………..48

4.8.3. Ek-3 kızıl ötesi hız sensörünün kalibrasyonu…………………………….…48

4.8.4. Ek-4 Ibm 8253 sayıcı / zamanlayıcı arabağının işlevi…………………...….49

4.9. 8253 CTC’yi Kullanarak Dc Motor Kontrol Etmek…………………………...…50

4.9.1. Geri besleme darbelerini saymak için 8253 CTC kullanımı………………..51

BOLÜM V PIC BASIC PRO İLE PROGRAMLAMA……………………………….…..55

5.1. Pic Basic Pro Hakkında……………………………………………….………….55

5.2. Pic Basic Pro Komut Seti……………………………………….………….…….55

5.2.1. Değişkenler (Variables)………………………………………………….….55

5.2.2. Etiketler (Labels)……………………………………………………..….….56

5.2.3. Nümerik sabitler (Nümerik constants)…………………………………...…57

Page 8: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

8

5.2.4. Portlar……………………………………………………………………….57

5.2.5. Zaman gecikmesi (Pause)……………………………………………...……58

5.2.6.Döngü düzenlemek (For…Next)………………………………………….…59

5.2.7.Kontrol yapmak (If…Then)…………………………………………..….….59

5.3. Kesmeler (Interrupts)……………………………………………………….…….60

5.4. Pic Basic Pro Komutları…………………………………………………….…….61

5.5. Microcode Studio Programı………………………………………………………63

5.6. Propic Programı ……………………………….……………………………........63

BÖLÜM VI ÇAMA ŞIR MAK İNASI SİMÜLATÖRÜ KONTROL PROGRAMI ..……..65

6.1. Çamaşır Makinası Simlatörü Kontrol Devresi .…………………………………..65

6.2. Çamaşır Makinası Simlatörü Kontrol Programı ………………………………….66

BÖLÜM VII SONUÇ VE ÖNERİLER …………………………………………………..79

KAYNAKLAR ……………………………………………………………………………80

Page 9: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

9

ÇİZELGELER D İZİNİ

Çizelge 1 PIC16FF877 ile PIC16FF84’ün karşılaştırılması…………………..……….......10

Çizelge 2. Status Registeri…………………...………………………....………………….13

Çizelge 3. Status Register Bank Seçme Bitleri …………………………………………...13

Çizelge 4. Osilatör Çeşitleri……………………………………...……..…………………17

Çizelge 5. Frekansa Göre Kondansatör Seçimi……………………....………….………..18

Çizelge 6. Intcon Register……………….……………………………….....……….…….20

Çizelge 7. Option Register ….……………………………………....…………………….22

Çizelge 8. Prescaler Değerleri .……………………………………....………….………...23

Çizelge 9. 74LS279 Set / Reset lojik………………………………....……………………32

Çizelge 10. Anahtarlama Hataları Listesi ve Etkileri……………………………....……...35

Çizelge 11. Kontrol Listeleri…………………………………………………....…………45

Çizelge 12.Çamaşır Makinası 26 Yollu Header……………………………...……………47

Çizelge 13. Çamaşır Makinası 40 Yollu Header………………………..…………………47

Çizelge 14. Sayıcı Modeller…………………………………………………...…………..50

Çizelge 15. Pic Basic Pro Komut Seti………………..………………………..………….56

Çizelge 16. Programlar İçin Switch Konumları …………………………………………..65

Page 10: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

10

ŞEKİLLER D İZİNİ

Şekil 1.1. Çamaşır Makinası Simülatörünün Genel Görünüşü……………………………..2

Şekil 1.2. Simülatörün Uygulama Devresine Bağlanmasına Ait Blok Diyagram………….3

Şekil 1.2. Simülatörün Uygulama Devresi ve Güç Kaynağına Bağlanması ……………….3

Şekil 2.1. Mikrodenetleyicili Bir Sisteme Ait Blok Diyagram…………………….……….5

Şekil 3.1. PIC16F877’nin RAM Bellek Haritası………...…………………………...……16

Şekil 3.2. Kesme Olayı…………………………………………………………………….19

Şekil 4.1. 7 Parçalı Display Sürücü………………………………………………………..29

Şekil 4.2. 7 Parçalı Display Kontrol Kodları………….…………………………………...30

Şekil 4.3. Motor Sürüş Devresi…….………………..……….……………………….…...30

Şekil 4.4. Set / Reset Anahtarlamalı Devre…………………………………………….…32

Şekil 4.5. Kızıl Ötesi Hız Sensörü………………………………………………………..33

Şekil 4.6. Labaratuvar Çalışması-1 Akış Diyagramı…………………………………..….36

Şekil 4.7. Labaratuvar Çalışması 2 – Akış diyagramı………………..…………….…...…37

Şekil 4.8. Labaratuvar Çalışması 3 – Akış diyagramı………………………..……………38

Şekil 4.9. Labaratuvar Çalışması 4 – Akış Diyagramı………………………………….…39

Şekil 4.10. Darbe Genişlik Modüleli Sinyal………………………………………………40

Şekil 4.11. Labaratuvar Çalışması 7 – Akış diyagramı………………….……………...…42

Şekil 4.12. DC Motor Kontrol Sistemi…………..……………………………………...…43

Şekil 4.13. Port Adresleri………………………………………………………………….48

Şekil 4.14. Sayıcı / Zamanlayıcı Kanallar 1 ve 2’nin Konfigürasyonu………………..…51

Şekil 4.15. CTC Kanallar 1 ve 2’nin Zamanlama Diyagramı…………………………….52

Şekil 4.16. Sayıcı / Zamanlayıcı Kanal 0’ın Konfigürasyonu……………………………52

Şekil 4.17. CTC Hız Ölçümü İçin Akış diyagramı………………….…….………………54

Şekil 5.1. Microcode Studio Ana Sayfası………………………..…………………...……64

Şekil 5.2. Propic Programı Ana Menüsü ………………………………………………….64

Şekil 6.1. Çamaşır Makinası Simülatörü Kontrol Devresi ………………………………..66

Page 11: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

11

SİMGE VE KISALTMALAR

Ms, Mili saniye

µs, Mikro saniye

V, Volt

>, Büyük

<, Küçük

Mhz, Mega hertz

Kb, Kilo byte

Kohm, Kilo ohm

Mohm, Mega ohm

RAM, Rastgele erişimli hafıza

PLC, Programlanabilir lojik denetleyici

DC, Doğru akım

ma, Mili amper

F, File register

W, Working register

k, Sabit sayı veya etiket

d, Komut ardından işlem sonucunun kaydedileceği yer

‘ veya ; Program açıklama satırları

Page 12: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

12

BÖLÜM I

GİRİŞ

Bu tez çalışmasında, Niğde Üniversitesi, Mühendislik Mimarlık Fakültesi, Elektrik

Elektronik Mühendisliği Bölümü, Mikroişlemciler Labaratuvarında bulunan bir çamaşır

makinesi simülatörünün kontrolü gerçekleştirilmi ştir. Bu işlemin gerçekleştirilebilmesi

için, bir PIC16F877 mikrodenetleyicisi kullanılmıştır. Bu çalışmada, bir PIC (Peripheral

Interface Controller) mikrodenetleyicisi için program hazırlanması, hazırlanan programın

mikrodenetleyiciye yüklenmesi ve uygulama devresi ile birlikte çalışmasına kadar olan

aşamalar, detaylı olarak anlatılmıştır.

PIC mikrodenetleyicisinin böyle bir uygulamada kullanılması ile birlikte, PLC ve diğer

kontrol elemanlarına oranla daha ucuz ve daha az yer kaplayan, kullanılması kolay bir yapı

meydana gelmektedir. Bu çalışmada bir PIC mikrodenetleyicisi için program yazmak üzere

“PIC BASIC” dili kullanılmış olup, zaman zaman “PIC ASSEMBLY” dilinden de

faydalanılmıştır.

Şekil 1.1’de bu tez çalışmasında kontrol edilen simülatörün bir resmi görülmektedir.

Yapılan çalışmalarda öncelikle çamaşır makinesi simülatörü için önceden tanımlanmış 8

farklı deney çalışması için problem tanımlanmış ve problemlerin çözümüne ilişkin akış

şemalarından faydalanarak programlar yazılmıştır. Hazırlanan her program, PROPIC

yazılımı ile çalışan programlama devresi kullanılarak PIC16F877 mikrodenetleyicisine

yüklenmiştir. Programlanan PIC16F877 mikrodenetleyicisi Şekil 1.2’de ve 1.3’de

görüldüğü gibi uygulama devresine bağlanarak çamaşır makinesi simülatörünün kontrolü

sağlanmıştır. Bu bitirme ödevinin bundan sonraki kısımları şu şekilde düzenlenmiştir.

BÖLÜM II’de, mikrodenetleyiciler ve PIC mikrodenetleyicilerine ait temel bilgiler

verilmiş ve özellikleri hakkında detaylı açıklamalar yapılmıştır.

BÖLÜM III’de, PIC16F877 mikrodenetleyicisinin karakteristik özelliklerine, port

fonksiyonlarına, RAM bellek organizasyonuna ve özel fonksiyonlara ait açıklamalar

yapılmıştır.

Page 13: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

13

BÖLÜM IV’de, Bytronic çamaşır makinesi simülatörüne ait tüm kısımlar ve sistemin

çalışmasına ilişkin bilgiler detaylı olarak verilmiş ve yazılacak programlara değinilmiştir.

BÖLÜM V’de, PIC BASIC ile programlama, pic basic komut seti, değişkenler, etiketler,

nümerik sabitler, portlar, zaman gecikmeleri, döngü düzenlemek, kontrol sağlamak,

kesmeler, intcon register, option register, tmr0, prescaler kullanımı ve microcode studio

programından bahsedilmiştir.

BÖLÜM VI’da çamaşır makinası simülatörü kontrol devresi ve bu çalışmaya ait Pic Basic

Pro kodları bulunmaktadır.

BÖLÜM VII’de ise sonuç ve öneriler bulunmaktadır.

Şekil 1.1 Çamaşır Makinesi Simülatörünün Genel Görünüşü

Page 14: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

14

Şekil 1.2 Simülatörün Uygulama Devresine Bağlanmasına Ait Blok Diyagram

Şekil 1.3 Simülatörün Uygulama Devresi ve Güç Kaynağına Bağlanması

Çamaşır Makinası

Simülatörü

PIC16F877

Mikrodenetleyicili Kontrol

Devresi

40 Yollu IDE Kablosu

Page 15: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

15

BÖLÜM II

TEMEL B İLGİLER

2.1. Mikrodenetleyiciler

Bir mikrodenetleyici karmaşık lojik fonksiyonları tek bir entegrede toplayıp sunan bir

cihazdır denilebilir. Genelde başlı başına bir sistem olmayıp, başka bir sistemi yönetmek

amacıyla kullanılır. MCU'larda (Micro Control Unit) klasik mikroişlemcili sistemlerden

farklı olarak program belleği, RAM, I/O ve CPU bir aradadır.

Bu çalışmamda bir çamaşır makinesi similatorünün (maket model) kontrolünü bir

mikrodenetleyici ile gerçekleştirilmi ştir. Mikrodenetleyici olarak microchip firmasının

PIC16F877 adlı mikrodenetleyicisi kullanılmıştır.

Bir mikrodenetleyici kabaca, bilgisayar içerisinde bulunması gereken temel bileşenlerden

RAM, I/O gibi bileşenleri içerisinde barındıran tek bir chip mahiyetindedir. Böyle olunca

bilgisayar kontrolü gerektiren elektronik uygulamalarda mikrodenetleyici kullanma eğilimi

artmaktadır. Çünkü bir mikroişlemci ile kontrol edilecek bir sistemi kurmak için, CPU,

RAM, I/O ve bu birimler arasındaki veri alış-verişini sağlayacak baskılı devreyi kurmak

gerekmektedir. Oysa aynı iş için bir mikrodenetleyici ve birde devre kartı kullanmak

yeterli olmaktadır. Bu da maliyet ve kolaylık anlamında bir mikrokontrolörün seçiminde

etkili olmaktadır.

Günümüzde mikrodenetleyciler kameralarda, otomobillerde, fax cihazlarında, fotokopi,

radyo, cep telefonları, tv, bazı oyuncaklar ve daha bir çok bilgisayar teknolojisi gerektiren

alanlarda kullanılmaktadır. Şekil 2.1’te bir mikrodenetleyiciye ait blok diyagram

verilmiştir.

Page 16: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

16

Çeşitli firmalar tarafından üretilmiş birbirinden farklı mikrodenetleyiciler bulunmaktadır.

Bunlar arasında yapısal olarak küçük farklar olmasına karşın genel olarak aynı işi

gerçekleştirmektedirler.

Şekil 2.1 Mikrodenetleyicili Bir Sisteme Ait Blok Diyagram

Bir mikrodenetleyicinin seçiminde hangi özelliklerin olması isteniyorsa önceden bunların

tespit edilmesi gerekir. Bu özellikler şu şekilde olabilir.

• Programlanabilir dijital paralel giriş / çıkış

• Programlanabilir analog giriş / çıkış

• Seri giriş / çıkış

• Motor veya servo kontrol için pals sinyali çıkışı

• Harici giriş vasıtasıyla kesme

• Timer vasıtasıyla kesme

• Harici bellek arabirimi

• Harici bus arabirimi

• Dahili bellek tipi seçenekleri

• Dahili RAM seçeneği

• Kayan nokta hesaplaması

2.2. PIC Mikrodenetleyicisi

PIC Serisi mikroişlemciler MICROCHIP firması tarafından geliştirilmi ş ve üretim amacı,

çok fonksiyonlu lojik uygulamalarının hızlı ve ucuz bir mikroişlemci ile yazılım yoluyla

karşılanmasıdır.

Çevresel üniteler Lamba,motor,ısı,ışık sensörü gibi… I/O

Mikrodenetleyici

Page 17: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

17

PIC’in kelime anlamı PERIPHERAL INTERFACE CONTROLLER’dur.(çevresel

birimleri denetleyici). İlk olarak 1994 yılında 16 bitlik ve 32 bitlik büyük işlemcilerin giriş

ve çıkışlarındaki yükü azaltmak ve denetlemek amacıyla çok hızlı ve ucuz bir çözüme

ihtiyaç duyulduğu için geliştirilmi ştir.

Çok geniş bir ürün ailesinin ilk üyesi olan PIC16C54 bu ihtiyacın ilk meyvesidir. PIC

işlemcileri RISC benzeri işlemciler olarak anılmaktadır. PIC16C54 12 Bit komut hafıza

genişliği olan 8 bitlik CMOS bir işlemcidir.18 bacaklı dip kılıfta 13 I/O bacağına sahiptir

ve 20 Mhz osilator hızına kadar kullanılabilir. 33 adet komut içermektedir. 512 byte

program epromu ve 25 byte RAM`i bulunmaktadır. Bu hafıza kapasitesi birçok insanı

güldürmüştür ama bir risc işlemci olması birçok işin bu kapasitede uygulanmasına olanak

vermektedir.

PIC serisi tüm işlemciler herhangi bir ek bellek veya giriş/çıkış elemanı gerektirmeden

sadece 2 adet kondansatör, 1 adet direnç ve bir kristal ile çalıştırılabilmektedir. Tek

bacaktan 40 mA akım çekilebilmektedir ve entegre toplam olarak 150 mA akım akıtma

kapasitesine sahiptir. Entegrenin 4 Mhz osilator frekansında çektiği akım çalışırken 2 mA

stand-by durumunda ise 20uA kadardır.

PIC 16C54 ‘un mensup olduğu işlemci ailesi 12 Bit core PIC16C5X olarak anılır. Bu

gruba temel grup adı verilir. Bu ailenin üyesi diğer işlemciler PIC16C57, PIC16C58 ve

dünyanın en küçük işlemcisi olarak anılan 8 bacaklı PIC12C508 ve PIC 12C509’dur.

Interrupt kapasitesi ilk işlemci ailesi olan 12 Bit core PIC16C5X ailesinde

bulunmamaktadır. Daha sonra üretilen ve orta sınıf olarak tanınan 14Bit core- PIC16CXX

ailesi birçok açıdan daha yetenekli bir grup işlemcidir. Bu ailenin temel özelliği interrupt

kapasitesi ve 14 bitlik komut işleme hafızasıdır. Bu özellikler PIC’i gerçek bir işlemci

olmaya ve karmaşık işlemlerde kullanılmaya yatkın hale getirmiştir. PIC16CXX ailesi en

geniş ürün yelpazesine sahip ailedir. PIC16CXX ailesinin en önemli özellikleri seri olarak

devre üstünde(ICSP) dahi programlanmasıdır. Bu özellik PIC16C5x de epey karmaşıktır ,

paralel programlanabilmektedir, interrupt kabul edebilmektedir, 33 I/O,AD Converter,

USART, I2C, SPI gibi endüstri standardı giriş çıkışları kabul edecek işlemcilere ürün

yelpazesinde yer vermektedir.

Page 18: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

18

PIC 16CXX ailesi amatör elektronikçiler arasında en çok bilinen işlemci ailesidir ve

dünyada üzerinde pek çok proje üretilmiştir. İnternetin gözdesi olan bireyi PIC16C84 veya

yeni adıyla PIC16F84’dür. PIC 16F84’ün bu kadar popüler olması onun çok iyi bir işlemci

olmasından ziyade program belleğinin Eeprom - Elektrikle silinip yazılabilen bellek

olmasından kaynaklanmaktadır. Seri olarak dört adet kabloyla programlanması da diğer

önemli avantajıdır. Bugüne kadar amatörce bir işlemciyle uğraşmış herkesin en büyük

sıkıntısı eprom veya eprom tabanlı işlemcileri programladıktan sonra UltraViole ışık

kaynağı ile silip tekrar programlamaktır. Bu çok zahmetli ve bir amatör için ekipman

gerektiren yöntem olmuştur. Evde üretilmesi zor olan özel bir programlayıcı da

madalyonun diğer yüzüdür.

PIC gerçekten de çevresel üniteler adı verilen lamba, motor, röle, ısı ve ışık sensörü gibi

I/O elemanlarının kontrolünü yapabilmektedir. Bunun yanında bir PIC’i programlamak

için kullanılacak olan komutlar oldukça basit ve sayı olarak da azdır.

2.2.1. PIC mikrodenetleyici tercih nedenleri

PIC Mikrodenetleyicilerinin tercih nedenleri şunlardır:

• Maliyetinin oldukça ucuz olması.

• Yüksek frekanslarda çalışabilmesi.

• Standby durumunda çok düşük akım çekmesi.

• Aynı anda birçok işlemi kod sıkıştırma özelliği sayesinde yapabilmesi.

• Yazılımın internetten ücretsiz temin edilebilmesi.

• Çok az donanıma ihtiyaç duyması.

• Kullanıcı kesiminin fazla olması.

• PIC’e göre diğer mikrodenetleyicilerde veriyi taşıyan bir tek bus bulunması,

dolayısıyla diğer mikrodenetleyicilerden iki kat daha hızlı olması.

• İnterrupt kapasitesi ve 14 bit komut işleme hafızasına sahip olmasıdır.

Ayrıca bunun yanında birçok PIC mikrodenetleyicisinin program belleği FLASH

teknolojisi ile üretilmektedir. FLASH MEMORY teknolojisi ile üretilen bir belleğe

yüklenen program entegreye uygulanan enerji kesilse dahi silinmemektedir. Yine

Page 19: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

19

istenirse bu tip belleğe eski program silinip yeniden program yazılabilmektedir.

FLASH bellekler bu özelliği gereği EEPROM ile aynı görünmektedir. Bazı üreticiler

EEPROM belleğe FLASHROM da demektedirler.

Bu özellik kullanıcı açısından çok büyük kolaylıklar sağlamaktadır. Böylece

programlamaya yeni başlayanlar yaptığı hatalardan dolayı entegreyi atmak zorunda

kalmamaktadırlar.

2.2.2. PIC programlamak için

PIC programlamak için gerekli olan donanım ve yazılımlar şu şekildedir:

• IBM uyumlu bir bilgisayara sahip olmak ve temel kullanımlarını bilmek

• Bir metin editörü kullanmasını bilmek.

• PIC assembler derleyicisine sahip olmak

• PIC programlayıcı donanımına sahip olmak.

• Pic programlayıcı yazılımına sahip olmak.

• PIC mikrodenetleyicisine sahip olmak.

• Breadboard, güç kaynağı ve çeşitli elektronik elemanlara sahip olmak

gerekmektedir.

Page 20: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

20

BÖLÜM III

PIC16F877’NİN KULLANILMASI

3.1. PIC16F877’nin Özellikleri

PIC16F877, belki en popüler PIC işlemcisi olan PIC16F84’ten sonra kullanıcılarına yeni

ve gelişmiş olanaklar sunmasıyla hemen göze çarpmaktadır. Program belleği FLASH

ROM olan PIC16F877’de, yüklenen program PIC16F84’te olduğu gibi elektriksel olarak

silinip yeniden yüklenebilmektedir. Çizelge 1’de PIC16F877 ve PIC16F84 işlemcileri

arasında özellik karşılaştırması yapılmıştır.

Özellikle PIC16C6X ve PIC16C7X ailesinin tüm özelliklerini barındırması, PIC16F877’yi

kod geliştirmede de ideal bir çözüm olarak gündeme getirmektedir. Konfigürasyon

bitlerine dikkat etmek şartıyla C6X veya C7X ailesinden herhangi bir işlemci için

geliştirilen kod hemen hiçbir değişikli ğe tabi tutmadan F877’e yüklenebilir ve çalışmalarda

denenebilir. Bunun yanı sıra PIC16F877, PIC16C74 ve PIC16C77 işlemcileriyle de bire

bir bacak uyumludur.

3.2. PIC16F877 Portlarının Fonksiyonları

3.2.1. Port a :

Her bir biti bağımsız olarak giriş veya çıkış olarak tanımlanabilmektedir. 6 bit

genişliğindedir (PICF84’de 5 bittir). RA0, RA1, RA2, RA3, RA4 ve RA5 bitleri analog /

sayısal çevirici olarak konfigüre edilebilmektedir. Buna ek olarak RA2 ve RA3 gerilim

referansı olarak da konfigüre edilebilmektedir. (bu durumda bu bitler aynı anda A / D

çevirici olarak kullanılamamaktadır) . İlgili registerlar ve adresleri aşağıdaki gibidir.

Page 21: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

21

PORTA 0x05

TRISA 0x85 ; giriş / çıkış belirleme registeri

ADCON1 0x9F ; RA portlarının A / D, referans gerilimi veya sayısal giriş /

çıkış olarak seçiminde kullanılmaktadır.

Çizelge 1. PIC16F877 ile PIC16F84’ün karşılaştırılması

ÖZELL İKLER PIC16F877 PIC16F84

Çalışma hızı DC-20Mhz DC-10Mhz

Program belleği 8K×14 word Flash ROM 1K×14 word Flash ROM

EEPROM Veri belleği 256 byte 64 byte

Kullanıcı RAM 368×8 byte 68×8 byte

Giriş / Çıkış port sayısı 33 13

Timer Timer0, Timer1, Timer2 Timer0

A/D çevirici 8 kanal 10 bit YOK

Capture / Comp./ PWM

16 bit Capture

16 bit Compare

10 bit PWM çözünürlük

YOK

Seri çevresel arayüz

SPI(Master) ve

12C(Master/Slave)

modunda SPI portu

(senkron seri port)

YOK

Paralel slave port 8 bit, harici RD,WR ve CS

kontrollü YOK

USART/SCI 9 bit adresli YOK

İşlemciye ilk defa gerilim uygulandığında RA4 hariç diğer beş PORTA biti A / D

çeviricidir. Eğer RA portunun bazı bitlerini sayısal giriş / çıkış olarak kullanmak istersek

ADCON1 registerında değişiklik yapmamız gerekmektedir.

3.2.2. Port b:

Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit

genişliğindedir. B portunun her bacağı dahili bir dirençle VDD’ye bağlıdır. ( weak pull-

Page 22: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

22

up). Bu özellik varsayılan olarak etkin değildir. Ancak OPTION registerinin 7.bitini 0

yaparak B portunun bu özelliğini etkinleştirilebilir.

RB4-RB7 bacakları aynı zamanda bacakların sayısal durumlarında bir değişiklik

olduğunda INTCON registerının 0. biti olan RBIF bayrağını 1 yaparak kesme

oluşturmaktadır. Bu özelliği, işlemci SLEEP konumundayken, devreye bağlı tuş takımının

her hangi bir tuşa basıldığında işlemcinin yeniden etkinleşmesi için kullanabilir. Bütün

bunların yanı sıra RB6 ve RB7 yüksek gerilim programlama, RB3 ise düşük gerilim

programlama modlarında da kullanılmaktadır. İlgili registerlar ve adresleri aşağıdaki

gibidir.

PORTA 0x06

TRISB 0x86 ; giriş / çıkış belirleme registeri

OPTION_REG 0x81 , 0x181

3.2.3. Port c :

Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit

genişliğindedir. Tüm port bacakları Schmitt Trigger girişlidir. TRISE registerının 4. biti

olan PSPMODE bitini 1 yaparak “parallel slave mode” da kullanılabilir. Bu fonksiyon

aracılığıyla 8 bit genişliğindeki her hangi bir mikroişlemci bus’ına bağlanabilir. İlgili

registerlar ve adresleri aşağıdaki gibidir.

PORTC 0x07

TRISC 0x087 ; giriş / çıkış belirleme registeri

3.2.4. Port d :

Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit

genişliğindedir. Tüm port bacakları Schmitt Trigger girişlidir. TRISE registerının 4.biti

olan PSPMODE bitini 1 yaparak “parallel slave mode”da kullanılabilir. Bu fonksiyon

aracılığıyla 8 bit genişliğindeki herhangi bir mikroişlemci bus’ına bağlanabilir.

Page 23: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

23

PORTD 0x08

TRISD 0x88

TRISE 0x89

3.2.5. Port e :

Her bir biti bağımsız olarak giriş veya çıkış olarak tanımlanabilmektedir. 3 bit

genişliğindedir. RE0, RE1 ve RE2 bacaklarında Schmitt Trigger giriş tamponları vardır.

Her bir bacak analog / sayısal çevirici olarak konfigüre edilebilmektedir. Eğer PORTD

paralel slave port olarak konfigüre edilirse, RE0, RE1 ve RE2 bacakları PORTD’nin

bağlandığı mikroişlemci bus’ına sırasıyla READ, WRITE ve CHIP SELECT kontrol

girişleri olarak kullanılabilmektedir. Bunun için TRISE uygun biçimde ayarlanmalıdır.

İlgili registerlar ve adresleri aşağıdaki gibidir.

PORTE 0x09

TRISE 0x89 ; giriş / çıkış belirleme registeri

ADCON1 0x9F ; RE portlarının A / D veya sayısal giriş / çıkış olarak

seçiminde kullanılmaktadır.

İşlemciye ilk defa gerilim uygulandığında üç PORTE biti de A / D çeviricidir. Eğer RE

portunun bazı bitlerini sayısal giriş / çıkış olarak kullanmak istenirse ADCON1

registerında değişiklik yapılması gerekecektir.

3.3. Program ve Kullanıcı RAM Bellek Organizasyonu

PIC16F877’de üç bellek bloğu bulunmaktadır. Program ve kullanıcı veri belleği ayrı bus

yapısına sahiptir ve aynı anda erişilebilmektedir. F877’de 13 bitlik bir program sayacı

vardır ve 8Kx14 word adreslemeye yeterlidir. Reset vektörü 0x00’da kesme vektörüyse

0x04’de yer almaktadır.

Kullanıcı veri belleği birden fazla register bankasına bölünmüştür. Bu register banklarında

hem genel amaçlı registerlar hem de özel fonksiyon registerları (SFR)

bulunmaktadır.Register bankasını seçmek için STATUS registerındaki RP1 ve RP0 bitleri

Page 24: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

24

kullanılmaktadır. F84’de iki register bankası olduğunu ve yalnızca RP0 bitini ayarlamak

suretiyle ilgili register bankasının seçildiğine dikkat edilmelidir. ( Çizelge 2 ).

Çizelge 2. Status registerı

IRP RP1 RP0 TO PD Z DC C

Bit7 bit0

< RP1, RP0 > bitleri aşağıdaki gibi ayarlanarak istenilen register bankasına

erişebilmektedir. Her register bankası 128 byte genişliğindedir. ( 7Fh ).

Çizelge 3. Status Register Bank Seçme Bitleri

3.4. Özel Fonksiyonlar

3.4.1 Paralel slave port:

TRISE registerının PSPMODE biti 1 yapıldığında PORTD 8 bit genişliğinde mikroişlemci

portu olarak kullanabilir. Bu arada RE0, RE1 ve RE2’yi, TRISE ve ADCON1

registerlarında ilgili ayarları yaparak sayısal giriş olarak da tanımlamak gerekmektedir.

Böylece harici bir mikroişlemci, RE0, RE1 ve RE2’yi kontrol olarak kullanarak 8 bitlik

veri bus’ına bağlı PIC16F877’nin PORTD’sine hem veri yazabilmekte, hem de

okuyabilmektedir.

3.4.2. Usart :

USART , yani senkron / asenkron alıcı verici PICF877’deki iki seri giriş / çıkış

modülünden biridir. Seri iletişim arayüzü ( SCI:serial comm.interface ) olarak da bilinen

USART, monitör veya PC gibi aygıtlara tam çift yönlü asenkron bağlantıda kullanılmak

00 Bank 0

01 Bank 1

10 Bank 2

11 Bank 3

Page 25: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

25

üzere konfigüre edilmiştir. A / D veya D / A arayüzlerine, seri kullanılmak üzere konfigüre

edilebilmektedir. USART aşağıdaki gibi konfigüre edilebilmektedir.

• Asenkron : Tam çift yönlü ( full duplex )

• Senkron : Master, yarım çift yönlü ( half duplex )

• Senkron : Slave, yarım çift yönlü

RC6 verici, RC7 ise alıcı port olarak kullanılmaktadır. RCSTA ( 0x18 ) ve TXSTA ( 0x98)

registerları da konfigürasyonda kullanılmaktadır.

3.4.3. Master synchronous serial port (MSSP)

MSSP modülü, diğer çevre birimleri veya mikroişlemcilerle seri iletişimde

kullanılmaktadır. Bu çevre birimleri seri EEPROM, kaydırmalı registerlar ( shift register ),

gösterge sürücüleri, A / D çeviriciler vb. olabilir. MSSP modülü aynı anda aşağıdaki iki

moddan birine konfigüre edilebilir.

RC5: Seri veri çıkışı (SDO:Serial data out)

RC4: Seri veri girişi (SDI: Serial data in)

RC3: Seri saat(SCK:Serial clock)

Bu modlardan birine göre konfigüre etmek içinse SSPSTAT (senkron seri port durum

registerı, 0x94), SSPCON (senkron seri port kontrol registerı, 0x14) ve SSPCON2

(senkron seri port kontrol registerı 2,0x91) registerları ayarlanmalıdır.

3.4.4. Analog / sayısal çevirici modülü:

A / D modülü 16C7X ailesinden farklı olarak 10 bittir. Toplam 8 A / D kanal

bulunmaktadır. F877’nin güzel bir özelliği de işlemci SLEEP modundayken bile A / D

çeviricinin geri planda çalışmasıdır. A / D kanalları için RA4 hariç diğer RA portları ve RE

portları kullanılabilir. Aşağıda ilgili registerlar ve adresleri gösterilmiştir.

ADRESH 0x1E ; A / D sonuç registerı (high register)

Page 26: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

26

ADRESL 0x9E ; A / D sonuç registerı (low register)

ADCON0 0x1F ; A / D kontrol registerı 0

ADON1 0x9F ; A / D kontrol registerı 1

3.4.5. Capture / compare ve pwm modülü:

Her capture /compare ve pwm modülü 16 bitlik yakalama (capture registerı, 16 bitlik

karşılaştırma ( compare ) registerı veya 16 bitlik PWM (darbe genişlik modülayonu)

registerı olarak kullanılmaktadır.

Yakalama (capture) modunda, TMR1 registerının değeri, RC2 / CCP1 bacağının

durumunda bir gelişme olduğunda CCPR1H:CCPR1L registerlarına yazılmakta ve PIR1

registerının 2. biti olan CCP1IF kesme bayrağı 1 olmaktadır. RC2 bacağının durumu, her

düşen kenarda, her yükselen kenarda, her yükselen 4. veya 16. kenarda kontrol edilecek

şekilde CCP1CON registerı aracılığıyla ayarlanarak konfigüre edilebilir.

Karşılaştırma (compare) moduysa CCPR1 registerındaki 16 bitlik değer düzenli olarak

TMR1 register değeriyle karşılaştır ve bir eşitlik olduğunda RC2 / CCP1 bacağı

CCP1CON registerında yaptığımız ayara göre 1, 0 olur veya durumunu korur. PWM

modundaysa RC2 / CCP1 bacağı 10 bit çözünürlükte darbe genişlik modülasyonlu bir

sinyal üretecek şekilde konfigüre edilebilir. PR2 registerı darbe genişlik periyodunun

tayininde kullanılmaktadır. Aşağıda ilgili registerlar ve adresleri gösterilmiştir.

CCPR1H 0x16 ; Yakalama / karşılaştırma registerı ( High register )

CCPR1L 0x15 ; Yakalama / karşılaştırma registerı ( Low register )

CCP1CON 0x17 ; Kontrol registerı

PR2 0x92 ; PWM çıkış registerı

TMR1L 0x0E ; TMR1 registerı ( High register )

TMR1H 0x0F ; TMR1 registerı ( Low register )

Page 27: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

27

3.5. RAM Bellek

PIC16F877’nin 0x00~7Fh adres aralığına ayrılmış olan RAM belleği vardır. Bu bellek

içerisindeki file registerleri içerisine yerleştirilen veriler PIC CPU’sunun çalışmasını

kontrol etmektedir. File register adı verilen özel veri alanlarının dışında kalan diğer bellek

alanları, normal RAM bellek olarak kullanılmaktadırlar. Şekil 3.1’de PIC16F877’nin

kullanıcı RAM bellek haritası görülmektedir.

Şekil 3.1.PIC16F877’nin RAM Bellek Haritası

Page 28: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

28

3.6. PIC16F877’nin Besleme Uçları ve Beslenmesi

PIC16F877’nin besleme gerilimi 11, 12 ve 31, 32 numaralı pinlerden uygulanmaktadır. 11

ve 32 numaralı Vdd ucu +5 V’a ve 12, 31 numaralı Vss ucu toprağa bağlanır. PIC’e ilk

defa enerji verildiği anda meydana gelebilecek gerilim dalgalanmaları nedeniyle,

oluşabilecek istenmeyen arızaları önlemek amacıyla 100nF’lık dekuplaj kondansatörünün

devreye bağlanması gerekmektedir. PIC’ler CMOS teknolojisi ile üretildiklerinden 2 ila 6

volt arasında çalışabilmektedirler. +5 V’luk bir gerilim ise ideal bir değer olmaktadır.

3.7. PIC16F877’nin Reset Uçları

Kullanıcının programı kasti olarak kesip başlangıca döndürebilmesi için PIC’in 1 numaralı

ucu MCLR olarak kullanılmaktadır. MCLR ucuna 0 Volt uygulandığında programın

çalışması başlangıç adresine döner. Programın ilk başlangıç adresinden itibaren tekrar

çalışabilmesi için, aynı uca +5 v gerilim uygulanmalıdır.

3.8. PIC16F877’nin Clock Uçları ve Osilatör Tipleri

PIC16CXX mikrodenetleyicilerinde 4 çeşit osilatör bulunmaktadır. Kullanıcı bu 4 çeşitten

birini seçerek iki konfigürasyon bitini (FOSC1 ve FOSC2) programlayabilir. Bu osilatör

çeşitleri çizelgede verilmiştir. PIC16F877’de clock uçları 13 ve 14 nolu pinlerdir.

Hazırlanacak olan PIC programlarında kullanılan osilatör tipi PIC programının çalışma

hızını ve hassasiyetini etkileyeceğinden dolayı amaca uygun bir osilatör devresi

kullanılmalıdır. Çizelge 4’de farklı osilatör çeşitleri ve özellikleri görülmektedir. Osilatör

tipinin seçiminde dikkat edilecek bir başka nokta ise, seçilecek olan osilatörün kullanılan

PIC’in özelliğine uygun olarak seçilmesidir. Örnek verecek olursak 10MHz çalışma

frekansına sahip bir PIC16F877 için 20MHz’lik bir osilatör kullanmak doğru olmaz. Fakat

daha düşük bir frekans değeri ile çalışan bir osilatör devresi kullanılabilir.

Çizelge 4. Osilatör çeşitleri

Osilatör Tipi Tanımı Özelliği Frekansı

LP Kristal osilatör veya seramik rezonatör Asgari akım 40KHz

XT Kristal osilatör veya seramik rezonatör Genel amaçlı 4MHz

HS Kristal osilatör veya seramik rezonatör Yüksek hız 20MHz

RC Direnç / Kapasitör zaman sabitli Düşük maliyet 4MHz

Page 29: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

29

3.8.1. Kristal osilatör / seramik rezonatör

XT, LP ve HS modları, RC osilatörlere nazaran çok daha hassastırlar. Bu modlar, kristal

osilatör veya rezonatörlerin, OSC1 / CLKIN ve OSC2 / CLKOUT uçlarına

bağlanmalarıyla kurulmaktadır. Çizelge 4’te hangi frekansta kaç pF’lık kondansatör

kullanılması gerektiği belirtilmiştir.

Çizelge 5. Frekansa Göre Kondansatör Seçimi

OSİLATÖR T İPİ FREKANS KONDANSATÖR

LP 32KHz 33-68pF

200 KHz 15-47pF

100KHz 47-100pF

XT 500KHz 20-68pF

1MHz 15-68 pF

2MHz 15-47 pF

4MHz 15-33 pF

HS 8MHz 15-47 pF

20MHz 15-47 pF

3.8.2. RC osilatör

Zamanlamanın çok hassas olmadığı durumlarda RC ikilisi osilatör kaynağı olarak

kullanılmaktadır. RC osilatör, maliyetin azaltılmasını sağlamaktadır. Kullanıcı dış R ve C

elemanlarının toleransı nedeniyle meydana gelen değişiklikleri de dikkate almalıdır.

Direncin değeri 3 ila 100Kohm arasında seçilmelidir. 1Mohm gibi yüksek direnç değerleri

osilatörü gürültü ve nem gibi çevresel etkilere karşı duyarlı hale getirir. 2, 2 Kohm

değerinin altında ise, osilatör kararsız hale gelebilmekte, hatta tamamıyla durabilmektedir.

3.9 Kesmeler ( Interrupts )

PIC’in port girişlerinden veya donanım içerisindeki bir sayıcıdan gelen sinyal nedeniyle

belleğinde çalışmakta olan programın kesilmesi olayına kesme denir. Programın kesildiği

Page 30: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

30

andan itibaren önceden hazırlanan bir alt program çalışır. Alt program işlevini bitirdikten

sonra ana program kaldığı yerden itibaren çalışmasına devam etmektedir. Netice olarak bir

kesme, ana program çalışmasını sadece duraklatır ama hiçbir zaman işlevini devam

ettirmesini engellemez. Interrupt alt programları kullanarak, program içerisinde

kullanılacak komut sayısı azaltılır ve bir sürü mantıksal karışıklıklar önlenir. Kesme olayı

sırasında meydana gelecek olan olayları sıralayacak olursak;

1. Kesme olayı meydana geldiğinde STACK registerin olduğu adrese (h’23F’) atlanır.

2. Ana programın kaldığı adresi stack registere yazılır.

3. Kesme alt programı çağrılır.

4. Kesme alt programının olduğu adrese atlanır.

5. Kesme alt programı çalıştırılır.

6. STACK (Yığın) registerin bulunduğu adrese gidilir.

7. Ana programa dönüş adresini alınır.

8. Ana programın kesildiği yerdeki adresten bir sonraki adrese gidilir ve devam edilir.

Bunu şematik olarak ifade etmek gerekirse aşağıdaki gibi olur.

Şekil 3.2. Kesme olayı

Page 31: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

31

3.9.1. INTCON register

INTCON (Interrupt Control) registeri RAM bellekte h’18B’ adresinde bulunan özel bir

registerdir. Bu register içerisinde her bir kesme kaynağı için bir flag ve bir de global kesme

flagi bayrağı bulunmaktadır.

Çizelge 6. Intcon register

7 6 5 4 3 2 1 0

GIE EEIE TOIE INTE RBIE TOIF INTF RBIF

GIE : Tüm kesme işlemlerini iptal etme bayrağı

0: Tüm kesmeler geçersiz

1: Aktif yapılmış olan tüm kesmeler geçerli

EEIE : EEPROM belleğe yazma işlemi tamamlama kesmesi

0: Geçersiz

1: Geçerli

TOIE : TMR0 sayıcı kesmesini aktif yapma bayrağı

0: Geçersiz

1: Geçerli

INTE : Harici kesmeyi aktif yapma bayrağı

0: Geçersiz

1: Geçerli

RBIE : PORTB(4, 5, 6, 7.bitleri) değişiklik kesmesini aktif yapma bayrağı

0: Geçersiz

1: Geçerli

TOIF : TMR0 sayıcısı zaman aşımı bayrağı

0: Zaman aşımı yok

1: Zaman aşımı var

INTF : Harici kesme bayrağı

0: Harici kesme oluşmadığında

RBIF : PORTB değişiklik bayrağı

0: RB4~RB7 uçlarında değişiklik yok

1: RB4~RB7 uçlarından en az birisinde değişiklik var.

Page 32: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

32

Tüm kesme işlemlerinin kontrolü bu register aracılığı ile yapılır. Çizelge 6’da intcon

registerin her bir bitinin ne işe yaradığı gösterilmiştir.

3.9.2. Kesme kaynakları

Kesme birkaç yoldan yapılabilmektedir. Bunlardan bazıları:

• Harici(external) kesmeler.

• TMR0 sayıcısında oluşan zaman aşımı kesmesi.

• PORTB(4, 5, 6, 7 bitler)’deki lojik seviye değişikli ğinden kaynaklanan kesmeler.

• EEPROM belleğe yazma işleminin tamamlanmasında meydana gelen kesmeler.

Bu çalışmada kullanılan kesme portb.0’da oluşan kesmedir.

3.9.3. TMR0 sayıcısı / zamanlayıcısı

PIC16F877’nin RAM belleğinin h’101’ adresinde TMR0 adı verilen özel bir register

bulunmaktadır.(TMR0) TMR0 programlanabilen bir sayıcıdır. Yani saymaya istenilen bir

değerden veya baştan başlatılabilir. Herhangi bir anda içeriği sıfırlanabilir. Belli başlı

özellikleri şunlardır.

• 8-bit bir sayıcıdır.

• Yazılabilir / okunabilir.

• Programlanabilen frekans bölme değeri ( prescaler value ) vardır.

• Sayı artışı harici veya dahili clock saykılı ile yapılabilir.

• Düşen ve yükselen kenar tetiklemesi ( harici olarak )

• Sayıcı değeri artan yöndedir.

• TMR0’ın değeri h’FF’den h’00’a gelince ilgili flag’i “1” yaparak kesme oluşturur.

TMR0 sayıcısının önemli özelliklerinden biri de ana program veya kesme alt programları

çalışırken sayma işlemini durdurmamasıdır.

Page 33: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

33

3.9.4. OPTION register

OPTION register, RAM belleğin h’81’adresinde bulunan özel bir registerdir. TMR0

sayıcısının kontrolünde kullanılmaktadır. Çizelge 6’de bu registerin her bir bitinin ne

görevler yaptığı açıklanmıştır.

Çizelge 7. Option register

7 6 5 4 3 2 1 0

PS0, PS1, PS2 :Frekans bölme sayısı

PSA :Frekans bölücü seçme biti

0:Frekans bölme sayısı TMR0 için geçerli

1:Frekans bölme sayısı WDT için geçerli

TOSE :TMR0 sinyal kaynağı kenar seçme biti

0:RA4/TOCKI ucundan düşen kenar tetiklemesi

1: RA4/TOCKI ucundan yükselen kenar tetiklemesi

TOCS :TMR0 sinyal kaynağı seçme biti

0:Dahili komut saykılı seçilir

1:Harici dijital sinyal(RA4/TOCKI ucu)

INTEDG :Harici kesme sinyali kenar seçme biti

0:RB0/INT ucundan düşen kenarda tetikleme

1: RB0/INT ucundan yükselen kenarda tetikleme

RBPU :PORTB pull up geçerli yapma biti

0:PORTB uçlarındaki pull-up’lar iptal edilir.

1: PORTB uçlarındaki pull-up’lar geçerli yapılır

RBPU INTEDG TOCS TOSE PSA PS2 PS1 PS0

Page 34: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

34

3.9.5 Prescaler kullanımı

Option registerin 0, 1, 2. bitleri (PS0~PS2) içerisine yerleştirilen sayılar, TMR0 veya

WDT’ye uygulanan sinyali bölmektedir. Böylece sayma hızları değiştirilebilir. Üç bitlik

bu sayı TMR0 veya WDT’de birbirinden farklı 8 farklı oran seçme olanağı

oluştururmaktadır. Çizelge 8’de prescaler değerleri görülmektedir.

Çizelge 8. Prescaler Değerleri

Frekans

bölme sayısı

TMR0

oranı

WDT

oranı

000 1/2 1/1

001 1/4 1/2

010 1/8 1/4

011 1/16 1/8

100 1/32 1/16

101 1/64 1/32

110 1/128 1/64

111 1/256 1/128

TMR0 veya WDT sayıcılarının kaç dahili komut saykılında bir defa bir üst sayıya geçişini

belirleyen orandır. Örneğin;

TMR0 oranı 1/2 ise, 2 komut saykılında bir defa üst sayıya geçiş olmaktadır.

TMR0 oranı 1/8 ise, 8 komut saykılında bir defa üst sayıya geçiş olmaktadır.

Program belleğine yerleştirilen komutların çalışabilmesi için harici bir osilatörden clock

sinyali ( fosc ) uygulanması gerekmektedir. Bu frekans PIC tarafından 4’e bölünerek OSC2

ucundan dışarıya verilir. İşte 4’e bölünen bu frekansın bir saykılı bir komutun icrası için

geçen süredir. Bu çalışmamızda 4 MHz’lik bir kristal osilatör kullanılmıştır. Bu frekanstaki

dahili komut saykılı 1MHz’dir. Peryodu ise 1µs’dir. Yani dahili komut saykılı 1 µs’dir. Bir

Page 35: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

35

komut 1 µs’lik bir sürede icra edilmektedir. Prescaler değeri ile TMR0 sayıcısının kaç µs

aralıklarla saydığını veya kaç µs aralıklarla kesme verdiğini belirlenmektedir.

Örneğin, bu çalışmada prescaler değeri b’111’ seçilmiştir. Prescaler b’111’ olduğunda

TMR0 oranı 1/256 olmaktadır. fosc değeri 4MHz olduğundan, komut saykılı 1µs olur.

Buradan TMR0 sayıcısının 256 dahili komut saykılında 1 defa arttığı anlaşılır. TIMER0

sayma aralığı bu çalışma için 256 µs’dir. TMR0 saymaya başladığında ilk sayı h’00’

olduğundan TIMER0

256 µs x 256 = 65536 µs(65.5ms)

aralıklarla kesme sinyali verecektir.

Page 36: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

36

BÖLÜM IV

BYTRONIC ÇAMA ŞIR MAK İNASI SİMÜLATÖRÜ

Bu bölümde, çamaşır makinesi simülatörüne ait kullanım kılavuzunun tercümesi

verilmiştir.

4.1. Giriş

Mikroişlemcili kontrol sistemlerinin kullanımı, üretkenliğin ve etkinliğin artırılmasında

önemli fikirler olarak kabul edilmektedir. Bytronic çamaşır makinası simülatörü gerçek bir

çamaşır makinasını temsil edecek şekilde, özel olarak dizayn edilmiştir. Ünite IBM

uyumlu bir bilgisayara kolayca bağlanır. BBC mikrobilgisayar ya da Bytronic 8051 tek

çip mikrobilgisayar, TTL portların iki 8 bit seçimlerini denetleyicidir.

Çamaşır makinası simülatörünün elektronik kontrol devresi olayca anlaşılabilmektedir ve

tamamıyla etiketlenmiştir. Anahtarlama hatalarına, sistem için kabul edilebilen genel

hatalar çerçevesinde müsaade edilmiştir. Öğrenciler hataları iyi belirlemeli ve bu nedenle

devrelerin standart test elemanlarıyla kullanımını iyi bilmelidirler.

4.2. Başlangıç

Bytronic çamaşır makinası simülatorü (WMS) iki ya da daha fazla 8 bit TTL giriş/çıkış

portlu mikroişlemci tabanlı denetleyicilere bağlanabilir. Uygun arabağı, kablo bağlantıları

ve yazılım aşağıdaki mikrobilgisayarlara bağlanabilir.

a) IBM XT/ AT / uyumlu donanım

b) BBC Mikrobilgisayar

c) Z80 Tabanlı Becca / Becca+Mikrodeneyiciler

d) Bytronic 8051 tek çip mikro denetleyici

Alternatif olarak, çamaşır makinası Bytronic genel PLC arabağını (MPPL1) kullanan bazı

PLC’lere bağlanabilmektedir.

Page 37: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

37

4.2.1 Çamaşır makinasının bir ibm ya da uygun donanıma bağlanması

Genel olarak, basit IBM ya da uygun donanımlı bir mikrobilgisayar, giriş/çıkış kolaylığına

(kabiliyetine) sahip değildir. Bytronic üç tane 8 bit I/O portu ve üç sayıcı / zamanlayıcı

kanalları sağlayan bir I/O kartı (MPIBM1) sunmaktadır.

Extra bir seçim gibi, bağlantı seçimlerinin sırasına ve led port çıkışına sahip bir IBM dış

arabağı kartı (MPIBM2) olarak da kullanılabilir. Çamaşır makinası direk olarak iç karta ya

da opsiyonel IBM dış karta bağlanabilir. Diğer bir durum, port işlevleri Ek 4.1’de

listelendiği gibidir.

4.2.1.1. IBM iç arabağı (MPIBM1) için çamaşır makinası

BİLGİSAYARI ÇALIŞTIRMADAN ÖNCE, ÇAMAŞIR MAK İNASI VE BİLGİSAYAR

ARASINDAK İ BAĞLANTILAR VE ÇAMA ŞIR MAK İNASI İLE GÜÇ KAYNAĞI

ARASINDAK İ BAĞLANTILARIN TAMAMLANMASINA LÜTFEN D İKKAT

EDİNİZ.

Çamaşır makinasının IBM iç arabağına bağlantısı, mikrobilgisayarın arkasında bulunan 40

yollu IBM iç arabağı kablosu ile sağlanmaktadır.

4.2.1.2.Ibm dış arabağı (mpibm2) için çamaşır makinası

Çamaşır makinasının IBM dış arabağına bağlantısı MPCT2 IDC bağlantı kablosu ve iç

saat bağlantılarını sağlayan iki kablo iledir. MPCT2 bağlantı kablosu 26 yolun her birinin

sonu IDC konnektör ile bağlanmış 26 yollu, şeritli bir kablodur. Bu fişler doğruca çamaşır

makinası üzerine düzgünce monte edilmiş 26 yollu konnektöre girmektedir. Kablonun

diğer ucu dış arabağı üzerinden 26 yollu konnektöre bağlıdır.

Sayıcı / zamanlayıcı bağlantısı, dış arabağındaki pervane terminal bloğuna uygunluk için,

çamaşır makinasındaki pervane terminal bloğundan bağlanan iki kablo ile yapılır.

Page 38: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

38

Çamaşır makinasındaki pervane terminal bloğu düzgünce monte edilmiştir ve kutunun sol

arka tarafında bulunmaktadır. Birinci kablo, dış arabağındaki “CKO” olarak belirtilen

terminale bağlanabilir ve terminal çamaşır makinasında “CKO” olarak belirtilmiştir. İkinci

kablo, dış arabağındaki “OP1” olarak belirtilen terminale bağlanacaktır ve terminal

çamaşır makinasında “OP1” olarak belirtilmiştir.

4.2.1.3. Çamaşır makinasının bytronic 8051 mikro denetleyiciye bağlanması

8051 tek çip mikrobilgisayar bugünkü ticari çamaşır makinalarında kullanılan kontrol

tiplerinden biridir. Bu onun düşük fiyatı, yerleşik giriş / çıkış portlarından ve iyi

dizaynından dolayıdır. Çamaşır makinası simülatörü Bytronic 8051 geliştirme borduna ya

da 26-26 yol bağlantı kablosu kullanan hedef borda bağlanabilmektedir.

4.2.1.3.Çamaşır makinasının bir programlanabilir lojik denetleyiciye ba ğlanması

Çamaşır makinası simülatörü AC çıkışlı tiplerden başka bir Bytronic genel PLC arabağı

(MPPL1) ve bir 20-26 yollu bağlantı kablosu (MPCT1) kullanılarak hemen hemen bütün

programlanabilir lojik denetleyicilere (PLC) bağlanabilir. PLC arabağı kurulumu için genel

arabağı dökümanları kullanılabilir.

4.2.1.5 Güç kaynağının bağlantısı

• Bytronic WMS 5V@400mA DC bir güç kaynağına ihtiyaç duyar.

• Gücü kesmeden iki güç hattını bağlarken verilebilecek zararlardan lütfen

sakınılmalıdır.

• Güç kaynağını açmadan önce bağlantıları kontrol ediniz.

• Güç kaynağı ve sonra bilgisayar açılmadan önce, bütün bağlantıların bir

defa daha kontrol edilmesi gerekmektedir.

4.3. Bytronic Çamaşır Makinası Simülatörünün Özellikleri

Bytronic çamaşır makinası simülatörü iki kısıma bölünmüş çift taraflı basılmış bir devre

bordudur. Devre bordunun birinci yarısı elektronik devreyi içerir, diğeri bir çamaşır

Page 39: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

39

makinası kopyası olarak yapılmıştır. Çamaşır makinası simülatörünün elektroniği detaylı

olarak 4. kısımda anlatılmıştır. Çamaşır makinası simülatörü aşağıdaki özelliklerle dizayn

edilmiştir.

• Mikrobilgisayar yazılımıyla tanımlanan 6 yıkama programlı yıkama devir tablosu.

Seçilen program 3 ledle gösterilmiştir.

• Program seçici, kabul ve iptal anahtarları program tablosundan bir yıkama devri

seçebilecek mandallı anahtarlardır. Eğer program doğru olarak seçilmediyse, o

zaman iptal girişi bütün anahtarları temizlemek için reset çıkış hattını kullanabilir.

Alternatif olarak, kabul girişi geçerli bilgi ile set edilmiş 3 program seçiciyi gösterecek ve

bundan dolayı yıkama program devrini seçmek için mikrobilgisayardan okuma

yapabilecektir.

• Yıkama program durumu 7 parçalı displayde gösterilebilir. Daha fazla açıklama

kısım 4.4.1 de verilmiştir.

• Bir DC motor yıkama kazanını temsil eden bir plastik diske bağlanmıştır. Motorun

yönü ve hızı mikrobilgisayar tarafından kontrol edilebilir. Motor hızı dört slotlu

plastik diskten yansıtan bir kızıl ötesi sensör kullanılarak bulunmaktadır.

• Led göstergeli mekanik mandallı bir anahtar çamaşır makinasının açık-kapalı

olmasını temsil eder. Bu bir alarm durumunu oluşturan bir kontrol programı ile

birleştirilerek kullanılabilir.(ideal kesim girişi)

• Anahtar işlemlerinin işitilebilir belirtileri ve meydana getirilebilecek alarmlar bir

buzzer ile sağlanabilmektedir.

4.4. Çamaşır Makinası Elektroni ği

Çamaşır makinası devresi her devre görünüşü ayrılmış ve bütün elemanları açıkça

etiketlenmiş çift taraflı bir PCB’dir. Devrenin başlıca özellikleri;

a) 7 parçalı display sürücü

b) Motor sürüşü ve yön kontrolü

c) Buzzer

d) Anahtar girişi SET / RESET mandallı devreler

e) Kızıl ötesi hız sensörü

Yukarıdaki maddeler ilerki kısımlarda daha detaylı olarak incelenmiştir.

Page 40: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

40

4.4.1 Yedi parçalı display sürücü

Çamaşır makinası simülatöründe kullanılan display ortak anodlu bir displaydir. Bu her

parçanın(segmentin) anadun bir genel pin ile pozitif güce bağlanacağını göstermektedir.

Displaydeki herhangi bir parçayı aktif etmek için, bir düşük lojik seviye ya da sıfır (0V)

volt sinyal akım sınırlayıcı bir direnç ile parçaların katoduna uygulanmalıdır. Bu yolla,

numaralar 0V için bağlanan uygun ferdi pinler ile oluşturulabilir. Displayın her parçası için

bir çıkış port biti kullanılacağından, bu sistem için etkisizdir. Bu kontrol yükünü azaltmak

için özel display sürücü tümleşik devreleri (IC’s) mevcuttur. Çamaşır makinası

simülatöründe kullanılan IC, ikili kodlanmış onlukları (BCD) 7 parçalı display sürücüye

çeviren bir 74LS47 ‘dir. Devre diyagramı Şekil 4.1’de gösterilmiştir.Bu display numaraları

için ikili kodun 4 kontrol hattından verildiğini ve 74LS47 nin 7 parçalı display için doğru

çıkışı sağladığını gösterir.

Şekil 4.1 Parçalı Display Sürücü.

İkili kodlar A, B, C ve D Şekil 4.2’da gösterilen numaraları üreteceklerdir.

Page 41: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

41

Şekil 4.2 Yedi Parçalı Display Kontrol Kodları

4.4.2 Motor sürüşü ve yön kontrolü

Şekil 4.3 Motor Sürüş Devresi

Page 42: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

42

Şekil 4.3’de görülen devre DC motor kontrolü için kullanılmıştır. Motor anahtarlanarak

tam hızda çalıştırılabilir ya da motor hızının kontrolü için darbe genişlik modüleli bir

sinyal ile tetiklenebilmektedir. Bu sinyal mikrobilgisayar port bitinden sağlanmaktadır ve

güç transistörü TR3:BFY51 ile anahtarlanmaktadır.

Güç transistörü açık ya da kapalı iken akım akışını, transistör ve motor üzerinden

sürdürmektedir. Bir PWM sinyal kullanıldığında ON/OFF oranı ya da mark/space oranı

motorun hızını belirlemektedir(sınırlayacaktır). Yön kontrol biti bir 74LS244 ve

TR3:BCI82L genel amaçlı bir transistör kullanılarak sağlanmaktadır. Transistör kontaklar

üzerinde değişen iki kutupu aktif eden röle bobin akımını tetiklemek için kullanılmakta,

böylece motor yönü değişmektedir.

4.4.3 Buzzer

Buzzer aslında genel olarak iki tipli bir piezo ses üreticisidir.

Tip A: Bunlar özel bir dalga formunun bağımsızca bir sesini meydana getirebilirler, onlar

sadece titreşimi sağlayan bir güç voltajına ihtiyaç duymaktadırlar.

Tip B: Bunlar bir ses meydana getiren transducerleri titreştirmek için bir darbeye ihtiyaç

duymaktadırlar.

Çamaşır makinası simülatöründe IC buffer 74LS244 ve transistör TR3:BC182L vasıtasıyla

kolayca buzzeri öttüren bir ses meydana getirmek için mikro denetleyiciye müsaade eden

Tip A kullanılmıştır.

4.4.4 Anahtar giri şi set / reset mandallı devreler

Program seçici, geçici temaslı bütün anahtarları kabul ve iptal etmektedir. Bu yüzden

mikrodenetleyici sabit I/O port bilgilerini okuyabilir. Şekil 4.4’de gösterilen devre

diyagramında, geçici sinyaller bir set / reset mandallama devresiyle mandallanmıştır.

Mikrobilgisayardan gelen reset hattı normalde lojik “1” olmalıdır. Ani temaslı anahtar

normal açık temas durumunda olduğunda, 10 k’lık pull-up direnci ile girişi set etmek için

Page 43: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

43

bir lojik “1” seviyesine başvurulur. Şekil 4.4’deki referansla iki lojik “1” giriş bir

mandallanmış çıkış üretmektedir.

Bir anahtara basıldığında, Çizelge 8’deki Q çıkışının set durumundan, bir lojik “0” ın girişi

set yapmaya başvuracağı anlaşılmaktadır.

S-R latch’in Q çıkışı mikrobilgisayarın giriş portuna bağlanır ve program seçici ledleri

sürmek için kullanılır.

Şekil 4.4. Set / Reset Anahtarlamalı Devre(74LS279 aktive low girişlidir)

74LS279 set / reset mandal için doğruluk tablosu Çizelge 9’ da verilmiştir.

Çizelge 9. 74LS279 Set / Reset lojik

SET RESET Q ÇIKIŞI

0 0 TOGGLE

0 1 1

1 0 0

1 1 LATCH

Page 44: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

44

Mikrobilgisayarların beş geçici anahtarındaki bilgileri resetlemek için düşük reset hattı

toggle olmalıdır.

4.4.5 Kızıl Ötesi Hız Sensörü

Devre, kızıl ötesi (IR) sabit akımlı bir kızıl ötesi ışık yayan diyottan ibaret olan kızıl ötesi

yansıtıcı bir sensörden oluşur. Bir yansıtıcı yüzey emiş menzilindeyse, IR alıcı transistör

üzerinden geri döner. IR sensör diyagramı ve devresi Şekil 4.5’da gösterilmiştir.

Şekil 4.5. Kızıl Ötesi Hız Sensörü

Page 45: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

45

Çamaşır makinası kazanı simülatörde dört parçalı bir diskle temsil edilmiştir.Yansıtıcı

yüzey sensör yüzeyinin üzerine gelince transistör iletime geçmekte, karşılaştırıcı girişine

0V luk bir sinyal sağlamaktadır. Bunun yanı sıra bir slot göründüğünde, transistör kesime

dönünce yansıma kesilmektedir. Böylece komparatör girişi, duyarlılık için kontrollü pozitif

bir potansiyel “1” (set) e çekilir. Karşılaştırıcı IR sensör sinyali ile R7 ve R8 ile belirli sabit

bir voltajı karşılaştırır.

Karşılaştırıcı çıkışı SW2’yi kullanarak, diğer bir giriş portu ya da bir sayıcı / zamanlayıcı

kanal girişini tetikleyebilecek, her devirde dört darbeli TTL uygun bir sinyaldir.Giriş

portunun bir sayıcı / zamanlayıcı kanal gibi kullanımı daha detaylı olarak kısım 6’da

incelenmiştir.

4.5 Anahtarlama Hataları

Mikro çip teknolojisi ve denetleyici uygulamalarıyla yeni kullanışlı sistemler meydana

gelmiştir. Bunun yanında bireysel hata bulma becerisine sahip olmak bir ihtiyaç haline

gelmiştir. Bu becerileri geliştirmek için, çamaşır makinası simülatörü gerçek bir

endüstriyel uygulamada bulunacak tipte, dört anahtarlama hatasıyla dizayn edilmiştir.

Genel olarak bir elektriksel hata aşağıdaki maddelerde gösterildiği gibidir:

1. Kaynağın elektriksel kısa devresi

2. Toprağın elektriksel kısa devresi

3. Bir kısa devre ya da yanlış görevlendirmeden dolayı çapraz bağlanmış sinyal

kabloları

4. Kopuk bir kablo, zarar görmüş devre yolu ya da kötü bir bağlantıdan dolayı açık

devre

Öğrenciler çamaşır makinası simülatörünün doğru uygulamasını kolayca yerine getirerek

hata bulma tablosunu düzeltebilirler. Anahtarlama, bazı hataların (16’nın dışında)

birleştirilmesidir. Test elemanlarının bir kitini kullanarak, devre diyagramı ile temasla,

hatalar başarılı bir şekilde teşhis edilebilmektedir.

Anahtar hataları listesi ve etkileri Çizelge 10’da gösterilmiştir.

Page 46: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

46

Çizelge 10. Anahtarlama Hataları Listesi ve Etkileri

HATA NO HATA ETK İ

1.

IC yi bozmak(kırmak)

IC2:74LS244

Bütün kuvvetlendirilmiş

sinyaller izole edilir.

2.

Pin 13 ü kırmak

IC2:74LS244

Anahtar reset hattı yok

3.

7 parçalı displayın “e” parçasını +5V’la kısa

devre yapmak “e” parçası etkin değil.

4.

Motor bağlantılarını kırmak Motor etkin değil.

4.6 Labaratuvar Çalışmaları Yazılımları

Devam eden bölüm tam bir kontrol programının geliştirilmesine kılavuzluk eden, gitgide

kompleksleşen ve düzenli bir formda hazırlanmış labaratuvar çalışmalarının bir

sıralamasını içermektedir.

Bytronic IBM arabağı, 8051 tek çip mikro denetleyici geliştirme sistemi ve BBC

mikrobilgisayar için port adreslerindeki teknik bilgi ek-2 de verilmiştir.

Çamaşır makinası simülatörü giriş / çıkış yerleri ek-1 de verilmiştir.

4.6.1 Labaratuvar çalışması-1 ( dijital çıkışların kontrolü )

Amaç :

Bu labaratuvar çalışmasının amacı, bir anahtara basıldığını ya da seçilmiş çıkış kanalını

aktif eden dijital bir girişi algılayan bir program yazmaktır.

İşlem :

Bu programın tipik bir akış diyagramı Şekil 4.6’da verilmiştir.

Page 47: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

47

Şekil 4.6. Labaratuvar Çalışması-1 Akış Diyagramı

4.6.2 Labaratuvar çalışması-2 (7 parçalı displayın kontrolü )

Amaç :

Bu labaratuvar çalışmasının amacı, her üç saniyede bir karakteri değiştiren, displayı 0 dan

9 a kadar saydıran bir program yazmaktır.

İşlem :

Bu programın tipik bir akış diyagramı Şekil 4.7’de verilmiştir.

Labaratuvar Çalı şması-3 (program seçici anahtarı okuma )

Amaç :

Page 48: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

48

Program seçici anahtarlardan okuyan bir program yazmak, eğer iptal anahtarına basılırsa

buzzer 0.5 saniye aralıklarla 5 saniye ötecektir. Bir program seçildiğinde program

numarası 7 parçalı displayda görülecektir.

Şekil 4.7. Labaratuvar Çalışması 2 – Akış diyagramı

İşlem :

Bu programın tipik bir akış diyagramı Şekil 4.8’de verilmiştir.

4.6.4 Labaratuvar çalışması-4 (dc motorun açık / kapalı kontrolü )

Amaç :

Page 49: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

49

Bu labaratuvar çalışmasının amacı, bir mikrodenetleyicinin çıkış portunu kullanarak

motoru çalıştıran bir program yazmaktır. Motor, kapı açma kapama anahtarı ile

kilitlenebilir. Pervane dönüyorsa ve kapı anahtarı açıksa, buzzer 0.5 saniye aralıklarla 10

saniye ötecektir.

İşlem :

Bu programın tipik bir akış diyagramı Şekil 4.9’de verilmiştir.

Şekil 4.8. Labaratuvar Çalışması 3 – Akış diyagramı

4.6.5 Labaratuvar çalışması-5 (açık döngüde dc motor hızının kontrolü )

Amaç :

Page 50: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

50

Bu labaratuvar çalışmasının amacı, diğer bir dijital çıkış portu ya da bir sayıcı /

zamanlayıcı kanalı yoluyla meydana getirilen darbe genişlik modüleli (PWM) bir sinyal ile

DC motor hızını kontrol etmektir.

Arka plan :

Darbe genişlik modüleli bir sinyal sabit frekanslı bir kare dalga darbesidir. Motor

sürülürken ON (Mark) veya OFF (Space) zamanlarına bağlı olan bir ortalama akımı

görmesi gerekir. Bundan dolayı eğer Şekil 4.10’da anlatıldığı gibi ON/OFF (Mark / Space)

oranları değişirse motor yükü sabit farz edildiğinden, motor hızlanacaktır.

PWM sinyal, iki yazılım zamanlı döngü ile oluşturulabilir. Birincisi, periyodun kontrolü ve

diğeri mark ya da space’dir. Sonuç bir port vasıtasıyla çıkıştan alınabilir. Bunun yanı sıra,

PWM frekansı yüksek ise o zaman mikrodenetleyicinin hızı ve yazılımı kontrol etkisinde

önemli olmaktadır.

Page 51: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

51

Şekil 4.9. Labaratuvar Çalışması 4 – Akış Diyagramı

Daha iyi bir çözüm, mikrodenetleyici için zaman detayları ile bir defa yüklenmiş bir

donanım sayıcı / zamanlayıcı kanalı kullanmaktır. Sayıcı / zamanlayıcının özel detayları

Page 52: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

52

mikroişlemci sisteme bağlıdır. Bytronic IBM iç 8253 CTC tümleşik devresinin özellikleri

kullanım kılavuzunda verildi ve ek-4 te özetlenmiştir.

NOT:Bytronic interaktif programı 100 Hz PWM frekansı kullanmaktadır.

Şekil 4.10. Darbe Genişlik Modüleli Sinyal

4.6.6 Labaratuvar çalışması-6 ( motor hız geri beslemesini okumak )

Amaç :

Bu labaratuvar çalışmasının amacı, her dönüşünde 4 darbe sağlayan motor diskinin kızıl

ötesi (IR) darbe deneyiciyle her dakikadaki motor (rpm) hızını ölçmektir.

İşlem :

Motor hız bir uygun zaman peryodunda alınan IR darbelerin numaralarının sayımı ile

azaltılabilir. Mesela, her saniyedeki darbe numaralarından, rpm

Her dakikadaki yenileme (RPM) = Her saniyedeki sayı X 60

Her yenilemedeki 4 darbe

Çamaşır makinası simülatöründeki SW2 anahtarı diğer bir giriş portuna ya da sayıcı /

zamanlayıcı giriş kanalına hız darbe geri beslemesini bağlamak için kullanılabilir. Bir giriş

Page 53: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

53

portu kullanıldıysa ve geçiş seçildiyse, sonucun doğruluğu mikrodenetleyicinin hızına ve

yazılımına bağlı olacaktır. Sistem doğruluğu Bytronic IBM iç arabağı ve WMS interaktif

programında olduğu gibi, bir sayıcı / zamanlayıcı donanım kullanılarak düzeltilebilecek

sayıcı zamanlayıcının özel ayrıntıları mikroişlemci sisteme bağlıdır. Bytronic IBM iç 8253

CTC tümleşik devresinin detayları kullanıcı kılavuzunda verildi ve ek-4’te özetlenmiştir.

4.6.7 Labaratuvar çalışması-7 ( Renkli Yıkama Program Devri )

Amaç :

Bu labaratuvar çalışmasının amacı, renkli bir yıkama devrini temsil için çamaşır

makinasını kullanan bir program yazmaktır.

Tipik bir yıkama devri;

1. Su doldurmak

2. Suyu ısıtma

3. Yıkama- yavaş bir hıza ayarlanmış disk hareketiyle temsil edilebilir.

4. Su boşaltma

5. Su doldurmak

6. Çalkalamak ( yıkamayı temsilen disk hareketi )

7. Su boşaltma

8. Dönme- yüksek hızda disk dönmesi

9. Kurutma

10. Tamamlama

İşlem :

Bu programın tipik bir akış diyagramı Şekil 4.11’de verilmiştir.

4.6.8 Labaratuvar çalışması-8 (DC Motorun Kapalı Döngü Kontrolü )

Amaç :

Bu labaratuvar çalışmasının amacı, bir çamaşır makinasını simüle etmek değildir fakat geri

beslemesi ve DC motor kontrolü üzerine kurulmuş kapalı döngü bir kontrol programı

yazmaktır.

İşlem :

Page 54: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

54

Kontrol sisteminin blok diyagramı Şekil 4.12’de verilmiştir.

Kontrol teorisi geniş bir konudur ve bunun için bu labaratuvar çalışmasında basit bir

kontrol bilgisinden bahsedilmiştir. Bu uygulama aşağıdaki maddelerin bir fonksiyonu olan

üç kısımlı dijital bir kontrol edici için idealdir.

Şekil 4.11. Labaratuvar Çalışması 7 – Akış diyagramı

BAŞLA

SON

PROGRAM SEÇİCİLERİ BUL

RENKLİ YIKAMA PROGRAMINI ÇALIŞTIR

BUZZER ALARMI

PORTLARI ÇALIŞTIR

DEVİR TAMAMLANDIĞINDA

DİSPLAY 8 OLSUN

RENKLİ DEVRİ SEÇİLDİ Mİ?

HAYIR

EVET

Page 55: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

55

A. Orantılı

B. Toplam

C. Fark

Şekil 4.12. DC Motor Kontrol Sistemi

4.6.8.1 Orantılı kod modu

Bu modda denetleyici çıkışı set noktası (point) ve ölçülmüş değer (MW) arasındaki hata ile

orantılıdır. Orantılı mod aşağıda görüldüğü gibi iki şekilde açıklanabilir.

a) Orantılı Kazanç

Bu modda denetleyici çıkışı hatayla çoklanmış orantılı kazançtır.

Matematiksel olarak;

Mp = PG (SP – MW ) + C

Buradan;

Mp : Denetleyici çıkışı

PG : Orantılı kazanç

C : Sıfır hatalı çıkış

SP : Set noktası

MW : Ölçülmüş değer

b) Orantılı Band (PB)

Page 56: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

56

Orantılı kontrol modunda çıkış % 100’e vardığında hatanın bir satrasyon (doyum ) değeri

vardır. Daha sonra; hatanın daha da artması çıkışta hiç artış sağlamaz.Aynı olay, çıkış %

0’a düştüğünde de olur. Çıkış % 0 ve % 100 arasında olduğundaki hata bandına orantılı

band denir. Böylece daha yüksek kazanç ve daha küçük orantılı band

Matematiksel olarak şu şekilde ifade edilebilir:

Mp = 100 X ( SP – MW ) + C

PB

Ne yazıkki, basit bir orantılı denetleyici nadiren uygun bir kontrol sağlar. Asıl zorluk

OFFSET denilen olaydır. OFFSET hatası bir sürekli değişiklikle oluşan değişken

olaylardan kaynaklanır.

4.6.8.2 Toplam kontrol modu

Bu kontrol modu orantılı offset hatalarını yok etmek için sık sık kullanılır. Toplam modu

hatanın geçmişi üzerine kurulmuş ( geçmişe dayandırılan ) bir çıkışla sağlanır. (belirlenir)

O, zaman – hata eğrisinin altındaki net alanı bularak ve ( IAT ) toplam olay zamanı denen

saniyeler mertebesindeki bir sabitle çarpımı ile hesaplanır.

Denetleyici eşitli ği şu şekildedir:

M ( t ) = PG f ( t ) dt IAT Toplam olay zamanı, eğer hata bu peryot boyunca sabit kalırsa, denetleyicinin orantılı

olayının aynısı için, integral olayının zaman olarak alınmasıyla belirlendi.

4.6.8.3. Fark kontrol modu

Bu kontrol modu sistemin zaman cevabını azaltmak için sıkça kullanılır. Değişen hataların

zaman oranına dayanır.

Denetleyici eşitli ği şu şekildedir:

Md = PG DAT de dt

Page 57: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

57

Fark olay zamanı (DAT), fark elementinin ani çıkışının aynısı için denetleyicinin orantılı

olayını alabilecek zamandır. Değişen hatanın oranı, hatanın iki değeri arasındaki farkı

olarak ve değerin farkını zamana bölerek yaklaşım yapılabilir.

Denetleyici yaklaşımı şu şekildedir:

Md = PG X DAT [ e ( to ) – e ( t ) ] [ t – to ]

DAT : Fark olay zamanı

e ( t ) : t zamanındaki hata

e ( to ) : to zamanındaki hata

Fark kontrol modu, sıfır değişim oranına uygun bir denetleyici çıkışı yokken asla yalnız

kullanılmaz. Fark hakkında dikkat edilmesi gereken önemli bir nokta da, sistemde yüksek

frekans gürültüsünü abartabilmesidir.

4.7 Kontrol Listeleri

Çizelge 11. Kontrol Listeleri

No Hata Kontrol Listesi

1 Ünite güç vermez

1.Güç kaynağı voltaj seviyesi

ve kutupları kontrel edilir.

2.Wms (400 ma ) sigortası

kontrol edilir.

3. Mikrodenetleyicinin

bağlantı kabloları kontol

edilir.

2 Çıkışların ya da girişlerin kontrolsüz olması

1.Anahtar hatalarını kontrol

edilir.

2. Ünitenin doğruca

güçlendiği kontrol edilir.

3. Mümkünse arabağın doğru

Page 58: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

58

kurulduğu ve bağlandığı

kontrol edilir.

3 Motor kontrolsüzdür

1.Anahtar hatalarını kontrol

edilir.

2. Motor kontrol anahtarı

SW1 in doğru pozisyonda

olduğunu kontrol edilir.

3. Eğer Bytronic yazılımı

kullanılmıyorsa, programı

doğruca kontrol edilir,

4 Motor hız geri beslemesi yoktur.

1.Anahtar hatalarına bakılır.

2. Port/CKO seçici anahtarı

SW2 nin doğru konumda

olduğunu kontrol edilir.

3. Motorun ve diskin

serbestçe döndüğünü kontrol

edilir.

4. Duyarlılık ve histerizisin

doğruca set olduğunu kontrol

edilir.(Ek-3 teki referansla)

5 Program seçicinin ledleri sürekli mandallanır.

1.Anahtar hatalarına bakılır.

2. TTL seviyeler için reset

hattının doğruca

toggle’landığını kontrol

edilir.

3. değilse IC3&4’ü

değiştirilir.

4.8 Ekler

4.8.1 Ek-1 ibm bağlantı (header) konfigurasyonları

Page 59: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

59

Çizelge 12.Çamaşır Makinası 26 Yollu Header

FONKSİYON PORT PİN NO PORT FONKSİYON

NC A7 26 25 A6 NC

NC A5 24 23 A4 NC

NC A3 22 21 A2 NC

NC A1 20 19 A0 NC

GND 18 17 B7 Buzzer

Anahtarlar için

RESET

B6 16 15 B5 Motor yönlendirici

Motor kontrolü B4 14 13 B3 7 segmentin D biti

7 segmentin C biti B2 12 11 B1 7 segmentin B biti

7 segmentin A biti B0 10 9 GND

NC C7 8 7 C6 Motor hız geribeslemesi

Kabul anahtarı C5 6 5 C4 İptal anahtarı

Program seçici 3 C3 4 3 C2 Program seçici 2

Program seçici 1 C1 2 1 C0 Kapı açma / kapama

Çizelge 13. Çamaşır Makinası 40 Yollu Header

FONKSİYON PORT PİN NO PORT FONKSİYON

CLK 1 1 2 İÇ CLOCK

CLK 2 3 4 CLK O Motor geribeslemesi

Motor sürme OUT 1 5 6 GATE 1 OUT 2 için bağlantı

GATE 2 7 8 OUT O

Kapı 1’e bağlantı OUT 2 9 10 GATE 0

DISABLE 11 12 0 VOLT DST INT CLK için bağlantı

İÇ CLOCK

5 VOLT 13 14 5 VOLT

Kapı açma / kapama PC0 15 16 PC7

Page 60: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

60

Program seçici 1 PC1 17 18 PC6 Motor hız geribeslemesi

Program seçici 2 PC2 19 20 PC5 Kabul anahtarı

Program seçici 3 PC3 21 22 PC4 İptal anahtarı

7 segmentin A biti PB0 23 24 PB7 Buzzer

7 segmentin B biti PB1 25 26 PB6 Anahtarları resetleme

7 segmentin C biti PB2 27 28 PB5 Motor D

7 segmentin D biti PB3 29 30 PB4 Motor sürme

PA0 31 32 PA7

PA1 33 34 PA6

PA2 35 36 PA5

PA3 37 38 PA4

0 VOLT 0 VOLT 39 40 0 VOLT 0 VOLT

4.8.2 Ek-2 mikro-bilgisayar kontrol port adresleri

IBM / Uyumlu (MPIBM1/MPIBM2 Arabağlarını Kullanmak)

Bilgi yönlerdirme ve kontrol portu : Temel adresler + 7 ( base address + 7 )

Şekil 4.13. Port Adresleri

Page 61: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

61

4.8.3 Ek-3 kızıl ötesi hız sensörünün kalibrasyonu

1. ICS : LM311’in 3 nolu bacağındaki voltajı ölçmek için bir voltmetre kullanılmaktadır.

Motor diski döndürülür, böylece kızıl ötesi sensör (IR) kapanır ve açılır. Pin 3’teki voltaj

VRI duyarlılık ayarı kullanılarak ayarlanabilir, böylece iyi TTL voltaj seviyesi elde

edilebilir. Bunlar en fazla kapalıyken 2.4 volt ve açıkken 0.8 volttur. Eğer bu

sağlanmıyorsa, diskin içindeki kızıl ötesi sensörün duyarlılık ayarını kontrol edilir.

2. Pin 3’teki ayarlanmış voltaj 2. pindeki voltaj set iken (yaklaşık 1.5 volt) IC5:LM311 ile

karşılaştırılabilir. Bazı problemler sürerse, Bytronic’in teknik yardımıyla bağlantı

kurmaktan çekinilmemelidir.

4.8.4 Ek-4 Ibm 8253 zamanlayıcı/sayıcı arabağının işlevi

8253, 2 Mhz hızında clock üretebilen 3 bağımsız 16 bit sayıcı / zamanlayıcı olarak

yapılmış bir programlanabilir sayıcı zamanlayıcıdır. Tüm işlem modelleri, yazılım

kontrolünü isteyebilmektedir. CTC’nin temel fonksiyonu kesin (tam) zamanlama

gecikmelerini oluşturmaktır. Programlayıcı, programın ihtiyacına uygun bir sayı ile

sayıcıyı başlatır.

8253, saat devir sayılarını aşağı doğru sayacaktır. Saat devirleri;

a) İç CTC saat = 4 Mhz veya

b) Dış saat (max. 5 Mhz)

Program, terminal sayıcının ulaşıp ulaşmadığını görmek için aygıt seçebilir ya da doğru

bağlantılar girildiyse ve kesmeler aktif durumdaysa ve uygun bir kesme servisi rutin olarak

geliştirilmi şse, işlemci (CPU) kesme yapabilecektir ve cevap hazır olabilecektir. Hem de

8253 yapısında zamanlanmamış diğer fonksiyonların bir numarası vardır.

• Programlanabilir oran üreteci

• Olay sayıcısı

• İkili oran çoğullayıcısı

• Gerçek zaman saati

• Dijital one-shot

Page 62: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

62

Sayıcıların üç fonksiyonel bloğu 0,1 ve 2 ; yapısındaki gibidir bu yüzden sadece bir tanesi

tanımlanabilir. Her sayıcı ikili ya da BCD sayabilen tekil bir ön kurmalı aşağı sayıcıya

bağlıdır. Sayıcı girişlerinin kullanımı için tasarlanan modeller, kapı, kontrol kelime

registeri içindeki held değeri ile set edilmiştir, bütün kanallar tamamıyla diğer bir sayıcıdan

bağımsızdır. Her sayıcının içeriği basit okuma işlemleri ile okunabilir ve özel komutlar

katılabilir. Bu yüzden sayıcılar (“on the fly”) da okuyabilir.

Sayıcı register, sayıcı değeri ( 1 ya da 2 byte RL moda bağlı olan) clocktaki bir yükselen ve

bir düşen kenar geçesi kadar yüklenmez. Eğer bir dış saat girişi IBM iç arabağına

bağlanmışsa; saat CTC ye varmadan önce evirilebilecektir. Düşen kenar için öncelikli

okuyuş geçersiz bir bilgi sağlayabilir. Sayıcı modeller, aşağıdaki tabloya göre kontrol

kelime registerlarının yazımı ile seçilmektedir.( temel adresler + 3 )

4.9 8253 CTC’yi Kullanarak Dc Motor Kontrol Etmek

Bytronic interaktif çamaşır makinası programı WMS’yi , sayıcı / zamanlayıcı kanallar 1 ve

2 kullanılarak kontrol etmek için tasarlanmıştır. Konfigürasyon Şekil 4.14’te gösterilmiştir.

DC motor hızı,labaratuvar çalışması 5’te anlatıldığı gibi bir PWM kontrol sinyali

kullanılarak kontrol edilmiştir.

Çizelge 14. Sayıcı Modeller

D7

D6

SC1

SC0 SAYICIYI SEÇ

D5

D4

RL1

RL0 OKU / YÜKLE

D3

D2

D1

M2

M1

M0

MOD

DO BCD İKİLİ / BCD

8253 CTC’nin her modu tam olarak IBM arabağı dökümanlarında açıklanmıştır.

Page 63: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

63

Şekil 4.14. Sayıcı / Zamanlayıcı Kanallar 1 ve 2’nin Konfigürasyonu

Kanal 1, 1. modda bir programlanabilir one-shot olarak tasarlanmıştır, bu modda çıkış kapı

girişinin düşen kenarında “low following”e gidecektir. Çıkış, terminal sayıcı ulaşıncaya

kadar low (düşük) kalır sonra mark (yüksek) olmaktadır.

Mark / space in oluşmasını kesinleştirmek için, kanal 1’in kapı girişiyle kontrol edilen mod

3 te set edilmiş bir kare dalga generatörüyle kanal 2 de uygun bir frekans için set

edilmelidir. Bunun anlamı, uygun bir zaman peryodunda kanal 2’nin çıkışının yükseleceği,

(Bytronic interaktif programında 100 Hz) sonraki PWM peryot için kanal 1 in

sıfırlanacağıdır. Bir zamanlama diyagramı Şekil 4.15’de görüldüğü gibidir.

4.9.1 Geri besleme darbelerini saymak için 8253 CTC kullanımı

Bytronic interaktif çamaşır makinası programı sayıcı kanalı 0’ı kullanarak kızıl ötesi

sensörden geri besleme darbelerini saymak için tasarlanabilir. Tasarım Şekil 4.16’da

gösterilmiştir.

Kanal 0 iç saati disable edilir ve böylece motor diskindeki darbeler sayılabilir. Kanal 0

mod 1 de set edilebilir bir programlanabilir one-shot’tur.

Page 64: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

64

Şekil 4.15. CTC Kanallar 1 ve 2’nin Zamanlama Diyagramı

Şekil 4.16. Sayıcı / Zamanlayıcı Kanal 0’ın Konfigürasyonu

Page 65: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

65

CTC sayıcı kanalları yazılımı resetleyemeyecek ve bundan dolayı hız sayıcı, son örnekteki

okunan değerin farkı esasına dayanmaktadır. Mesela her iki saniyede motordan

okunacaktır ve motor hızı 1000 rpm,

1000 rpm = 1000 * 4 = 66 darbe her saniyede

bu yüzden, sayıcı 2 saniyede 2 * 66 = 132 ile azalacaktır.

Bytronic interaktif program önceden max 16 bit numarasını (65535) ile sayıcıyı yükler, her

sayıcı darbesi bu numarayı azaltmaktadır.

Tipik bir program akış diyagramı Şekil 4.17’de verilmiştir.

Daha detaylı bilgi, Bytronic IBM iç arabağı kılavuzu ya da 8253 data sheet’lerinde

bulunabilir.

Page 66: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

66

Şekil 4.17. CTC Hız Ölçümü İçin Akış diyagramı

SON

BAŞLA

SAYICI KANALI BAŞLAT

SAYICI O ' I OKU

ZAMANLAYICI DÖNGÜ T1'İ SET ET

MOTOR HIZINI HESAPLA VE GÖSTER

DİĞER PROGRAMLAMA

GÖREVLERİ

SON MOTOR HIZ FARKINI HESAPLA

ÇIKIŞ E/H

T1 ZAMANI BİTTİ Mİ?

EVET

HAYIR

EVET

HAYIR

Page 67: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

67

BÖLÜM V

PIC BASIC PRO İLE PROGRAMLAMA

5.1. Pic Basic Pro Hakkında

Pic Basic Pro programlama dili mikrochip firmasının ürettiği mikrodenetleyicileri

programlamada kullanılan daha çabuk ve kolay bir dildir(www.rentron.com). Pic Basic Pro

programlama dili ile 8 ile 84 pin arasındaki değişik özelliklerdeki mikrodenetleyiciler için

program yazılabilir. Üst seviyeli programlama dilleri sayesinde çok daha rahat ve hızlı bir

şekilde programlama yapılabilmektedir. Ancak bu programlar çok karmaşık sistemlerin

çözümünde yetersiz kalabilmektedir.Yüksek seviyeli bu programlama dilleri assembly dili

komutları ile birlikte kullanılabilmektedir. Bu durumda yüksek seviyeli bir pic

programlama dili ve PIC assembly dili birlikte kullanıldığında bu sorun ortadan

kalkmaktadır.

5.2. Pic Basic Pro Komut Seti

Pic Basic Pro’nun komut seti basic programlama diline çok benzemektedir. Basic

programlama dilinde olmayan komutlar da mevcuttur. Çizelge 15’de Pic Basic Pro

komutları görülmektedir.

PIC BASIC PRO programlama dilinin tüm yönleriyle açıklanması bir kitap konusu

olacağından burada sadece bu çalışma için gerekli olan komutlar ve bunların

özelliklerinden bahsedilmiştir.

5.2.1. Değişkenler ( Variables )

PICBASIC programlama dilinde üç tip değişken tipi kullanılmaktadır. Değişkenler BIT,

BYTE veya WORD büyüklüğünde olabilirler. Örneğin: k VAR byte (byte büyüklüğünde K

değişkeni)

Page 68: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

68

Çizelge 15. Pic Basic Pro Komut Seti

@ END NAP SELECT CASE

ADCIN FOR…NEXT ON DEBUG SERIN

ASM…ENDASM FREQOUT ON INTERRUPT SERIN2

BRANCH GOSUB OUTPUT SEROUT

BRANCHL GOTO OWIN SEROUT2

BUTTON HIGH OWOUT SHIFTIN

CALL HPWM PAUSE SHIFTOUT

CLEAR HSERIN PAUSEUS SLEEP

CLEARWDT HSEROUT PEEK SOUND

COUNT I2CREAD POKE STOP

DATA I2CWRITE POT SWAP

DEBUG IF…THEN PULSIN TOGGLE

DEBUGIN INPUT PULSOUT USBIN

DISABLE LCDIN PWM USBINIT

DESABLE DEBUG LCDOUT RANDOM USBOUT

DISABLE INTERRUPT LET RCTIME WHILE…WEND

DTMFOUT LOOKDOWN READ WRITE

EEPROM LOOKDOWN2 READCODE WRITECODE

ENABLE LOOKUP RESUME XIN

ENABLE DEBUG LOOKUP2 RETURN XOUT

ENABLE INTERRUPT LOW REVERSE

5.2.2. Etiketler ( Labels )

Etiketler GOTO veya GOSUB gibi komutlara referans teşkil ederler. Bu komutların

icrasından sonra program etiketle belirtilen satıra dallandırılır. Etiketler herhangi bir

kelime olabilir ve sonuna iki nokta üst üste (:) konur.

Örneğin: Etiket: HIGH PORTB.5

Page 69: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

69

5.2.3. Nümerik sabitler ( Numeric constants )

Nümerik sabitler üç şekilde tanımlanırlar. Bunlar decimal, binary ve hexadecimal‘dir.

Binary değer tanımlanırken değerin başına ‘%’ ve hexadecimal değerin başına ‘$’işareti

konulur. Decimal değer tanımlanırken herhangi bir işaret kullanılmaz. Örneğin:

100 ‘decimal değer .

%100 ‘decimal 4 için binary değer.

$100 ‘decimal 256 için hexadecimal değer.

5.2.4. Portlar

PIC’in herhangi bir portunun istenilen pini giriş yada çıkış olarak tanımlanabilir. Daha

sonra istenilen değer ilgili porta yüklenir. Değerin porta yüklenmesi için farklı yollar

vardır.

Örneğin:

TRISB = 0 ‘Portb’nin tüm pinlerini çıkış olarak tanımlamada kullanılır’

TRISA=1 ‘Portb’nin tüm pinlerini giriş olarak tanımlamada kullanılır’

TRISC = %11110000 ‘Portb’nin ilk dört biti çıkış,son dört biti giriş olarak tanımlamada

kullanılır’

Yönlendirilen port pinlerine bilgilerin gönderilmesi için birkaç yol vardır. Örneğin:

PORTB = %11110000 ‘Portb’nin ilk dört pinine lojik-0 , son dört pinine ise lojik-1

değeri gönderilmede kullanılır .’

PORTB = 1 ‘Portb’nin bütün pinlerine lojik-1 değeri gönderilmede

kullanılır.’

HIGH PORTB.4 ‘PORTB’nin dördücü pinine lojik-1 değeri gönderilmede

kullanılır .’

LOW PORTB.6 ‘PORTB’nin altıncı pinine lojik-0 değeri gönderilmede

kullanılır.’

Page 70: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

70

5.2.5. Zaman gecikmesi ( Pause )

Pause programı istenilen bir süre beklemeye alır. En fazla 65.535 milisaniyelik bir gecikme

sağlanabilir. Bu da bir dakikanın biraz üstünde bir değerdir. Pause komutundaki değer

milisaniye büyüklüğündedir. Örneğin, PAUSE 49000 (49 saniyelik gecikme). Pause

komutu bu çalışmada komut yazımı anlamında programı basitleştirmiştir. Eğer 49

saniyelik gecikmeyi assembly kodunda yazmak gerekseydi, şu şekilde yazılmalıdır.

LIST =P16F877

INCLUDE “P16F877.INC”

SAYI EQU H’20’

SAYI1 EQU H’21’

SAYI2 EQU H’22’

GECIKME

MOVLW H’FF’

MOVWF SAYI

DONGU

MOVLW H’FF’

MOVWF SAYI1

DONGU1

MOVLW H’FF’

MOVWF SAYI2

DONGU2

DECFSZ SAYI2,F

GOTO DONGU2

DECFSZ SAYI1,F

GOTO DONGU1

DECFSZ SAYI

GOTO DONGU

RETURN

Page 71: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

71

Oysa bu programı PIC BASIC PRO programlama dilinde PAUSE 49000 şeklinde tek

satırda gerçekleştirmek mümkün olmaktadır. Görüldüğü üzere PIC BASIC PRO ile

program yazmak hem çok rahat hem de çok basit olmaktadır.

5.2.6. Döngü düzenlemek ( For…Next )

Bazı işlemlerin önceden belirlenen sayıda tekrarlanması gerekmektedir. PICBASIC

programlama dilinde bu işi FOR…NEXT döngüsü bir sayaç gibi çalışarak

gerçekleştirmektedir. FOR komutundan sonra bir değişkene ilk değer atanıp, bu

değişkenin sayacağı son değer de belirtilir. Ayrıca değişkenin kaçar kaçar artacağı STEP

komutuyla kontrol edilebilmektedir. Son olarak NEXT döngüsüne gelen program eğer son

değere ulaşılmamış ise bir sonraki değer için aynı işi yapacaktır. Örneğin:

For k=2 TO 10 step 2

Pause1000

Next

Burada k değişkeni 2’den 10’a kadar ikişer ikişer saymaktadır. Her bir döngüde bir

saniyelik bir gecikme sağlamaktadır. Döngü toplam beş tur atacağından 5 saniyelik bir

gecikme sağlanmış olacaktır.

5.2.7. Kontrol yapmak (IF…Then)

Bazı işlemlerde bir durumun kontrol edilmesi gerekebilir. Picbasic programlama dilinde bu

işi IF…THEN komutu sağlamaktadır. Bu kontrol deyimi bir veya birden çok

karşılaştırmayı icra edebilir. IF…THEN kontrolörü bir durumun doğru (true) veya yanlış

(false) olmasını karşılaştırarak değerlendirir. Eğer değerlendirme doğru ise THEN

komutundan sonraki komut icra edilmektedir. Eğer değerlendirme yanlış ise program bir

sonraki satıra geçmektedir. Örneğin:

IF portb.2 = 0 then high porta.1

Else high portb.3

Page 72: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

72

Bu program parçasında eğer portb’nin ikinci pinine lojik-0 gelmişse porta’nın birinci

pinine lojik-1gönderilir aksi taktirde portb’nin üçüncü pinine lojik-1 gönderilecektir.

5.3. Kesmeler

Bir Pic mikrodenetleyicisinde kesmelerin nasıl olduğundan 3. bölümde bahsedilmiştir.

Burada sadece Pic Basic Pro dilinde kesmelerin nasıl yapıldığından biraz bahsedilecektir.

Bir kesme programı yazmak için en kolay yol ON INTERRUPT yazmakla başlar. Bu

komut Pic Basic Pro programının dahili kesmeleri aktif etmesini ve kesme geldiği anda

mümkün olan en kısa zamanda kesme alt programına dallanması gerektiğini bildirir. ON

INTERRUPT kullanılırsa, bir kesme oluştuğu anda program bulunduğu yerden alt

programa dallanmakta ve kesme alt programını icra ettikten sonra kaldığı yere geri

dönmektedir. Fakat bu işlem assembly dilindeki kadar hızlı olmamaktadır. İlk olarak

kesme geldiği andaki komutun icrası tamamlanmakta ve ardından kesme işlemi

gerçekleştirilmektedir. Eğer PAUSE 10000 gibi bir komut icra edilirken kesme gelmişse

bu komutun icrası bitene kadar (10 saniye) kesme işlemi gerçekleşmeyecektir ve program

istenilen amacın dışında çalışacaktır. Bu da Pic Basic Pro’nun dezavantajlarından biridir.

Kesme işleminin yapılabilmesi için öncelikle ilgili registerlerin ayarlanması gerekmektedir

ve dikkat edilmesi gereken bir hususta kesme alt programının programda doğru yerlere

yazılmasıdır. Örnek bir kesme alt programı aşağıdaki gibidir.

‘ Port ayarlamaları yapılır

….

ON INTERRUPT GOTO OKUMA

INTCON = %10100000 ‘ Tmr0 kesmesini ayarlamak için

STATUS = %00000111 ‘ Prescaler değeri için

ENABLE INTERRUPT

‘ Ana program bu kısıma yazılır

Page 73: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

73

……..

……

…..

….

...

DISABLE INTERRUPT

ASM

MOVF TMR0,W ‘ Assembly komutları kollanılmıştır.

MOVWF PORTD

NOP

BCF TMR0,2

ENDASM

RESUME

ENABLE INTERRUPT

END

5.4. Pic Basic Pro Komutları

@ : Assembly kodu (tek satırlık) eklemek için kullanılır.

ASM . . ENDASM : Assembly dili kodlarını eklemek için kullanılmaktadır.

BRANCH : Programın başka bir yere dallanmasını sağlamaktadır ( = ON..GOTO )

BRANCHL : Programın değişken içerikli bir konuma dallanmasını sağlamaktadır.

BUTTON : Pine bağlı bir anahtardaki sıçramaları düzenlemektedir.

CALL : Assembly dilinde yazılmış alt programı çağırmaktadır.

CLEAR : Tüm değişkenleri sıfırlamaktadır.

CLEARWDT : Watchdog timerı silmektedir.

COUNT : Bir pindeki darbeleri saymaktadır.

DATA : Eepromun ilk içeriğini belirlemede kullanılmaktadır.

DEBUG : Uygun pinden ve hızda (baud) asenkron seri çıkış

DEBUGIN : Uygun pinden ve hızda (baud) asenkron seri giriş

DISABLE : Debug yada Interrupt komutlarının icrasını durdurmaktadır. (pasif etme)

DTMFOUT : İstenilen pinden touch tonlar üretir.

EEPROM : Eepromun ilk içeriğini belirlemede kullanılmaktadır.

Page 74: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

74

ENABLE : Debug yada Interrupt komutlarının icrasını aktif etmektedir.

END : İşlemleri durdurur ve düşük güç moduna geçmektedir.

FOR… NEXT : İşlemlerin tekrarında kullanılmaktadır.

FREQOUT : Bir pinde ikiden fazla frekans sağlamaktadır.

GOSUB : Belirlenen adresteki BASIC altprogramını çağırmaktadır.

GOTO : Programının icrasını belirlenen adrese götürmektedir.

HIGH : Pini aktif yapmaktadır. (lojik-1)

HPWM : Programdan bağımsız PWM sinyal üretmektedir.(sadece belirli Pic’erde)

HSERIN : Programdan bağısız asenkron seri giriş.

HSEROUT : Programdan bağısız asenkron seri çıkış.

I2CREAD : I²C aygıtlardan okumada kullanılır.

I2CWRITE : I²c aygıtlara yazmada kullanılır.

INPUT : Pini giriş yapmaktadır.

LCDIN : Lcd hafızasından (RAM) okumada kullanılır.

LCDOUT : Karakterleri lcdde göstermektedir.

LOOKDOWN : Değişken için sabit tablosunu araştırmaktadır.

LOOKDOWN2 : Değişken için sabit-değişken tablosunu araştırmaktadır.

LOOKUP : Tablodan sabit değeri almaktadır.

LOW : Pini sıfıra çekmektedir.(lojik sıfır)

NAP : Geçici bir süre işlemcinin enerjisini kesmektedir.

OWIN : Tek kablo giriş.

OWOUT : Tek kablo çıkış.

OUTPUT : Pini çıkış yapmaktadır.

PAUSE : Gecikme sağlamaktadır. (ms)

PAUSEUS : Gecikme sağlamaktadır. (µs)

PEEK : Registerden Byte’ı okumada kullanılır.

POKE : Registere Byte’ı yazmada kullanılır.

POT : Belirlenen pindeki potansiyometrenin değerini okumaktadır.

PULSIN : Bir pindeki darbe genişliğini okumaktadır.

PULSOUT : Pinde darbe üretmektedir.

PWM : Pinde PWM sinyal üretmektedir.

RCTIME : Pindeki darbe genişliğini ölçmektedir.

READ : Eepromdan Byte’ı okumaktadır.

Page 75: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

75

READCODE : Kod hafızasından kelime okumaktadır.

RESUME : Kesmeden sonra programı kaldığı yere göndermektedir.

RETURN : GOSUB komutuyla dallanılan alt programdan kaldığı yere geri

döndermektedir.

REVERSE : Pinin konumunu değiştirmektedir.(girişse çıkış çıkışsa giriş yapar)

SELECT CASE : Bir değişkeni farklı değerlerle karşılaştırmaktadır.

SERIN : Asenkron seri giriş.

SEROUT : Asenkron seri çıkış.

SHIFTIN : Senkron seri giriş.

SHIFTOUT : Senkron seri çıkış.

SLEEP : Belli bir süre için işlemcinin enerjisini kesmektedir.

SOUND : Belirlenen pinde ton yada beyaz gürültü oluşturmaktadır.

STOP : Programın icrasını durdurmaktadır.

SWAP : İki değişkenin değerini değiştirmektedir.

TOGGLE : Pini toggle durumuna almada kullanılır..

USBIN : USB giriş.

USBINIT : USB ayarlama.

USBOUT : USB çıkış.

WHILE… WEND : Şart doğru olana kadar programın (durumun) icrasını sürdürmede

kullanılır.

WRITE : Eeproma byte’ı yazmada kullanılır.

WRITECODE : Kod hafızasına kelime yazmada kullanılır.

XIN : X-10 giriş.

XOUT : X-10 çıkış.

5.5. Microcode Studio Programı

Picbasic programlama dilinde yazılan bir program yazmak ve derlemek (compile) için

microcode studio programı kullanılmaktadır. Herhangi bir editörde yazılan Pic Basic Pro

kodları microcode studio programına aktarılabildiği gibi, bu programın kendine has editörü

bulunmaktadır. Şekil 5. 1’de microcode studio programının ana sayfası görülmektedir.

5.6. Propic Programı

Page 76: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

76

PIC’in belleğine yüklenmek üzere yazılan program, microcode studio programında

derlenmektedir. Program doğru yazılmışsa .HEX, .ASM, .BAS ve MAC uzantılı dört

dosya oluşturulmaktadır. Hexadecimal kodlar ( derlenmiş program ) bilgisayarın paralel

portuna bağlanan programlayıcı ( PROTOPIC ) aracılığı ile PIC’in program belleğine

yazılmaktadır. Kullanılan PIC16F877’nin Bacak bağlantıları Ek-b’de verilmiştir.Aynı

işlemi yapmak için bilgisayarın seri portuda kullanılabilir.(ICPROG) PROTOPIC

programlayıcısının PROPIC adında bir programı bulunmaktadır. Programın ana menüsü

Şekil 5.2’de verilmiştir.

Şekil 5.1. Microcode Studio Ana Sayfası

Page 77: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

77

Şekil 5.2. Propic Programı Ana Menüsü

Page 78: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

78

BÖLÜM VI

ÇAMA ŞIR MAK İNASI SİMÜLATÖRÜ KONTROL PROGRAMI

Bu kısımda Bölüm IV’te tanımlanan problemlerin çözümü için yazılmış olan program ve

çamaşır makinası simülatörü kontrol devresi verilmiştir.

6.1. Çamaşır Makinası Simülatörü Kontrol Devresi

Çamaşır makinası simülatörünün kontrolü için Şekil 6.1’deki kontrol devresi

tasarlanmıştır. Sekiz farklı problemin çözümü için 8 farklı program yazılmış ve yazılan

programlar birleştirilerek bir PIC16F877 mikrodenetleyicisi içerisine yüklenmiştir. Hangi

programın çalıştırılacağı, programın başlangıcında kontrol devresinde bulunan

switch’ler(anahtar) ile seçilmektedir. Seçilen program değiştirilmek istenildiğinde ise,

uygulama devresinde bulunan Reset Switch ile mikrodenetleyici resetlenmektedir ve

program icrası başa döndürülerek, okunan switch konumlarına göre yeni programın

yürütülmesi sağlanmaktadır. Programlar için switch konumları Çizelge 16’da verilmiştir.

Çizelge 16. Programlar İçin Switch Konumları

000 Birinci Program

001 İkinci Program

010 Üçüncü Program

011 Dördüncü Program

100 Beşinci Program

101 Altıncı Program

110 Yedinci Program

111 Sekizinci Program

Page 79: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

79

Şekil 6.1. Çamaşır Makinası Simülatörü Kontrol Devresi

6.2. Çamaşır Makinası Simülatörü Kontrol Programı

'****************************************************************

'* Name : TOPLAMPROGRAM.BAS *

'* Author : [DURMUŞ GÖKÇEBAY] *

'* Notice : Copyright (c) 2002 *

'* : All Rights Reserved *

'* Date : 16.05.2002 *

'* Version : 1.0 *

'* Notes : BU PROGRAMDA ÇAMAŞIR MAK İNESİ SİMÜLATÖRÜNÜN

KONTROLÜ YAPILMIŞTIR *

'* : *

'****************************************************************

Page 80: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

80

'Burada Hangi Programın Başlayacağı Seçiliyor

TRISA.4 = 1

TRISB = %11000111

TRISC = %11111011

TRISD = 0

program_secme:

IF portc.7 = 0 AND portb.6 = 0 AND portb.7 = 0 then birinci_program

IF portc.7 = 1 AND portb.6 = 0 AND portb.7 = 0 then ikinci_program

IF portc.7 = 0 AND portb.6 = 1 AND portb.7 = 0 then ucuncu_program

IF portc.7 = 1 AND portb.6 = 1 AND portb.7 = 0 then dorduncu_program

IF portc.7 = 0 AND portb.6 = 0 AND portb.7 = 1 then besinci_program

IF portc.7 = 1 AND portb.6 = 0 AND portb.7 = 1 then altinci_program

IF portc.7 = 0 AND portb.6 = 1 AND portb.7 = 1 then yedinci_program

IF portc.7 = 1 AND portb.6 = 1 AND portb.7 = 1 then sekizinci_program

GOTO program_secme

'*************************************************

'birinci program buradan başlıyor

birinci_program

LOW portb.3

tarama_:

IF portb.0 = 0 THEN buzzer_otsun

GOTO tarama_

buzzer_otsun:

HIGH portb.3 'portb.3 buzzer kontrolü için

PAUSE 1000

LOW portb.3

PAUSE 1000

GOTO tarama_

'**************************************************

'ikinci program

ikinci_program:

ii VAR byte

sayma_:

Page 81: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

81

portd = 0

FOR ii = 0 TO 9 STEP 1

portd = ii

PAUSE 3000

NEXT ii

GOTO sayma_

'**************************************************

'üçüncü program

ucuncu_program:

iii VAR byte

LOW portb.3

LOW portc.2

basla:

portd = 0

HIGH portb.4

IF ( portc.4 = 0 ) AND ( portc.5 = 0 ) AND ( portc.6 = 0 ) THEN ece1

IF ( portc.4 = 1 ) AND ( portc.5 = 0 ) AND ( portc.6 = 0 ) THEN ece2

IF ( portc.4 = 0 ) AND ( portc.5 = 1 ) AND ( portc.6 = 0 ) THEN ece3

IF portb.2 = 1 THEN buzzer

IF ( portc.4 = 1 ) AND ( portc.5 = 1 ) AND ( portc.6 = 0 ) THEN ece4

IF ( portc.4 = 0 ) AND ( portc.5 = 0 ) AND ( portc.6 = 1 ) THEN ece5

IF ( portc.4 = 1 ) AND ( portc.5 = 0 ) AND ( portc.6 = 1 ) THEN ece6

IF portb.2 = 1 THEN buzzer

GOTO basla

ece1:

IF portb.1 = 1 THEN ece1a

IF portb.2 = 1 THEN buzzer

LOW portb.4

HIGH portb.4

GOTO basla

ece1a:

LOW portb.4

Page 82: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

82

portd = %0001

PAUSE 1000

GOTO basla

ece2:

IF ( portb.1 = 1 ) THEN ece2a

IF portb.2= 1 THEN buzzer

LOW portb.4

HIGH portb.4

GOTO basla

ece2a:

LOW portb.4

portd = %0010

PAUSE 1000

GOTO basla

ece3:

IF ( portb.1 = 1 ) THEN ece3a

IF portb.2 = 1 THEN buzzer

LOW portb.4

HIGH portb.4

GOTO basla

ece3a:

LOW portb.4

portd = %0011

PAUSE 1000

GOTO basla

ece4:

IF portb.1 = 1 THEN ece4a

IF portb.2 = 1 THEN buzzer

LOW portb.4

HIGH portb.4

GOTO basla

ece4a:

LOW portb.4

Page 83: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

83

portd = %0100

PAUSE 1000

GOTO basla

ece5:

IF ( portb.1 = 1 ) THEN ece5a

IF portb.2 = 1 THEN buzzer

LOW portb.4

HIGH portb.4

GOTO basla

ece5a:

LOW portb.4

portd = %0101

PAUSE 1000

GOTO basla

ece6:

IF ( portb.1 = 1 ) THEN ece6a

IF portb.2 = 1 THEN buzzer

LOW portb.4

HIGH portb.4

GOTO basla

ece6a:

LOW portb.4

portd = %0110

PAUSE 1000

GOTO basla

buzzer:

LOW portb.4

FOR iii = 0 TO 5 STEP 1

HIGH portb.3

PAUSE 500

LOW portb.3

PAUSE 500

NEXT iii

Page 84: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

84

HIGH portb.4

GOTO basla

'

'******************************************************************

'dördüncü program

dorduncu_program:

iiii VAR byte

motor:

HIGH portc.2

IF portb.0 = 0 THEN buzzer__

GOTO motor 'portc.2 motor kontrolü için

buzzer__:

LOW portc.2

FOR iiii = 0 TO 10 STEP 1

HIGH portb.3 'portb.3 buzzer kontrolü için

PAUSE 500

LOW portb.3

PAUSE 500

NEXT iiii

IF portb.0 = 0 THEN buzzer__

GOTO motor

'

'************************************************************************

***

' beşinci program

besinci_program:

motor_:

portd = %0000

PWM portc.2,50,1000

LOW portc.2

PAUSE 3000

Page 85: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

85

motor_1:

portd = %0001

pwm portc.2,75,1000

LOW portc.2

PAUSE 6000

motor_2:

portd = %0010

pwm portc.2,100,1000

LOW portc.2

PAUSE 3000

motor_3:

portd = %0011

PWM portc.2,150,1000

LOW portc.2

PAUSE 3000

motor_4:

portd = %0100

PWM portc.2,200,1000

LOW portc.2

PAUSE 3000

motor_5:

portd = %0101

PWM portc.2,255,1000

LOW portc.2

PAUSE 3000

GOTO motor_

'

'********************************************************************

' altıncı program

altinci_program:

sayma VAR byte

cikis VAR byte

Page 86: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

86

LOW portb.3

HPWM 1,127,1000

DONGU_:

COUNT porta.4,1000,sayma ‘ Pindeki darbeleri 1 saniye boyunca sayar

cikis = (sayma * 60)/4

portd = cikis

PAUSE 100

GOTO DONGU_

'

'************************************************************************

***

'***************************************************

'yedinci program

yedinci_program:

LOW portc.2

LOW portb.3

i VAR byte

ON INTERRUPT GOTO kapi_acik

intcon =%10010000

ENABLE INTERRUPT

loop:

HIGH portb.4

IF ((portc.4 = 1) AND (portc.5 = 0) AND (portc.6 = 0) AND (portb.1 = 1)) THEN

color_wash

IF portb.2 = 1 THEN tus_sil

GOTO loop

color_wash:

LOW portb.4 'anahtarları sil

fill:

portd = %0001

PAUSE 1000

PAUSE 1000

PAUSE 1000

Page 87: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

87

PAUSE 1000

PAUSE 1000

heat:

portd = %0010

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

wash:

portd = %0011

FOR i = 0 TO 5 STEP 1

PWM portc.2,75,1000

NEXT i

LOW portc.2

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

empty:

portd = %0100

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

fill_1:

portd = %0101

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

Page 88: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

88

PAUSE 1000

rinse:

portd = %0110

FOR i = 0 TO 5 STEP 1

HIGH portb.5

PWM portc.2,70,1000

LOW portc.2

LOW portb.5

PAUSE 1000

PWM portc.2,70,1000

LOW portc.2

LOW portb.5

PAUSE 1000

NEXT i

PAUSE 1000

PAUSE 1000

PAUSE 1000

empty_1:

portd = %0111

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

spin:

portd = %1000

FOR i = 0 TO 10 STEP 1

PWM portc.2,185,100

NEXT i

LOW portc.2

PAUSE 1000

PAUSE 1000

PAUSE 1000

Page 89: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

89

PAUSE 1000

PAUSE 1000

bitis_1:

portd = %1001

HIGH portc.2

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

PAUSE 1000

LOW portc.2

PAUSE 1000

PAUSE 1000

PAUSE 1000

bitis:

portd = %1010

PAUSE 1000

PAUSE 1000

PAUSE 1000

GOTO loop

tus_sil:

LOW portb.4

HIGH portb.3

PAUSE 1000

LOW portb.3

GOTO loop

DISABLE INTERRUPT

kapi_acik:

intcon = 0

LOW portc.2

FOR i = 0 TO 10 STEP 1

HIGH portb.3 'portb.3 buzzer kontrolü için

PAUSE 500

Page 90: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

90

LOW portb.3

PAUSE 500

NEXT i

IF portb.0 = 0 THEN kapi_acik

intcon = %10010000

RESUME

ENABLE INTERRUPT

END

'

'************************************************************************

***

'sekizinci program

sekizinci_program:

LOW portc.3

LOW portb.3

pulse VAR byte

sonuc VAR byte

sonuc_1 VAR byte

fark VAR byte

sabit con 4

duty_cycle VAR byte

dongu:

IF pulse = 0 THEN gosub kalkis

HPWM 1,duty_cycle,1000

GOSUB geri_besleme

pid:

fark = (sabit - pulse) 'hatayı tespit et

IF (fark = sabit) THEN segment_1 'hata yoksa

IF (fark < sabit) THEN artirma_ 'motor hızlı dönüyorsa

IF (fark > sabit) THEN azaltma_ 'motor yavaş dönüyorsa

GOTO dongu

artirma_:

duty_cycle = duty_cycle + 5 'increase speed by %5 DC

Page 91: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

91

gosub segment

IF duty_cycle > 255 THEN gosub tasma

GOTO dongu

azaltma_:

duty_cycle = duty_cycle - 5

GOSUB segment

IF duty_cycle < 5 THEN gosub durma

GOTO dongu

segment:

sonuc = (fark * 10)/4

portd = sonuc

PAUSE 1

RETURN

segment_1:sonuc_1 = (fark * 10)/4

portd = sonuc_1

PAUSE 1

GOTO dongu

geri_besleme:

count porta.4,100,pulse

RETURN

tasma:

duty_cycle = 255

RETURN

durma:

duty_cycle = 5

RETURN

kalkis:

duty_cycle = 125

RETURN

Page 92: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

92

BÖLÜM VII

SONUÇ ve ÖNERİLER

Bu çalışmada PIC16F877 mikrodenetleyicisi ile, Niğde Üniversitesi, Mühendislik

Mimarlık Fakültesi, Elektrik Elektronik Mühendisliği Bölümü, Mikroişlemciler

Labaratuvarında bulunan bir çamaşır makinesi simülatörünün kontrolü gerçekleştirilmi ştir.

Kontrol işleminin yapılabilmesi için ilgili bölümlerde ayrıntılı olarak açıklandığı gibi

program geliştirme yazılımı (Ör.:Microcode studio), programlama yazılımı ( Ör.:Propic ),

programlama devresi ve uygulama devresi gibi bazı donanım ve yazılımın kullanılması

gerekmektedir.

Bu bitirme ödevinde assembly dili yerine yüksek seviyeli programlama dillerinden biri

olan PIC BASIC PRO programlama dili kullanılmıştır. Böylece programların

geliştirilmesi, daha hızlı ve rahat olmuştur. Fakat karmaşık olayların çözümünde bazı

noktalarda pic basic programlama dili yetersiz kalmıştır. Fakat assembly komutlarından

faydalanılarak bu sorunlar ortadan kaldırılmıştır.

Sonuç olarak, bu çalışmada da görüldüğü gibi bir PIC mikrodenetleyicisinin endüstriyel

sistem kontrolü amacıyla kullanılması sayesinde, sistem tasarımının kolaylığının yanı sıra,

mikrodenetleyicili endüstriyel sistem uygulamaları, klasik kumanda sistemleri ve mikro

işlemci tabanlı kontrol sistemlerine alternatif olabilecek bir nitelik taşımaktadır.

Page 93: Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, …feteknik.com/FileUpload/bs322184/File/pic_ile_camasir... · 2013-04-07 · Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde

Durmuş GÖKÇEBAY, Bitirme Ödevi, Niğde Üniversitesi, Mühendislik-Mimarlık Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü, 2001-2002 Eğitim- Öğretim Yılı

93

KAYNAKLAR

microEngineering Labs, Inc, 2001, PicBasic Pro Compiler

Bytronic International Ltd , Bytronic Washing Mechine Simulator User Manual Version

2.0, England

Altınbaşak O., 2000, ”Mikrodenetleyiciler ve Pic Programlama”,Altaş Yayınları , İstanbul

Turgutlu H.F, 2002, ”Pic Mikrodenetleycisi Kullanarak Deneysel Bir Endüstriyel Sistemin

Kontrol Edilmesi”,Niğde Üniversitesi, Niğde

Microchip , 2001, Microchip Technical Library CD-ROM ( Third Edition), Microchip

Technology Inc., Arizona

İNTERNET SİTELER İ

http://www.microchip.com

http://www.antrak.org.tr

http://www.basicmicro.com

http://www.melabs.com