http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.



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

Mikroişlemciler Dersi. PIC Mikro denetleyiciler ve Programlama

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

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

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

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI

Mikro denetleyicili Uygulama devresi bileşenleri

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

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

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

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

PIC TABANLI, 4 BASAMAKLI VE SER

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

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

PIC 16F877 nin kullanılması

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

LCD (Liquid Crystal Display)

PIC16F877A nın Genel Özellikleri

PIC Mikrodenetleyicileri

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

PIC16F87X te ADC MODÜLÜNÜN KULLANIMI

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.

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

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

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

BÖLÜM Mikrodenetleyicisine Giriş

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

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

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

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

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

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:

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

Hacettepe Robot Topluluğu

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

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

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

Configuration bitleri ve reset durumları hakkında kavramlar

LCD (Liquid Crystal Display )

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

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

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

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

PROGRAMLANABİLİR ZAMANLAYICI

EEM 419-Mikroişlemciler Güz 2017

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

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

# 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

DOKUMANLAR

Komutların İşlem Süresi

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

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

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

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

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

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

KONFİGÜRASYON BİTLERİ

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

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

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

BM-311 Bilgisayar Mimarisi

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 Programlama. Devrim Çamoğlu

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

Mikroişlemcili Sistemler ve Laboratuvarı

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

GAZİANTEP ÜNİVERSİTESİ

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

EasyPic 6 Deney Seti Tanıtımı

Mikroişlemciler. Microchip PIC

İşletim Sistemleri (Operating Systems)

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

ADC: Anolog-Digital Çevirici

Mikroişlemci Programlama Aşamaları

BM-311 Bilgisayar Mimarisi

BÖLÜM in Bellek Organizasyonu

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

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

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

Mikrobilgisayarlar ve Assembler. Bahar Dönemi. Vedat Marttin

YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu

Bellekler. Mikroişlemciler ve Mikrobilgisayarlar

Mikroişlemciler ve Mikrodenetleyiciler

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

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

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

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

Bank değiştirme Bir banktan diğerine geçmek için STATUS register denilen özel registerin 5. ve 6. bitinin durumunu değiştirmek gerekir.

Komutların Yürütülmesi

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

BİLİŞİM TEKNOLOJİLERİ

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

8. MİKRO İŞLEMCİ VE MİKRODENETLEYİCİLER 1

BİLGİSAYAR SİSTEMLERİ

DSPIC30F2010 ASSEMBLER PROGRAMI İÇERİSİNDE KONFİGÜRASYON BİTLERİNİ TANIMLAMA

Transkript:

http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm B Yrd.Doç. Dr. Bülent ÇOBANOĞLU

