PIC Mikro denetleyiciler ve Programlama. Öğr.Gör.Bülent ÇOBANOĞLU



Benzer belgeler
KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.

Öğr.Gör. Dr. Bülent ÇOBANOĞLU

Mikroişlemciler Dersi. PIC Mikro denetleyiciler ve Programlama

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

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

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

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

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

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

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

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

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

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

PIC Mikrodenetleyicileri

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI

BÖLÜM Mikrodenetleyicisine Giriş

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.

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

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

LCD (Liquid Crystal Display)

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

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

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB

PIC16F877A nın Genel Özellikleri

Hacettepe Robot Topluluğu

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

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

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ

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

# 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

PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1

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

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

Komutların İşlem Süresi

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

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

GAZİANTEP ÜNİVERSİTESİ

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

LCD (Liquid Crystal Display )

PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur:

PIC TABANLI, 4 BASAMAKLI VE SER

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi

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

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

MİKROİŞLEMCİ (Microprocessor) NEDİR?

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

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

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

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

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

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

MİKROİŞLEMCİ MİMARİLERİ

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize

DONANIM KURULUMU. Öğr. Gör. Murat YAZICI. 1. Hafta.

PIC 16F877 nin kullanılması

Mikroişlemcili Sistemler ve Laboratuvarı

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

KONFİGÜRASYON BİTLERİ

BM-311 Bilgisayar Mimarisi

EEM 419-Mikroişlemciler Güz 2017

Mikroişlemciler. Microchip PIC

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB= BCF STATUS,5 ;bank0 a geçiş

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

PROGRAMLANABİLİR ZAMANLAYICI

PIC Programlama. Devrim Çamoğlu

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

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

W SAYAC SAYAC SAYAC. SAYAC= ise, d=0 W

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

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2

BM-311 Bilgisayar Mimarisi

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

8 Ledli Havada Kayan Yazı

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

Öğr.Gör. Dr. Bülent ÇOBANOĞLU

Mikrobilgisayar Sistemleri ve Assembler

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1

PIC'LERIN DIŞ GÖRÜNÜŞÜ...Hata! Yer işareti tanımlanmamış.

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

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

ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU

Donanımlar Hafta 1 Donanım

IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü

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

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

BELLEKLER. Kelime anlamı olarak RAM Random Access Memory yani Rastgele Erişilebilir Bellek cümlesinin kısaltılması ile oluşmuş bir tanımdır.

Hacettepe Robot Topluluğu

KONTROL VE OTOMASYON KULÜBÜ

BİLİŞİM TEKNOLOJİLERİ

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar

MİKROİŞLEMCİLER. Mikroişlemcilerin Tarihsel Gelişimi

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

Transkript:

PIC Mikro denetleyiciler ve Programlama

Değerlendirme BaĢarı Puanı: Yıl içi %60+ Final %40 Yıl içi ise; Vize*60+Q1*10+Q2*10+Ödev*15+Devam*5 BaĢarı Ortalaması 40 altı olan FF dir. Diğer notlar, çana göre belirler. Kaynaklar ile ilgili iki web sitesi: http://www.mikroe.com http://www.microchip.com/

PIC MCU Bacak Bağlantıları

MİKRODENETLEYİCİ Mikro denetleyici (Microcontroller, MCU veya µc ), iģlemci (CPU), hafıza (RAM/ROM) ve giriģ-çıkıģ (I/O ports) birimlerinin tek bir entegre paketi içerisine yerleģtirilmesi ile gerçekleģtirilmiģ özel amaçlı bir bilgisayardır. Günümüzde üretilen birçok mikro denetleyici, özellik ve türlerine göre PWM, ADC, USB, USART, CAN, SPI, I 2 C gibi ara birim ve özel amaçlı kaydedicilere de sahiptir. Günümüzde entegre üretimi yapan birçok firma (Intel, Atmel, Michrochip, National Semiconductror, Texas Instruments, vb.) mikro denetleyici üretmektedir. Mikro denetleyiciler birbirlerinden sahip oldukları üniteler(adc, PWM, Zamanlayıcı, SPI, vb), giriģ/çıkıģ bacak sayıları, çalıģma hızları, veri ve program yolu geniģliği, bellek kullanım Ģekilleri açılarından farklılıklar arz etmektedirler.

