T.C Niğde Üniversitesi Mühendislik Mimarlık Fakültesi Elektrik Elektronik Mühendisliği Bölümü



Benzer belgeler
PIC 16F877 nin kullanılması

T.C Niğde Üniversitesi Mühendislik Mimarlık Fakültesi Elektrik Elektronik Mühendisliği Bölümü

BÖLÜM 1: MİKRODENETLEYİCİLER

İçİndekİler. 1. Bölüm - Mİkro Denetleyİcİ Nedİr? 2. Bölüm - MİkroDenetleyİcİlerİ Anlamak

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

BÖLÜM Mikrodenetleyicisine Giriş

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

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İ

İÇİNDEKİLER 1. KLAVYE KLAVYE RB KLAVYE RBHIGH DİSPLAY... 31

B.Ç. / E.B. MİKROİŞLEMCİLER

PIC Mikrodenetleyicileri

Adres Yolu (Address Bus) Bellek Birimi. Veri Yolu (Databus) Kontrol Yolu (Control bus) Şekil xxx. Mikrodenetleyici genel blok şeması

4-Deney seti modüler yapıya sahiptir ve kabin içerisine tek bir board halinde monte edilmiştir.

EEM 419-Mikroişlemciler Güz 2017

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İ

Mikroişlemcili Sistemler ve Laboratuvarı

Eğitim - Öğretim Yöntemleri Başlıca öğrenme faaliyetleri Kullanılan Araçlar Dinleme ve anlamlandırma

Haftalık Ders Saati Okul Eğitimi Süresi

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

Configuration bitleri ve reset durumları hakkında kavramlar

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

5.Eğitim E205. PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628:

EasyPic 6 Deney Seti Tanıtımı

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Mikroişlemci Nedir? Mikrodenetleyici Nedir? Mikroişlemci iç yapısı Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Analog Sayısal Dönüşüm

DC motorların sürülmesi ve sürücü devreleri

MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER

Çizgi İzleyen Robot Yapımı

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ. Uzaktan Kumanda Edilen Lamba Dimmer inin Gerçekleştirilmesi

Hacettepe Robot Topluluğu

SAYISAL MANTIK LAB. PROJELERİ

KESME (INTERRUPT) NEDİR?

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

Bir mikroişlemci temel olarak üç kısımdan oluşur. Bunlar merkezi işlem birimi (CPU), giriş çıkış birimi (G/Ç) ve bellektir.

MİLLİ SAVUNMA ÜNİVERSİTESİ KARA HARP OKULU DEKANLIĞI BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ DERS TANITIM BİLGİLERİ

6. DİJİTAL / ANALOG VE ANALOG /DİJİTAL ÇEVİRİCİLER 1

HAFTA 1 KALICI OLMAYAN HAFIZA RAM SRAM DRAM DDRAM KALICI HAFIZA ROM PROM EPROM EEPROM FLASH HARDDISK

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

PIC Programlama. Devrim Çamoğlu

DOKUMANLAR

TIMER. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ

DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI İÇERİK KESME

Mikroişlemciler. Microchip PIC

1. PROGRAMLAMA. PDF created with pdffactory Pro trial version

İŞLEMCİLER (CPU) İşlemciler bir cihazdaki tüm girdilerin tabii tutulduğu ve çıkış bilgilerinin üretildiği bölümdür.

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

BÖLÜM 2 SAYI SİSTEMLERİ

PIC PROGRAMLAMA STEP MOTOR SÜRÜCÜ VE KONTROL AMAÇ NEDİR? Unipolar Step Motorlar. Uç TESPİTİ NASIL YAPILIR?

Sabit Gerilim Regülatörü Kullanarak Ayarlanabilir Güç Kaynağı

İ.T.Ü. Eğitim Mikrobilgisayarının Tanıtımı

Arduino nedir? Arduino donanım ve yazılımın kolayca kullanılmasına dayalı bir açık kaynak elektronik platformdur.

Şekil1. Geri besleme eleman türleri

1. Sayıcıların çalışma prensiplerini ve JK flip-floplarla nasıl gerçekleştirileceğini anlamak. 2. Asenkron ve senkron sayıcıları incelemek.

Teorik Bilgi DENEY 7: ASENKRON VE SENKRON SAYICILAR

DENEY 2- Sayıcılar. 1. Sayıcıların prensiplerinin ve sayıcıların JK flip-flopları ile nasıl gerçeklendiklerinin incelenmesi.

Deney 6: Ring (Halka) ve Johnson Sayıcılar

Bilgisayar Mühendisliğine Giriş. Yrd.Doç.Dr.Hacer KARACAN

DENEY 21 IC Zamanlayıcı Devre

C-Serisi PLC İleri Seviye Eğitim

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

Bölüm 4 Ardışıl Lojik Devre Deneyleri

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.

(Random-Access Memory)

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

Bölüm 7 Ardışıl Lojik Devreler

DENEY 2- Sayıcılar ve Kaydırmalı Kaydediciler

B.Ç. / E.B. MİKROİŞLEMCİLER