PIC MİKRODENETLEYİCİ VE AİLESİ 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. 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,dsPIC..) 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. Üretici firmanın (Microchip firmasının) web sayfaları üzerinden sağladığı teknik destek (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 derlenebilmesi, 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ı, PIC'lerin az sayıda komut içeren komut kümelerine sahip olması ve kolayca programlanabilmesi, Ekonomik olması ( oldukça uygun fiyatlara temin edinilebilmesi), 6 pinden 80 pine kadar bir çok ürün çeşidinin olması, Bellek bölgelerine erişimde ve veri iletiminde farklı yolların kullanılması, Basit elemanların eklenmesiyle oluşturulan sistem/donanım yardımıyla programlanabilmesi, Kullanıldığı devrelerde basit yapıda yardımcı devrelere (sıfırlama, tetikleme / saat sinyali, besleme, vb.) ihtiyaç duyulması, Yüksek frekanslarda çalışabilmesi ve komut işleme hızının çok yüksek olması, Uyku modunda (Sleep mode) 1μA gibi küçük bir akım çekmesi, Yalnızca 2 kondansatör ve bir direnç ile çalışabilme özelliği, Harvard ve RISC mimarisine sahip olması

Bütün PIC MCU lar aşağıdaki özelliklere sahiptir. Harvard, 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, adresleme modu Harici saat arabirimi RAM veri belleği EPROM veya Flash program belleği Hangi PIC modelini seçeceğim? * 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 * Çalışma Sıcaklıkları *

Tablo 1: 8 bit PIC mikro denetleyiciler ve özellikleri

PIC 16F/18F bazı serilerin karşılaştırılması

PIC 16F/18F serilerin karşılaştırılması

PIC MCU Bacak Bağlantıları 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.

PIC16F877 MCU Bacak Bağlantıları

PIC 16F877 DONANIMSAL YAPISI

PIC18F BASİTLEŞTİRİLMİŞ DONANIMSAL YAPISI

PIC MCU DONANIMSAL YAPISI : CPU İşlemci içerisinde, Aritmetik - Mantık birimi (ALU), Akümülatör (W kaydedicisi), Durum kaydedicisi (status register), sayıcılar, yığın göstericisi, kaydediciler, vb. işlevsel birimler bulunur. CPU biriminin kalbi ALU ( Aritmetic Lojik Unit -Aritmetik Mantık Birimi ) dur ve W ( Working register) adında tek bir kaydedici içerir. W kaydedicisi 8-bit genişliğindedir ve CPU' daki herhangi bir veriyi transfer etmek üzere kullanılır. PIC mikro denetleyicilerin RISC işlemci mimari yapısına sahip olduklarını daha önce de belirtmiştik. RISC işlemci, sadece 35 adet (PIC 16F84 ve PIC 16F877 için) komutu tanır ve işler. Dallanma (jump, brunch) komutları hariç tüm komutlar aynı saat çevriminde işlenir. Eğer mikro denetleyicinin çalışma hızı 20MHz ise işlemcinin bir komutu çalıştırma zamanı 200nS (T=1/F) dır, buda saniyede 5 milyon komutun işlenmesi demektir.

PARALEL-SERİ PORT ile VERİ İLETİMİ

PIC MCU DONANIMSAL YAPISI : GİRİŞ ÇIKIŞ BİRİMLERİ (PORTLAR) PORT lar; mikro denetleyiciden dışarıya giden veya dışarıdan mikro denetleyiciye gelen sinyallerin alınmasında ve gönderilmesinde kullanılır. PIC' lerde portlara çeşitli isimler verilmiştir. PIC 16F84 mikro denetleyicisinde PORTA ve PORTB olmak üzere iki adet giriş / çıkış portu bulunurken PIC 16F877 mikro denetleyicisinde bu sayı beştir (PORTA, PORTB, PORTC, PORTD ve PORTE olmak üzere). PIC 16F84 mikro denetleyici entegresinde 'RA0-RA4' olarak tanımlanan 5 tanesi PORTA (1, 2, 3, 17, 18 nolu pinler) ve 'RB0-RB7' sembolleri ile gösterilen 8 tanesi PORTB (6, 7, 8, 9, 10, 11, 12, 13 nolu pinler) olarak kullanılan toplam 13 adet giriş/çıkış pini(ucu) bulunmaktadır. PIC 16F877 mikro denetleyicisi ise 33 adet giriş/çıkış pinine sahiptir. Bunlardan 6 tanesi A portuna (RA0-RA5), 8 tanesi B portuna (RB0-RA7), 8 tanesi C portuna (RC0-RC7), 8 tanesi D portuna (RD0-RD7) ve 3 tanesi E portuna (RE0-RE2) aittir.

PIC16f877 MCU DONANIMSAL YAPISI : PORT PINLERİNİN ALTERNATİF İŞLEVLERİ

PIC MCU DONANIMSAL YAPISI : GİRİŞ ÇIKIŞ KAYDEDİCİLERİ (PORT&TRIS) Her port kendisi için ayrılmış, TRIS adı verilen kaydediciler ile giriş veya çıkış olarak ayarlanır. Her portun ayarı kendisine ait TRIS kaydedicisi ile yapılır. (A portu için TRISA, B portu için TRISB, vs.). Bir portun tüm bacakları giriş veya çıkış olarak ayarlanabileceği gibi, bazıları giriş, bazıları çıkış olarak da ayarlanabilir. {Bunun için TRIS kaydedicisinin ilgili ucuna 1 ya da 0 verilmesi (giriş için 1, çıkış için 0) yeterli olacaktır.} Uyarı: TRIS ve PORT kaydedicilerinin adresleri farklı bellek bölgelerinde bulunmaktadır (Bank 1 ve Bank 0). Bu sebeple öncelikle TRIS kaydedicisinin bulunduğu banka geçilerek PORT lar giriş yada çıkış olarak ayarlanır.

PIC HAFIZA YAPISI 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.

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 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 HAFIZA YAPISI: Veri Belleği

PIC MCU DONANIMSAL YAPISI : PIC16F887 KAYDEDİCİLER (REGISTERS) * Genel Amaçlı Kaydediciler * W Kaydedicisi * Ö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,..) *. *