Mikro denetleyici Kullanım Alanları Mikro denetleyici uygulama alanlarına veya mikrodenetleyicilerin kullanıldığı cihazlara örnek olarak; yalnızca evimizde kullandığımız buzdolabı, çamaģır ve bulaģık makineleri, mikrodalga fırın, TV, video, vb cihazlar değil, kullandığımız otomobildeki motor kontrol ünitelerini, ABS fren sistemlerini ve hız sabitleyicileri (cruise control) ile birlikte modern yaģamın parçası olarak gördüğümüz dijital kameralarını, cep telefonlarını, telefon ve faks cihazlarını, lazer yazıcıları, fotokopileri, vb cihazları sıralayabiliriz.

Mikro denetleyici seçimi BaĢlangıçta 'Intel' ve 'Texas Instruments' firmaları tarafından üretilen mikrodenetleyiciler günümüzde, birçok firma { Motorola, Microchip, Hitachi, Siemens, AMD, Intel, Atmel, Dallas Semiconductor, vb.} tarafından üretilmektedir. Entegre üretimi yapan birçok firma aynı zamanda mikro denetleyici de üretmektedir. Günümüzde yaygın olarak kullanılan mikro denetleyiciler ve üretici firmaları Ģunlardır; Motorola tarafından geliģtirilen 68HC serisi. Atmel tarafından geliģtirilen AVR serisi. Intel tarafından geliģtirilen 8051 veya MSC-51 ailesi. Microchip firması tarafından geliģtirilen PIC mikro denetleyici ailesi. Texas Instruments firması tarafından geliģtirilen MSP430 ve ARM ailesi Her mikro denetleyici üreticisi, ürün yelpazesinde birçok farklı mikro denetleyici bulundurmaktadır. Bu kadar çok çeģit içinden hangisinin seçileceğine karar vermek için mikro denetleyicilerin genel özelliklerini bilmek gerekir.

Mikro denetleyici seçimi Farklı üreticiler tarafından üretilen mikro denetleyicilerin çekirdekleri/mimarileri de farklı yapıda ve özellikte üretilmektedir. Mikro denetleyiciler arasında aģağıdaki farklar bulunabilir: Mimari farkı: Harvard, Von Neuman. Kelime geniģliği: 4, 8, 16, 32, 64 bit. Komut setleri: RISC, CISC komut iģleme tekniği. Kaydedici çeģitleri ve sayıları, Adresleme yöntemleri. Kesme sayıları ve özellikleri. Hız / güç / boyut özellikleri, ÇalıĢma frekansları Gerekli çevresel birimler (USART,CAPTURE/COMPARE/PWM CCP modülü vs) Programlama dilleri çeģitliliği (Basic, C, Pascal, Assembly, vs) Hangi üreticinin seçileceği konusunda genellikle tasarımcılar komut setini, programlamasını ve programlama için gerekli programları iyi bildikleri üreticiyi seçmektedir. Zaten her üreticinin bir ürünü için, bir baģka üreticinin ürettiği hemen hemen aynı iģi yapacak bir ürün bulunabilmektedir. Hangi üreticinin seçileceğine karar verildikten sonra sıra o üreticiye ait hangi mikrodenetleyicinin seçileceğine gelmiģtir.

Mikro denetleyici temel bileģenleri Bir mikro denetleyici genel olarak aģağıdaki birimlerden oluģur: 1. MikroiĢlemci 2. Bellek 3. GiriĢ/çıkıĢ birimi 4. Saat darbe üretici Formülize edersek; MCU = CPU + RAM/ROM + I/O portları

Mikro denetleyici temel bileģenleri

Mikro denetleyici temel bileşenleri

Mikro denetleyicili Uygulama devresi bileşenleri Bir PIC mikro denetleyici ile uygulama gerçekleģtirebilmek için ; Besleme devresi, Reset sinyali, Osilatör devresi, Uygulama devresi elemanlarına Ġhtiyaç vardır.

PIC MİKRODENETLEYİCİ AİLESİNE GENEL BAKIŞ PIC, Microchip firması tarafından üretilen, Harvard mimarisine ve RISC iģlemcisine sahip bir mikro denetleyicidir. [1] PIC kelimesi, Peripheral Interface Controller- Çevresel Arabirim Denetleyicisi den türetilmiģ olsada farklı kaynaklarda Programmable Interface Controller -Programlanabilir Arabirim Denetleyicisi veya Programmable Intelligent Computer -Programlanabilir Akıllı Bilgisayar olarak adlandırılmıģtır.[2] PIC Mikro denetleyicilerinin birçok çeģidi vardır, veri yolu geniģliği baz alınarak PIC mikro denetleyicileri; 8-bit(PIC10,PIC12,PIC16,PIC18), 16- bit(pic24) ve 32-bit(PIC32) olarak sınıflandırabiliriz.

