pic ile çamaşır makinesi - Fikir Elektronik Teknik

Transkript

pic ile çamaşır makinesi - Fikir Elektronik Teknik
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ı
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
1
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ı
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ı
2
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ı
Ö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.
3
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ı
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.
4
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ı
İÇİ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
5
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.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
6
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.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
7
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.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
8
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ı
Çİ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
9
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ı
Ş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
10
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ı
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ı
11
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ı
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.
12
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ı
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üşü
13
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ı
Çamaşır Makinası
Simülatörü
40 Yollu IDE Kablosu
PIC16F877
Mikrodenetleyicili Kontrol
Devresi
Ş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ı
14
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ı
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
verilmiştir.
15
ait blok diyagram
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ı
Ç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.
Çevresel üniteler
Lamba,motor,ısı,
ışık sensörü
gibi…
Mikrodenetleyici
I/O
Ş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.
16
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ı
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.
17
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ı
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
18
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ı
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.
19
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ı
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.
20
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ı
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
16 bit Capture
Capture / Comp./ PWM
16 bit Compare
YOK
10 bit PWM çözünürlük
SPI(Master) ve
Seri çevresel arayüz
12C(Master/Slave)
modunda SPI portu
YOK
(senkron seri port)
Paralel slave port
USART/SCI
8 bit, harici RD,WR ve CS
kontrollü
9 bit adresli
YOK
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 pull21
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ı
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.
22
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ı
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
23
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ı
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
Bit7
C
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
00
Bank 0
01
Bank 1
10
Bank 2
11
Bank 3
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
24
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ı
ü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)
25
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ı
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 )
26
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.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ı
27
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.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
28
Düşük maliyet 4MHz
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.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
500KHz
20-68pF
1MHz
15-68 pF
2MHz
15-47 pF
4MHz
15-33 pF
8MHz
15-47 pF
20MHz
15-47 pF
XT
HS
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
29
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ı
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ı
30
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.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
GIE
GIE
6
EEIE
5
TOIE
4
INTE
3
2
1
RBIE
TOIF
INTF
: 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.
31
0
RBIF
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ı
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.
32
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.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
RBPU
7
INTEDG TOCS
6
TOSE
5
PSA
4
PS2
3
PS1
2
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
33
1
PS0
0
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.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
TMR0
WDT
bölme sayısı oranı
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
34
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ı
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.
35
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ı
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.
36
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.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.
37
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ı
Ç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
38
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ı
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.
39
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.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.
40
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ı
Ş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
41
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ı
Ş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
42
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ı
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
43
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ı
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ü
44
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ı
Ç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.
45
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ı
Çizelge 10. Anahtarlama Hataları Listesi ve Etkileri
HATA NO
HATA
ETKİ
1.
IC yi bozmak(kırmak)
Bütün kuvvetlendirilmiş
IC2:74LS244
sinyaller izole edilir.
Pin 13 ü kırmak
Anahtar reset hattı yok
2.
IC2:74LS244
3.
7 parçalı displayın “e” parçasını +5V’la kısa
devre yapmak
4.
Motor bağlantılarını kırmak
“e” parçası etkin değil.
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.
46
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ı
Ş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ç :
47
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ı
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ç :
48
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ı
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ç :
49
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ı
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.
50
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ı
Ş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ı
51
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ı
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ş
52
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ı
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 :
53
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ı
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.
BAŞLA
PORTLARI
ÇALIŞTIR
PROGRAM SEÇİCİLERİ
BUL
BUZZER ALARMI
HAYIR
RENKLİ DEVRİ
SEÇİLDİ Mİ?
EVET
RENKLİ YIKAMA
PROGRAMINI ÇALIŞTIR
DEVİR
TAMAMLANDIĞINDA
DİSPLAY 8 OLSUN
SON
Şekil 4.11. Labaratuvar Çalışması 7 – Akış diyagramı
54
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ı
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)
55
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ı
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
56
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ı
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.Güç kaynağı voltaj seviyesi
ve kutupları kontrel edilir.
2.Wms (400 ma ) sigortası
1
Ünite güç vermez
kontrol edilir.
3. Mikrodenetleyicinin
bağlantı kabloları kontol
edilir.
1.Anahtar hatalarını kontrol
edilir.
2
Çıkışların ya da girişlerin kontrolsüz olması
2. Ünitenin doğruca
güçlendiği kontrol edilir.
3. Mümkünse arabağın doğru
57
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ı
kurulduğu ve bağlandığı
kontrol edilir.
1.Anahtar hatalarını kontrol
edilir.
2. Motor kontrol anahtarı
3
SW1 in doğru pozisyonda
Motor kontrolsüzdür
olduğunu kontrol edilir.
3. Eğer Bytronic yazılımı
kullanılmıyorsa, programı
doğruca kontrol edilir,
1.Anahtar hatalarına bakılır.
2. Port/CKO seçici anahtarı
SW2 nin doğru konumda
olduğunu kontrol edilir.
4
3. Motorun ve diskin
Motor hız geri beslemesi yoktur.
serbestçe döndüğünü kontrol
edilir.
4. Duyarlılık ve histerizisin
doğruca set olduğunu kontrol
edilir.(Ek-3 teki referansla)
1.Anahtar hatalarına bakılır.
2. TTL seviyeler için reset
hattının doğruca
5
Program seçicinin ledleri sürekli mandallanır.
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ı
58
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ı
Ç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
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
Anahtarlar için
RESET
Çizelge 13. Çamaşır Makinası 40 Yollu Header
FONKSİYON
Motor sürme
Kapı 1’e bağlantı
PORT
PİN NO
PORT
CLK 1
1
2
İÇ CLOCK
CLK 2
3
4
CLK O
Motor geribeslemesi
OUT 1
5
6
GATE 1
OUT 2 için bağlantı
GATE 2
7
8
OUT O
OUT 2
9
10
GATE 0
DISABLE
11
12
0 VOLT
5 VOLT
13
14
5 VOLT
PC0
15
16
PC7
İÇ CLOCK
Kapı açma / kapama
59
FONKSİYON
DST INT CLK için bağlantı
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ı
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
39
40
0 VOLT
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
60
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.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
61
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ı
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
SC1
D6
SC0
D5
RL1
D4
RL0
D3
M2
D2
M1
D1
M0
DO
BCD
SAYICIYI SEÇ
OKU / YÜKLE
MOD
İKİLİ / BCD
8253 CTC’nin her modu tam olarak IBM arabağı dökümanlarında açıklanmıştır.
62
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ı
Ş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.
63
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ı
Şekil 4.15. CTC Kanallar 1 ve 2’nin Zamanlama Diyagramı
Şekil 4.16. Sayıcı / Zamanlayıcı Kanal 0’ın Konfigürasyonu
64
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ı
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.
65
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ı
Şekil 4.17. CTC Hız Ölçümü İçin Akış diyagramı
BAŞLA
SAYICI KANALI
BAŞLAT
ZAMANLAYICI DÖNGÜ T1'İ
SET ET
DİĞER
PROGRAMLAMA
GÖREVLERİ
HAYIR
T1 ZAMANI BİTTİ
Mİ?
EVET
SAYICI O ' I OKU
SON MOTOR HIZ FARKINI
HESAPLA
MOTOR HIZINI HESAPLA VE
GÖSTER
HAYIR
ÇIKIŞ E/H
EVET
SON
66
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ı
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)
67
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ı
Ç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
68
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.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
kullanılır.’
69
lojik-0 değeri gönderilmede
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.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
MOVLW
H’FF’
MOVWF
SAYI1
MOVLW
H’FF’
MOVWF
SAYI2
DONGU
DONGU1
DONGU2
DECFSZ SAYI2,F
GOTO DONGU2
DECFSZ SAYI1,F
GOTO DONGU1
DECFSZ SAYI
GOTO DONGU
RETURN
70
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ı
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
71
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ı
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
72
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ı
……..
……
…..
….
...
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
BRANCH
: Assembly dili kodlarını eklemek için kullanılmaktadır.
: 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.
73
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ı
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.
74
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ı
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ı
75
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ı
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ı
76
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ı
Şekil 5.2. Propic Programı Ana Menüsü
77
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ı
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
78
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ı
Ş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
*
'*
*
:
'****************************************************************
79
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ı
'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_:
80
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ı
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
81
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ı
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
82
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ı
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
83
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ı
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
84
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ı
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
85
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ı
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
86
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ı
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
87
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ı
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
88
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ı
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
89
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ı
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
90
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ı
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
91
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ı
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.
92
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ı
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
93

Benzer belgeler

yuruyen-isikli-yazi-panosu

yuruyen-isikli-yazi-panosu 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ü...

Detaylı

bir bahçe sulama sisteminin pic ile yapılması

bir bahçe sulama sisteminin pic ile yapılması BİR ÇAMAŞIR MAKİNASI SİMÜLATÖRÜNÜN BİR PIC MİKRODENETLEYİCİSİ KULLANARAK KONTROLÜ

Detaylı