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

Benzer belgeler
Embedded(Gömülü)Sistem Nedir?

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

EEM 419-Mikroişlemciler Güz 2017

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

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

BÖLÜM Mikrodenetleyicisine Giriş

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

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

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

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İ

1 GİRİŞ 1 Bu Kitap Kimlere Hitap Eder 1 Kitabın İşleyişi 2 Kitabın Konuları 3 Kitabı Takip Etmek İçin Gerekenler 6 Kaynak Kodu ve Simülasyonlar 6

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

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

Bilgisayar Mimarisi ve Organizasyonu Giriş

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

Çalışma Açısından Bilgisayarlar

Mikrobilgisayar Sistemleri ve Assembler

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

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

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

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

Mikroişlemcili Sistemler ve Laboratuvarı 5.HAFTA:BÖLÜM-1

BM-311 Bilgisayar Mimarisi

EEM 419-Mikroişlemciler Güz 2016

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

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

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

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

Hacettepe Robot Topluluğu

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

Ders devam zorunluluğu bulunmaktadır ve 2 hafta derse katılmayan öğrenci devamsızlıktan kalacaktır.

İşletim Sistemleri (Operating Systems)

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

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

PIC Programlama. Devrim Çamoğlu

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

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

DOKUMANLAR

Günümüz. Intel Core i nm teknolojisi 1.86 Milyar tranzistör. Intel Core i nm teknolojisi 1.4 Milyar tranzistör

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

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

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

Mikroişlemcili Sistemler ve Laboratuvarı

A Ailesi MCU lar

PIC 16F877 nin kullanılması

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Bilgisayar Mimarisi Nedir?

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

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

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

8. MİKROİŞLEMCİ MİMARİSİ

MİKROİŞLEMCİ İLE A/D DÖNÜŞÜMÜ

Temel elektronik laboratuvarı olarak kullanılmaktadır. Bu laboratuvarda ders alan öğrencilerimiz;

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü Tel:

PIC16F877A nın Genel Özellikleri

EasyPic 6 Deney Seti Tanıtımı

Mikrodenetleyiciler (MECE 308) Ders Detayları

PIC Kontrollü LED Sürücü Devresi

PIC TABANLI, 4 BASAMAKLI VE SER

Mikroişlemciler. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

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

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

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.

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

PIC KULLANARAK GÜÇ KARSAYISI ÖLÇÜM DEVRESİ TASARIMI VE SİMÜLASYON

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

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

GAZİANTEP ÜNİVERSİTESİ

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

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

Mikroişlemci ile Analog-Sayısal Dönüştürücü (ADC)

KONTROL VE OTOMASYON KULÜBÜ

DENİZ HARP OKULU BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜM BAŞKANLIĞI DERS TANITIM BİLGİLERİ

MEKATRONİĞİN TEMELLERİ

Mikroişlemciler ve Mikrodenetleyiciler

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

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu

Yrd. Doç. Dr. Bülent ÇOBANOĞLU

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:

MEKATRONİĞİN TEMELLERİ

Mikrobilgisayar Mimarisi ve Programlama

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

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

BİLGİSAYAR MİMARİSİ. << Bus Yapısı >> Özer Çelik Matematik-Bilgisayar Bölümü

MİKRODENETLEYİCİLER. Yrd.Doç.Dr. İlker ÜNAL

XC8 ile PİC uygulamaları

Bilgisayar Donanım 2010 BİLGİSAYAR

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

İçindekiler FPGA GELİŞTİRME KARTI ENERJİ BESLEMESİ:... 5 ENERJİ SİSTEMİ ŞEMASI:... 5 FPGA GELİŞTİRME KARTINA PROGRAM YÜKLEME:... 6