PIC MCU Tercih Nedenleri Piyasada birçok mikro denetleyici üreten firma olduğundan bahsetmiģtik. Bunlar içinde neden Microchip firmasının ürettiği PIC'lerin seçildiği sorusu akla gelebilir. Bunun en temel sebebi Microchip firmasının web sayfaları üzerinden sağladığı teknik destektir. Tüm mikrodenetleyicilere iliģkin ayrıntılı bilgiler ve farklı mikrodenetleyiciler ile yapılmıģ, farklı uygulama örnekleri firma tarafından ücretsiz olarak dağıtılmaktadır. Hepsinden önemlisi, firma devamlı geliģtirmekte olduğu MPLAB adlı simülasyon programını da ücretsiz olarak dağıtmaktadır. Böylece PIC programlamak isteyen bir kiģi, assembly editor, derleyici, simülatör ve programlayıcı ihtiyaçlarının hepsini tek bir program ile ve ücretsiz olarak gidermiģ olmaktadır. Sadece Assembly değil Basic (Pic Basic Pro) ve C (Hitech PicC, CCS C) ve Pascal dilleri ile de derlenebilirler. Firmanın sağladığı bu desteğe bağlı olarak geliģen bir baģka avantaj ise, bu konu ile ilgili kaynağın çok olmasıdır., Ayrıca PIC'ler az sayıda komut içeren komut kümelerine sahiptirler ve kolayca programlanabilirler. PIC'ler karmaģık olmayan osilatör, reset, besleme devreleri ile sağlıklı olarak çalıģabilirler. Elbette en büyük avantajlarından birisi de ekonomik olarak oldukça uygun fiyatlara edinilebilmeleridir.

PIC Mikrodenetleyicilerinin Tercih Sebepleri a-) Fiyatının ucuz olması; b-) Mantıksal işlemlerde performansının yüksek olması; c-) Verilere ve belleğe hızlı bir şekilde erişimin sağlanması; d-) 8, 16 ve 32 bitlik çeşitlerinin olması ; e-) Veri ve bellek için ara yolların (bus ların) ayrılmış olması; f-) Yüksek frekanslarda çalışabilme özelliği; g-) Uyku modunda (Sleep mode) 1μA gibi küçük bir akım çekmesi; h-)yalnızca 2 kondansatör ve bir direnç ile çalışabilme özelliği; i-) Farklı bir çok dille (Basic, C, Pascal, Assembly) programlanıp, derlenebilmesi j-) Harvard ve RISC mimarisine sahip olması; k-) Üretici firmanın başta simülatör programı MPLAB olmak üzere birçok kaynağı ücretsiz yayınlaması l-) 6 pinden 80 pine kadar bir çok ürün çeşidinin olması

Bütün PIC MCU lar aşağıdaki özelliklere sahiptir. RISC mimari ve aynı komut setine sahiptir. Digital I/O portları On-chip timer with 8-bit prescaler Power-on reset Watchdog timer Power-saving SLEEP mode (Uyku modu) Yüksek source ve sink akımı Direct, indirect, ve relative adresleme modu Harici saat arabirimi RAM veri belleği EPROM veya Flash program belleği

Yüzlerce PIC modelinden hangisini seçeceksiniz? GiriĢ/ÇıkıĢ port sayısı Çevresel arabirim desteği (USART, USB, vb) Minimum program belleği kapasitesi Minimum RAM kapasitesi ÇalıĢma hızı Fiziksel boyutu Maliyeti

PIC Çeşitleri PIC ailelerine isim verilirken kelime boyu (word length) göz önüne alınmıģtır. Bir kerede iletilebilecek bit sayısını belirleyen veri yolunda bulunan hat sayısı, 'kelime uzunluğu / kelime boyu' (word length) olarak isimlendirilir. Bir CPU veya MCU nun dahili veri yolu uzunluğuna da kelime boyu denir MikroiĢemciler (CPU) veya mikrodenetleyiciler (MCU) kendi içlerindeki dahili veri saklama alanları olan kaydedicileri arasındaki veri alıģveriģini farklı sayıdaki bitlerle yaparlar. Örneğin 8088 mikroiģlemcisi çip içerisindeki veri alıģveriģini 16 bit ile yaparken, pentium iģlemcileri 32 bitlik verilerle iletiģim kurarlar. PIC ler farklı kelime boylarında üretilmelerine rağmen harici veri yolları 8-16 ve 32 bit olarak sınıflandırılmıģtır. Bacak sayıları 6-80 pin arasındadır Program bellekleri, 384 byte ile 128 kbyte arasındadır.

