KONTROL VE OTOMASYON KULÜBÜ



Benzer belgeler
Birol Çapa Özen Özkaya Güz Dönemi Eğitimleri

GAZİANTEP ÜNİVERSİTESİ

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Değişkenler tanımlanırken onlara ne tür veriler atanabileceği de belirtilir. Temel veri türleri oldukça azdır:

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Bölüm 2 - C ile Programlamaya Giriş

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

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

Hacettepe Robot Topluluğu

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

EEM 419-Mikroişlemciler Güz 2017

PROGRAMLAMAYA GİRİŞ DERS 2

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

BİLG Dr. Mustafa T. Babagil 1

Bilgisayar Programlama. 1.Hafta

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

C PROGRAMLAMA DİLİ. Hedefler

PIC MİKRODENETLEYİCİLER İÇİN. mikrobasic DERLEYİCİSİ

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Programlama Dilleri. C Dili. Programlama Dilleri-ders08/ 1

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

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

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

GÜZ YY. - MKT103 - GÖRSEL PROGRAMLAMA DERSİ - ARA SINAVI

C Programlama Dilininin Basit Yapıları

PIC16F84 VE PIC C LITE COMPILER. Giriş / Çıkış port sayısı. Capture / Comp / PWM

BĠLGĠSAYAR PROGRAMLAMA II C++ Programlamaya GiriĢ Published by Juan Soulié

B02.6 Karar Verme, Eşitlik ve Bağıntı Operatörleri

DENEY 9-A : PIC 16F877 ve LM-35 ile SICAKLIK ÖLÇÜM UYGULAMASI

EEM 419-Mikroişlemciler Güz 2016

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

C PROGRAMLAMA D İ L İ

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-8 Değişken Tipleri ve Temel Giriş/Çıkış İşlemleri

BLM 112- Programlama Dilleri II. Hafta 4 İşaretçiler (Pointers)

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Adım Adım C-II. Eksik kalmış konular

BMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1

Yrd. Doç. Dr. Caner ÖZCAN

Nesne Tabanlı Programlama

Temel Bilgisayar Programlama

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

Hafta 13 Fonksiyonlar

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

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

TUŞ TAKIMI (KEYPAD) UYGULAMALARI

if (ad == "Sabri") Console.WriteLine("Merhaba Sabri. Ne zamandır gözükmüyodun...");

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

ESM-361 Mikroişlemciler. 1. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

C# Yazım Kuralları ERCİYES. Ü. BİLGİSAYAR M. COMPUTER PROGRAMMING II 1 FEHİM KÖYLÜ

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

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

1 PROGRAMLAMAYA GİRİŞ

BEDEN EĞİTİMİ I: Haftalık ders 1 saattir (T-0 ) (U-l) (K-0).

Eastern Mediterranean University Faculty of Arts & Sciences -- Department Of Mathematics BİLG213 BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

MAK 1005 Bilgisayar Programlamaya Giriş C DİLİNE GİRİŞ. Prof. Dr. Necmettin Kaya

C++ Dersi: Nesne Tabanlı Programlama

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İ

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 3. Bölüm Veri Tipleri ve Değişkenler

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Genel Programlama I

BİLGİSAYAR MÜHENDİSLİĞİ ALGORİTMA VE PROGRAMLAMA II 2.HAFTA SWİTCH (CASE), SAYAÇLAR, DÖNGÜLER,

ESM-361 Mikroişlemciler. 3. Hafta Ders Öğretim Üyesi Dr.Öğr.Üyesi Ayşe DEMİRHAN

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

İÇİNDEKİLER VII İÇİNDEKİLER 1 ARDUINONUN TEMELLERİ 1

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

HSancak Nesne Tabanlı Programlama I Ders Notları