Derste Neler Anlatılacak? Temel Mekatronik Birimler,temel birim dönüşümü Güncel konular(hes,termik Santral,Rüzgar Enerjisi,Güneş

Donanımlar Hafta 1 Donanım

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

GÖMÜLÜ SİSTEMLER. Bilecik Şeyh Edebali Üniversitesi Gömülü Sistemler Ders notları-1

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

William Stallings Computer Organization and Architecture 9 th Edition

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

Mikroişlemciler. Microchip PIC

BİLGİSAYAR SİSTEMLERİ

LCD (Liquid Crystal Display )

Transkript:

T.C. ERCİYES ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MEKATRONİK LABORATUVARI 1 PIC MİKRODENETLEYİCİSİ ve UYGULAMALARI DENEY SORUMLUSU Arş. Gör. Mehmet Safa BİNGÖL KAYSERİ - 2018

İÇERİK Giriş Mikroişlemciler Mikrodenetleyiciler PIC Nedir Mimariler PIC16F877A Yazılım Uygulamalar

Giriş Çağdaş mekatronik teknolojisi ürünleri, bir veya birkaç mikroişlemci çevresinde yerleştirilen duyucular (sensörler), eyleyiciler (motor sistemler) ve tüm sistem veya makineyi merkezi veya dağınık yapıda denetleyebilen bilgisayar programlarından oluşmaktadır. Bu tanıma uygun sistem ve makineler kendisine tanımlanan çevreyi gözlemlemekte, çevredeki değişimleri algılamakta ve algıladığı bilgileri yorumlayarak gerekli motor sistemler yardımı ile çevresini değiştirebilmektedir. Mekatronik makineler mekanik işlevsellik ile tümleşik algoritmik denetimi beraberce içeren ürün ve sistemlerdir.

Giriş Bu deney kapsamında anlatılacak olan PIC mikrodenetleyicisi ile mekatronik mühendisliği disiplininin temel konularından biri olan ayrık zamanlı kontrol uygulamalarındaki kullanışına dair pratik bilgi eksikliği giderilmeye çalışılacaktır. Bu deney kapsamında yapılacak olan uygulamalarda daha önceden teorik olarak eğitimi verilen lojik ve programlama derslerinin uygulamaları gerçekleştirilerek, öğrencilerin daha sonraki meslek hayatlarında karşılaşacakları buna benzer problemlere sistematik bir bakış açısı ile yaklaşabilmeleri için gerekli eğitim sağlanmaya çalışılacaktır.

Mikroişlemciler Mikroişlemciler, sayısal bilgileri adres ve veri yolu ile alan, bu bilgileri bir hafıza biriminde saklanmış program komutlarına uygun olarak işleyen ve elde edilen sonuçları sayısal çıktıya dönüştüren mantık devreleridir. Bir mikroişlemcinin temel işlevi, sistem register larında bulunan verileri içeriden/dışarıya veya dışarıdan/içeriye aktarma (transferring) ve verileri bir durumdan diğerine çevirmedir (transforming). Bir mikroişlemcinin iç yapısı 3 bölümden oluşmaktadır. Bu bölümler; 1- Kontrol birimi, 2- Registerlar, 3- Aritmetik ve Lojik Birimdir (ALU).

Mikroişlemciler 1- Kontrol Birimi: Zamanlama ve kontrol birimi, bellekte program bölümünde bulunan komut kodunun alınıp getirilmesi, kodun çözülmesi, ALU tarafından işlenilmesi ve sonucunun alınıp belleğe geri konulması için gerekli olan kontrol sinyalleri üretir. Bilgisayar sisteminde bulunan dahili ve harici bütün elemanlar bu kontrol sinyalleri ile denetlenir. Basit bir mikroişlemcide bubölüm 3 değişik işlevi yerine getirir: Zamanlama Kontrolü: İşlemci, harici saat sinyali üreten bir birimden giriş alan iç saat devresine sahiptir. Bir sinyal alınarak talebe göre zaman sinyallerine çevrilerek sisteme dağıtılır. Komut kod çözücüsü: Bu devre komut kaydedicisinde tutulan komutları yorumlar ve ALU ya kaydedicilerle çalışması için uygun sinyaller gönderilir. Kesme ve Mantık Birimi: Bu birim diğer kontrol elemanlarına benzer. Gerekli durumlarda kesme sinyallerini alarak işlemciyi uyarır.

Mikroişlemciler

Mikroişlemciler 2- Registerlar (Kaydediciler): İşlemci içerisinde ham bilgi girdisinin hızlı biçimde işlenerek kullanılabilir çıktıya dönüştürülmesi için sistemde verileri geçici olarak üzerinde tutacak bir gurup veri saklayıcıya ihtiyaç duyulmaktadır. Kaydediciler verinin manevrasında ve geçici olarak tutulmasında görevlidirler.

Mikroişlemciler 3- Artimetik ve Lojik Birim (ALU): Mikroişlemci de aritmetik ve mantık işlemlerinin yapıldığı en önemli birimlerden birisidir. Aritmetik işlemlerdenilince başta toplama, çıkarma, çarpma, bölme, mantık işlemleri denilince AND, OR, EXOR ve NOT gibi işlemler akla gelir. Komutlarla birlikte bu işlemleri mantık kapılarının oluşturduğu toplayıcılar, çıkarıcılar ve kaydıran kaydediciler gerçekleştirirler. ALU da gerçekleşen bütün bu işlemler kontrol sinyalleri vasıtasıyla Zamanlama ve Kontrol Biriminin gözetiminde eş zamanlı olarak yapılır.

Mikrodenetleyiciler Mikrodenetleyiciler, mikroişlemci ve mikroişlemciye bağlı bütün birimlerin üzerinde bulunduğu tek yongaya verilen isimdir. Bir mikrodenetleyici yongasında bulunan hafıza, giriş/çıkış ve diğer donanım alt sistemleri bu işlemcinin bir çok uygulama içinde gömülü (embedded) olarak ve tek başına, bir mikroişlemciye göre çok daha basit ve ucuz ara birim teknikleriyle, kontrol amaçlı olarak kullanımını sağlar. Bir mikrokodenetleyici kullanıldığı sistemin bir çok özelliğini aynı anda izleme (monitoring), ihtiyaç anında gerçek zamanda cevap verme (real time responding), -ki bu mikrokontrolörün işaretleri hazır olduğu anda alıp ortamı bekletmeden işleyebilmesi demektir- ve sistemi denetlemekten (control) sorumludur.

Mikrodenetleyiciler Mikrodenetleyicilerin birimleri: Bir mikroişlemci çekirdeği (CPU) Program ve veri belleği (ROM, RAM) Giriş/Cıkış (I/O) birimleri Saat darbesi üreteçleri Zamanlayıcı/Sayıcı birimleri Kesme kontrol birimi A/D D/A (Analog/Dijital Dijital/Analog) çeviriciler Darbe genişlik üreteci (PWM) Seri Haberleşme Birimi (USB, USART, RS 232, CAN, I2C, SPI vb.) Diğer çevresel birimler.

Mikrodenetleyiciler Mikrodenetleyicilerin kullanım alanları: Savunma sanayi (Uzaktan kontrol edilebilen atış sistemi, insansız kara aracı, vb.), Medikal cihazlar (tansiyon ölçer, ateş ölçer, vb.), Otomotiv sanayi (motor kontrol, ışık ve odaklama kontol, vb.), Endüstriyel uygulamalar (AC-DC dönüştürücüler, reaktif güç kontrol ünitesi, vb.), Beyaz eşyalar (çamaşır makinesi, buzdolabı, vb.), Diğer uygulamalar (otomatik kapı-bariyer sistemleri, otomatik geçiş sistemleri (OGS), yiyecek içecek otomatları, vb.)

Mikrodenetleyici Seçimi Bir uygulamaya başlamadan önce hangi firmanın ürünü kullanılacağına, daha sonra da hangi parça numaralı mikrodenetleyicinin kullanılacağına karar vermek gerekir. Bunun için mikrodenetleyici gerektiren uygulamada hangi özelliklerin olması gerektiği önceden bilinmesi gereklidir. Programlanabilir dijital paralel giriş/çıkış ucu sayısı. Programlanabilir analog giriş/çıkış ucu sayısı. Seri giriş/çıkış ( senkron, asenkron ve cihaz denetimi gibi) ucu sayısı. Analog karşılaştırıcının var olup olmadığı. Motor veya servo kontrol için saat sinyali çıkışı. Harici giriş vasıtasıyla kesme yapılıp yapılamayacağı. Timer (zamanlayıcı) vasıtasıyla ile kesme yapılıp yapıiamayacağı. Harici bellek arabiriminin varlığı. Program belleği tipi (ROM, EPROM, PROM, FLASH ve EEPROM) ve kapasiteleri. Program belleği üzerinde kod koruması yapılıp yapılamayacağı. Dahili RAM kapasitesi. Dahili EEPROM var olup olmadığı ve kapasitesi. Osilatör frekans değeri (Güç tüketiminde önemli rol oynar.)

Mikroişlemci ve Mikrodenetleyici Arasındaki Farklar Mikroişlemci ve Mikrodenetleyici arasındaki en temel fark, mikrodenetleyici program değişikliği olmayan sabit bir programın sürekli çalışması gereken durumlarda kullanılır. Mikroişlemci ise geniş kapsamlı ve duyarlı işlemler yapmak için seçilen bir sistemdir. Diğer bir fark ise mikrodenetleyici bütün birimlerin (CPU,RAM,ROM,Portlar...) tek yonga üzerinde bulunması ve mikroişlemcilere göre daha az yer kaplayarak dolayısıyla daha az maliyetlerde çalışabilmesidir.

MİKROİŞLEMCİLER Mikroişlemci ile kontrol edilecek bir sistemi kurmak için şu üniteler bulunmalıdır; RAM, I/O ve bu üniteler arasında veri alış verişini kurmak için bilgi yolu (data bus) gerekir. Ayrıca bu üniteleri yerleştirmek için baskı devre gerekir. Mikroişlemci ile kontrol edilecek bir sistemin maliyeti yüksektir. Mikroişlemcili sistemin tasarımı ve kullanımı mikrodenetleyicili sisteme göre daha karmaşık ve masraflıdır. MİKRODENETLEYİCİLER Mikrodenetleyici ile kontrol edilecek bir sistemi kurmak için tek bir chip (mikrodenetleyici) ve bir devre kartı yeterlidir. Mikrodenetleyicili sistemlerin maliyeti oldukça düşüktür. Mikroişlemcili sisteme göre kullanım kolaylığı ve programlama kolaylığı da avantajlarındandır. Mikrodenetleyicilerin küçük ve ucuz olması, bunların tüm elektronik kontrol devrelerinde kullanılmasını sağlamaktadır.

Mikrodenetleyiciler Kullanılarak Yapılan Çalışmalar 1. MİKRODENETLEYİCİ KULLANARAK YUMURTA ÜRETME ÇİFTLİĞİNİN ISI, AYDINLATMA VE SU KONTROLÜNÜN GERÇEKLEŞTİRİLMESİ Fatma KAVAK İYİLİK (YÜKSEK LİSANS TEZİ ) ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ Osmangazi Üniversitesi Ekim 2006 Bu tez çalışmasında, 20000 tavuk kapasiteli bir yumurta üretme çiftliğinin soğutma, havalandırma, aydınlatma ve su sistemlerinin kontrolü mikrodenetleyici kullanılarak tasarlanmış ve gerçekleştirilmiştir. Bu çalışmada Microchip firmasının PIC16F870 mikrodenetleyicisi kullanılmıştır. Yumurta Üretme Çiftliği Program ekranı

Mikrodenetleyiciler Kullanılarak Yapılan Çalışmalar DEMİRYOLLARINDA ATC VE ATO SİSTEMLER, Yalçın ÇETİN, İnönü Üniversitesi Fen Bilimleri Enstitüsü (Yüksek Lisans Tezi), Elektrik Elektronik Müh. Bu tez de, tren trafiği yönetim metotlarından biri olan hareketli blok sisteminin tasarımı ve uygulamasının gerçekleştirilmişdir. Bu kapsamda tren trafiği yönetim metotları ve tren koruma sistemleri ayrıntıları ile incelenip temel mantıkları çıkartılmıştır. Bu temel mantığa göre, tren trafiği yönetim metodu ve tren koruma sistemi olan bir sistem tasarlanmış, bu sisteme Hareketli Blok ve Komünikasyon Bazlı Tren Koruma Sistemi adı verilmiştir. GPS Alıcı Modülü. Hız Kontrol Blok Diyagramıı Her iki aracın konum bilgileri, araçlar arasındaki mesafe ve hız farkının LCD ekrandaki görüntüsü

Mikrodenetleyiciler Kullanılarak Yapılan Çalışmalar ÖNGERİLME ALTINDAKİ MALZEMELERDE DÜŞÜK HIZLI DARBE DENEY DÜZENEĞİ GERİ SEKME(Rebound) FRENSİSTEMİ TASARIMI (MAYIS 2008) DUMLUPINAR ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ LİSANS TEZİ Sistemin kontrol kartı Tasarlanan sistemin çalışma elemanları

Mikrodenetleyiciler Kullanılarak Yapılan Çalışmalar PIC 16F877 DENETLEYİCİ TABANLI KLİMA SİSTEMİNİN TASARIMI VE UYGULAMASI GAZİ ÜNV. FEN BİLİMLERİ ENS. ELEKTRİK EĞİTİMİ YÜKSEK LİS. TEZİ H.Tolga KAHRAMAN Danışman: Prof.Dr.İlhami ÇOLAK Bu çalışma de kızılötesi (infrared_ir) uzaktan kumandalı, uyuma modlu, LCM (Liquid Crystal Modul) göstergeli bir otomatik klima kontrolü gerçekleştirilmiştir. Sıcaklık Algılayıcı Reset Butonu Fan Hızı Kontrol Birimi MCLR (1) RB7 (40) Buton1 Buton2 RA0 (2) RA1 (3) RA2 (4) RB6 (39) RB5 (38) RB4 (37) Çalışma Kontrol Ledleri Buton3 Isıtıcı Kontrol Birimi LCM Kontrol Uçları Osilatör Osilatör Uçları uçları Kızılötesi Alıcı Çıkış Ucu RA3 (5) RA4 (6) RA5 (7) RE0 (8) RE1 (9) RE2 (10) +5V (11) 0V (12) OSC1 (13) OSC2 (14) RC0 (15) RC1 (16) RC2 (17) RC3 (18) P I C 1 6 F 8 7 7 RB3 (36) RB2 (35) RB1 (34) RB0 (33) +5V (32) 0V (31) RD7 (30) RD6 (29) RD5 (28) RD4 (27) RC7 (26) RC6 (25) RC5 (24) RC4 (23) Kızılötesi Alıcı Çıkışı Soğutucu Kontrol Birimi Lcm Data RD0 (19) RD3 (22) Uçları RD1 (20) RD2 (21)

Mikrodenetleyiciler Kullanılarak Yapılan Çalışmalar GÜNEŞ ENERJİSİ İLE ÇALIŞAN ARACIN ELEKTRİK VE ELEKTRONİK SİSTEMİNİN MİKRODENETLEYİCİLER İLE TASARIMI VE UYGULAMASI KOCAELİ ÜNİVERSİTESİ FEN BİLİMLERİ ENS. MEKATRONİK MÜH. YÜKSEK LİSANS TEZİ Metin SUNAN (HAZİRAN 2006) Danışman: Yrd. Doç. Dr. H. Metin ERTUNÇ Bu tasarımı yapılan araçta güneş panelleri, aküler, motorlar, mikro denetleyiciler, LCD ekranlar ve birçok sensorlar kullanılarak ülkemizin teknoloji kullanımı ve yerli tasarım gücü arttırılmaya çalışılmıştır.

PIC Nedir? PIC mikrodenetleyicilerin tasarımı Harvard Üniversitesi Savunma Bölümünün araştırmalarına dayanmaktadır. Mimarisi de aynı isimle Harvard mimarisi olarak tasarlanmıştır. Bu tasarımlar General Instrument ın işlemcilerin giriş çıkış sayılarını arttırmak için çevresel bağlantı denetleyici (Peripheral Interface Controller şimdilerde PIC olarak kısaca adlandırılıyor) tasarlandı. 1985 de Arizona da Microchip Technology mikroelektronik bölümü ana üretimini PIC e dönüştürdü.

PIC Mikrodenetleyicisinin Avantajları Nedir? PICmicro MCU ve diğer mikrodenetleyiciler tek çip içerisinde MİB (CPU), hafıza, osilatör, watchdog ve G/Ç birimlerini barındırırlar. Bunun sonucunda yerden tasarruf, tasarım zamanının azalması ve harici birimlerle ilgili uyumluluk sorunlarının azalması sağlanır. Fakat bazı durumlarda sabit hafıza boyutu ve sınırlı G/Ç kapasitesi nedeniyle tasarımın sınırlarını daraltır. PIC mikrodenetleyici ailesi geliştiricilere en çok ihtiyaç duyacakları geniş bir aralıkta G/Ç, hafıza ve özel fonksiyonları sunar.

PIC Mikrodenetleyicisinin Avantajları Nedir? Kod verimliliği: PIC Harvard mimarisini esas alan 8 bit bir mikrodenetleyicidir. Bunun anlamı içerisinde hafıza ve veri için farklı yollar bulunur. Program ve veri hafızasına aynı anda erişebildiğinden dolayı hızı yüksektir. Geleneksel mikrodenetleyicilerde program ve veri hafızası aynı veri yolunu kullanır. Bu diğer yapı ile karsılaştırıldığında hızı en az 2 kat düşürür. Emniyet: tüm komutlar 12 veya 14bit genişliğindeki program hafızasına sığar. Bu yüzden programın veri bölgesine atlayıp veri yi program komutları gibi çalıştırması gibi bir ihtimal yoktur. Bu Harvard mimarisinde olmayan 8bit program adres yolları kullanan mikrodenetleyicilerde oluşabilir. Komut seti 16C5X ailesi ve 14bit genişlikteki 16CXX ailesi için program yazabilmek için öğrenmeniz gereken sadece 33 komut vardır. CALL, GOTO ve bit test amaçlı komutlar haricindeki (BTFSS, INCFSZ vs.) komutlar tek komut adımında işletilirler. Hız: PIC osilatör ile dahili saat yolu arasında 4 e bölücü bir devre içerir. Bu özellikle 4Mhz kristal kullanıldığında komut zamanının hesaplanmasını kolaylaştırır. Bu durumda her bir komut adımı (çevrimi) 1uS (yani 1μs) tutar. PIC 20Mhz gibi bir kristal kullanıldığında saniyede 5 milyon komut işletebilen oldukça hızlı bir işlemcidir. Statik işletim: PIC tamamen statik bir mikrodenetleyicidir; diğer bir deyişle saat frekansını durdurursanız tüm yazmaç içerikleri olduğu gibi kalır. Pratikte tam olarak bunu yapmazsınız, PIC i uyku moduna geçirirsiniz bu saat frekansını durdurur ve PIC in uyku modundan önce hangi durumda olduğunu bilebilmesi için bazı bayrakları ayarlar. Uyku modunda iken PIC 1uA den az akım çeker. Çıkış sürme yeteneği: PIC yüksek çıkış sürme kapasitesine sahiptir ve LED triyak vs. direk sürebilir. Herhangi bir G/Ç pininden 25mA kadar veya tüm çipten 100mA-200mA akım çekilebilir. Seçenekler neredeyse tüm ihtiyaçlarınıza cevap verebilecek şekilde hız, sıcaklık, kılıf, G/Ç hatları, zamanlayıcı fonksiyonları, A/D ve hafıza seçenekleri mevcuttur. Çok yönlülük: PIC yüksek adetlerde düşük maliyetli ve çok yönlü bir mikrodenetleyicidir. Özellikle yerin önemli olduğu uygulamalarda birkaç mantık kapısının yerine bile kullanılabilir. Güvenlik: PICmicro MCU endüstrideki en güvenli kod koruma özelliklerinden birine sahiptir. Koruma biti bir kez programlandığında program hafızası okunamaz. Geliştirme: PIC geliştirme için pencereli veya FLASH yapıda, üretim için ise OTP (bir kez programlanabilir) yapıda bulunabilir. Geliştirme araçları ev kullanıcıları için kolayca ve uygun fiyatlı olarak temin edilebilir.

PIC Mimarileri Mikro denetleyici mimari özellikleri (yapıları) iki farklı referans noktası temel alınarak sınıflandırılabilir. Bunlar; I. Hafıza organizasyonu açısından mikro denetleyici mimarileri II. I. Von Neuman Mimarisi II. Harvard Mimarisi Komut işleme tekniği açısından mikro denetleyici mimarileri I. Karmaşık Komut Seti Kullanan Bilgisayarlar (Complex Instruction Set Computer -CISC) II. Azaltılmış Komut Seti Kullanan Bilgisayarlar (Reduced Instruction Set Computer RISC)

PIC Mimarileri Von Neuman: Mikrodenetleyici mimarisinde kullanılan geleneksel Von Neuman Mimarisinde bir adet data bus vardır. Dolayısıyla komut ve veri hattı aynı genişliktedir. Komutlar ve veriler bu hat üzerinden taşınır, genel bir hafızaya kaydedilir. Burada iki defa fetch olayı olacağından mikrodenetleyicinin hızı düşer ancak geniş hafıza tasarımları için kolaylık sağlar. 8051, 8086 ve 68HC11 lerin mimarisinde Von Neuman bulunur. Von Neuman mimarisinin basit blok şeması.

PIC Mimarileri Harvard mimarisi: Harvard mimarisinde ise komut ve veri için ayrı hatlar vardır. Veri yolları genelde 8-bittir. Program Hafızası ise 12, 14 ve 16 bitlik veri yoluna sahip Flash ya da ROM lardan oluşmaktadır. Veri ve komut paralel olarak çalışabilir. Von Neuman mimarisinden bu yüzden hızlıdır. Ancak iki ayrı yol olması üretimde daha fazla silikon malzeme gerektirir. Harvard mimarisinin basit blok şeması

PIC Mimarileri Karmaşık Komut Seti Kullanan Bilgisayarlar (Complex Instruction Set Computer -CISC): Mikrodenetleyicinin çok sayıda komut içerdiği bu mimaride her bir iş/eylem için bir komut tanımlanır. Bu yaklaşımın temelinde, 'donanım her zaman yazılımdan hızlıdır fikri yatmaktadır. CISC yaklaşımında, yüzlerce komut arasından seçilen komutlarla program yazılması nedeni ile, bir program daha kısa olabilmektedir. Her işlem için farklı bir komut kullanılması işlemleri hızlandırmasına karşılık donanımın yükü artmaktadır.

PIC Mimarileri Azaltılmış Komut Seti Kullanan Bilgisayarlar (Reduced Instruction Set Computer RISC): RISC işlemcili sistemlerde amaç, komut işlenmesinin olabildiğince hızlı olmasıdır. Komutların basit ve az olması, işlemcinin daha hızlıç alışabilmesini sağlar. Uzun, karmaşık ve yavaş CISC komutları yerine daha az, basit, daha hızlı ve daha verimli RISC komutları kullanılmaktadır. Bununla beraber, RISC komutlarının daha kısa olması belirli bir görevin tamamlanabilmesi için daha fazla komuta gereksinim duyulması ve yazılan programın daha uzun olması sonucunu doğurmaktadır. Ancak, daha basit yapıda komutlar kullanılması yonga(chip) mimarisindeki karmaşıklığı azaltmaktadır.

CISC ve RISC Mimari Karşılaştırması

Deney Seti Genel amaçlı olarak tasarlanmış PIC mikrodenetleyici eğitim seti üzerinde farklı amaçlarda kullanılabilen; kayan yazı, LCD ekran, AC motor sürücü, enkoder sayıcı, step motor sürücü, tuş paneli, protobord, ayarlı dirençler ve çeşitli işlerde kullanılan ısı, ışık, manyetik sensörler gibi birçok eleman kolayca görülebilmektedir.

PIC16F877A PIC16F877A mikrodenetleyicisinin bacak bağlantıları.

PIC16F877A PIC16F877'nin genel özelliklerine bakacak olursak çoğu uygulama için yeterli bir donanıma sahip olduğunu görürüz. 16F877A 8 bitlik bir mikrodenetleyicidir. 40 pininden 33 tanesi I/O ( input/output giriş/çıkış ) pinleridir. 6 bitlik A portu, her biri 8 bitlik B,C ve D portları ve 3 bitlik E portu olmak üzere 5 porta sahiptir. İşlem hızı en fazla 20 MHz dir. (Yani bir komut 200 ns hızında çalışmaktadır.)

PIC16F877A VDD: Pozitif geri besleme, 11 veya 32 nolu pinlere uygulanır. VSS: Negatif geri besleme, 12 veya 31 nolu pinlere uygulanır. OSC1 : Osilator bağlantısı yapılacak olan ayak, 13. OSC2 : Osilatör bağlantısı yapılacak olan ayak, 14. Genelde +5V gerilim uygulanır. 2-5.5V arası değişebilir. Elektrik uygulandığı anda meydana gelebilecek dalgalanmaları önlemek amacıyla VDD ve VSS arasında 100nF bir kondansatör bağlamak gerekir. Kristal osilatör projeye göre frekansları seçilir. Dikkat edilmesi gereken yazılımda yapılan ayar ile aynı frekansta seçim yapılması ya da projenin o şekilde ayarlanması gerekmektedir.

Yazılım PIC mikrodenetleyicisinin programlanması temelde sadece ASM dili kullanılarak gerçekleştirilebilmesine rağmen, daha karmaşık iş senaryolarının bir düzen çerçevesinde kolay bir şekilde yapılması için PICBASIC, PICC, PIC-CCS gibi birçok üst seviye dilde PIC programlarının yazılabilmesi mümkündür. Bizde bu deney kapsamında gerçekleştirilecek uygulamalar için eğitim açısından oldukça kolay ve basit bir kullanım imkanı sağlayan PIC-CCS derleyicisinden faydalanacağız.

Giriş Çıkış Yönlendirme Komutları Kullanımı : set_tris_x(değer); kullanılır. // Portları giriş çıkış yapmak için Bir pini (bacağı) giriş yapmak için o pine 1, çıkış yapmak için 0 verilir. A0 pinini giriş yapmak için bu pine 1 vermeliyiz. A0 pinini çıkış yapmak için istersek 0 vermemiz gerekir. Örnek-1: set_tris_a(0xff); // A portuna FF hexadecimal verisini gönderir. Yani A portunu giriş olarak ayarlar. Örnek-2 : set_tris_b(0b00001111); // B portuna binary 00001111 verisini gönderir. Yani B portunun sağdaki 4 bitini giriş, soldaki 4 bitini çıkış olarak ayarlar.

Yorum Satır(lar)ı Ekleme Yorum satırları komut olarak algılanmaz. Program içerisinde programın çalışması hakkında açıklamalar eklemek veya yazılan komutların ne anlama geldiğini açıklamak veya kısa hatırlatmalar eklemek için kullanılırlar. Kullanımı : // Bu iki sağa eğik slaj karakteri belirlediğiniz satırı yorum satırına dönüştürür. /* */ Bu karakterler arasında kalan satır veya satırlar yorum satırı olarak algılanır.

Bir Portun Tamamına Veri Göndermek Kullanımı : output_x(değer) ; // Belirtilen porta parantez içinde verilen değeri gönderir. * Hexadecimal veya binary olarak veri gönderebiliriz. Örnek-3 : output_b(0x00); // B portuna hexadecimal 0x00 değerini gönderir. Yani B portunun tüm çıkışlarını 0 a çeker. Örnek-4 : output_b(0xf0); // B portuna hexadecimal 0xF0 değerini gönderir. Yani B portunun sağdaki 4 bitine 0, soldaki 4 bitine 1 gönderilmiş olur. Dolayısıyla b portunun sağdaki 4 bitine bağlı olan ledler söner, soldaki 4 bitine bağlı ledler yanar. Örnek-5 : output_b(0b10101010); // B portuna binary 10101010 değerini gönderir. B portunun tek sayılı bacaklarına bağlı olan ledler sönük, çift sayılı bacaklarına bağlı olan ledler yanık olur.

Tek Bir Pine Veri Göndermek Kullanımı : output_high(pin_x); // Belirtilen pini lojik 1 yapar. Yani bağlı olan led yanar. output_low(pin_x); // Belirtilen pini lojik 0 yapar. Yani bağlı olan led söner. output_bit(pin_x, değer); // Belirtilen bacağa belirtilen değeri gönderir. output_toggle(pin_x); // Belirtilen bacağı 1 ise 0, 0 ise 1 yapar. Örnek-7 : output_high(pin_b0); olan led yanar. Örnek-8 : output_low(pin_b7); olan led söner Örnek-9 : output_bit(pin_b5,1); // B0 pinini lojik 1 yapar. Yani B0 a bağlı // B7 pinini lojik 0 yapar.yani B7 ye bağlı // B5 pinini lojik 1 yapar. Örnek-10 : output_bit(pin_b6,0); // B6 pinini lojik 0 yapar. Örnek-11 : output_toggle(pin_b3); // B3 pinini 1 ise 0, 0 ise 1 yapar.

Bir Portun Değerini Okumak Kullanımı : input_x(); // x ile belirtilen portun değerini okur. Örnek-12 : input_a(); // A portunun değerini okur. Örnek-13 : input_b(); // B portunun değerini okur. Örnek-14 : int portdegeri; portdegeri = input_b(); değişkenine atar. // B portunu okuyup sonucu portdegeri

Bir Pinin(Bacağın) Değerini Okumak Kullanımı : input(pin_x); okur. // x ile belirtilen pinin durumunu Örnek-15 : input(pin_a1) // A1 pininin değerini okur. (Lojik 1 veya 0)

Bir Pinin(Bacağın) Değerini Okumak Örnek-16 : A2 bacağına bir buton bağlı olsun ve bu butona basılı ise B0 a bağlı olan led yansın. set_tris_a(0xff); set_tris_b(0x00); output_b(0x00); // A portunu giriş olarak ayarladık. // B portunu çıkış olarak ayarladık. // B portunu lojik 0 a çektik. if( input(pin_a2) ) // Eğer A2 pinine bağlı olan butona basılmışsa; { output_high(pin_b0); // B0 pinini lojik 1 yap. B0 a bağlı olan led yanar. }

Sağa Kaydırma İşlemi Kullanımı : veri = veri >> kaydırma_miktarı; Örnek-17 : int a; a = 0x80; // a sayısı = 10000000 e eşit. a = a >> 1; // a sayısı 1 kere sağa kaydırılarak 01000000 oldu.

Sola Kaydırma İşlemi Kullanımı : veri = veri << kaydırma_miktarı; Örnek-18 : int a; a = 0x01; // a sayısı = 00000001 e eşit. a = a << 1; // a sayısı 1 kere sola kaydırılarak 00000010 oldu.

Zaman Gecikmesi Ekleme Kullanımı : delay_ms(gecikme_miktarı); Gecikme miktarı milisaniye cinsinden belirtilir. 1 saniye = 1000 milisaniye. 3 saniye gecikme vermek için 3000 yazmamız gerekir. Örnek-19 : delay_ms(2000); // 2 saniye gecikme süresi verildi.

if-else İfadesi Belirlediğimiz şartın doğru olup olmadığını kontrol ederek, doğru olması ve yanlış olması durumunda yapılacak işlemleri belirtir. Kullanımı : if ( şart) { Şart doğruysa yapılacak işlemler } else { Şart yanlışsa yapılacak işlemler }

if-else İfadesi Örnek-20 : B0 pinine bağlı bir fan olsun ve sıcaklık değeri 50 ve 50 den büyük olduğunda bu fan çalışıp devreye girsin, 50 den küçük olduğunda da fan dursun. int sicaklik; sicaklik = 65; // Sıcaklık değerini bir sensörden aldığımızı düşünelim if (sicaklik >= 50) // Sıcaklık 50 ve 50 den büyük ise; { output_high(pin_b0); // B0 pinini lojik 1 yap. Yani fanı çalıştır. } else // sıcaklık değeri 50 den küçük ise { output_low(pin_b0); // B0 pinini 0 yap. Yani fanı durdur. }

UYGULAMA

Son PIC programlama eğitimi sadece bir deney kapsamına sığamayacak kadar geniş bir konudur. Bu yüzden laboratuar uygulamasına katılan öğrencilerden ders dışarısında PIC-CCS programlama dilinin öğrenilmesi konusunda beklentiler bulunmaktadır. Bu dil öğrenimi konusunda bizimde deney föyü hazırlarken oldukça faydalandığımız Serdar ÇİÇEK E ait CCS-C ile PIC programlama kitabından faydalanılabilir.