PIC MCU DONANIMSAL YAPISI : KAYDEDİCİLER (REGISTERS) W- Kaydedicisi: (Working Register - Akümülatör) : Genel amaçlı bir kaydedicidir. Tüm işlemcilerde bulunan bu kaydedici ACC ya da A ismiyle anılır. PIC serisi işlemcilerde ise W adıyla anılmaktadır. Bu kaydedici işlemlerin çoğunda kullanılan bir kaydedicidir. 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 kaydedici olduğu için bit işlemleri, kaydırma, döndürme, eksiltme, artırma, tersini alma gibi işlemler de burada yapılabilir. NOT: MOVLW, ADDLW, ANDLW, MOVWF, gibi birçok komuttan da görüleceği üzere çoğu işlem W kaydedicisi üzerinden gerçekleşir. Program Sayıcı: Program akışını kontrol eden bir kaydedicidir. Ç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.

Program Sayıcı (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. Fiziksel olarak, adresin düşük değerli 8 biti 'PCL' kaydedicisinde ve adresin yüksek değerli 5 biti 'PCLATH' kayded icisinin 5 bitinde saklanır. Mikro denet leyicinin komutları işlemesi sırasında artırılarak, programdaki komutların adı m adım işlenmesini sağlar.

Program Sayıcı (PC: Program Counter): PC, Adres yolunu kullanır. Program belleğinin 11-bitlik adresi ( 2 11 =2Kbyte ) doğrudan adreslenebilir. Bununla birlikte PIC16F877 gibi MCU lerde program belleği 13 bit (2 13 =8Kbyte ) dir. GOTO ve CALL gibi komutlarla bu 2KByte lık alanda (000H-7FFH) doğrudan gidilebilir ama 7FFH üzerindeki adresler için PCLATH kaydedicine dolaylı erişim mümkündür. Örneğin PIC16F877 de GOTO komutu ile belleğin F00 bölgesine erişim için: bsf PCLATH,3 ; PCLATH(4:3) = 11 bsf PCLATH,4 goto h F00 ;

PIC MCU DONANIMSAL YAPISI : KAYDEDİCİLER (REGISTERS) Durum Kaydedicisi: (STATUS Register - Bayraklar) : STATUS adıyla anılan bu kaydedici aynı zamanda 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. PIC16F PIC18F NOT: STATUS, aritmetik ve mantık işlemleri, veri belleği için bank seçim bitlerine ait durum bilgisini içeren bir kaydedicidir.

PIC MCU DONANIMSAL YAPISI : Durum Kaydedicisi

PIC MCU DONANIMSAL YAPISI : KAYDEDİCİLER (REGISTERS) Seçenek Kaydedicisi: (OPTION_REG) : OPTION adıyla anılan bu kaydedici çeşitli kontrol bitlerinin ayarlanmasında kullanılır.tmr0 ve WDT zamanlayıcıları için frekans bölme oranlarını belirleme, harici kesme sinyalinin tetikleme kenarını seçme, PORTB nin pullup dirençlerini düzenleme ve TMR0 / WDT zamanlayıcı seçim işlemleri için gerekli kontrol bitlerini içerir.

PIC MCU UYGULAMA DEVRESİ BİLEŞENLERİ Bir PIC mikro denetleyicisi ile gerçekleştirilecek uygulama da o devreye/uygulamaya özel elemanların (direnç, led, buton, lcd gibi) yanı sıra en azından besleme, reset ve osilatör devresinin olması gerekir.

Watchdog Timer Bekçi Köpeği Zamanlayıcısı Bilgisayar terimi olarak watchdog (bekçi köpeği), bilgisayarın çalıştığını garanti eden çok güvenilir (sağlam) bir donanımdır. Watchdog donanımının ardındaki düşünce çok basittir: Bilgisayar zaman zaman watchdog aygıtına "Merhaba" demesi gerekiyor ki bilgisayarın hala hayatta olduğu anlaşılsın. Eğer, bunu yapamazsa, o zaman bilgisayar donanımsal olarak yeniden başlatılacaktır. PIC Mikrodenetleyicilerde Bekçi köpeği zamanlayıcısı (watchdog timer) yazılımdan gelen bir hata durumunda sistemi yeniden başlatarak sistemin kilitlenmesini önler. Eğer MCU içerisindeki program düzgün çalışıyorsa WDT sayıcısı asla maksimum değere ulaşmaz. Ne zamanki programda bir kilitlenme veya durma olur o zaman WDT sayıcısı maksimum değere ulaşır ve MCU ya bir RESET sinyali gönderir ve program yeniden başlar. Yani WDT programın düzgün çalışmasını garanti eder. Konfigurasyon bitlerini kullanarak WDT ON yada OFF yapmak CONFIG _HS_OSC & _WDT_OFF & _PWRTE_ON & _LVP_OFF

Watchdog Timer Bekçi Köpeği Zamanlayıcısı

Besleme Devresi ve Bacak Bağlantıları Besleme geriliminin bağlandığı bacaklar Vdd (PIC16F84 için 14 nolu bacak, PIC16F877 için ise 11 ve 32 nolu iki farklı bacak) isimli bacaklardır. Toprak/Şase bağlantısı için ise Vss (PIC16F84 için 5 nolu bacak, PIC16F877 için ise 12 ve 31 nolu iki farklı bacak) isimli bacaklar kullanılır. Şekildeki 16F877 entegresinin bacak bağlantılarına bakıldığında besleme ve toprak girişleri, iki yanda birer tane olacak şekilde konumlandırılmıştır. Vdd' ile 'Vss' uçları arasına devreye ilk gerilim uygulaması anında (PIC'e enerji verme sırasında) olabilecek gerilim dalgalanmalarının sebep olabileceği arızaları önlemek amacıyla 0,1 mikrof'lık bir 'dekuplaj kondansatörü' bağlanır. Dr. Bülent ÇOBANOĞLU