Sistem Programlama. Kesmeler(Interrupts): Kesme mikro işlemcinin üzerinde çalıştığı koda ara vererek başka bir kodu çalıştırması işlemidir.

İÇİNDEKİLER. 1-1 Lojik ve Anahtara Giriş Lojik Kapı Devreleri... 9

Deney 10: Analog - Dijital Dönüştürücüler (Analog to Digital Converters - ADC) Giriş

L3 Otomasyon Laboratuvarı

KIRIKKALE ÜNİVERSİTESİ

BM-311 Bilgisayar Mimarisi

PIC PROG/DEKA PRO-2, Microchip mikro denetleyici ailesinde PIC16 ve PIC18 serisinin

PROJE RAPORU. Proje adı: Pedalmatik 1 Giriş 2 Yöntem 3 Bulgular 6 Sonuç ve tartışma 7 Öneriler 7 Kaynakça 7

XC8 ile PİC uygulamaları

Deney 3: Asenkron Sayıcılar

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

Electronic Letters on Science & Engineering 5(1) (2009) Available online at

Bölüm 20 FBs-4A2D Analog Giriş/Çıkış Modülü

YILDIZ TEKNIK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKULTESİ ELEKLTRONİK VE HABERLEŞME MÜHENDİSLİĞİ BÖLÜMÜ

Komutların İşlem Süresi

PIC TABANLI, 4 BASAMAKLI VE SER

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

Fatih Üniversitesi. İstanbul. Haziran Bu eğitim dokümanlarının hazırlanmasında SIEMENS ve TEKO eğitim dokümanlarından faydalanılmıştır.

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Ü

RF İLE ÇOK NOKTADAN KABLOSUZ SICAKLIK ÖLÇÜMÜ

DERS NOTLARI. Yard. Doç. Dr. Namık AKÇAY İstanbul Üniversitesi Fen Fakültesi

CUMHURİYET MESLEKİ VE TEKNİK ANADOLU LİSESİ BİLİŞİM TEKNOLOJİLERİNİN TEMELLERİ DERSİ DERS NOTLARI BELLEKLER

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ ELEKTRONİK SİSTEMLER LABORATUVARI 1

WiFi RS232 Converter Sayfa 1 / 12. WiFi RS232 Converter. Teknik Döküman

Ek bilgi Internet:.../cecx

Transkript:

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

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ı : Başkan Üye Üye BİTİRME ÖDEVİ SINAV JURİSİ : : : 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

Ö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

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

İÇİ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

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

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

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

Çİ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

Ş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

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

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

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

Ç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

BÖLÜM II TEMEL BİLGİLER 2.1. Mikrodenetleyiciler Bir mikrodenetleyici karmaşık lojik fonksiyonları tek bir entegrede toplayıp sunan bir cihazdır denilebilir. Genelde başlı başına bir sistem olmayıp, başka bir sistemi yönetmek amacıyla kullanılır. MCU'larda (Micro Control Unit) klasik mikroişlemcili sistemlerden farklı olarak program belleği, RAM, I/O ve CPU bir aradadır. Bu çalışmamda bir çamaşır makinesi similatorünün (maket model) kontrolünü bir mikrodenetleyici ile gerçekleştirilmiştir. Mikrodenetleyici olarak microchip firmasının PIC16F877 adlı mikrodenetleyicisi kullanılmıştır. Bir mikrodenetleyici kabaca, bilgisayar içerisinde bulunması gereken temel bileşenlerden RAM, I/O gibi bileşenleri içerisinde barındıran tek bir chip mahiyetindedir. Böyle olunca bilgisayar kontrolü gerektiren elektronik uygulamalarda mikrodenetleyici kullanma eğilimi artmaktadır. Çünkü bir mikroişlemci ile kontrol edilecek bir sistemi kurmak için, CPU, RAM, I/O ve bu birimler arasındaki veri alış-verişini sağlayacak baskılı devreyi kurmak gerekmektedir. Oysa aynı iş için bir mikrodenetleyici ve birde devre kartı kullanmak yeterli olmaktadır. Bu da maliyet ve kolaylık anlamında bir mikrokontrolörün seçiminde etkili olmaktadır. Günümüzde mikrodenetleyciler kameralarda, otomobillerde, fax cihazlarında, fotokopi, radyo, cep telefonları, tv, bazı oyuncaklar ve daha bir çok bilgisayar teknolojisi gerektiren alanlarda kullanılmaktadır. Şekil 2.1 te bir mikrodenetleyiciye ait blok diyagram verilmiştir. 15

Ç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

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

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

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

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