/*int sayi1, sayi2,toplam=0;

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

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

BÖLÜM Mikrodenetleyicisine Giriş

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

Sunum İçeriği. Programlamaya Giriş

Bigisayar Programlama

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

Yrd. Doç. Dr. Caner ÖZCAN

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

YZM 2105 Nesneye Yönelik Programlama

C++ Dersi: Nesne Tabanlı Programlama 2. Baskı

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Dr. Öğr. Üyesi Fatih Gökçe

Döngü (Loop) Deyimleri / Veri Belirleyicileri / Matematiksel Fonksiyonlar

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

Göstericiler (Pointers)

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Programlamaya Giriş. Program : Belirli bir problemi çözmek için bir bilgisayar dili kullanılarak yazılmış deyimler dizisi.

1. Mikrodenetleyici Programlamada Giriş- Çıkış İşlemleri

DİZİLER-KATARLAR ALGORİTMA VE PROGRAMLAMA II

BÖLÜM 6 RS232 SERİ İLETİŞİM İŞLEMLERİ

BÖLÜM 1b: C++ PROGRAMLAMANIN YAPISI. C++, hard diskte TC, BIN, INCLUDE, LIB gibi alt dizinlere yüklenir.

Mikroişlemciler ve Mikrodenetleyiciler

Transkript:

KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri

Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör tabanlı sistemler öncelikle çok geniş kullanım alanına sahiptir. Doğru elektronik donanımlarla kullanıldığında mikrokontrolör uygulamalarının başta kontrol mühendisliği olmak üzere, elektronik mühendisliği, bilgisayar mühendisliği, telekomünikasyon mühendisliği hatta elektrik mühendisliği gibi bir çok meslek dalında çok önemli uygulama alanlarının olduğu görülür. Mikrokontrolör sistemler bu gün dijital kontrol uygulamalarının yoğun gerçekleştirildiği düzeneklerdir. Yine bir çok kontrol uygulamalarında kontrolör olarak seçilen elektronik donanım mikrokontrolörler olmuştur. Bu bakımdan mikrokontrolör bilmenin kontrol mühendisine getireceği avantajlar şüphesiz ki oldukça büyüktür. Yine Elektrik Elektronik Fakültesi içindeki diğer bölümler de mikrokontrolör sistemlerini çok farklı alanlarda kullanmaktalar. Bu özellikleri, mikrokontrolörleri çok önemli ve hakim olunması gereken donanımlar haline getiriyor.

Neden C dili? Uygulamalarda mikrodenetleyiciler C dili ile, assembly dili ile basic dili ile ve daha bir çok dil ile programlanmaktadır. Bu dillerin her birinin muhakkak ki birtakım avantajları ve dezavantajları bulunmaktadır. Bu diller içerisinden C dilini seçmemizin nedeni, bu dilin en yaygın kullanılan programlama dili olması, yapısal programlamaya uygun olması, akış denetimlerini daha kolay ve etkin sağlayabilmesi ve gerek kütüklere gerek bayraklara erişmede zorluk çıkarmaması gibi bir çok nedene bağlanabilir. Yine okulumuzda mikrokontrolörler ile hazırlanan kontrol sistemlerinde ağırlıklı olarak C dilinin kullanılması, kulübümüzün öz görevlerini takip etmekteki istekliliğimiz de bu eğitimde ağırlıklı olarak C dili kullanmak istememizin nedenleri arasındadır.

Giriş ve Önemli Notlar Bu eğitimde basit anlamda mikrokontrolör programlama ve microchip firmasının ürettiği pic16f84,pic168f77 ve pic16f628 kodlu mikrokontrolörler üzerinden anlatım yapılacaktır.c dili ile nasıl programlanacağına, hangi programların kullanılacağına ilişkin bilgi verilecek ve HI-TECH PIC C anlatılacaktır. Bu eğitime katılan arkadaşların C programlama dili konusunda bilgi sahibi oldukları varsayılacaktır. Eğitimde kullanılacak temel programlar; # MPLAB IDE Mikrodenetleyiciye C kodu yazarken kullanılacak program # Proteus ISIS Kodumuzu yazdık denemeden olmaz, Simülasyonuda buradan yapacağız

MPLAB :

PROTEUS :

C Temelleri C dilinde değişkenler: (HITECH Compiler için) Veri Çeşidi Açıklama bit Bir bitlik veri taşır. 0 ya da 1 olabilir. char 8 bitlik veri taşır. -127 ve +127 arasında değerler alabilir. unsigned char 8 bitlik veri taşır. 0 ve +255 arasında değerler alabilir. int 16 bitlik veri taşır. -32767 ve +32767 arasında değerler alabilir. unsigned int 16 bitlik veri taşır. 0 ve 65535 arasında değerler alabilir. long 32 bitlik veri taşır. -2147483647 ve +2147483647 arasında değerler alabilir unsigned long 32 bitlik veri taşır. 0 ve +4294967295 arasında değerler alabilir. float 24 veya 32 bitlik veri taşır. double 24 veya 32 bitlik veri taşır.

C Temelleri Değişkenler mikrokontrolörde RAM de tutulur. Ancak buradaki kaynakları etkin kullanmak gerektiğinden eğer değişkenimiz program boyunca değişmeyecekse tanımlamanın başına const ekleyerek bu değişkeni EEPROM ya da Flash bellekte tutmak yerinde olacaktır. Fonksiyon her çağırıldığında değerinin değişmesini istemediğimiz değişkenler için yine tanımın başına static ekliyoruz. Eğer resetleme esnasında bir değişkenimizin değerinin değişmesini istemiyorsak tanımın başına persistent yazmamız yeterli olacaktır. Bir değişken sadece belli bir kod tarafından değil de bir kesme alt programı ya da donanım tarafından değiştirilebiliyorsa değişkenimizin başına volatile anahtar kelimesini ekleriz. Özellikle kütük adresleri tanımlanırken bu anahtar kelimenin kullanılması önemlidir.

Operatörler: Operatör Açıklama () [] Parantez! Mantıksal değil ~ Bit tersi * İşaretçi operatörü + - * / Aritmetik operatörler % Modül ++ 1 artır -- 1 eksilt & Adres (önde kullanılırsa) & Ve operatörü (iki değerin ve lenmiş halini döndürür) Veya operatörü (iki değerin veya lanmış halini döndürür) ^ Xor operatörü (iki değerin xor lanmış halini döndürür) << >> Kaydırma operatörleri >= <= > < Karşılaştırma operatörleri sizeof Boyut bulma operatörü == Mantıksal eşittir!= Mantıksal eşit değil Mantıksal veya && Mantıksal ve = Eşitleme operatörü += -= *= /= Eşitlik operatörleri &= = ^= Eşitlik operatörleri %= >>= <<= Eşitlik operatörleri

C Temelleri Program Akış Kontrolü:

C Temelleri Döngüler: While döngüsü: For döngüsü: Ön işlemci tanımlamaları:

PIC Temel PIC bağlantı şekli: * Simülasyonda OSC bağlantılarını ihtiyaç duymadığımız için yapmayacağız. Bu bağlantıya gerçekleme işlemini yaparken ihtiyaç duyacağız.

PIC İlk PIC programı İşin geyik kısmını sonlandırıp ilk programımıza giriş yapalım

PIC Buda simülasyonu:

PIC Şimdi gelelim kafaların karıştığı noktalara.tris, PORT neymiş neyden çıktı bunlar??!! Cevabımız iki kelime: DATA SHEET yani VERİ KAĞIDI DATASHEET leri kullanma kılavuzu olarak da adlandırabiliriz.eğitimimizin bir amacıda insanlara datasheet kullanmayı öğretebilmektir.çünkü temel bilgileri kazandıktan sonra datasheeti açıp yazacaksınız.ihtiyaç duyacağınız her şey adım adım orada yazıyor olacak. İkinci problemde genelde şudur; İyi hoş ama biz nerden bulucaz bu data sheetleri Onunda cevabı kolay buyurun size bazı datasheet siteleri; http://www.datasheetcatalog.com/ http://www.alldatasheet.com/ Burada arama çubuğuna istediğimiz elemanı yazarak ilgili datasheeti bulabiliriz.(örneğin Pic16f84a vs.) Olmadı mı? Buyrun 2. Çözüm: GOOGLE

PIC Data Sheet:

PIC Örnek 1 : XOR

PIC Buda simülasyonu:

PIC DelayMs() nedir? Kodumuza baktığımızda #include delay.h gibi ifadeler görüyoruz. Burada kodumuza delay kütüphanesini dahil ediyoruz.delay kütüphanesi bekleme fonksiyonlarını barındıran hazır bir kütüphanedir. DelayMs( ) ve DelayUs( ) fonksiyonları bu kütükte tanımlıdır. Unutulmamalıdır ki; koda dahil ettiğimiz kütüphaneleri Source Files ve Header Files a eklememiz gerekmektedir.

PIC Örnek 2 : Karaşimşek devresi

PIC Buda simülasyonu:

TEŞEKKÜRLER