Reset Uçları ve Devresi: (1/2) PIC mikro denetleyicilerin MCLR ucu (16F84 için 4 nolu, 16F877 için 1 nolu bacak) reset bacağıdır. Bacak bağlantılarında MCLR üzerinde bulunan çizgi, lojik 0 da iken reset işleminin gerçekleştiğini göstermektedir. Bu bacak lojik 0 (0V) seviyesine çekildiğinde program kesilir ve tekrar lojik 1 (+5V) seviyesine gelince program ilk satırdan itibaren çalışmaya başlar. Reset devresi aşağıdaki gibi kurulur. MCLR pininin yanlışlıkla lojik '0' değeri ile aktif hale gelmesini engellemek amacıyla bir direnç üzerinden + besleme ucuna bağlanması gereklidir. Bağlandığı ucu sabit olarak lojik '1' değerinde tutan bu direnç, 'pull-up' direnci olarak isimlendirilir. 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. BOR; Eğer belli bir süre (TBOR- 100us) Vdd gerilimi VBOR (about 4 volts) değerinin altında kalırsa (BODEN biti ile aktif/pasif yapılır)

Reset Devresi Mantığı: (2/2) Dr. Bülent ÇOBANOĞLU

Osilatör devresi ve bağlantısı: (1/2) PIC bir mikroişlemcili sistem olduğundan, komutları işleyebilmesi için saat(clock) sinyali dediğimiz, frekansı belli olan bir kare dalga işarete ihtiyaç duyar. PIC mikro denetleyicilerin saat sinyali girişi için kullanılan iki ucu vardır; bunlar OSC1 (16F84 için 16. pin, 16F877 için 13. pin olmak üzere) ve OSC2 (16F84 için 15. pin, 16F877 için 14. pin olmak üzere) 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 Dr. Bülent ÇOBANOĞLU

Osilatör devresi ve bağlantısı: (2/2) Kristal Osc. genelde C1 ve C2 kondansatörünün birbirine eşit olması gerekir. Seramik Resonator Dr. Bülent ÇOBANOĞLU

Konfigürasyon bitleri ve işlevleri Power-up timer (PWRTE) Osilatör start-up timer BOR (Brown Out Reset) Yonga içindeki bir RC osilatör devresi ile belirli bir frekansta çalışması denetlenen WDT (Watch Dog Timer) Kesmeler Kod koruma güvenliği Güç harcamasının azaltılması istendiği durumlar için uyku (sleep) modu İsteğe bağlı osilatör seçenekleri: RC/ XT/ HS/ LS Devre içi seri programlama (iki pin ile seri olarak programlanabilme) Devre içi düşük gerilimle programlama Devre içi hata arayıcı (Debugger) Not: Kullanılan osilatör tipi programlama esnasında PIC içerisinde bulunan konfigürasyon bitlerine yazılmalıdır. CONFIG _XT_OSC & _PWRTE_ON & _BODEN_OFF & _CP_OFF & _WDT_OFF & _LVP_OFF & _CPD_OFF CONFIG 0x3F31; CONFIG b 11111100110001 CONFIG(UNPROTECT & LVPDIS & BORDIS & MCLREN & WDTDIS & PWRTEN & INTIO); //C için CONFIG( HS & WDTDIS & PWRTDIS & BORDIS & LVPDIS & WRTEN & DEBUGDIS & UNPROTECT ); // C için Not: Program belleğinin 2007h adresinde olup 14 bittir. Bu bitlere sadece PIC programlama aşamasında erişilebilmektedir.