8 bitlik PIC MCU Sınıflandırması 12-bit kelime boyuna sahip PIC ler(12c5xx, 16C5X, vb) (12 Serisi ve 16C5X Serisi) 14-bit kelime boyuna sahip PIC ler(16f8x, 16F87X, vb) (16 serisi) 16-bit kelime boyuna sahip PIC ler(17c7xx, 18C2XX, vb) ( 17 Serisi ve 18 Serisi). 12-bit kelime boyuna sahip PIC ler

14-bit kelime boyuna sahip PIC ler

16-bit kelime boyuna sahip PIC ler

PIC 16F84A/877A serilerin karşılaştırılması

PIC Mikro denetleyicilerde İsimlendirme Sistemi Bir PIC'in kaç bitlik kelime boyuna sahip olduğu isminden anlaģılabilir. Yine bir PIC'in kullandığı hafıza tipi de isminden anlaģılır. Örneğin 16F877 numaralı PIC 14 bitlik kelime boyuna ve flash belleğe sahiptir. PIC ismi içinde C harfi varsa, bu CMOS belleğe sahip olduğunu, F harfi varsa, Flash belleğe sahip olduğunu gösterir. 16Cxxx ve 16Fxxx aileleri ise 14 bitlik kelime boyuna sahiptir. Aslen C ve F ile belirlenen PIC'ler arasında bir fark yoktur. Çünkü hem C ile belirlenenler, hem de F ile belirlenenler CMOS teknolojisi ile üretilmiģ Flash belleğe sahiptirler. Microchip firması ilk ürettiği serilerde C harfini kullanmayı uygun görmüģken, daha sonraları F harfini kullanmayı uygun görmüģtür. Bir tasarım yaparken komutların kelime uzunluğundan ziyade, kullanacağımız PIC'in fiziksel özelliklerini ve sahip olduğu donanım özelliklerini bilmemiz gerekir. Bir PIC e ait tüm özellikler çok detaylı olarak Microchip firması tarafından yazılan datasheet dosyalarında mevcuttur. Farklı bir PIC kullanılacağı zaman firmanın web sitesinden bu dosyalar indirilerek incelenebilir. Örneğin PIC 16F877 için firmanın hazırladığı datasheet dosyasını http://ww1.microchip.com/downloads/en/devicedoc/30292c.pdf linkinden PIC 16F84 için firmanın hazırladığı datasheet dosyasını ise http://ww1.microchip.com/downloads/en/devicedoc/35007b.pdf linkinden indirebilirsiniz.