PORTA 0x05 TRISA 0x85 ; giriş / çıkış belirleme registeri ADCON1 0x9F ; RA portlarının A / D, referans gerilimi veya sayısal giriş / çıkış olarak seçiminde kullanılmaktadır. Çizelge 1. PIC16F877 ile PIC16F84 ün karşılaştırılması ÖZELLİKLER PIC16F877 PIC16F84 Çalışma hızı DC-20Mhz DC-10Mhz Program belleği 8K 14 word Flash ROM 1K 14 word Flash ROM EEPROM Veri belleği 256 byte 64 byte Kullanıcı RAM 368 8 byte 68 8 byte Giriş / Çıkış port sayısı 33 13 Timer Timer0, Timer1, Timer2 Timer0 A/D çevirici 8 kanal 10 bit YOK Capture / Comp./ PWM 16 bit Capture 16 bit Compare YOK 10 bit PWM çözünürlük Seri çevresel arayüz SPI(Master) ve 12C(Master/Slave) modunda SPI portu YOK (senkron seri port) Paralel slave port 8 bit, harici RD,WR ve CS kontrollü YOK USART/SCI 9 bit adresli YOK İşlemciye ilk defa gerilim uygulandığında RA4 hariç diğer beş PORTA biti A / D çeviricidir. Eğer RA portunun bazı bitlerini sayısal giriş / çıkış olarak kullanmak istersek ADCON1 registerında değişiklik yapmamız gerekmektedir. 3.2.2. Port b: Her bir biti bağımsız olarak sayısal giriş veya çıkış olarak tanımlanabilmektedir. 8 bit genişliğindedir. B portunun her bacağı dahili bir dirençle VDD ye bağlıdır. ( weak pull- 21

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 TRISB OPTION_REG 0x06 0x86 ; giriş / çıkış belirleme registeri 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 TRISC 0x07 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

PORTD TRISD TRISE 0x08 0x88 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 TRISE ADCON1 0x09 0x89 ; giriş / çıkış belirleme registeri 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

kullanılmaktadır. F84 de iki register bankası olduğunu ve yalnızca RP0 bitini ayarlamak suretiyle ilgili register bankasının seçildiğine dikkat edilmelidir. ( Çizelge 2 ). Çizelge 2. Status registerı IRP RP1 RP0 TO PD Z DC C Bit7 bit0 < RP1, RP0 > bitleri aşağıdaki gibi ayarlanarak istenilen register bankasına erişebilmektedir. Her register bankası 128 byte genişliğindedir. ( 7Fh ). Çizelge 3. Status Register Bank Seçme Bitleri 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

ü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

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

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

3.6. PIC16F877 nin Besleme Uçları ve Beslenmesi PIC16F877 nin besleme gerilimi 11, 12 ve 31, 32 numaralı pinlerden uygulanmaktadır. 11 ve 32 numaralı Vdd ucu +5 V a ve 12, 31 numaralı Vss ucu toprağa bağlanır. PIC e ilk defa enerji verildiği anda meydana gelebilecek gerilim dalgalanmaları nedeniyle, oluşabilecek istenmeyen arızaları önlemek amacıyla 100nF lık dekuplaj kondansatörünün devreye bağlanması gerekmektedir. PIC ler CMOS teknolojisi ile üretildiklerinden 2 ila 6 volt arasında çalışabilmektedirler. +5 V luk bir gerilim ise ideal bir değer olmaktadır. 3.7. PIC16F877 nin Reset Uçları Kullanıcının programı kasti olarak kesip başlangıca döndürebilmesi için PIC in 1 numaralı ucu MCLR olarak kullanılmaktadır. MCLR ucuna 0 Volt uygulandığında programın çalışması başlangıç adresine döner. Programın ilk başlangıç adresinden itibaren tekrar çalışabilmesi için, aynı uca +5 v gerilim uygulanmalıdır. 3.8. PIC16F877 nin Clock Uçları ve Osilatör Tipleri PIC16CXX mikrodenetleyicilerinde 4 çeşit osilatör bulunmaktadır. Kullanıcı bu 4 çeşitten birini seçerek iki konfigürasyon bitini (FOSC1 ve FOSC2) programlayabilir. Bu osilatör çeşitleri çizelgede verilmiştir. PIC16F877 de clock uçları 13 ve 14 nolu pinlerdir. Hazırlanacak olan PIC programlarında kullanılan osilatör tipi PIC programının çalışma hızını ve hassasiyetini etkileyeceğinden dolayı amaca uygun bir osilatör devresi kullanılmalıdır. Çizelge 4 de farklı osilatör çeşitleri ve özellikleri görülmektedir. Osilatör tipinin seçiminde dikkat edilecek bir başka nokta ise, seçilecek olan osilatörün kullanılan PIC in özelliğine uygun olarak seçilmesidir. Örnek verecek olursak 10MHz çalışma frekansına sahip bir PIC16F877 için 20MHz lik bir osilatör kullanmak doğru olmaz. Fakat daha düşük bir frekans değeri ile çalışan bir osilatör devresi kullanılabilir. Çizelge 4. Osilatör çeşitleri Osilatör Tipi Tanımı Özelliği Frekansı LP Kristal osilatör veya seramik rezonatör Asgari akım 40KHz XT Kristal osilatör veya seramik rezonatör Genel amaçlı 4MHz HS Kristal osilatör veya seramik rezonatör Yüksek hız 20MHz RC Direnç / Kapasitör zaman sabitli Düşük maliyet 4MHz 28