I/O Portları: Analog/Digital Seçimi 16F877 de 8 tane 10 bitlik A/D çevirme kanalı bulunur. A / D kanalları için RA4 hariç diğer A ve E portları kullanılır. A/D çevirme işlemi 4 adet kaydediciyle yapılmaktadır. Aşağıda ilgili register lar ve adresleri gösterilmiştir. ADRESH 0x1E ; A / D sonuç kaydedicisi (high register) ADRESL 0x9E ; A / D sonuç kaydedicisi (low register) ADCON0 0x1F ; A / D kontrol kaydedicisi 0 ADCON1 0x9F ; A / D kontrol kaydedicisi 1 ADFM biti dönüştürme işlemi sonunda 10 bitlik sayının formatını belirler.1: Sayı sağa kaydırılır.0: Sayı sola kaydırılır. PCFG3 PCFG0 bitleri A/D portlarının durumunu belirler. Tümü 0 yapılırsa bu durumda 8 tane analog kanal seçilmiş olur ve her kanalın referans gerilimi VDD olarak ayarlanır. Dr. Bülent ÇOBANOĞLU

I/O Portları: Analog/Digital Seçimi :ADCON1 ADCON1, PORTA ve PORTE portlarını dijital veya analog giriş-çıkış olarak ayarlamaya yarar. Default olarak bu portlar analogtur ADCON1 kaydedicisine ilgili değerler yüklenerek bütün pinler digital veya analog işlemler için ayarlanabilir. Ayrıntılı bilgi için lütfen datasheet e ve ileride anlatacağımız ADC konusuna göz atınız.

I/O Portları: Analog/Digital Seçimi : ADFM biti ve ADRESL-ARESH

I/O Portları: Analog/Digital Seçimi : ADCON0 TAD:Bir bitlik dönüşüm süresidir. 10 bitlik dönüşüm için 11TAD süresi çeker.

Hemen (Immediate) Adresleme: MOVLW h 0F ; OF verisi hemen W kaydedisine yazılır Doğrudan (Direct) Adresleme : Kaydedici veya değişken içeriği okuma/yazma MOVWF PORTA,F ; Mikrodenetleyiciler 41

Dolaylı (Indirect) Adresleme : INDF fiziksel bir register olmayıp mikrodenetleyicideki RAM adresini tutar. INDF e yazılan her veri FSR de bulanan adrese yazılmış olur.örneğin FSR (Özel Fonksiyonlu Kaydedici) ye yazdığımız 0x20 değeri ile 0x20 adresinin içeriğini INDF i okuyarak elde edebiliriz.. INDF = [FSR]; okuma [FSR] = INDF; yazma Nerede kullanılabilir; Veri belleğinin belirli adreslerine ulaşmanız, ulaştığınız adreslerin içeriğini değiştirmeniz veya bu adresteki değerleri alıp kullanmanız gerekiyorsa Dolaylı adresleme kullanılır. Örnek; h 20 h 2F RAM bölgesini temizleyen (sıfırlayan) bir program. movlw 0x20; Göstergeye başlangıç değerini (adresi) ver. movwf FSR; RAM a git Sonraki: clrf INDF; INDF yazmacını temizle incf FSR, F; Göstergeyi bir arttır. (d = 1) btfss FSR, 4; Hepsi yapıldı mı? goto Sonraki; Temizlenecek alan bitmedi, sonrakine git. 42

Dolaylı (Indirect) Adresleme Kaydedicileri : INDF ve FSR 43

PIC Komut Seti

PIC MCU Paket Okuması

PIC MCU Paket Okuması

PIC MCU Assembly komut sembollerin / harflerin anlamları

PIC18F Komut Seti (2/2)

PIC18F Komut Seti (2/2)

PIC16F -PIC18F Komut Seti Karşılaştırması

PIC16F -PIC18F Komut Seti Karşılaştırması