PIC mikro denetleyicilerde kullanılan isimlendirme sisteminde belirli bir standart olduğu belirtilmese de, aşağıdaki çıkarımlar isimlendirmelerin anlamını açıklamak amacıyla kullanılabilir (genellikle geçerlidir): Mikro denetleyicinin ismindeki '12 ' öneki; 12 veya 14 bitlik bir kelime uzunluğuna sahip olduğunu belirtir. Mikro denetleyicinin ismindeki '16' öneki; 14 veya 16 bitlik bir kelime uzunluğuna sahip mikro denetleyici olduğunu gösterir. Mikro denetleyici ismindeki '17' veya '18' öneki; 16 bit kelime uzunluğuna sahip mikro denetleyiciler olduğunu gösterir. Mikro denetleyici ismindeki 'CR' kısaltması; mikro denetleyicinin ROM belleğe sahip olduğunu ve bir kere programlanabileceğini (OTP) belirtir. Mikro denetleyici ismindeki 'C' harfi; mikro denetleyici yongasında EPROM bulunduğunu ve EPROM un CMOS yapısında olduğunu gösterir (Yalnızca 16C84'de EEPROM bulunur). Mikro denetleyicilerde bulunan 'F' harfi; 'flash' bellekleri / yongaları gösterir. Mikro denetleyici ismindeki 'JW' soneki; pencereli EPROM yongalarında kullanılır. Mikro denetleyici isimlerinde son olarak bulunan 'A' harfi; mikro denetleyicinin yeni modellerini göstermek için kullanılır. Genelde 'A' harfi bulunan ile bulunmayan aynı ayak bağlantısına ve aynı programlama algoritması özelliklerine sahiptir (16F84 mikro denetleyicisi 10 MHz'e kadar çalıģırken, 16F84A mikro denetleyicisi 20 MHz'e kadar çalıģabilir). PIC mikro denetleyici serilerini tanımlayan harf ve rakamlardan sonra yazılan '10/p', '04/p' kodlamaları, 'saat' giriģine uygulanacak en yüksek frekansı belirtir. 4 MHz'e kadar çalıģma frekansında Öğr.Gör.Bülent 'PIC 16F84 04/p' ÇOBANOĞLU kodu kullanılırken, 10 MHz'e kadar 'saat' sinyali uygulanması durumunda 'PIC 16F84 10/p' kodu kullanılır

Dört farklı aile Ģeklinde üretilen PIC mikro denetleyicilerde 33 ile 77 adet arasında farklı sayıda ve farklı uzunlukta komutlar kullanılmaktadır. Programcı farklı uzunluklara sahip komutları kullanırken, komutun uzunluğu ile ilgilenmez. Farklı uzunluklara sahip komutlar farklı çevrim sürelerine iģlenirler: Dallanma komutları iki çevrim süresince iģlenirken, diğer komutlar tek çevrim süresinde iģlenmektedir. Yukarıda bahsedildiği üzere program kodlarını yazarken PIC'in ailesi ve kelime uzunluğu önemli bir etken değilken; kullanılacak PIC'in bellek miktarı, G/Ç portu sayısı, sahip olunan kesme (interrupt) fonksiyonları, kullanılan bellek tipi (Flash, EPROM, EEPROM, vb.), ADC ve DAC birimlerinin durumu, vb. bilgilerin bilinmesi ve göz önünde bulundurulması gerekmektedir. Mikro denetleyicilerin sahip oldukları özellikler ve mikro denetleyici kapasiteleri referans alınarak PIC mikro denetleyiciler üç gruba ayrılabilir: Temel özellikli mikro denetleyiciler, orta performanslı mikro denetleyiciler ve yüksek performanslı mikro denetleyiciler (Tablo 1). PIC ailelerinde bulunan PIC çeģitlerinin bilinmesi gereken özellikleri üretici firmalar tarafından yayınlanan kataloglarda(datasheet) bulunmaktadır. Tablo -1 de farklı kapasiteye sahip mikro denetleyicilere ait özellikler listelenmiģtir.

Tablo 1: 8 bit PIC mikro denetleyiciler ve özellikleri

Değerlendirme Soruları S1. Bir mikro denetleyiciyi oluģturan temel birimler hangileridir? S2. Mikro denetleyiciler veri belleği olarak ne kullanır? S3. Mikro denetleyici üreten firmalar hangileridir? S4. PIC Mikro denetleyiciler hangi firma tarafından üretilmektedir? S5. PIC Mikro denetleyici entegresinin üzerinde PIC 16F84 04/p yazılı ise bu mikro denetleyicinin çalıģma frekansı kaç MHz dir? S6. PIC Mikro denetleyici isminde bulunan 'F' harfi neyi ifade eder? S7. PIC mikro denetleyiciler, kelime uzunlukları referans alınarak nasıl sınıflandırılır? S8. PIC mikro denetleyiciler, mimari yapıları (CPU ile veri belleği arasındaki harici hat sayısı) referans alınarak nasıl sınıflandırılır? S9. PIC kelimesinin Türkçe/Ġngilizce açılımı nedir? S10. PIC mikro denetleyicilerin tercih edilmesinin nedenleri / etkenleri olarak neler sayılabilir?

PIC MCU Donanımsal Yapısı

PIC16F84 ÜN DONANIMSAL YAPISI

PIC Mikrodenetleyici içerisindeki kaydediciler Özel Amaçlı kaydediciler (FSR Register) içerisinde; Durum kaydedicisi (Status register) OPTION register I/O kaydedici. (PORTA, TRISA,..) Timer registers (TMR0, ) INTCON register ( A/D dönüģtürücü kayd. Porgram Sayıcı (PCL, PCLATH,..).

Pic16F84 ün YAPISI ve ÇALIŞMASI CMOS teknolojisi ile üretilmiģ olan PIC16F84 çok az enerji harcar. Flash belleğe sahip olması nedeniyle clock giriģine uygulanan sinyal kesildiğinde register ları içerisindeki veri aynen kalır. Clock sinyali tekrar geldiğinde PIC içerisindeki program kaldığı yerden çalıģmaya baģlar.

Pic16F84 ün YAPISI ve ÇALIŞMASI PIC16C84 ve PIC16F84 özellikleri aynı olan PIC lerdir. Her ikisi de EEPROM belleğe sahip olmalarına rağmen Microchip ilk ürettiği EEPROM bellekli PIC leri C harfi (C harfi CMOS tan gelmektedir) ile tanımlarken son zamanlarda ürettiği EEPROM bellekli PIC leri F harfi (FLASH) ile tanımlamaktadır. Ayrıca PIC16F84A ile PIC16F84 arasında da herhangi bir fark yoktur. PIC i tanımlayan bu harf ve rakamlardan sonra yazılan 10/p, 04P clock girişine uygulanacak maksimum frekansı belirtir. Örneğin 10 MHz e kadar frekanslarda PIC16F84-10P kullanılırken, 4 MHz e kadar frekanslarda PIC16F84-04P kullanılabilir.

Besleme Gerilimi: Pic16F84 ün YAPISI ve ÇALIŞMASI

Clock Uçları ve Osilatör Çeşitleri: Pic16F84 ün YAPISI ve ÇALIŞMASI PIC belleğinde bulunan program komutlarının çalıştırılması için bir kare dalga sinyale ihtiyaç vardır. Bu sinyale clock sinyali denir. PIC16F84 ün clock sinyal girişi için kullanılan 2 ucu vardır. Bunlar OSC1 (16. pin) ve OSC2 (15. pin) uçlarıdır. Bu uçlara farklı tipte osilatörlerden elde edilen clock sinyalleri uygulanabilir. Seçilecek osilatör tipi Pic in kontrol ettiği devrenin hız gereksinimine bağlı olarak seçilir. Clock osilatör tipleri şunlardır: RC: Direnç/Kondansatör XT: Kristal veya seramik resonetör HS: Yüksek hızlı kristal veya seramik resonetör LP: Düşük frekanslı kristal

Clock Uçları ve Osilatör Çeşitleri: Pic16F84 ün YAPISI ve ÇALIŞMASI Pic e bağlanan clock osilatörünün tipi programlama esnasında Pic içerisinde bulunan konfigürasyon bitlerine yazılmalıdır.

Pic16F84 ün YAPISI ve ÇALIŞMASI Kristal Kontrollü Clock Osilatörleri:

Pic16F84 ün YAPISI ve ÇALIŞMASI Kristal Kontrollü Clock Osilatörleri: Kristal ve kondansatör kullanılarak yapılan osilatörler zamanlamanın önemli olduğu yerlerde kullanılır. Kristal osilatörün kullanıldığı devrelerde kristale bağlanacak kondansatörün seçimine özen gösterilmelidir. Aşağıda tabloda hangi frekansta kaç µf lık kondansatör kullanılacağını göstermektedir.

Pic16F84 ün YAPISI ve ÇALIŞMASI Kristal Kontrollü Clock Osilatörleri: Seçilen kondansatör değerlerinin gerekli değerlerden yüksek olması, elde edilen kare dalganın bozuk olmasına ve Pic in çalışmamasına neden olur. C1 ve C2 kondansatörünün birbirine eşit olması gerekir.

Reset Uçları ve Reset Devresi: Pic16F84 ün YAPISI ve ÇALIŞMASI

Reset Uçları ve Reset Devresi: Pic16F84 ün YAPISI ve ÇALIŞMASI PIC microcontrollers aģağıdaki durumlarda RESET oluģur: PIC e ilk güç verildiğinde (POR Power On Reset) MCLR giriģi mantıksal 0 yapıldığında Watchdog zamanlayıcısında taģma olduğunda.

Pic16F84 ün YAPISI ve ÇALIŞMASI I/O Portları:

Pic16F84 ün YAPISI ve ÇALIŞMASI I/O Portları: Portun ilgili pininin çıkıģ olması için, çıkıģtaki tristate bufferın aktif edilmesi, yani tris latch üzerine önceden 0 bilgisinin verilmiģ olması gerekir. Eğer tris latch üzerine önceden 1 yüklenmiģ ise, çıkıģtaki buffer açık devre olacağı için bilgi çıkıģı mümkün değildir. Bu durumda ancak oku komutu verilerek (Read Port) pin üzerindeki bilginin data busa aktarılması, yani okunması (giriģ yapılması) sağlanmıģ olacaktır. Write port ya da write tris ise adres hattına bağlı olan seçme hatları gibi çalıģırlar. Tris ve Port registerinin adreslerinden biri bank0 diğeri bank 1 dedir. Bu sebeple port ayarı programı yazmak için öncelikle bank1 e geçip (bu iģlem için fsr registeri kullanılacaktır) tris üzerine istenilen bilgi yazılır. Burada portun pinleri birbirinden bağımsız olduğu için istenilen port ucu giriģ, istenilen port ucu çıkıģ olarak ayarlanabilir. Bunun için tris registerinin ilgili ucuna 1 ya da 0 verilmesi (giriģ için 1, çıkıģ için 0) yeterli olacaktır.

Pic16F84 ün Mimari Yapısı

Pic16F84 ün Mimari Yapısı REGİSTER LER: Her işlemci, bazıları özel ve bazıları genel amaçlı olmak üzere içerisinde register bulundurmak zorundadır. Akümülatör (Working register) : Genel amaçlı bir registerdir. Tüm işlemcilerde bulunan bu register Acc ya da A ismiyle anılır. Pic serisi işlemcilerde ise W adıyla anılmaktadır. Bu register işlemlerin çoğunda kullanılan bir registerdir. 2 operandla yapılan işlemlerde, operandlar işleme girerken, operandlardan bir tanesi burada tutulur; aritmetik ya da lojik işlemlerde işlem sonuçlarını tutar, ayrıca çok özellikli bir register olduğu için bit işlemleri, kaydırma, döndürme, eksiltme, artırma, tersini alma gibi işlemler de burada yapılabilir.

Pic16F84 ün Mimari Yapısı REGİSTER LER: Program Sayıcı (PC:Program Counter): Bu register ise program akışını kontrol eden bir registerdir. Çalışmakta olan programların adresleri burada tutulur ve sayılır. Program icra edilirken halen işletilecek olan komutun adresi PC de bulunur ve bu komut okunduğunda adres otomatik olarak 1 artar. Eğer komutun bir operandı varsa komut algılandıktan sonra bu operand okunur ve bu okunma tamamlanınca PC yine 1 artar. Bu şekilde PC sistemin işleyişini kontrol etmiş olur. Ayrıca program içerisindeki atlama komutlarında atlanacak adres, PC ye yüklenerek programın bir yerden bir başka yere atlaması sağlanır.

Pic16F84 ün Mimari Yapısı REGİSTER LER: Program Sayacı (PC:Program Counter): Alt program çağırma işlemlerinde, programın bir noktadan diğer bir noktaya atlarken geri dönüş adresinin belirlenmesi açısından, programın o anda çalıştırdığı adresin de bir yerlerde tutulması gerekir. Bu bölüme ise STACK adı verilir. Stacklar FILO (First In Last Out) mantığına göre çalışırlar. Bir işlemcinin stack kapasitesi, o işlemcinin çalıştırabileceği alt program adedini belirler. Intel firmasının sanayi tipi işlemcilerinde stack için bir segment (Ör:8085) ayrılırken, daha basit tipteki işlemcilerde (Ör: 6502) 1 K lık alan ayrılmaktadır. Pic serisinde bu alan daha azdır. Mesela PIC16C8X ailesinde 8 byte dır. Pic serisinde direkt kullanımı olmamasına rağmen, diğer işlemcilerde stacka direk müdahale için stack adresini tutan Stack Pointer registeri ile ilgili komutlar vardır.

Pic16F84 ün Mimari Yapısı REGİSTER LER: İşlemci Durum Kaydedici (Processor Status Register): PS ya da Status adıyla anılan bu register bayrak işaretlerini tutan registerdir. Diğer registerlerden farklı olarak bu register, blok olarak değil tek tek bit olarak ele alınır. Bu registerin bitlerine bakılarak işlemin ve işlemcinin durumu hakkında bilgi elde etmek mümkündür. Status Registerin Bitleri:

Pic16F84 ün Mimari Yapısı REGİSTER LER:

Pic16F84 ün Mimari Yapısı Bellek Yapısı:

Pic16F84 ün Bellek Yapısı Hafıza (Bellek) Yapısı: Mikroişlemcilerde dış ünite olarak kullandığımız hafıza elemanları mikrokontrollörlerde iç ünite durumundadır. Bunları yapısına göre iki ayrı grupta toplamak mümkündür: a) RAM (Random Access Memory) b) ROM (Read Only Memory) RAM: RAM genelde program içerisindeki geçici bilgileri (ki biz onlara değişken diyeceğiz)tutmak için kullanılacaktır. Bazı işlemcilerde ramın program hafızası olarak kullanıldığını görmek mümkündür, ancak bu işlemciler ya bir dış kalıcı hafıza tarafından desteklenmekte ya da içerisinde şarj olabilen bir pil içermektedirler. ROM: Rom hafıza ise program hafızası olarak kullanılan bir hafıza çeşididir. Sadece okunabilme özelliğine sahip olduğu için, bir kez programlandığında programın silinmesi diye bir şey söz konusu olmamaktadır.

Pic16F84 ün Mimari Yapısı Hafıza (Bellek) Yapısı: Program Belleği Bellek haritasında bellek bölgelerini temsil eden adresler gösterilirken 'onaltılı heksadesimal' notasyon kullanılmaktadır. PIC programlama esnasında da kullanılan '0Xxx' heksadesimal notasyonunda '0X' veya XXh değerleri sayıların heksadesimal olduğunu belirtir. Örneğin; '0X0F' veya 0Fh değeri (0F)16 sayısını '0X3FF' veya 3FFh değeri ise (3FF)16 sayısını gösterir. Program ile ilgili bilgilerin (komutların) yazılması amacıyla kullanılan bellek bölgesinde bulunan 64 Bayt'lık EEPROM belleğin en önemli özelliği, enerji kesilmesi durumunda verilerin kaybolmamasıdır. Programın çalıģması sırasında program belleğindeki bilgilerin silinmesi veya değiģtirilmesi mümkün değildir. Program belleğindeki bilgiler ancak programlama modunda değiģtirilebilirler.

Hafıza (Bellek) Yapısı: Program Belleği: Pic16F84 ün Mimari Yapısı 1KBayt'lık program belleğine sahip olan PIC16F84 mikro denetleyicisinde her bir bellek hücresine 14 bit uzunluğuna sahip program komutları saklanabilir. Bunun anlamı; PIC16F84 mikro denetleyicisinin (000)16 ile (3FF)16 arasındaki adresler ile temsil edilen program belleğine 14 bit uzunluğunda toplam 1024 tane komut yazılabilmesidir. 16F877 nin program belleği ise 13 bit ile adreslenir ve dolayısıyla 2^13= 8192 bellek hücresi vardır. Yani 16F877'nin program belleği 8KBayt olarak tasarlanmıģtır. PIC16F877 ninde kelime uzunluğunun 14 bit olduğu daha önce belirtilmiģti. Bu durumda bu elemanın program hafızasına 8192 adet 14 bitlik komut yazmak mümkündür. Program belleği elektriksel olarak yazılıp silinebilen 'flash' bellek yapısında olmasına rağmen, programın çalışması sırasında sadece okunabilir. PIC mikro denetleyici program belleğine sadece Assembly komutları saklanabilmesine karģılık, 'RETLW' komutu ile birlikte sınırlı miktarda veri de yüklenebilir. Bellek haritasında bellek bölgelerini temsil eden adresler gösterilirken 'onaltılı heksadesimal' notasyon kullanılmaktadır.

PIC Komut Seti

ÖRNEK1. YURUYEN IġIK UYGULAMASI LIST P=16F84 #INCLUDE <P16F84.INC> CLRF PORTB ;Bütün LED ler sönük. BSF STATUS,RP0 ;BANK1 seçildi. CLRF TRISB ;PORTB nin bütün portlarını çıkıģ yap. BCF STATUS,RP0 ;BANK0 seçildi. INCF PORTB,F ;En sağdaki LED i yak. BCF STATUS,0 ;ELDE bitini temizle. LEFT RLF PORTB,F ;LED leri sola doğru yak. BTFSS PORTB,7 ;En soldakine ulaģıldı mı? RIGHT GOTO LEFT ;Hayırsa LEFT e dön. RRF PORTB,F ;LED leri sağa doğru Yyak. BTFSS PORTB,0 ;En sağdakine ulaģıldı mı? GOTO RIGHT ;Hayırsa RIGHT a dön. GOTO LEFT ;Yeni çevrime baģla. END

PORTA nın 0.bitine bağlı butona basınca (PORTB nin 0 bitine bağlı) ledi yakan/söndüren program LIST P=16F84 ; kullandığımız pic'i tanıttık. #INCLUDE<P16F84.INC> ; mplab da bulunan 16f84 dosyalarını çagırdık BSF STATUS,5 MOVLW 0XFF MOVWF TRISA CLRF TRISB BCF STATUS,5 CLRF PORTB ; bank 1'e gec ; w<--< 0xff yükledik ; portanın hepsi giriģ ; portbnin hepsi çıkıģ ; bank 0'a geç ; portb yi sıfırla BUTON BTFSC PORTA,0 ; portanın 0'ıncı pini 0' mı? GOTO BUTON ; hayırsa tekrar kontrol et BUTON1 BTFSS PORTA,0 ; portanın 0'ıncı pini 1' mi? SON GOTO BUTON1 ; hayırsa tekrar kontrol et BTFSC PORTB,0 ; led sönükmü? GOTO SON ; hayırsa sön'git BSF PORTB,0 ; evetse ledi yak GOTO BUTON BCF PORTB,0 ; ledi söndür GOTO BUTON ; tekrar butonu kontrol et ; tekrar butonu kontrol et END ; programı bitir