16f877 datasheet ( tr )

Embed Size (px)

Citation preview

  • 8/7/2019 16f877 datasheet ( tr )

    1/107

  • 8/7/2019 16f877 datasheet ( tr )

    2/107

    2

    2

    Program ilenirken giri/ k cihazlar ndan gelen servis isteklerine I bayra n n

    durumuna gre cevap verirler.

    Intel ve Motorola firmalar n n retmi olduu mikroilemcilerde yukar da bahsedilen ilemleri gerekletirmek zere ana blm vard r. Bunlar; Kaydediciler,

    Aritmetik Mant k Birimi (ALU) ve Zamanlama-Kontrol Birimidir.

    1.1.1.1 Kaydediciler

    Mikroilemcinin iinde ilem yaparken geici olarak verilerin sakland klar

    saklay c lard r. Mikroilemci ierisinde deiik ilemleri gerekletirmek zere

    akmlatr, indis kaydedicileri, stack pointer, program counter gibi kaydediciler mevcuttur. Mikroilemciler ierisinde ilem yap l rken bu kaydedicilere veri at labilir,

    toplama, kar lat rma ve kayd rma gibi baz ilemle gerekletirilebilir.

    1.1.1.2 Aritmetik Mant k Birimi (ALU)

    ALU, yrtlmekte olan komutta belirtilen iki deer zerinde aritmetik ve lojik

    ilemleri yerine getirir. Bu iki deerden biri daima zel bir mikroilemci kaydedicisi olan

    ve A kaydedicisi olarak adland r lan kaydedicinin o anki ieriidir. Dier ALU girii ise;mikroilemcinin blmn oluturan genel amal kaydedici grubundan bir baka

    kaydedicidir.

    1.1.1.3 Zamanlama-Kontrol Birimi

    Mikroilemcinin kontrol birimi, mikroilemcinin iinde ve d nda olan btn veri

    aktar mlar n ve ALU ilemlerini kontrol eder ve evre birimlerle e zamanlama iin

    gerekli sinyallemeyi salar. Ayr ca, kontrol birimi ALUda en son yap lan aritmetik vemant ksal ilemin sonucunu yans tan bayraklar giri olarak al r.

    1.1.2 Giri- k Birimi (G/)

    Mikroilemcinin d dnya ile ilikisinin saland nitedir. Mikroilemciye verilen

    bilgiler bu nite yolu ile ilemci ierisine al n rken, CPU ve dier birimlerde ilenen veriler

    yine bu nite sayesinde d ortama aktar l rlar.

  • 8/7/2019 16f877 datasheet ( tr )

    3/107

    3

    3

    1.1.3 Bellek

    Bellek bir mikro bilgisayar sistemi ierisinde bilgileri saklar. Bellek iki blme

    ayr lm t r. Bir blm program saklar, dier blm ise mikro bilgisayara gerek duyduu

    bilgi ya da veriyi tutmak iin kullan l r.

    Genel amal bir mikro bilgisayar sisteminde program s kl kla deitirilir. ama r

    makinas denetleyicisi gibi bir mikroilemci tabanl sistemde program, fabrikada

    retilirken yklenmitir ve asla deimez. Bu tr bir uygulama iin program ROM ad

    verilen zel bir bellek trnde saklan r.

    ROM (Sadece okunur bellek):Program deyimleri, veri vb. sadece ROM bellektenkopya edilebilir. Yap mc veya kullan c taraf ndan ROM bellee kaydedilen hibir bilgi

    deitirilemez ve bu tr belleklere yeni kay t yap lamaz. ROM belleklerden baka bir de

    RAM bellekler de vard r.

    RAM (Rastgele eriimi bellek):Kural olarak RAM lar, zerinde yazma ve okumailemleri yap labilen bellekler olarak tan mlanm t r. Bir baka deyile RAM, deiken veri

    saklayabilen bir rastgele eriimli bellektir. RAM, bir elektronik devre olduu iin, gce

    gereksinim duyar. G kayna kesildii anda ok anl k olsa bile saklanan bir veri yitirilir.

    Sistem anahtar kapat ld anda, bellein ierii yitirilmi olur. Bu nedenle bu bellee

    kal c olmayan saklama ortam ad verilir.

    Baka bellek trleri de vard

    r. rnein, EPROM, silinebilir programlanabilir ROMdur. EPROM, programc ya bir yonga sat n al p bunu programlama imkan verir.

    1.2 Mikrodenetleyiciler

    Bir yaz l m olmadan hibir ie yaramayan, ancak ierisine yaz lan program

    vas tas yla istenilen bir ilemi gerekletiren kontrol eleman d r. Mikrodenetleyici yaz l m

    olmas halinde neredeyse s n rs z bir kullan m alan na sahiptir.

    Asl nda mikrodenetleyici bir bak ma bir bilgisayard r. Her nekadar bir klavyesi,monitr, kasas ve bunun gibi evre birimleri olmasa da bir bilgisayar n yapt her eyi

  • 8/7/2019 16f877 datasheet ( tr )

    4/107

    4

    4

    yapabilir. rnein her bilgisayar n bir merkezi ilem nitesi (CPU:Central Processing

    Unit) vard r ve bu nite makine kodlar n bizim anlayabileceimiz karakterlere dntrr,

    programlar yorumlar, iler, dzenler, bilgisayar n eitli birimleriyle irtibat kurar. Ve bu

    ilemleri yaparken baz deikenleri ve geici olarak elde ettii bilgileri saklad bir rastgele eriimli haf zaya (RAM:Random Access Memory) ihtiya duyar. Ayr ca

    bilgisayarlar n d dnyayla bilgi al ve verilerinde kulland klar baz giri ve k

    niteleri bulunmaktad r. rnek olarak fare ve klavye giri yapt m z elemanlara, monitr

    ve yaz c k ald m z elemanlara birer rnektir. Bilgilerimizi kaydettiimiz harddiskler

    ise hem giri hem de k eleman olarak al maktad rlar. Aynen bilgisayarda olduu gibi

    mikrodenetleyiciye de fare ve klavye gibi evre elemanlar n n ilemlerini nispeten de olsa

    yerine getirecek elemanlar ekleyerek kk bir bilgisayar gibi kullanmam z mmkndr.

    Bir mikrodenetleyici genel olarak aa daki birimlerden oluur:

    CPU (Merkezi ilem nitesi - central processing unit)

    RAM (Rastgele eriimli bellek-Random Access Memory)

    EPROM/PROM/ROM (Silinir, yaz l r sadece okunur bellek-Erasable Programmable

    Read Only Memory)

    I/O (Girdi/ kt - input/output) - seri ve paralel

    Timers (Zamanlay c lar)

    Interrupt controller (Kesmeler)

    Sadece kullan lacak ie uygun zellikleri bulunan bir mikrodenetleyici seildiinde

    maliyet nispeten dmektedir.

    Mikrodenetleyicilerde ilemler ve komutlar bit bit kontrol edilebildiinden giri ve

    k birimleri ve kesmeler ok etkin bir ekilde kulllan labilmektedir.

    u an kulland m z masast veya dizst bilgisayarlar genel amal bilgisayarlard r

    ve binlerce program al t r bilirler. Mikrodenetleyiciler ise zel amal bilgisayarlard r.

    ve programland klar eyi en iyiekilde yaparlar. Bunun d nda;

    Mikrodenetleyiciler sadece bir i iin programlanm lard r ve bu program ilerindeki

    ROM'da deimemek zere sakl bulunur.

  • 8/7/2019 16f877 datasheet ( tr )

    5/107

    5

    5

    Mikrodenetleyiciler dk gte al an iplerdir. Bir bilgisayar 50W civar g

    harcarken mikrodenetleyiciler sadece 50 miliWatt civar nda gharcarlar.

    Mikrodenetleyicelere sadece girdi yap lmaz ayn zamanda kt da al nabilir. LED

    gstergelerle, s v kristal gstergelerle, ikaz sesleriyle vb.. rnein televizyonunuzda ve

    uzaktan kumandas nda bulunan mikrodenetleyicilerden bahsedelim. Kumandada bulunan

    mikrodenetleyici tulara bast m zda girdisini alm olur ve bunu televizyondaki al c

    mikrodenetleyiciye gnderir. Ve o mikrodenetleyici de gelen sinyale gre k vererek ya

    kanal seer, ya ses ayar yapar ya da televizyonla ilgili ilemleri yapar.

    Mikrodenetleyiceler genelde kk ve dk fiyatl iplerdir. Bir ok paradan oluan

    kompleks birdevreyi kolayca kk boyutlara ve maliyete indirmenizi salar.

    Ayr ca mikrodenetleyiceler belleklerine gre de eit gsterirler ;

    1.2.1 EEPROM Bellekli Mikrodenetleyiciler

    Elektriksel olarak silinebilen ve yaz labilen belleklerdir.ou mikrodenetleyicilerde

    s n rl say da bulunan EEPROM lar, bir defadan fazla yaz l p silinebildikleri iin olduka

    kullan l d r.

    1.2.2 Flash (EPROM) Bellekli Mikrodenetleyiciler

    Flash bellekler EEPROM lardan daha h zl ve daha ok yazma silme ilemine

    izin vermeleri ynnden stndrler. Flash belleklerde bilgilerin korunmas sz konusu

    deildir.

    1.2.3 OTP Bellekli Mikrodenetleyiciler

    Bir kez programlanabilen mikrodenetleyicilerdir. OTP bir kez programlanabilen bir ROM'dur. Program n z bir EPROM programlay c ile bir kez yazd ktan sonra silemez

    veya deitiremezsiniz. Bu yntem program n z art k tamamen haz r olduunda ve btn

    hatalar ndan ar nd r ld ktan sonra kullan l r.

    Mikrodalga f r nlar gibi birok rnde kullan lan ve maliyeti de olduka dk olan

    bu iplerin iine dk gl ve dk maliyetli CPU lar yerletirildi. Motorola 6811 ve

    Intel 8051 ailesi mikrodenetleyicileri bu tre iyi birer rnektir. Bunlar n yan nda Microchip

    firmas taraf ndan retilen PIC mikrodenetleyicileri de son zamanlarda olduka poplerdir.

  • 8/7/2019 16f877 datasheet ( tr )

    6/107

    6

    6

    Gnmz standartlar nda bu ipler inan lmayacak kadar kk ve dk fiyatla sat n

    al nabilmektedir. S radan bir mikrodenetleyici iinde en az ndan 1,000 byte kapasiteye

    sahip bir ROM ve 20 byte kapasiteye sahip bir RAM, 8 adet I/0 pini bulundurabilir.

    1.3 Mikrodenetleyicinin Mikroilemciye Olan stnlkleri

    Mikroilemcinin kullan m ve mikroilemcili sistemin tasar m mikrodenetleyicili

    sisteme gre hem daha masrafl hem de daha karma kt r.

    Mikrodenetleyicili bir sistemin al mas iin eleman n kendisi ve bir osilasyon

    kayna n n olmas yeterlidir. Mikrodenetleyicinin ihtiya duyduu nbellek ve giri k birimi bir yonga ierisinde

    bulunmaktad r. Ancak mikroilemcili bir sistemde nbellek harici olarak bulunur.

  • 8/7/2019 16f877 datasheet ( tr )

    7/107

    7

    7

    2-PIC MKRODENETLEYC ALESNE GENEL BAKI

    PIC serisi mikrodenetleyiciler MICROCHIP firmas taraf ndan gelitirilmitir.

    retim amac ; ok fonksiyonlu mant k uygulamalar n n h zl ve ucuz bir mikrodenetleyici

    ile yaz l m yoluyla kar lanmas d r.

    PICin kelime anlam PERIPHERAL INTERFACE CONTROLLER (evresel

    arabirim denetleyicisi) dir.lk olarak 1994 y l nda 16 bitlik ve 32 bitlik byk ilemcilerin

    giri ve k lar ndaki yk azaltmak ve denetlemek amac yla ok h zl ve ucuz bir zme

    ihtiya duyulduu iin gelitirilmitir.

    ok geni bir rn ailesinin ilk yesi olan PIC16C54 bu ihtiyac n ilk rndr. PIC

    denetleyicileri RISC benzeri ilemciler olarak an l r. PIC16C54 12 Bit komut haf zagenilii olan 8 bitlik CMOS bir ilemcidir. 18 bacakl dip k l fta 13 I/O baca na sahiptir

    ve 20 Mhz osilator h z na kadar kullan labilir. 33 adet komut iermektedir. 512 byte

    program EPROMu ve 25 byte RAM`i bulunmaktad r. Bu haf za kapasitesi CISC

    ilemciler iin dk gibi grnebilir ancak PICin RISC denetleyici olmas birok iin bu

    kapasitede uygulanmas na olanak vermektedir.

    PIC serisi tm denetleyiciler herhangi bir ek bellek veya giri/ k eleman

    gerektirmeden sadece 2 adet kondansatr, 1 adet diren ve bir kristal ile

    al t r labilmektedir. Tek bacaktan 40 mA ak m ekilebilme ve entegre toplam olarak 150

    mA ak m ak tma kapasitesine sahiptir. Entegrenin 4 Mhz osilator frekans nda ektii ak m;

    al rken 2 mA, stand-by durumunda ise 20uA kadard r.

    PIC 16C54 un mensup olduu denetleyici ailesi 12Bit core 16C5X olarak an l r.

    Bu gruba temel grup ad verilir. Bu ailenin yesi dier denetleyiciler PIC16C57, PIC16C58

    ve dnyan

    n en kk ilemcisi olarak an

    lan 8 bacakl

    PIC12C508 ve PIC 12C509dur.

  • 8/7/2019 16f877 datasheet ( tr )

    8/107

    8

    8

    Interrupt (Kesme) kapasitesi ilk denetleyici ailesi olan 12Bit Core 16C5X ailesinde

    bulunmamaktad r. Daha sonra retilen ve orta s n f olarak tan nan 14Bit Core- 16CXX

    ailesi birok a dan daha yetenekli bir grup ilemcidir.

    Bu ailenin temel zellii interrupt kapasitesi ve 14 bitlik komut ileme haf zas d r.

    Bu zellikler PICi gerek bir denetleyici olmaya ve karma k ilemlerde kullan lmaya

    yatk n hale getirmitir. PIC16CXX ailesi en geni rn yelpazesine sahip ailedir. 16CXX

    ailesinin en nemli zellikleri seri olarak devre stnde dahi programlanmas d r.

    PIC 16CXX ailesinin amatr elektronikiler aras nda en ok tan nan ve dnyada

    zerinde enok proje retilmi eleman ise PIC16C84 veya PIC16F84 tur.

    PIC 16F84 un bu kadar popler olmas onun ok iyi bir denetleyici olmas ndan

    ziyade program belleinin EEPROM (Elektrikle silinip yaz labilen bellek) olmas ndan

    kaynaklanmaktad r. Seri olarak drt adet kabloyla programlanmas da dier nemli

    avantaj d r. Bugne kadar amatrce bir ilemciyle uram herkesin en byk s k nt s

    EPROM veya EPROM tabanl denetleyicileri programlad ktan sonra UltraViole k

    kayna ile silip tekrar programlamakt r. Bu ok zahmetli ve bir amatr iin ekipman

    gerektiren yntem olmutur.

    Tasarlanan PIC kontroll ift kanall dijital termometrede sistemi kontrol etmek

    iin kullan lan PIC 16F877 ise PIC 16F84n tm zelliklerini ta maktad r.Ayr ca PIC

    16F877 de PIC16F84 e ek olarak baz zellikleri yer almaktad r

    2.1 PIC eitleri

    Microchip rettii mikrodenetleyicileri 4 gruba ay rarak isimlendirmitir. Her bir

    grubu ise bir PIC ailesi olarak adland rm t r. PIC ailelerine isim verilirken kelime boyu(word lenght) gz nne al nm t r. Bu k s mda kelime boyunun ne anlama geldiini

    a klamakta fayda vard r. Mikroiemciler (CPU) veya mikrodenetleyiciler (MCU) kendi

    ilerindeki dahili veri saklama alanlar olan kayededicileri aras ndaki veri al veriini farkl

    say daki bitlerle yaparlar. rnein 8088 mikroilemcisi ip ierisindeki veri al veriini 16

    bit ile yaparken, pentium ilemcileri 32 bitlik verilerle iletiim kurarlar. Bir CPU veya

    MCUnun dahili veri yolu uzunluuna kelime boyu denir.

  • 8/7/2019 16f877 datasheet ( tr )

    9/107

    9

    9

    Microchip PICleri 12/14/16 bitlik kelime boylar nda retilmektedir ve buna gre

    aa daki aile isimleri mevcuttur.

    PIC 16C5XX ailesi 12 bit kelime boyu PIC 16CXXX ailesi 14 bit kelime boyu

    PIC 17CXXX ailesi 16 bit kelime boyu

    PIC 12CXXX ailesi 12 bit/14 bit kelime boyu

    Bir MCU ip d ndaki harici nitelerle veri al veriini ka bitle yap yorsa buna

    veri yolu bit say s denir. PICler farkl kelime boylar nda retilmelerine ramen harici veri

    yolu tm PIC ailelerinde 8 bittir. Yani bir PIC, G/ portu arac l ile evresel nitelerle

    veri al verii yaparken 8 bitlik veri yolu kullan r.

    PIC programc lar program kodlar n yazarken bir komutun ka bitlik kelime

    boyundan olutuu ile pek fazla ilgilenmezler. Seilen bir ipi programlarken uyulmas

    gereken kurallar ve o iple ilgili zelliklerin bilinmesi yeterlidir. Bu zellikler PICin

    bellek miktar , G/ portu say s , A/D dntrcye sahip olup olmad , kesme (interrupt)

    fonksiyonlar n n bulunup bulunmad , bellek tipinin ne olduu (Flash, EPROM,

    EEPROM vb) gibi bilgilerdir.

    2.2 PIC Mikrodenetleyicilerinin Tercih Sebepleri

    a-) Fiyat n n ucuz olmas ;

    b-) Mant ksal ilemlerde performans n n yksek olmas ;

    c-) Verilere ve bellee h zl bir ekilde eriimin salanmas ;

    d-) 8 bitlik bir mikrodenetleyici olmas ;

    e-) Veri ve bellek iin ar

    yollar

    n (buslar

    n) ayr

    lm

    olmas

    ;f-) Yksek frekanslarda al abilme zellii;

    g-) Uyku modunda (Sleep mode) 1A gibi kk bir ak m ekmesi;

    h-) 14 bitlik komut ileme haf zas ;

    i-) Yaln zca 2 kondansatr ve bir diren ile al abilme zellii;

    j-) RISC mimarisine sahip olmas ;

    2.3 PICin zellikleri

  • 8/7/2019 16f877 datasheet ( tr )

    10/107

    10

    10

    Gvenirlik:PIC komutlar bellekte ok az yer kaplarlar. Dolay s yla bu komutlar 12veya 14 bitlik bir program bellek szcne s arlar. Harward mimarisi kullan lmayan

    mikrodenetleyicilerde yaz l m program n n veri k sm na atlama yaparak bu verilerin komut

    gibi al mas n salamaktad r . Bu ise byk hatalara yol amaktad r. PIC lerde bu durum

    engellenmitir.

    H z: PIC olduka h zl bir mikrodenetleyicidir. Her bir komut sat r 1snlik bir zamandiliminde ilenir. rnein 5 milyon komutluk bir program n 20Mhz lik bir kristalle

    iletilmesi yaln z 1sn srer. Bu sre kabaca 386 diye tan mlad m z say sal bilgisayar n

    h z n n yakla k 2 kat d r. Ayr ca PIClerin RISC mimarisine sahip olmas n n h za etkisi

    olduka byktr.

    Komut Tak m :PICte bir ilem gerekletirmek iin kullan lacak komut say s

    olduka azd r. rnein PIC16F8XX ailesinde 33 komutu kullanarak s n rs z say da ilem

    yapabilmek mmkndr.

    Statik ilem:PIC mikrodenetleyici tamam yla statik bir ilemcidir. Bu da demek oluyor ki ilemciye pals salayan osilasyon kayna durdurulsa bile ilenen veriler muhafaza

    edilmektedir.

    Srme zellii: PICler yksek bir srme kapasitesine sahiptir. k olarak tan mlanan pinlerin yaln z birinin aktif olmas halinde 40mA ekilebilmektedir. Entegre

    eleman n tamam dnldnde ise 150 mAe kadar ak m ekilebilmektedir.

    Gvenlik: PIC retim zellii itibariyle bir protect yani koruma bitine sahiptir. Bu bitin programlanmas yolu ile PIC ierisine yaz lan program n bakalar taraf ndan

    okunmas ve kopyalanmas na engel olunmu olunur.

    Flash olma zellii: Bu zellik PICin yeniden programlanabilir olmas durumunuifade etmektedir. Yani PIC zerine yaz lan program gelitirme amac ile silinebilir ve yeni

    bir program yklenebilir.

    2.4 Bir PICin lem Yapabilmesi in Gerekli Bileenler

    Giri- k (I/O): Mikrodenetleyicinin d dnya ile ilikisini salayan, girdi ve kt eklinde ayarlanabilen bir balant pinidir.

  • 8/7/2019 16f877 datasheet ( tr )

    11/107

    11

    11

    Yaz l m: Mikrodenetleyicinin al mas n ve iletilmesini salayan bilgidir. Baar l bir uygulama iin yaz l m hatas z olmal d r. Yaz l m C, Pascal veya Assembler gibi eitli

    dillerde veya ikilik(binary) olarak yaz labilir

    Donan m: Mikrodenetleyiciyi, bellek, arabirim bileenleri, g kaynaklar , sinyal

    dzenleyici devreler ve bunlar al t rmak ve arabirim grevini stlenmek iin bu

    cihazlara balanan tm bileenlerdir

    Simlatr:PC zerinde al an ve mikrodenetleyicinin iindeki ilemleri simle edenMPSIM gibi bir yaz l m paketidir. Hangi olaylar n ne zaman meydana geldii biliniyorsa

    bir simlatr kullanmak tasar mlar test etmek iin kolay bir yol olacakt r. te yandan

    simlatr, programlar tmyle veya ad m ad m izleyerek hatalardan ar nd rma f rsat

    sunar. u anda en gelimi simlatr program Microchip firmas n n gelitirdii MPLAB

    program d r.

    ICE : PIC MASTER olarak da adland r l r. (In- Circuit Emulator / devre takipisi)

    PC ve Mikrodenetleyicinin yer alaca soket aras na balanm yararl bir geretir. Bu

    gere yaz l m, PC de al rken devre kart zerinde bir mikrodenetleyici gibi davran r.

    ICE, bir programa girilmesini, mikro iinde neler olduunu ve d dnyayla nas l iletiimkurulduunun izlenilmesini mmkn k lar.

    Programlay c : Yaz l m n mikrodenetleyicinin belleinde programlamas n ve bylece ICE nin yard m olmadan al mas n salayan bir birimdir. ounlukla seri

    port a (rnein ICSTART, PROMASTER) balanan bu birimler ok eitli biim, ebat ve

    fiyatlara sahiptir.

    Kaynak Dosyas : Hem asembler in hem de tasar mc n n anlayabilecei dildeyaz lm bir programd r. Kaynak dosya mikrodenetleyicinin anlayabilmesi iin nceden

    assemble edilmi olmal d r.

    Assembler : Kaynak dosyay bir nesne dosyaya dntren yaz l m paketidir. Hata

    arat rma bu paketin yerleik bir zelliidir. Bu zellik assemble edilme srecinde hatalar

    kt ka program hatalardan ar nd r rken kullan l r. MPASM, tm PIC ailesini elinde tutan

    Microchip in son assemble edicisidir.

  • 8/7/2019 16f877 datasheet ( tr )

    12/107

    12

    12

    Nesne dosyas (object file) : Assembler taraf ndan retilen bu dosya; programc ,similatr veya ICE nin anlayabilecekleri ve bylelikle dosyan n ilevlerinin al mas n

    salayabilecekleri bir dosyad r. Dosya uzant s assemble edicinin emirlerine bal olarak ,

    .OBJ veya .HEX olur.

    3-PIC 16F877

    3.1 Genel Tan mlama

    PIC 16F877 yksek performansl , CMOS, full-statik, 8 bit mikrodenetleyicidir.

    Tm PIC 16/17 mikrodenetleyicileri gibi PIC 16F877 de RISC mimarisini kullanmaktad r.

    PIC16F87X mikrolar birok esas zelliklere sahiptir. 14 seviyeli, derin kme ve oklu i

    ve d kesme kaynaklar na sahiptir. 2 aamal komut hatt tm komutlar n tek bir sayk l la

    (evrimle) ilenmesini salamaktad r. Yaln zca baz zel komutlar 2 sayk l ekerler. Bu

    komutlar dallanma komutlar d r. PIC16F87X ailesi d elemanlar azaltacak spesifik

    zelliklere sahiptir ve bylece maliyet minimuma inmekte, sistemin gvenirlii artmakta,

    enerji sarfiyat azalmaktad r. Bunun yan s ra tm PIClerde 4 adet osilatr seenei

    mevcuttur. Bunlarda tek pinli RC osilatr, dk maliyet (4 MHZ) , LP osilatr (Kristalveya seramik rezonatr) , enerji sarfiyat n minimize etmekte (asgari ak m) (40 KHZ), XT

    kristal veya seramik rezonatr osilatr standart h zl ve HS kristal veya seramik

    rezonatrl osilatr ok yksek h za sahiptir (20 MHZ). PIC mikrodenetleyicilerinin en

    byk zellii sleep modu zelliidir. Bu mod sayesinde ilem yap lmad durumlarda

    PIC uyuma moduna geerek ok dk ak m eker. Kullan c bir ka i ve d kesmelerle

    PIC i uyuma modundan karabilmektedir. Yksek gvenilirlikli Watchdog Timer kendi

    bnyesindeki ip st RC osilatr ile yaz l m kilitlemeye kar korumaktad r. PIC16F877EEPROM program bellei , ayn ayg t paketinin orjinali ve retimi iin kullan lmas na

    olanak vermektedir. Yeniden programlanabilirlii mikroyu uygulaman n sonundan

    kald rmadan kodu gncelletirmeye izin vermektedir. Bu ayg t n kolayca eriilemedii,

    fakat prototipinin kod gncelletirmesi gerekli olduu durumlarda, bir ok uygulaman n

    gelitirilmesinde yararl d r. Bunun yan s ra bu kodun gncelletirilmesi dier ayr

    uygulamalarda da yararl d r.

    3.2 PIC 16F877nin Genel zellikleri

  • 8/7/2019 16f877 datasheet ( tr )

    13/107

  • 8/7/2019 16f877 datasheet ( tr )

    14/107

    14

    14

    Seri port ve I2C modlleri

    9 bit adres saptamaya sahip USART/SCI

    8 bit geniliinde paralel slave port

    Aa da tablo de PIC16F877nin PIC 16F84 ile kar lat r lmas yer almaktad r.

    PIC 16F877 ile PIC 16F84n kar lat r lmas

    ZELLKLER PIC 16F877 PIC 16F84al ma h z DC-20 Mhz DC-10 MhzProgram bellei 8Kx14 word Flash ROM 1Kx14 word Flash ROMEeprom bellei 256 byte 64 byteKullan c RAM 368x8 byte 68 x 8 byteGiri/ k port say s 33 13Timer Timer0,Timer1,Timer2 Timer0A/D evirici 8 kanal 10 bit YOK

    Capture/Comp/PWM16 bit Capture 16 bit compare

    10 bit PWM znrlk YOK

    Seri evresel arayzSPI ve I2C modunda SPI portu

    (senkron seri port) YOK

    Parelel slave port 8 bit, harici RD,WR ve CSkontrollu YOK

    USART/SCI 9 bit adresli YOK

    3.4 PIC 16F877nin Fiziksel Yap s n n ncelenmesi

    1

    2

    34

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    1617

    18

    19

    20

    40

    39

    3837

    36

    35

    34

    33

    32

    31

    30

    29

    28

    27

    26

    2524

    23

    22

    21

    MCLR/VPP/THV

    RA0/AN0

    RA1/AN1RA2/AN2/VREF-

    RA3/AN3/VREF+

    RA4/T0CKI

    RA5/AN4/SS

    RE0/RD/AN5

    RE1/WR/AN6

    RE2/CS/AN7

    VDD

    VSS

    OSC1/CLKIN

    OSC2/CLKOUT

    RC0/T1OSO/T1CKI

    RC1/T1OSI/CCP2RC2/CCP1

    RC3/SCK/SCL

    RD0/PSP0

    RD1/PSP1

    RB7/PGD

    RB6/PGC

    RB5RB4

    RB3/PGM

    RB2

    RB1

    RB0/INT

    VDD

    VSS

    RD7/PSP7

    RD6/PSP6

    RD5/PSP5

    RD4/PSP4

    RC7/RX/DT

    RC6/TX/CKRC5/SDO

    RC4/SDI/SDA

    RD3/PSP3

    RD2/PSP2

    P I C 1 6 F 8 7 7

  • 8/7/2019 16f877 datasheet ( tr )

    15/107

    15

    15

    ekil 3.PIC 16F877nin bacak yap s

    3.5 PIC 16F877 Pin Tan mlamalar

    Tablo 3.2:PIC 16F877de Pin Tan mlamalar

  • 8/7/2019 16f877 datasheet ( tr )

    16/107

    16

    16

    Tablo de; P:Power, G/:Giri/ k , ST: Schmitt Trigger giri, G:Giri, : k ,

    TTL:Transistor-Transistor lojik giri

    3.6 PIC 16F877nin Basitletirilmi Yap s

    ekil : PIC 16F877 basitletirilmi i yap s

    3.7 Bellek Organizasyonu

    RAMDosya Kaydedicileri

    Adr. Mux.

    FSR Kayd.

    STATUS Kayd.

    Mux.

    W Kayd.

    8 Seviye Y n( 13 Bit )

    Program Sayac Flash Program

    Belle i

    Komut Kaydedicisi

    Komut Kodzcs

    ALUZamanlama

    Kayna

    Power-upTimer

    Oscillator Start-up Timer

    Power-onReset

    Watchdog Timer

    ProgramBus 14

    7

    8

    13 8

    9

    8Direk Adr.

    RAM Adr.

    Data Bus

    Dolayl Adr. TMR0

    OSC2/CLKOUTOSC1/CLKIN

    Vdd,VssMCLR

    Brown-out Reset

    8

    PortA

    PortB

    TMR0

    PortC

    TMR0

    PortD

    TMR0

    PortE

    RA4/T0CKIRA5/AN4/SSRA3/AN3/VREF+RA2/AN2/VREF-RA1/AN1RA0/AN0

    RB0/INTRB1RB2RB3/PGMRB4RB5RB6/PGCRB7/PGD

    RC0/T1OSO/T1CKIRC1/T1OSI/CCP2RC2/CCP1RC3/SCK/SCLRC4/SDI/SDARC5/SDORC6/TX/CKRC7/RX/DT

    RD7/PSP7:RD0/PSP0

    RE0/AN5/RD

    RE1/AN6/WR

    RE2/AN7/CS

  • 8/7/2019 16f877 datasheet ( tr )

    17/107

    17

    17

    Her PIC mikrodenetleyicisinde 3 bellek blou bulunmaktad r. Bunlar program

    bellei,veri bellei ve bunlar ay ran veri hatt d r. Her bir bellek kendi ta y c s na sahiptir;

    bylece her bir bloa eriim ayn osilatr sreci boyunca meydana gelebilmektedir. Bunun

    tesinde, veri bellei genel amal RAM ve zel fonksiyon kay tlar (SFR) olmak zereikiye blnr. SFR`ler her bir bireysel zellemi modl ele alan blmde a klanan zel

    modlleri kontrol etmek iin kullan lmaktad r. Veri bellei EEPROM veri belleini de

    iermektedir. Bu bellek, direkt veri belleine planlanmam , fakat indirekt olarak

    planlanm t r; ve indirekt adres gstergeleri okumak/yazmak iin EEPROM belleinin

    adresini belirlemektedir.

    3.7.1 Program Bellek Organizasyonu

    PIC 16F877 13 bit program sayac na ve 8Kx14 adresleme kapasitesine sahiptir.

    PIC16F877 denetleyicisi 8Kx14 FLASH program belleine sahiptir. Reset vektr 0000h

    ve kesme vektr 0004h adresindedir.ekil te PIC16F877 program bellek haritas

    grlmektedir.

    ekil 3.3:PIC16F877 program bellek haritas

  • 8/7/2019 16f877 datasheet ( tr )

    18/107

    18

    18

    3.7.2 Veri Bellek Organizasyonu

    Veri bellei genel amal yazmalar ve zel ilev yazmalar (SFR) olmak zere

    ikiye ayr l r. RP0 ve RP1 bitleri kme seimi iin ayr lm bitlerdir. Her bir bank (kme)

    7Fh ye kadar (128 bayt) uzan r. Her bank n alt k s mlar zel ilev yazmalar iin ayr l r.

    stteki zel ilev yazmalar ise statik RAM olarak kullan lan yazmalard r. Btn

    banklarda zel ilev yazmalar vard r. zel ilev yazmalar ndaki yksek kullan m bir

    banktan kod indirgemesi ve h zl eriim iin baka bankta gsterilebilir.

    = 00 Bank0

    = 01 Bank1

    = 10 Bank2

    = 11 Bank3

    3.8 zel Fonksiyon Kaydedicileri

    zel fonksiyon kaydedicileri gerek bellek birimleri olarak gzkmeseler de, PIC

    ierisinde veri bellei adreslerinde tan mlanm s radan bellek hcreleridir. Bu kaydediciler

    programlama esnas nda bir nevi kay t tutma grevi stlenirler. Tablo 3.3te zel fonksiyon

    kaydedicilerinin isimleri ve adresleri verilmitir.

    Tablo : PIC 16F877de zel Fonksiyon Kaydedicileri ve Adresleri

    BANK 0 BANK 1 BANK 200 INDF 80 INDF 100 INDF01 TMR0 81 OPTION_REG 101 TMR002 PCL 82 PCL 102 PCL03 STATUS 83 STATUS 103 STATUS04 FSR 84 FSR 104 FSR 05 PORTA 85 TRISA 105 06 PORTB 86 TRISB 106 PORTB07 PORTC 87 TRISC 107 08 PORTD 88 TRISD 108 09 PORTE 89 TRISE 109 0A PCLATH 8A PCLATH 10A PCLATH

    RP1 RP0

  • 8/7/2019 16f877 datasheet ( tr )

    19/107

    19

    19

    0B INTCON 8B INTCON 10B INTCON0C PIR1 8C PIE1 10C EEDATA0D PIR2 8D PIE2 10D EEADR 0E TMR1L 8E PCON 10E EEDATH0F TMR1H 8F 10F EEADRH

    BANK 310 T1CON 90 180 INDF11 TMR2 91 SSPCON2 181 OPTION_REG12 T2CON 92 PR2 182 PCL13 SSPBUF 93 SSPADD 183 STATUS14 SSPCON 94 SSPSTAT 184 FSR 15 CCPR1L 95 185 16 CCPR1H 96 186 TRISB17 CCP1CON 97 187

    18 RCSTA 98 TXSTA 188 19 TXREG 99 SPBRG 189 1A RCREG 9A 18A PCLATH1B CCPR2L 9B 18B INTCON1C CCPR2H 9C 18C EECON11D CCP2CON 9D 18D EECON21E ADRESH 9E ADRESL 18E 1F ADCON0 9F ADCON1 18F

    3.8.1 STATUS Kaydedicisi

    Aritmetiksel ilemlerin yrtld, s f rlama ilemlerinin gerekletirildii ve

    kme kurma ilemlerinin gerekletirildii kaydedicidir.

    ekil 3.4:Status kaydedicisinin bit yerleimi

    Status,0 (C): (Carry Bit)Aritmetiksel ilemler sonucunda tamalar n kaydedildii bittir. Bu bit bir ilem sonucunda 1 ise taman n olduu, 0 ise taman n olmad anla l r.

    Status,1(DC):(Digit Carry Bit)Bu bit; ilem sonucunda ilk 4 bitin d na tamaolup olmad n n kayd n tutar. Eer bu bit 1 ise 5. bite tama olduu, 0 ise 5. bite tama

    olmad anla l r.

  • 8/7/2019 16f877 datasheet ( tr )

    20/107

    20

    20

    Status,2(Z):(Zero Bit)lem yap lan hcrede s f rlaman n olup olmad n nkontroln yapar. 1 ise kontroln yap ld hcrenin say sal deeri 0 olmu demektir, 0 ise

    hcre s f rdan farkl bir say sal deere sahiptir.

    Status,3(PD):(Power Down Bit)Sleep modu ve watchdog timer ile ilgili ilemlerde

    kullan l r. Watchdog timer s f rland ktan sonra (CLRWDT) bu bit 1 yap lmal d r.

    Mikrodenetleyici sleep moduna sokulur iken de bu bit 0 yap larak ileme balan r.

    Status,4(TO):(Time Out Bit)PD biti gibi bu bit de sleep modu ve watchdog timer ile ilgili ilemlerde kullan l r. Watchdog timerin s f rlanmas ilemi sonunda bu bit 0

    yap l rken, mikrodenetleyici sleep modundan kar l rken bu bit 1 yap l r.

    Status,5,6(RP0-RP1):(Register Bank Select Bits) Kme seimi ile ilgili ilemlerdekullan l rlar. ki bit bir arada dnldnde 4 konum mevcuttur ve bu drt konumun her

    birisinde de ayr bir kme kurulmaktad r.(00=Bank0, 01=Bank1, 10=Bank2, 11=Bank3).

    Direkt adresleme modunda kullan lan bir bittir.

    Status,7 (IRP): Status5,6 gibi bu bit de kme seimi ilemlerinde kullan l r. Ancak

    bu bit dolayl adresleme durumlar nda kullan l r.( 1 = Bank 2, 3 0 = Bank 0, 1 )

    3.8.2 OPTION Kaydedicisi

    Bu kaydedici zerinde portB, TMR0 ve d kesmeleri dzenleyici bitler

    bulunmaktad r.

    ekil 3.5:Option Kaydedicinin bit yerleimi

    Option,0,1,2(PS0,PS1,PS2):(Prescaler Rate Select Bits)Timer0(TMR0) veWatchdog Timer (WDT) n sre oranlar n belirleyen bitlrdir. bit bir arada

    dnld zaman 8 farkl durum ortaya kmaktad r. 8 durum iin TMR0 ve WDT n

    ald durumlar Tablo 3.4 teverilmitir.

  • 8/7/2019 16f877 datasheet ( tr )

    21/107

    21

    21

    Tablo 3.4:PS2,PS1,PS0a gre TMR0,WDT oranlar

    Option,3(PSA):(Prescaler Assignment Bit) Ald duruma gre TMR0 veya WDTatahsis edilir. Eer 0 ise TMR0 zerinde yap lan ilemlerde kullan l r, 1 ise WDT zerinde

    yap lan ilemlerde kullan l r.

    Option,4(TOSE):(Timer0 Source Edge select bit) Devrede harici clock kayna kullan lmas durumunda palslerin den kenar m yoksa ykselen kenar m olduunun

    tayininde ilem yapar. Eer 1 ise RA4/TOCKI pininde kullan lan palslerin den kenar, 0

    ise RA4/TOCKI pinindeki palslerin ykselen kenar olmas gerekir.

    Option,5(TOCS):(Timer0 Source select) PIC ile yap lan devrede hangi pals

    kayna n n kullan laca na karar vermek iin kullan l r. Eer 1 ise palsler RA4/TOCKI pininden, 0 ise dahili pals kayna ndan (CLKOUT) salan r.

    Option,6(INTEDG):(Interrupt edge select )RBO/INT pininde kesme sinyali olmas halinde ykselen kenar veya den kenar tetikleme gnderilmesi durumlar n ayarlar. 1 ise

    RBO/INT pininden ykselen kenar, 0 ise RBO/INT pininden den kenar bir tetikleme

    uygulanmal d r.

    Option,7(RBPU):(PortB Pull-up Control ): Bu bit uygulamalarda alan daralmas n salayan bir bittir. Bu bitin 1 yap lmas ile gerilimin pozitif ucu ile portB pini aras na bir

    diren konulur. Bu diren sayesinde PortBnin bu pini lojik 1de tutulmu ulur. Bu pini

    lojik 0 yapmak iin ise pin ile gerilimin negatif ucu aras n bir push buton ile k sa devre

    yapmak yeterli olacakt r. Bu bitin 0 yap lmas halinde ise pinledeki pull-up direnleri

    kald r l r. Bu biti kullan r iken yaln z portB iin pull-up direnci konulduunu unutmamak

    gerekir.

  • 8/7/2019 16f877 datasheet ( tr )

    22/107

    22

    22

    ekil 3.6:RBPUnun analog dzen kar l

    ekil 3.6.ada RBPUnun kullan lmad durumda kararl l k iin B portuna tak lmas

    gereken harici direncin balant s grlmektedir.ekil 3-6-bde ise RBPUnun kullan ld

    durum verilmitir. Bu durumda harici bir dirence ihtiya duyulmam t r.

    3.8.3 INTCON Kaydedicisi

    Bu kaydedici tm kesmelerin kontrol iin baz okunabilir ve yaz labilir bitler

    salayabilmektedir .

    ekil 3.7: Intcon kaydedicisinin bit yerleimi

    Intcon,0 (RBIF): B portuna ait kesme bayrak bitinde deiiklikler yapmaya yarar.Program ba nda RB7:RB4 bitlerinin s f rland varsay l r ise RB7:RB4 pinlerinden

    herhangibirisinin durum deitirmesi halinde RBIF 1 olur. (0dan 1e) 1den s f ra dme

    durumunda ise RBIF lojik olarak konum deitirir ve 0 olur.

    Intcon,1(INTF):RB0/INT pini ile ilikilendirilmitir. Bu bitin 0 olmas durumundaRB0/INT aktif deildir, 1 olmas durumunda ise aktiftir.

    Intcon,2 (TOIF): TMRO da meydana gelen tamaya gre ilem yapar. EerkiTOIF 1 ise TMROda tama vard r. Aksi durumda ise tama yoktur.

    Intcon,3 (RBIE): levi RBIFinkine benzer. PortB kesme yetkilendirme bitidir. 1olmas durumunda PortB kesme yetkilendirmesi aktif, dier durumda ise aktif deildir.

    Intcon,4 (INTE): RB0/INT kesme yetkilendirme bitidir. Bu bitin 1 olmas halinde

    RB0/INT pini kesme yetkilendirmesi verilmitir. 0 olmas halinde RB0/INT pininde kesmeyetkilendirmesi yoktur.

  • 8/7/2019 16f877 datasheet ( tr )

    23/107

    23

    23

    Intcon,5 (TOIE): TMR0 kesmesini yetkilendirme bitidir. TOIE=1 ise kesmeyetkilendirmesi aktif durumdad r. 0 olmas halinde ise TMR0 daki kesme ketkilendirmesi

    kalkm durumdad r.

    Intcon,6 (PEIE):evresel Kesmeler iin yetkilendirme bitidir.PEIE=1 olmas durumunda evresel kesmeler etkindir,PEIE= 0 olmas durumunda evresel kesmeler etkin

    deildir.

    Intcon,7 (GIE):Geni kapsaml bir yetkilendirme bitidir. Bu bitin 1 yap lmas ile

    program ierisinde tm yetkilendirmeler aktif hale getirilebilir. 0 olma durumunda iseverilen tm yetkilendirmeler kald r labilir

    3.8.4 PIE1 Kaydedicisi

    evresel kesmelerle ilgili ilemleri gerekletirmek iin kullan lan kaydedicidir.

    ekil 3.8:PIE1 kaydedicisinin bit yerleimi

    Pie1,0(TMR1IE):TMR1de meydana gelen tamay saptamak iin gerekli olan

    kesmeyi kontrol eden bittir. TMR1IE=1 ise TMR1 tama kesmesi etkin olur,TMR1IE=0

    ise TMR1 kesmesi kullan m d olur.

    Pie1,1(TMR2IE): TMR2 ve PR2 nin denklik kesmesini kontrol eden bittir.

    Kesmeyi etkinletirmek iin bu bit 1 seviyesinde, kullan m d b rakmak iin ise 0seviyesinde tutulur.

    Pie1,2(CCP1IE):CCP1 (Capture/Compare/PWM) kesmesini kontrol etmek iinkullan lan bittir. Eer bu bit 1 ise CCP1 kesmesi etkin olur, 0 ise CCP1 kesmesi kullan m

    d olur.

    Pie1,3(SSPIE):Ezamanl seri port (SSP= Synchronous Serial Port) uygulamalar

    iin kesme yetkilendirme bitidir. Bu bit 1 ise SSP kesmeleri etkin, 0 ise kullan m d d r.

  • 8/7/2019 16f877 datasheet ( tr )

    24/107

    24

    24

    Pie1,4(TXIE):USART gnderme kesmesini yetkilendirme bitidir. TXIE 1 isekesme etkin, 0 ise kesme kullan m d d r.

    Pie1,5(RCIE): USART alma kesmesini yetkilendirme bitidir. RCIE 1 ise kesmeetkin, 0 ise kesme kullan m d d r.

    Pie1,6(ADIE):A/D evirme kesmesini yetkilendirme bitidir. ADIE=1 ise kesmeetkin, ADIE=0 ise kesme kullan m d yap l r.

    Pie1,7(PSPIE):Parallel Slave Port okuma/yazma kesmesini yetkilendirme bitidir.PSPIE 1 ise kesme etkin, 0 ise kullan m d d r.

    3.8.5 PIR1 Kaydedicisi

    evresel kesmelerin ilemlerini bitirip bitirmediklerini kontrol eden kaydedicidir.

    ekil 3.9:PIR1 kaydedicisinin bit yerleimi

    Pir1,0(TMR1IF): TMR1de meydana gelen tamay tutan bittir. Eer bu bit 1 iseTMR1de tama vard r,0 ise tama yoktur.

    Pir1,1(TMR2IF): TMR2 ile PR2 aras ndaki denklii gsteren bittir. Eer TMR2IF=1 olmusa TMR2 ve PR2 aras nda bir denklik sz konusudur,TMR2IF= 0 ise

    byle bir durum yoktur.

    Pir1,2(CCP1IF):CCP1 ilemine dair bilgi veren bittir. Eer bu bit 1 ise; capturemodunda TMR1 kaydedicisi capture edilmitir ve bu bitin temizlenmesi gerekir, compare

    modunda TMR1 kaydedicisi elik ynnden kar lat r lm t r ve bu bitin temizlenmesi

    gerekir,0 ise CCP ilemleri tamamlanmam t r.

    Pir1,3(SSPIF):Ezamanl seri port (SSP) uygulamalar n n durumlar n gsteren bittir. Bu bit 1 ise SSP ilemleri tamamlanm t r, 0 ise tamamlanmam t r.

    Pir1,4(TXIF): USART gnderme hatt n n durumunu gsteren bittir. TXIE 1 iseUSART gnderme hatt bo,0 ise doludur.

  • 8/7/2019 16f877 datasheet ( tr )

    25/107

    25

    25

    Pir1,5(RCIF): USART alma hatt n n durumunu gsteren bittir. RCIE=1 iseUSART alma hatt dolu,RCIF=0 ise botur.

    Pir1,6(ADIF):A/D evirme ileminin tamamlan p tamamlanmad hakk nda bilgiveren bittir. ADIF 1 ise evirme ilemi tamamlanm , 0 ise tamamlanmam t r.

    Pir1,7(PSPIF): Parallel Slave Port okuma/yazma ileminin tamamlan ptamamlanmad n gsteren bittir. PSPIF 1 ise okuma/yazma ilemi tamamlanm t r, 0 ise

    okuma/yazma ilemi henz tamamlanmam t r.

    3.8.6 PIE2 Kaydedicisi

    CCP2 evresel kesmesi, SSP hat ak mas ve EEPROM yazma kesmesi

    kontrollerinin yap ld kaydedicidir.

    ekil 3.10:PIE2 kaydedicisinin bit yerleimi

    Pie2,0 (CCP2IE): CCP2 (Capture/Compare/PWM) kesmesini kontrol etmek iinkullan lan bittir. Eer bu bit 1 ise CCP2 kesmesi etkin olur, 0 ise CCP1 kesmesi kullan m

    d olur.

    Pie2,1-2:Kullan m d d r ve daima 0 seviyesindedir.

    Pie2,3(BCLIE):Hat ak ma kesmesidir. BCLIE =1 olmas durumunda bu kesmeetkin, BCLIE=0 olmas durumnda ise kullan m d d r.

    Pie2,4(EEIE):EEProm yazma kesmesi yetkilendirme bitidir. EEIE=1 ise yazma

    kesmesi etkin,EEIE= 0 ise kullan m d d r.

    Pie2,5:Kullan m d d r ve daima 0 seviyesindedir.

    Pie2,6:Baka ilemler iin ayr lm t r.

    Pie2,7:Kullan m d d r ve daima 0 seviyesindedir.

    3.8.7 PIR2 Kaydedicisi

  • 8/7/2019 16f877 datasheet ( tr )

    26/107

    26

    26

    CCP2 evresel kesmesi, SSP hat ak ma kesmesi ve EEPROM yazma kesmesinin

    yapt ilemler hakk nda bilgi veren bitleri bulunduran bir kaydedicidir.

    ekil 3.11:PIR2 kaydedicisinin bit yerleimi

    Pie2,0 (CCP2IF): CCP2 ilemleri ile ilgili kay t tutan bir bittir. Eer bu bit 1 ise;CCP2 ilemleri tamamlanm t r, 0 ise tamamlanmam t r.

    Pie2,1-2:Kullan m d d r ve daima 0 seviyesindedir.

    Pie2,3(BCLIF):Hat ak mas n izleyebileceimiz bir bittir. BCLIF 1 ise SSPde

    bir ak ma meydana gelmitir, 0 ise byle bir durum yoktur.

    Pie2,4(EEIF):EEPROM yazma durumunu gsteren bittir. EEIF= 1 ise yazmalemi tamamlanm t r, 0 ise yazma ilemi tamamlanmam t r.

    Pie2,5:Kullan m d d r ve daima 0 seviyesindedir.

    Pie2,6:Baka ilemler iin ayr lm t r.

    Pie2,7:Kullan m d d r ve daima 0 seviyesindedir.

    3.9 PCL ve PCLATH Kaydedicileri

    Program Say c s (PC=Program Counter) hangi sat rda ilem yap laca n nkay tlar n tutar ve iletim iin gidip komut al nmas ilemlerini gerekletirir. 13 bit

    geniliindedir. Dk bayt PCL kaydedicisi olarak adland r l r. Bu kaydedici okunabilir

    ve yaz labilir zellie sahiptir. Yksek bayt ise PCH kaydedicisi olarak adland r l r ve

    direkt olarak yaz lamaz ve okunamaz. PCH kay t nda btn gncelletirmeler, PCLATH

    kaydedicisini gzden geirirler.

    3.9.1 STACK (Y n)

  • 8/7/2019 16f877 datasheet ( tr )

    27/107

    27

    27

    Stack (y n) program ierisinde kesme ve a rma neticesinde dallan lan 8

    program n sat r adreslerini tutar. Program iletilirken ise RETLW,RETURN,RETFIE gibi

    komutlar grldnde gidilecek sat rlar n adresleri de yine y nlarda tutulur. 8 adet

    y n n herbirisi 13 bit genilie sahiptir ve bunlara program ierisinde mdahale edilemez.

    3.10 Giri/ k Portlar (G/ Portlar )

    G/ portlar giri/ k vazifelerinin d nda baz evresel ilemleri de yapacak

    zelliklere sahiptirler. evre birimleri kullan ld nda genel amal giri/ k pini

    kullan lmaz.

    3.10.1 PORTA ve TRISA Kaydedicisi

    PORTA 6 bit giri/ k olarak ynlendirilebilir porttur. Bu portu ynlendiren

    yazma ise TRISA yazmac d r. TRISA kayd ndaki herhangi bir bit 1 ise buna uygun k

    srcs yksek diren moduna getirilecektir. TRISA kayd ndaki herhangi bir bitin 0

    olmas durumunda ise k mandal seilen pinin zerine getirilir. Analog giri

    kullan ld nda TRISA yazmac RA pininin ynn kontrol eder. ekil 3.12.a ve ekil

    3.12.b A portunun i yap s n gstermektedir.

    Data BusD

    Ck

    Q

    Q

    D

    Ck

    Q

    Q

    WRPort

    WRTRIS

    TRIS Latch

    DATA Latch

    RD TRIS

    SchmittTrigger

    Giri Tamponu

    RD Port

    Vss

    N RA4

    DQ

    En

    TMR0 Clock Giri i

    NOT: G/ Pini Vss'ye Kar Koruma Diyotuna Sahiptir

  • 8/7/2019 16f877 datasheet ( tr )

    28/107

    28

    28

    ekil 3.12.a :RA0:RA3 ve RA5 yap s ekil 3.12.b:R A4/TOCKI Yap s

    rnek 3.1: A portunun G/ olarak kurulmas :

    bcf status, rp0 ;

    bsf status, rp0 ; Bank 1 seildi.

    movlw b00000101 ; PortA n n giri ve k olacak pinleri belirleniyor

    movwf trisa ; Giri iin RA0,RA2

    ; k iin RA1,RA3,RA4,RA5

    3.10.2 PORTB ve TRISB Kaydedicisi

    PORTB 8 bit giri/ k olarak ynlendirilebilir porttur. Bu portu ynlendiren

    yazma ise TRISB yazmac d r. TRISB kayd ndaki herhangi bir bit 1 ise buna uygun k

    srcs yksek diren moduna getirilecektir. TRISB kayd ndaki herhangi bir bitin 0

    olmas durumunda ise k mandal seilen pinin zerine getirilir. Analog giri

    Data BusD

    Ck

    Q

    Q

    D

    Ck

    Q

    Q

    WR

    Port

    WRTRIS

    TRIS Latch

    DATA Latch

    RD TRIS

    AnalogGiri Modu

    RD Port

    Vdd

    Vss

    P

    N G/Port

    DQ

    En

    NOT: G/ Pinleri Vdd ve Vss'ye Kar Koruma DiyotunaSahiptir

    A/D eviriciye

  • 8/7/2019 16f877 datasheet ( tr )

    29/107

    29

    29

    kullan ld nda TRISB yazmac RB pininin ynn kontrol eder. (1)

    Her bir PORTB pini i diren drc engellere sahiptir. RBPU(OPTION

    REG

  • 8/7/2019 16f877 datasheet ( tr )

    30/107

    30

    30

    ekil 3.13.a:RB3:RB0 Pinleri Yap s ekil 3.13.b: R7:RB4 Pinleri Yap s

    3.10.3 PORTC ve TRISC Kaydedicisi

    PORTC 8 bit G/ olarak ynlendirilebilir porttur. Bu portu ynlendiren yazma ise

    TRISC yazmac d r. TRISC Kayd ndaki herhangi bir bit 1 ise buna uygun k srcs

    yksek diren moduna getirilecektir. TRISC Kayd ndaki herhangi bir bitin 0 olmas

    durumunda ise k mandal seilen pinin zerine getirilir. Analog giri kullan ld nda

    TRISC yazmac RC pininin ynn kontrol eder.ekil 3.14.a veekil 3.14.a C portunun iyap s n gstermektedir.

    rnek 3.3: C Portunun Kurulmas ;

    bcf status, rp0 ;

    bsf status, rp0 ; Bank 1 seildi.

    movlw b10111111 ; Veri ynlendirmek

    ; kullan lan deer

    ; ayarlan yor.

    movwf trisc ; Giri iin RC

    ; k iin RC

    RBPU (2)

    Data Bus

    WR Port

    WR TRISTTLInputBuffer

    weakpull-upP

    VDD

    G/

    pin(1)

    RD Port

    RD TRIS

    Data Latch

    TRIS Latch

    D Q

    C

    D Q

    C

    D

    EN

    Q

    D

    EN

    QRD Port

    Q3

    Q1

    Latch

    STBuffer

    RBIF kur

    RB7:RB4ten gelen

    TTLInput

    Buffer

    G/pin(1)

    EN

    RDPortSchmitt TriggerBuffer

    RB0/INT

    RD Port

    RD TRIS

    WR TRIS

    WR Port

    Data Bus

    RBPU (2)

    Data Latch

    TRIS Latch

    weak

    pull-upP

    VDD

    D Q

    C

    D Q

    C

  • 8/7/2019 16f877 datasheet ( tr )

    31/107

    31

    31

    ekil 3.14.a:RC0:2, RC5:7 Pinlerinin Yap s ekil 3.14.b:RC3:4 Pinlerinin Yap s

    3.10.4 PORTD ve TRISD Kaydedicisi

    PORTD 8 bit Schmitt trigger tampon girili porttur. Bu port PSPMODE (TRISD)

    denetim biti taraf

    ndan kurulur. Giri tamponu TTL tampondur.ekil 3.15 de D portunun blok diyagram grlmektedir.

    ekil 3.15: D Portu I/O Blok Diyagram

  • 8/7/2019 16f877 datasheet ( tr )

    32/107

    32

    32

    3.10.5 PORTE ve TRISE Kaydedicisi

    Bu port RE0/RD/AN5, RE1/WR/AN6 ve RE2/CS/AN7 olmak zere 3 adet pine

    sahiptir. Giri veya k portu olarak ayarlanabilir. PORTE kontrol TRISE taraf ndanyap l r. PSPMODE(TRISE) denetim biti taraf ndan ayarlan r . ekil 3.16 da E portu

    blok diyagram grlmektedir.

    ekil 3.16 : E Portu I/O Blok Diyagram

    3.11 Veri EEPROM ve Flash Program Haf zas

    Veri EEPROM ve FLASH proram haf zas normal ilem sresinde okunabilme ve

    yaz labilme zelliine sahiptir. Veri bellei, kaydedici dosyaya dorudan planlanmam t r.

    Bunun yerine bu bellek, zel fonksiyon kayd zerinden dolayl olarak adreslenmitir.

    Burada bu bellei okuyan ve yazan 6 zel kaydedici mevcuttur.

    EECON1

    EECON2

    EEDATA

    EEDATH

    EEADR

    EEADRH

  • 8/7/2019 16f877 datasheet ( tr )

    33/107

    33

    33

    EEPROM veri bellei okuma ve yazmaya izin verir. EEDATA yazma/okuma iin 8

    bitlik veri tutar ve EEADR eriilen EEPROM adreslerini saklar. EEDATH ve EEADRH

    kaydedicileri veri EEPROM u kullanmak iin eriemezler. Bu ayg tlar Oh ile FFh

    geniliindeki adresli EEPROM belleinin 256 byte na sahiptir. EEPROM veri belleiyksek silme/yazma srelerine oranlanm t r. Yazma sresi yonga (chip) zamanlay c s

    taraf ndan denetlenmektedir. Yazma sresi chipten chipe olduu gibi s cakl k ve

    gerilimlede deimektedir. Program haf zas kelime okuma ve yazmas na izin verir. Byte

    veya word verisi otomatik olarak silinir ve yeni veri yaz l r. Program haf zas arabirimi

    blokland zaman, EEDATH : EEDATA kaydedicileri oku/yaz iin 14 bit veriyi 2 byte

    word halinde tutar. EEADRH ve EEADR kaydedicileri EEPROMda 13 bitlik 2 byte word

    adresini tutar. Bu ayg tlar OH ile 3FFFh aras ndaki adreste 8K word programEEPROMuna sahiptir. Program haf zas na yaz lan deer bir talimat olmay gerektirmez.

    Bu yzden kalibrasyon parametreleri, seri numaralar ASCII kodunda depolanabilir.(6)

    3.11.1 EEADR

    EEADR kayd EEPROM verisinin maksimum 256 byte n veya FLASH n

    maksimum 8K wordn adresleyebilir. Program adres deeri seilirken EEADRH

    kaydedicisi adresin MSBsini yazar, EEADR kaydedicisi ise LSBsini yazar.(6)

    3.11.2 EECON1 ve EECON2 Kaydedicileri

    EECON1 bellee ulamak iin kontrol kaydedicisidir. EECON2 fiziksel kaydedici

    deildir. EECON2 yaln zca bellekteki yaz dizisini okumak iin kullan l r. Eer eriim,

    program veya veri belleine ulama olacaksa buna EEPGD denetim biti karar verir. Veri

    bellei temizlendiinde, sonradan yap lan ilemler veri belleine ilenirler. Bellek

    ayarland nda ise yine sonradan yap lan ilemler bellee ilenirler. RD ve WR kontrol bitleri s ras yla oku-yaz ilemlerini balat r.

    ekil 3.17:EECON1 Kaydedicinin bit yerleimi

    Eecon1,0(RD):Okuma modu kontrol bitidir.1 olmas durumunda EEPROM okumamodundad r, 0 olmas durumunda ise EEPROMdan oku modundan k l r.

  • 8/7/2019 16f877 datasheet ( tr )

    34/107

    34

    34

    Eecon1,1(WR):EEPROMa data yazma ilemini kontrol eden bittir. Bilgi yaz m esnas nda 1 yap l r ve yaz m n sonland r lmas iin 0 yap l r.

    Eecon1,2(WREN):EEPROMa yazma yetkilendirme bitidir. WREN=1 olmas durumunda yaz m iin izin verilmitir. WREN=0 olmas durumunda ise data yaz m iin

    yetki yoktur.

    Eecom1,3(WRERR):Yaz m ileminde ikaz bitidir. Yaz m ileminde bir sebepten

    dolay erken sonland rma var ise bunu bildiren bittir. Eer ki bu bit 1 ise, yapmak

    istediimiz veri yazma ilemi erken sonland r lm t r ve bir hata sz konusudur. Bu

    durumda watchdog timer s f rlan r veya mikrodenetleyici resetlenerek program n ba na

    dnlr. 0 olma durumunda ise yaz m ilemi baar ile tamamlanm demektir.

    Eecon7,(EEPGD): Program bellei/veri bellei seim bitidir. Eer EEPGD=1 ise program belleine eriim yerkisi verilir,EEPGD= 0 ise veri belleine eriim yetkisi verilir.

    3.11.3 Flash Program Belleinin Okunmas

    Program belleinin yeri EEADR ve EEADRH kaydedicilere adresin 2 byte

    yaz larak okunabilir. [ EEPGD (EECON1) ve RD (EECON1) kontrol bitleriayarland nda]

    Okuma kontrol biti bir kez ayarlan p mikrodenetleyici veriyi okumak iin komut

    evremini kullanacakt r.

    rnek 3.4: FLASH Program okuma:

    bsf status, rp1 ;

    bcf status, rp0 ; Bank 2

    movlw addrh ;

    movwf eeadrh ; MSByte Program adresini oku

    movlw addrl ;

    movwf eeadr ; LSByte Program adresini oku

    bsf status, rp0 ; Bank 3

    bsf eecon1, eepgd ; EEPROM Program belleini

    bsf eecon1, rd ; oku

  • 8/7/2019 16f877 datasheet ( tr )

    35/107

    35

    35

    nop ; Burada herhangi bir komut olmad iim

    nop ; ilem yap lmaz ve dng iin zaman harcanmaz

    bcf status, rp0 ; Bank 2

    3.11.4 Flash Program Belleinin Yaz lmas

    WR Kurulum biti ayarlan r ise FLASH program bellei sadece yaz labilir duruma

    getirilir. FLASH Bellee yazma yeri, adresin ilk iki byte EEADR ve EEADRH

    kaydedicilerine yaz larak ve EEPGD/RD kontrol bitleri 1 yap larak ilk iki byte EEDATA

    ve EEDATH kaydedicilerine yaz larak tespit edilir. Program haf zas yazmak iin

    rnek 3.5 takip edilebilir.(6)

    rnek 3.5: EEPROM veri yazma

    bsf status, rp1 ;

    bcf status, rp0 ; Bank 2

    movlw addrh ;

    movwf eeadrh ; MSByte Program adresi oku

    movlw addrl ;

    movwf eeadr ; LSByte Program adresi okumovlw datah ;

    movwf eedath ; MS Program bellek deerini yaz

    movlw datal ;

    movwf eedata ; LS Program bellek deerini yaz

    bsf status, rp0 ; Bank 3

    bsf eecon1, eepgd ; PROGRAM bellek noktas

    bsf eecon1, wren ; Yaz m etkin bcf ntcon, g e ; Komutlar etkin deil

    movlw 55h ;

    movwf eecon2 ; 55h yaz

    movlw aah ;

    movwf eecon2 ; AAh yaz

    bsf eecon1, wr ; WR bitini yazmaya balamak iin ayarla

    nop ;ilem yok nop ;ilem yok

  • 8/7/2019 16f877 datasheet ( tr )

    36/107

    36

    36

    bsf intcon, gie ; Komutlar aktif

    bcf eecon1, wren ; Yazma aktif deil

    3.11.5 Yaz m Dorulanmas

    EEPROM verisine yaz lan deerlerin yaz lmas istenen deerlerle dorulanmas

    gerekmektedir. Bu EEPROM biriminin spesifikasyon limitine yak n uygulamalarda

    kullan lmal d r. Toplam kald rma diski , uygunluk (rahatl k) derecesini belirlemeye

    yard mc olacakt r. Genel olarak EEPROM yaz m baar s zl 1 olarak yaz lan,

    fakat geriye 0 olarak okunan bitten kaynaklanmaktad r.

    rnek 3.6: Yaz m dorulanmas : bcf status, rp0 ; Bank 0

    ; Herhangi kod buraya gidebilir

    movf eedata, w ; Bank 0 da olmal d r.

    bsf status, rp0 ; Bank1

    bsf eecon1, rd ; Evet yaz lan deeri oku

    bcf status, rp0 ; Bank0

    ; (Wreg) yaz lan ve(EEDATA) okunan deerler ayn m ?

    subwf eedata, w

    3.11.6 Taklit Yaz l mlara Kar Koruma

    Baz durumlarda, ayg t EEPROM veri belleine yazmak istemeyebilir. Taklit

    yaz l mlara kar korunmak iin, deiik mekanizmalar monte edilmi, kurulmutur.

    Yksek gte WREN temizlenir. Bunun yan s ra , yksek g timer i (72 msn sreli)

    EEPROM yaz m n nler. Yaz l m balatan ard k ve WREN biti ikisi birlikte Brown-

    Out,g ar zas veya yaz l m aksamas nda tesadfi yaz l mlar

    nlemeye devam eder.

    3.11.7 Kod Koruma Sresince EEPROM Veri lemi

    Microdenetleyici, kod korumal durumdayken dzene sokulan verileri okuyabilir ve

    EEPROM verisine yazabilir. ROM ayg tlar nda iki koruma biti mevcuttur. Birisi ROM

    program bellei dieri ise EEPROM veri bellei iindir.

  • 8/7/2019 16f877 datasheet ( tr )

    37/107

    37

    37

    3.12 Zamanlama0 (TIMER0) Modl ve TMR0 Kayd

    Timer0 modl, timer/saya aa daki zelliklere sahiptir.

    8 bitlik timer/saya ,

    Okunabilir ve yaz labilir ,

    8 bitlik programlanabilir prescaler.,

    ten veya d tan saat ayar ,

    FFh` tan 00h` ye tama zeri kesme ,

    D saatin s n r seimi ,

    Timer modu TOCS bitinin (OPTION) temizlenmesiyle seilir. Timer modundaTimer0 modl her bir komut srecini uzat r. Eer TMR0 kayd yaz l ysa, uzama takip

    eden 2 sreci engeller. Kullan c ayarlanan deeri TMR0 kayd na yazarak, bunun

    etraf ndan al abilir. Saya modu TOCS bitinin (OPTION) ayarlanmas yla seilir.

    Bu modda, TMR0, RA4/TOCK1 pininin s n rlar n n herbir art nda ya da dnde

    artacakt r. Genileyen s n r, TO kaynak s n r seim biti taraf ndan, TOSE (OPTION)

    taraf ndan belirlenmektedir. TOSE bitinin temizlenmesi artan s n rlar seecektir.

    Prescaler, Timer0 modl ile Watchdog Timer aras nda payla lmaktad r. Prescaler

    atamas , yaz l mda PSA biti kontrol taraf ndan denetlenmektedir. (OPTION) PSA

    bitinin temizlenmesi, prescaler Timer0 modlne atayacakt r. Prescaler okunabilir veya

    yaz labilir deildir. Prescaler, Timer0 zamanlama modlne atand nda prescaler deeri

    (1:2,1:4,1:8,1:16,1:32,1:64,1:128,1:256 olmak zere) yaz l m taraf ndan seilebilirdir. (1)

    3.12.1 TMR0 Kesmesi

    ekil 3.18:TMR0 blok diyagram

  • 8/7/2019 16f877 datasheet ( tr )

    38/107

    38

    38

    TMR0 kesmesi, TMR0 kayd FFH`dan 00h`ye ak nda retilmektedir. Bu fazla

    ak m TOIF bitini ( INTCON) kurar (ayarlar). Kesme, aktif TOIE bitinin

    (INTCON) temizlenmesi ile gizlenebilir. (INTCON) TOIF biti, Timer0 modl

    taraf ndan, bu kesmenin yeniden aktifletirilmesinden nce yaz l mdan silinmelidir. TMR0kesmesi (ekil 3.18) denetleyiciyi SLEEP` ten karamaz, nk, SLEEP boyunca timer

    kapal d r.

    ekil 3.19:TMR0 Zamanlamas : Prescaler sizten Clock

    3.12.2 TMR0 n D tan Saat le Kullan m

    D tan saat girileri TMR0 iin kullan ld nda, baz n artlar n gerekletirilmesi

    gerekir. D tan saat gereksinimi , iten faz saati senkronizasyonundan kaynaklanmaktad r.Bunun yan s ra, TMR0 kayd n n senkronize edilmesinden sonra, fiili artmada gecikme

    mevcuttur.

    3.12.2.1 D tan saat senkronizasyonu

    Hi bir prescaler kullan lmad taktirde , d tan saat girii prescaler k ndaki

    gibidir. RA4/TOCKI pininin iten faz saati ile senkronize edilmesi i faz saatlerinin Q2 ve

    Q4 srelerindeki prescaler k n rneklemek yoluyla yerine getirilir.

    Bunun iin , TOCKI nin dk deerinin en az ndan 2TOSC (art ufak RC

    gecikmesi) olmas gerekir. Prescaler kullan ld nda, d saat girii asenkron say c tipi

    prescaler a blnr ve bylece prescaler k simetrik olur. D saatin rnekleme

    gereksinmelerini kar lamak iin saya (counter) dikkate al nmal d r. Bylece prescaler

    deerine blnen en az ndan 4 TOSC peryot uzunluuna sahip olmal d r. (1)

  • 8/7/2019 16f877 datasheet ( tr )

    39/107

    39

    39

    3.12.2.2 TMR0 gecikme uzat lmas

    Prescaler k , i saat ile senkronize edildii iin, d saat s n rlar n n meydana

    gelmesindeki zamandan TMR0 modlnn fiili olarak uzat lmas zaman na kadar kk bir gecikme vard r. ekil 3.20 d saat s n r ndan Timer uzamas na kadar gecikmeyi

    gstermektedir.

    3.12.3 Prescaler ( Blc)

    8 Bitlik saya Timer0 modlnde veya Watchdog timer nda bulunur. Prescaler

    d ar dan verilen sinyali 256 ya kadar blmeye yarar. Timer0 modl ile watchdog timer

    aras nda kar l kl istisna tutulan yaln zca bir tek prescaler mevcuttur. Bylece Timer0modlne prescaler atamas , watchdog timer n prescaleri olmad anlam na gelmektedir.

    PSA ve PS2 : PSO bitleri (option ) prescaler atamas n ve prescaler oran n

    belirlemektedir.

    ekil 3.20:D saatli TIMER0 zamanlay c s

    Timer0 modlne yaz lan btn komutlar, timer0 modlne atand nda prescaleri

    lecektir. WDT ye atand nda , CLRWDT komutu watchdog timer boyunca prescaler itemizleyecektir. Prescaler yaz labilir veya okunabilir deildir.

    3.13 Zamanlay c 1 (TIMER1) Modl

    Timer1 modl: Timer/saya aa daki zelliklere sahiptir.

    16 bit timer/saya,

    Okunabilir ve yaz labilir, ten ve d tan saat seimi,

  • 8/7/2019 16f877 datasheet ( tr )

    40/107

    40

    40

    FFFFhden 000ha tama zeri kesme,

    CCP modlnden resetleme,

    ekil 3.21de Timer1in aktif/pasif, ayarlama/s f rlama ilemleri gsterilmektedir.

    ekil 3.21:TIMER1 Blok diyagram

    3.13.1 Zamanlay c 1 (TIMER1) lemleri

    Timer1 aa daki modlardan birini iletebilir.

    Zamanlay c olarak

    Senkronize sayac olarak

    Asenkronize sayac olarak

    TMR1CS (T1CON) biti bu modlardan hangisinin al t r laca na karar verir.

    Zamanlay c modunda Timer1 her komut evrimi art lar , saya modunda her harici saat

    girii ykselmesini belirler. Timer1 osilatr aktifken RC1/T10SI ve RC0/T10S0/T1CKI

    pinleri giri olurlar. TRISC deeri ihmal edilir.

    3.13.2 T1CON: TIMER1 Kontrol Kaydedicisi

    TIMER1deki ilemlerin kontrol edildii ve ilemler yrtlrken baz bilgilerin

    al nd kaydedicidir.

    ekil 3.22:T1CON Kaydedicinin bit yerleimi

  • 8/7/2019 16f877 datasheet ( tr )

    41/107

    41

    41

    T1con,0(TMR1ON):Timer1 e yetki veren bittir. TMR1ON biti 1 yap ld ndaTimer1 kullan l r durumdad r,0 ise kullan m d d r.

    T1con,1(TMR1CS):Timer 1 iin clock kayna n n seildii bittir. TMR1CS 1 iseclock kayna olarak RC0/T1OSO/T1CKI pininden gelen sinyalin ykselen kenarlar

    seilir. TMR1CSnin 0 olmas halinde ise dahili clock kayna kullan l r.

    T1con,2(T1SYNC):Harici clock kayna n n senkron kontroln yapan bittir. Eer

    harici kaynak ile Timer1 ezamanl al m yorsa T1SYNC 1 seviyesinde olur. Eer

    ezamanl bir al ma var ise T1SYNC 0 seviyesindedir.

    T1con,3(T1OSCEN):Timer1 osilatr kayna yetkilendirme bitidir. T1OSCEN 1ise osilatr kayna etkindir, 0 ise kullan m d d r.

    T1con,4-5(T1CKPS0,T1CKPS1):Timer1 giri sinyalinin blme (prescale)oran n n seildii bilerdir. Bu bitlerin ald deerlere gre blme prescaler deeri

    deimekte ve buna bal olarak Timer1 artma frekans deimektedir.

    11 = 1:8 Prescale deeri

    10 = 1:4 Prescale deeri01 = 1:2 Prescale deeri

    00 = 1:1 Prescale deeri

    3.14 Zamanlay c 2 (TIMER2) Modl

    Timer2 modl aa daki zelliklere sahiptir.

    8 bit zamanlay c (TMR2 kaydedici),

    8 bit peryot kaydedici (PR2),

    Okunabilir ve yaz labilir,

    Yaz l m ile programlanabilir prescaler,

    TMR2, PR2 elemesinde kesme,

    Saat kaymas n retmek iin TMR2 k n n seimli kullan m SSP modl,

  • 8/7/2019 16f877 datasheet ( tr )

    42/107

    42

    42

    ekil 3.23:TIMER2 Blok diyagram

    Timer2ekil 3.23te gsterilen denetim yazmac na sahiptir. Timer2 g tketimini

    en aza indirgemek iin TMR0 denetim bitini temizleyerek kapanabilir.

    3.14.1 Zamanlay c 2 (TIMER2) lemleri

    Timer2, CCP modlnn PWM modu iin PWM zaman taban olarak kullan labilir.

    Giri saati (Fosc/4) in prescale seeneine sahip olur. Aa daki durumlardan herhangi

    biri gerekletiinde prescaler ve postscaler sayalar temizlenirler.

    TMR2 kaydedicisine yaz ld nda ,

    T2CON kaydedicisine yaz ld nda,

    Herhangi bir ayg t haz r olduunda ,

    ***T2CON yaz ld nda, TMR2 temizlenemez.

    3.14.2 T2CON: TIMER2 Kontrol Kaydedicisi

    Timer2deki ilemlerin kontrol edildii ve ilemler yrtlrken baz bilgilerin

    al nd kaydedicidir.

    ekil 3.24:T2CON Kaydedicinin bit yerleimi

    T2con,0-1(T2CKPS0,T2CKPS1):Timer2de prescalerin ayarland bitlerdir. Bu

    bitlerin ald deerlere gre prescaler deeri deimektedir.

  • 8/7/2019 16f877 datasheet ( tr )

    43/107

    43

    43

    00 = Prescaler is 1

    01 = Prescaler is 4

    1x = Prescaler is 16

    T2con,2(TMR2ON): Timer2 e yetki veren bittir. TMR2ON biti 1 yap ld nda

    Timer2 kullan l r durumdad r,0 ise kullan m d d r.

    T2con,3:6(TOUTPS3:TOUTPS0): Timer2de postscaler ayarlar n n yap ld

    bitlerdir. Bu bitlerin ald deerlerle timer2 deiik postscaler deerlerine ulamaktad r.

    0000 = 1:1 Postscaler

    0001 = 1:2 Postscaler

    1111 = 1:16 Postscaler

    3.15 CAPTURE/COMPARE/PWM(CCP) Modlleri

    CCP modlleri yakalama, kar lat rma, pals genilii modlasyonu gibi ilemleri

    gerekletirmek zere baz zelliklerle donat lm lard r. Her bir CCP modl 16 Bitlik yakalama (capture) kaydedicisi, 16 bitlik kar lat rma (compare) kaydedicisi veya PWM

    kaydedicisine sahiptir. Tablo 3.5 de CCP modlnn her eleman n n ilikide bulunduu

    zamanlama kaynaklar verilmitir.

    Tablo 3.5:CCP Timer likisi

    PIC 16F877nin CCP modlleri olan CCP1 ve CCP2nin al malar zel

    tetikleyicileri d nda hemen hemen ayn d r. Bu nedenle bundan sonraki anlat mlar m z

    CCP1 modl zerinde younlat r lacakt r.

  • 8/7/2019 16f877 datasheet ( tr )

    44/107

    44

    44

    3.15.1 CCP1 Modl

    CCP modl, dk k sm 8 bit olan CCPR1L ,yksek k sm 8 bit olan CCPR1H

    olan ve CCPR1 olarak adland r lan bir kaydediciden olumaktad r. CCP1 modlnnilemleri ise CCP1CON kaydedicisi taraf ndan kontrol edilmektedir. Bu modldeki

    kaydedicilerin tm yaz labilir ve okunabilir zelliktedirler.

    3.15.2 CCP1CON Kaydedicisi

    Yukar da da belirtildii gibi bu kaydedici CCP1 modlnn yapt ilemleri

    denetler ve yetkilendirmeleri yapar.

    ekil 3.25:CCP1CON Kaydedicinin bit yerleimi

    Ccp1con,0:3(CCPxM0:CCPxM3): CCP iin mod seim bitleridir. Bu bitlerinald deerlere gre CCP1 modl capture/compare/PWM modlar na sokulmaktad r.

    0000 = Capture/Compare/PWM etkin deil (CPM kullan m d )0100 = Capture modu, her den kenarda

    0101 = Capture modu, her ykselen kenarda

    0110 = Capture modu,her 4. ykselen kenarda

    0111 = Capture modu, every 16. ykselen kenarda

    1000 = Compare modu, denklikte durumunda k 1le(H) (CCPxIF=1)

    1001 = Compare modu, denklik durumunda k 0la (L) (CCPxIF=1)

    1010 = Compare modu, denklikdurumnda yaz

    l

    m kesmesi ret1011 = Compare modu, zel tetikleme (CCPxIF=1, CCP1 TMR1i resetler, CCP2 TMR1i

    resetler ve A/D evirme balar.(Eer A/D evirme modl yetkilendirilmise).)

    11xx = PWM modu

    Ccp1con,4:5(CCPxX:CCPxY):CCP modln PWM modundaki Lsb ayarlar n gerekletiren bitlerdir.

  • 8/7/2019 16f877 datasheet ( tr )

    45/107

    45

    45

    3.15.3 CAPTURE (Yakalama) Modu

    Capture modunda RC2/CCP1deki bir tak m olaylarla; CCPR1H:CCPR1L,

    TMR1in 16 bitlik deerini yakalar ve kaydeder. RC2/CCP1deki olaylar u ekilde

    tan mlanmaktad r:

    Her den kenar

    Her ykselen kenar

    Her 4. ykselen kenar

    Her 16. ykselen kenar

    RC2/CCP1deki bu durumlardan birisi CCPxM0:CCPxM3 bitleri sayesinde seilir.

    Bir yakalama ilemi gerekletiinde CCP1IF (PIR1,2) kurulur ve bir kesme talebinde

    bulunulur.Eer yeni bir yakalama gerekleirse CCP1R registerine yeni deer kaydedilir

    ve eski deer tamamiyle silinir.

    3.15.3.1 Capture Modunda Pin Durumu

    Capture modunda RC2/CCP1 pini Trisc vas tas yla giri olarak ayarlanmal d r.

    Bu sayede RC2/CCP1 pini capture ilemi iin gerekli clocklar alabilecektir. ekil 3.26da

    capture modunda veri yakalama ileminin nas l gerekletiini gsteren diyagram

    bulunmaktad r.

    ekil 3.26:Capture Modunda Veri Yakalamaleminin Gereklemesi

    3.15.3.2 CCP Prescaler

    CCPde prescaler ayarlar n gerekletirmek zere, CCP1M3:CCP1M0 bitleri

    ayr lm t r. CCP modl kullan m d ise veya CCP modl capture modunda

    kullan lm yorsa prescaler say c s temizlenmi vaziyette durur. Bu herhangi bir resetleme

  • 8/7/2019 16f877 datasheet ( tr )

    46/107

    46

    46

    durumunda prescalerin temizlenecei anlam na gelir. Capture prescaleri dier bir

    kesmenin retilmesi durumunda deiim gsterir. rnek 3.7de CCP prescalerin

    kurulmas na dair bir rnek verilmitir. Bu rnek programda prescaler say c temizlenmitir

    ve hata kesmelerinin retilmesi engellenmitir.

    rnek 3.7

    clrf ccp1con ;CCP modln kapal duruma getir.

    movlw new_capt_ps ;CCPyi kur, prescaleri ile ykle

    movwf ccp1con ; CCP1CON kaydedicisini ykle

    3.15.4 COMPARE (Kar lat rma) Modu

    Kar lat rma modunda 16 bitlik CCPR1 ile TMR1in kar l kl bitleri baytlar

    kar lat r l r. Eer bir eitlik sz konusu ise RC2/CCP1de ;

    Yksek seviyeye (H) ekilme

    Dk seviyeye (L) ekilme

    Deiiklik olmama.

    durumlar ndan birisi gerekleir. Gereklemesi istenilen durum program yard m yla

    belirlenir.

    RC2/CCP1 pinindeki deime durumu CCP1M0:CCP1M0 (CCP1CON)

    bitleri yard m ile yap lmaktad r.

    1000 = denklik durumunda k 1le(H)

    1001 = denklik durumunda k 0la (L)

    1010 = denklik durumnda yaz l m kesmesi ret (pinde deiiklik olmaz)

    Denklik durumunda daima CCP1IF biti yksek (H) durumuna ekilmektedir.

    Compare modunda grev alan kaydedici, pin ve dier evre elemanlar n n ilikileri

    ekil 3.27de verilmitir.

  • 8/7/2019 16f877 datasheet ( tr )

    47/107

  • 8/7/2019 16f877 datasheet ( tr )

    48/107

    48

    48

    ekil 3.29:PWM k ekli

    3.15.5.1 PWM Sresi

    Bir PWM ilemi ile verinin aktar lmas PR2 kaydedicisinin deerine bal d r.(PR2=TMR2 prescaler deeri). PWM sresi forml 3.1 den faydalan larak hesaplanabilir.

    PWM sresi = [(PR2) + 1] . 4 . TOSC

    Forml 3.1

    PWM frekans ise 1/PWM sresinden bulunabilir. TMR2nin PR2ye eit olmas

    durumunda ise, sonraki peryottau durum meydana gelir.

    TMR2 temizlenir.

    CCP1 pini yksek seviyeye (H) ekilir.

    PWM grev sayk l CCPR1L den CCPR2H ierisine at l r.

    3.15.5.2 PWM Grev Sayk l

    PWM grev sayk l CCPR1L ve kaydedicisi ve CCP1CON bitlerine bal d r.

    PWMde ki 10 bitlik znrlk; CCPR1L kaydedicisinin 8 bitlik k sm n n MSB, ve

    CCP1CONun 4 ve 5. Bitlerinin LSB olarak kabul edilmesiyle elde edilir. Bu 10 bit

    znrlk CCPR1L:CCP1CONeklinde gsterilmektedir. PWM grev sayk l n n

    hesaplanmas nda ise forml 3.2 kullan labilir.

    (CCPR1L:CCP1CON) Tosc (TMR2 prescaler de eri)

    Forml 3.2

  • 8/7/2019 16f877 datasheet ( tr )

    49/107

    49

    49

    3.15.5.3 PIC 16F877nin PWMlemi in Kurulmas

    PR2 kaydedicisi yaz larak PWM sreci balat l r,

    CCPR1L kaydedicisine ve CCP1CON bitlerine PWM grev sayk l yaz l r, TRISC biti temizlenerek CCP1 pini k olarak ayarlan r,

    TMR2 prescaler deeri ayarlan r ve T2CONOn biti vas tas yla Timer2 yetkilendirilir,

    CCP1 modl PWM ilemi iin dzenlenir.

    3.16 MSSP (As l Ezamanl Seri Port) Modl

    MSSP The Master Synchronous Serial Port) modl baka evre birimlerle veya

    mikrodenetleyicilerle seri olarak haberlemeyi salayan bir arabirimdir. Burada bahsedilenevre birimleri; seri EEPROM, shift register, display srcleri, A/D evirici gibi birimler

    olabilir. MSSP modlnn iki tip al ma modu bulunmaktad r.

    Serial Peripheral Interface (SPI)

    Inter-Integrated Circuit (I2C)

    MSSPnin al ma modlar na gemeden nce bu modln kontroln salayan

    kaydedicilerden bahsetmekte fayda vard r. MSSP modlnde ilemleri kontrol eden bal ca kaydedici; SSPSTAT,SSPCON,SSPCON2 kaydedicileridir.

    3.16.1 SSPCON Kaydedicisi

    ekil 3.30:SSPCON Kaydedicisinde Bit Yerleimi

    Sspcon,0:3(SSPM0:SSPM3): SSP (Synchronous Serial Port) iin mod seim

    bitleridir. Bu bitlerin ald deerlere gre MSSP modl daha nce de bahsettiimiz

    modlardan birisine sokulur ve zel bir ilem iin tahsis ilemi yap l r.

    0000 = SPI master modu, clock = FOSC/4

    0001 = SPI master modu, clock = FOSC/16

    0010 = SPI master modu, clock = FOSC/64

    0011 = SPI master modu, clock = TMR2 k /2

  • 8/7/2019 16f877 datasheet ( tr )

    50/107

    50

    50

    0100 = SPI slave modu, clock = SCK pin. SS pin kontrol yetkilendirmesi.

    0101 = SPI slave modu, clock = SCK pin. SS pini kullan m d .

    0110 = I2C slave modu, 7-bit addres

    0111 = I2C slave modu, 10-bit addres1000 = I2C master modu, clock = FOSC / (4 * (SSPADD+1) )

    1011 = I2C sabit kontroll master mod

    1110 = I2C sabit kontroll master mod, balat ve durdur kesmeleri ile birlikte 7 bit adres

    yetkilendirmesi

    1111 = I2C sabit kontroll master mod, balat ve durdur kesmeleri ile birlikte 7 bit adres

    yetkilendirmesi

    1001, 1010, 1100, 1101 = Baka ilemler iin ayr lm t r.

    Sspcon,4(CKP):Clockun polaritesini semek iin kullan lan bittir.

    SPI modunda; CKP 1 ise, yksek seviye etkizis kabul edilir, CKP 0 ise dk

    seviye etkisiz kabul edilir.

    I2C slave modunda; CKP 1 ise clock yetkilendirmesi yap l r, CKP 0 ise clock dk

    seviyede tutulur.

    Sspcon,5(SSPEN):MSSP modl iin yetkilendirme bitidir.

    SPI mod nda;SSPEN =1 ise seri port kullan mdad r ve SCK ,SDO, SDI ve SS ular

    kullan labilir. SSPEN =0 ise seri port ilemleri kullan m d b rak l r.

    I2C modunda; SSPEN=1 ise seri port ilemleri etkin yap l r ve SDA ve SCL pinleri

    kullan labilir duruma getirilir. SSPEN= 0 ise seri port ilemleri kullan m d d r.

    Sspcon,6(SSPOV): MSSP modlnde alma ileminde tamalar izleyen bittir.

    SPI modunda; SSPOV 1 ise, SSPBUF nceki veriyi tutarken yeni bir bayt al n r.

    SSPSR verisi zerindeki tama kaybolur. Slave modunda kullan c SSPBUF kaydedicisini

    okumak zorundad r, sadece data iletimi s ras nda bu bit nemsizdir. Master modda tama

    biti SSBBUF kaydedicisine yeni bir veri yaz lana kadar kurulmaz. Yeni bir ilem

    gerekletirebilmek iin SSPOV biti programdan temizlenmelidir. SSPOV biti 0 ise

    herhangi bir tama yoktur.

  • 8/7/2019 16f877 datasheet ( tr )

    51/107

    51

    51

    I2C modunda; SSPOV 1 ise, SSPBUF nceki veriyi tutarken bir baytl k veri al n r.

    SSPOV biti iletim modunda nemsizdir. Al m modunda yeni bir ilem iin SSPOV bitinin

    programdan temizlenmesi gerekir.

    Sspcon,7(WCOL): Yaz m ak mas bitidir. Bir nevi hata kontrol yapar.

    SPI modunda;WCOL 1 ise I2C hatt megul iken SSPBUF kaydedicisine veri

    yaz lmaya kalk lm t r. Bu durum bir ak mad r. WCOL 0 ise herhangi bir ak ma

    yoktur.

    I2C modunda; Hala nceki data iletilirken SSPBUF kaydedicisine veri yaz lm t r.

    Bu bir ak mad r ve WCOL bitinin programdan silinmesi gerekir. WCOL 0 ise herhangi bir ak ma yoktur.

    3.16.2 SSPSTAT Kaydedicisi

    ekil 3.31:SSPSTAT Kaydedicisi Bit Yerleimi

    Sspstat,0(BF):Tamponun doluluk durumu hakk nda bilgi tutan bittir.

    Al m durumunda (SPI ve I2C modunda);BF= 1 ise al m ilemi tamamlanm t r ve

    SSPBUF kaydedicisi doludur. BF=0 ise al m ilemi tamamlanmam t r ve SSPBUF botur.

    letim durumunda ( I2C modunda); BF =1 ise veri iletimi srmektedir ve SSPBUF

    kaydedicisi doludur. BF=0 ise veri iletim ilemi tamamlanm t r ve SSPBUF kaydedicisi

    botur.

    Sspstat,1(UA): 10 bitlik I2C modunda adres gncelleme bitidir. UA=1 ise

    SSPADD kaydedicisinde gsterilen adres gncellenir. UA=0 ise gncelleme gereklemez.

    Sspstat,2(R/W): SPI veya I2C modunda ilem yap l rken okuma m yoksa yazmam yap ld n n bilgisini tutan bittir.

    SPI modunda; R/W =1 ise okuma, R/W=0 ise yazma yap l yordur.

  • 8/7/2019 16f877 datasheet ( tr )

    52/107

    52

    52

    I2C modunda;R/W=1 ise veri iletimi yap lmakta, R/W=0 ise veri iletim ii

    yap lmamaktad r.

    Sspstat,3(S): I2

    C modunda balang bitidir. S biti 1 yap ld nda start biti son bulur,S biti 0 yap ld nda ise start biti son bulmaz.

    Sspstat,4(P): I2C modunda sonland rma bitidir. S biti 1 yap ld nda durdurma bitison bulur,S biti 0 yap ld nda ise durdurma biti son bulmaz.

    Sspstat,5(D/A): I2C modunda veri ve adres aras ndaki durumlar gsteren bittir.D/A=1 ise data al nm t r yada iletilmitir. D/A=0 ise adres yollanm t r veya bir adres

    al nm t r.

    Sspstat,6(CKE):SPI clock kayna n n trn belirlemekte kullan lan bittir.

    SPI modunda; CKP=0,CKE=1 ise SCKn n ykselen kenar nda veri iletilir

    SPI modunda; CKP=0,CKE=0 ise SCKn n den kenar nda veri iletilir

    SPI modunda; CKP=1,CKE=1 ise SCKn n den kenar nda veri iletilir

    SPI modunda; CKP=1,CKE=0 ise SCKn n ykselen kenar nda veri iletilir

    I2C modunda; CKE=1 ise giri seviyesi olarak SMBUS izlenir, CKE=0 ise I2C

    izlenir.

    Sspstat,7(SMP):rnekleme bitidir.

    SPI master modda;SMP=1 ise giri sinyali data k n n sonunda rneklenir,

    SMP=0 ise giri sinyali k sinyalinin orta noktas nda rneklenir.

    SPI slave modda; SMP biti 0 (L) seviyesinde tutulmal d r.

    I2C modunda; SMP=1 ise standart h z iin (100KHz ve 1 MHZ) slew rate kontrol

    kullan m d d r. SMP=0 ise yksek h z modunda kullan m iin (400KHz) slew rate

    yetkilendirilmitir.

  • 8/7/2019 16f877 datasheet ( tr )

    53/107

    53

    53

    3.16.3 SSPCON2 Kaydedicisi

    ekil 3.32:SSPCON2 Kaydedicisi Bit Yerleimi

    Sspcon2,0(SEN): I2C modunda start durum ayar n n yapuld bittir. SEN=1 iseSDA ve SCL pinlerinde start vaziyeti al n r. SEN=0 ise start durumu yetkisizlendirilir.

    Sspcon2,1(RSEN):I2C modunda start durum yineleme bitidir. RSEN=1 ise SDA

    ve SCL pinlerinde al nan start vaziyeti tekrarlan r. RSEN=0 ise start durum yinelemekullan m d olur.

    Sspcon2,2(PEN): I2C modunda stop (durdurma) durum yetkilendirme bitidir.

    PEN=1 ise SDA ce SCL pinlerinde stop vaziyeti balat l r. PEN=0 ise stop vaziyeti

    kullan m d d r.

    Sspcon2,3(RCEN): I2C modunda al m yetkilendirme bitidir. RCEN=1 ise I2C

    modunda veri al m vaziyetine geilir. RCEN=0 ise al m modu kullan m d d r.

    Sspcon2,4(ACKEN): I2C modunda ezamanl ard arda veri al m yetkilendirme bitidir. ACKEN=1 ise SDA ve SCL pinlerinden ezamanl ard arda veri iletimi balat l r ve

    ACKDT veri biti iletilir. Bu bit donan m taraf nda otomatik olarak temizlenir.

    Sspcon2,5(ACKDT): I2C modunda master al m durumunda veri kabul bitidir.ACKDT=1 ise iletilen veri kabul edilmemitir (al nmam t r.) .ACKDT=0 ise iletilen veri

    kabul edilmitir (al nm t r).

    Sspcon2,6(ACKSTAT): I2C modunda iletim durumunda stat kabul bitidir.ACKSTAT=1 ise al nan veri kabul edilmemitir. ACKSTAT=0 ise al nan veri kabul

    edilmitir.

    Sspcon2,7(GCEN): I2C modunda genel a rma yetkilendirme bitidir. GCEN=1ise SSPSRden gelen a rma adresi (0000h) al nd nda kesme etkinletirilir. GCEN=0 ise

    genel a rma adresi yetkisizletirilir.

  • 8/7/2019 16f877 datasheet ( tr )

    54/107

    54

    54

    3.16.4 SPI (Seri evresel Arabirim) Modu

    SPI modu 8 bit uzunluundaki verinin ayn anda ezamanl olarak al nmas na ve

    iletilmesine olanak tan r. SPI modunda haberleme temel olarak 3 pin ile salanmaktad r.

    Serial Data Out (SDO)

    Serial Data In (SDI)

    Serial Clock (SCK)

    Bu pine ek olarak slave modda ilem yapmak zere bir drdnc pin olarak

    SLAVE SELECT (SS) mevcuttur.

    3.16.4.1 SPIlemleri

    SPI modunda ilem yapabilmek iin birka ayar n yap lmas gerekmektedir. Bu

    ayarlar SSPCON ve SSPSTAT bitleri zerindeki deiikliklerle yap labilir. Bu

    ayarlar sayesinde SPI modunda aa daki deiiklikler gerekletirilebilir.

    Master mod seimi (SCK clock k )

    Slave mod seimi (SCK clock girii)

    Giri verisi rnekleme evresi (sonda veya ortada)

    Clock tr (SCK n n denkenar veya ykselen kenar nda veri aktarma)

    ekil 3.33te MSSP modlnde SPI modunda ilemlerin nas l gerekletirildiini

    gsteren blok diyagram bulunmaktad r.

    MSSP modlnde yap lan ilemler bir iletme/alma kayd rmal kaydedici (SSPSR)

    ve bir tampon kaydedicisine bal d r. SSPSR verileri nce MSB biti olmak zere ierisinde

    kayd r r. Data alma ilemi tamamlanana kadar SSPBUFta tutulan verileri SSPSRye

    yazar. lk nce SSBUFtan yollanan verinin 8 bitlik k sm al n r. Sonra BF biti

    (SSPSTAT) kontrol edilir ve kesme bayra SSPIF (PIR) kurulur. SSPBUF

    registerine veri yazma durumunda iletim veya data alma ilemi olmas na bak lmadan

    WCOL (SSPCON) biti kurulur. Yeni bir ilemin yap labilmesi iin program ierisinde

    bu bitin temizlenmesi gereklidir. rnek 3.8, SSPBUF kaydedicisinin (SSPSR)

    yklenmesini gstermektedir.

  • 8/7/2019 16f877 datasheet ( tr )

    55/107

    55

    55

    ekil 3.33:SPI Modundalemleri Gsteren Blok Diyagram

    RNEK 3.8

    bsf status, rp0 ;Bank1 seildi

    devam btfss sspstat, bf ;Veri iletimi/al m tamam m ?

    goto devam ;tamalanmad

    bcf status, rp0 ;Bank0 seildi

    movf sspbuf, wmovwf rxdata

    movf txdata, w

    movwf sspbuf ;yeni veri sspbufta

    3.16.4.2 SPI G/ Yetkilendirmesi

    Seri port yetkilendirmesi iin ncelikle MSSP yetkilendirme biti SSPEN

    (SSPCON) kurulmal d r. Herhangi bir resetleme veya yeni biimlendirme durumundaSSPEN temizlenmeli SSPCON kaydedicisi yeniden dzenlenmeli ve SSPEN tekrar

  • 8/7/2019 16f877 datasheet ( tr )

    56/107

    56

    56

    kurulmal d r. SDI, SDO, SCK ve SS pinlei seri port pinleridir. Bu pinlerin birer seri port

    eleman olarak al abilmeleri iin programdan baz TRIS kaydedicilerinin ilgili bitlerinin

    ayarlanmas gerekmektedir.

    SDI,SPI modul taraf ndan otomatik olarak kontrol edilir.

    SDO iin TRISC temizlenmelidir.

    Master modunda SCK iin TRISC temizlenmelidir.

    Slave modda SCK iin TRISC

  • 8/7/2019 16f877 datasheet ( tr )

    57/107

    57

    57

    3.16.5 MSSPde I2C Modu

    MSSP modlnn I2C modunda master ve slave olmak iki durumda al ma vard r.

    MSSP modl I2

    C modl iin 7 bit ve 10 bit adresleme olana sunmaktad r.

    SCL ve SDA pinleri giri olarak kullan ld nda bu pinlere hatalar nlemek iin

    filtre eklentisi yap l r. Bu filtre 100KHz ve 400 KHz aras nda ilem yapar. Bu pinler k

    olarak kullan ld nda slew rate ayg t frekans taraf ndan otomatik olarak kontrol edilir.

    ekil 3.35.a ve ekil 3.35.b I2C modunun master/slave durumunda al malar n n blok

    diyagram n gstermektedir.

    ekil 3.35.a:Slave Modu Blok diyagram ekil 3.35.b:Master Modu Blok Diyagram

    I2C modunda 2 pin veri iletimi iin kullan l r. Bunlardan SCL clock, SDA veri

    ucudur. I2C modu yetkilendirildiinde SDA ve SCL pinleri otomatik olarak kurulur. SSP

    modl fonksiyonlar SSPEN (SSPCON) bitinin kurulmas ile yetkilendirilir.

    MSSP modl ierisinde I2C modunda ilem yapabilmek iin 6 adet kaydedici

    vard r.

    SSP Kontrol Kaydedicisi (SSPCON)

    SSP Kontrol Kaydedicisi2(SSPCON2)

  • 8/7/2019 16f877 datasheet ( tr )

    58/107

    58

    58

    SSP Stat Kaydedicisi (SSPSTAT)

    Seri Al /letim Tamponu (SSPBUF)

    SSP Kayd rmal Kaydedici (SSPSR)

    SSP Adres Kaydedicisi (SSPADD)

    SSPCON kaydedicisi I2C ilemlerinin kontrol edilmesi ne olanak salar.

    SSPCONda bulunan 4 bit (SSPCON) I2C modunda ayarlamalar yapar. Bu bitleri

    ayarlayarak u seimler yap labilir:

    I2C slave modu (7 bit adres)

    I2C slave modu (10 bit adres)

    I2C master modu, clock=osc/4

    Herhangi bir I2C modu seildikten sonra, SCL ve SDA pinleri TRIS bitleri

    yard m yla giri olarak programlanmal d r. SSPEN bitinin kurulmas yla I2C modu seilmi

    olur ve SCL-SDA pinleri etkin hale gelir.

    3.17 USART (Adreslenebilir Evrensel Senkronize Asenkronize Al c Verici) Modl

    USART modl verilerin senkron veya asenkron iletimi iin kullan lan ve belli bir protokol dahilinde ilem yapan bir birimdir. Bu modl dahilinde

    Verinin seriden parelele dntrlmesi ve parelelden seriye dntrlmesi,

    Elik bitlerini eklemek ve bu bitleri kontrol etmek suretiyle hata bulmak,

    Balatma ve durdurma bitlerini eklemek ve bulmak, gibi ilemler yap labilir.

    levsel a dan, USART al c ve verici olarak iki k sma ayr l r. Her iki ynde de veri

    aktarmadan nce USART denetim kaydedicisine, verinin niteliini gsterecek bir denetimszc programlanmal d r. rnein; veri bitlerinin say s , elik kullan l p kullan lmad ,

    eer elik kullan lm ise, bunun tek elik mi yoksa ift elik mi olduu ve durdurma

    bitlerinin say s gibi. Temel olarak, balatma biti istee bal olmayan tek bittir ve her

    zaman yaln zca bir balatma biti vard r. Bir balatma durumu iin bu bitin mant ksal 0

    seviyesinde olmas gerekmektedir.

    PIC 16F877de USART modlnn kontrol iin TXSTA ve RCSTA

    kaydedicileri mevcuttur.

  • 8/7/2019 16f877 datasheet ( tr )

    59/107

    59

    59

    3.17.1 TXSTA Kaydedicisi

    ekil 3.36:TXSTA Kaydedicisinin Bit Yerleimi

    Txsta,0(TX9D): letilen verinin 9. Bitini oluturur. Bu bit bir parite biti olarak dnlebilir.

    Txsta,1(TRMT): Transmit shift register (TSR=letim kayd rmal kaydedicisi)

    durum bitidir. TRMT=1 ise TSR botur. TRMT=0 ise TSR dolu vaziyettedir.

    Txsta,2(BRGH):Yksek baud oran seim bitidir. BRGH=1 ise yksek h z,BRGH=0 ise yava h z seilmi olur.

    Txsta,4(SYNC): USART modlnde mod seim bitidir. SYNC=1 ise senkron(ezamanl ) al ma modu, SYNC=0 ise asenkron (ezamanl olmayan) al ma modu

    seilir.

    Txsta,5(TXEN): USART modlnde iletim gerekletirmek iin yetkilendirme

    bitidir. TXEN=1 ise iletim yetkisi verilir. TXEN=2 ise iletim yetkizi verilmez.

    Txsta,6(TX9):9 bitlik iletim yetkilendirme bitidir. TX9=1 ise 9 bitlik iletim seilir.TX9=0 ise 8 bitlik iletim durumu seilir.

    Txsta,7(CSRC): Clock kayna seim bitidir. USART ezamanl al ma modundaiken; CSRC=1 ise master mod seilmi olur ve clock kayna dahilidir,CSRC=0 ise slave

    mod seilmitir ve clock kayna olarak harici kaynak kullan l r.

    3.17.2 RCSTA Kaydedicisi

    ekil 3.37:RCSTA Kaydedicisinin Bit Yerleimi

  • 8/7/2019 16f877 datasheet ( tr )

    60/107

    60

    60

    Rcsta,0(RX9D): Al nan verinin 9. Bitini oluturur. Bu bit bir parite biti olarak dnlebilir.

    Rcsta,1(OERR): Biti sresi hata bitidir. OERR=1 ise bilgi al m nda belli bir sreierisinde veri al namam t r. OERR=0 ise herhangi bir sre a m sz konusu deildir.

    Rcsta,2(FERR):ereve hata bitidir. FERR=1 ise ereve hatas vard r, FERR=0ise ereve hatas yoktur.

    Rcsta,3(ADDEN): Adres ortaya karma durumunu etkinletirme bitidir.ADDEN=1 ise adres ortaya karma durumu etkinletirilir, ilgili kesme aktif hale getirilir

    ve RSR biti=1 olduunda al tamponu yklenir. ADDEN=0 ise adres ortaya karmadurumu etkin deildir ve 9. bit parite biti olarak kullan labilir.

    Rcsta,4(CREN):Srekli al yetkilendirme bitidir. Asenkron modda CREN=1isesrekli al etkindir, CREN=0 ise srekli veri al m kullan m d d r. Senkron modda

    CREN=1 ise CREN biti temizlenene kadar srekli veri al m etkin olur, CREN=0 ise

    srekli veri al m kullan m d d r.

    Rcsta,5(SREN): Tek veri al m yetkilendirme bitidir. Master senkron moddaSREN=1 ise tek veri al m etkindir. Bu durumda ilem tamamland nda bu bitin tekrar

    s f rlanmas gerekir. SREN=0 ise tek veri al m kullan m d d r.

    Rcsta,6(RX9): Veri alma durumu yetkilendirme bitidir. RX9=1 ise 9 bitlik verial m format seilir. RX9=0 ise 8 bitlik veri al m format seilir.

    Rcsta,7(SPEN): Seri port yetkilendirme bitidir. SPEN=1 ise seri port aktif yap l r.

    Bu durumda RC7/RX/DT ve RC6/TX/CK pinleri seri port pinleri olarak tahsis edilir.SPEN=0 ise seri port kullan m d d r.

    3.17.3 USART Baud Oran Jeneratr (BRG)

    USART modlde clockun frekans n belirleyen ayg tt r. USART baud jeneratr

    USART n Asenkronize ve Senkronize modlar n desteklemektedir. BRG 8 bitlik bir

    jeneratrdr. Bu cihaz 8 bitlik serbest zamanl bir clock ile kontrol edilir. Asenk modda

    bit BRGH (TXSTA) ile kontrol edilir. Senkronize modda ise bit BRGH istenmez.

  • 8/7/2019 16f877 datasheet ( tr )

    61/107

    61

    61

    Verilen ve istenilen baud rate ve Fosc SPBRG (register) deerleri aa daki forml ile

    ayarlanabilir ve hesaplanabilir.(6)

    stenen Baud oran = Fosc / (64 (X + 1))9600 = 16000000 /(64 (X + 1))

    X = [25.042] = 25

    Hesaplanan Baud oran =16000000 / (64 (25 + 1))

    = 9615

    Hata = (Hesaplanan Baud Oran -stenen Baud Oran )

    stenen Baud Oran

    = (9615 - 9600) / 9600

    = 0.16%

    3.17.4 USART Asenkronize Durumu

    Asenkron iletimde genellikle 8 bitlik iletim format kullan lmaktad r. PIC

    16F877de datalar denetleyici zerinde bulunan osilatrden standart baud un frekans

    oran na gre iletilir. USART gnderici ve al c dan al nan ve iletilen ilk bit LSBdir.

    USART iletici ve kaydedici fonksiyonel olarak ba ms z fakat ayn data format eklinde

    ve baud oran nda kullan l r. Baud jeneratr saat gibi al r veya x16 yada x64 lk

    bitlerin oran eklinde retim yapar ve BRGH biti ile kontrol edilir.. (TXSTAXZ) Bu

    oranlar hibir zaman donan m taraf ndan desteklenmez fakat sistem ierisinde 9 bitlik

    veriler halinde sistemde kullan l r. Asenkronize modda iemi durdurmak iin denetleyici

    uyku moduna sokulur. Asenkronize mod SYNC bitinin durumuna gre seilir (TXSTA

    ) USART

    3.17.5 USART Asenkronizeletici

    USART ileticinin kalbi TSRdir. TSR ileticiye okuma/yazma ilemleri iin geregen

    veriler tampon taraf ndan iletilir.(TXREG) TXREG kaydedicisi TSR ileticiye veri ile

    beraber yklenir.letilecek olan veriler TSRnin yklenmesinden sonra TXREG kayd n n

    tamamlanmas ile balar. TXREGde ise veri iletimi TXIF (PIR) bitinin msadesi ile

    olur. Yani bilgi transferi iin daha nceki iletim ileminin tamamlanm ve tamponun

    boalm olmas gerekmektedir. Yeni veri iletimine balanmadan evvel TXIFin mutlaka

  • 8/7/2019 16f877 datasheet ( tr )

    62/107

    62

    62

    temizlenmesi gerekmektedir. Bu bitin temizlenmesi ile birlikte yeni veriler TXREG

    yklenir ve balatma biti ile beraber veriler iletilmi olur.

    ekil 3.38:USART letim Blok Diyagram

    Asenkronize ileticinin kmelenmesi aa da ad m ad m a klanm t r.

    1. SPBRG kaydedicisi baud ratein durumuna gre harekete geer.

    2. Kullan labilir asenkronize seri balant lar n n temizlenebilmesi iin SYNC bitinin

    temizlenmesi ve SPEN bitinin yetkilendirilmesi gerekir.

    3. letim iin haz r vaziyete gelinmi ise TXIE bitinin yetkilendirilmesi gerekir.

    4. Eer 9 bitlik evirici kullan l yorsa, kmede TX9 biti seilmelidir.

    5. Bu eviricinin kullan labilmesi iin TXEN bitinin yetkilenmesi ve de TXIF bitinin

    kmede yer almas gerekmektedir.

    6. Eer 9 bitlik eviri seilmi ise TXD bitine 9 bitlik veri yklenmelidir.

    7. TXREG kaydedicisine bilgi yklenir ve iletim balar.

    3.18 ADC (Analog Dijital Konvertr) Modl

    PIC 16 F877de 8 kanall 10 bite kadar evirme ilemi yapabilen bir analog-dijital

    evirici (ADC) modl bulunmaktad r.

    PIC 16F877 zerindeki ADC modln al mas u ekildedir. Analog giri rnekle

    ve tut kondansatrnarj eder. rnekle ve tut kondansatrnn k dntrcnn

    giriine uygulan r. Dntrc, ard k yaklat rma yoluyla bu analog dzeyin say sal

    sonucunu retir. Bu A/D dnmde, analog giri sinyali 10 bitlik say kar lat rma ile

    sonulan r. ADC esiz bir zellie sahiptir. lem yapmazken uyuma moduna geer.

  • 8/7/2019 16f877 datasheet ( tr )

    63/107

    63

    63

    Uyuma modunda ADCnin saatinde bir i RC osilatr retilmelidir. ADC Modl drt (4)

    kaydediciye sahiptir.

    Bunlar;1- A/D Yksek sonu kaydedicisi (ADRESH)

    2- A/D Dk sonu kaydedicisi (ADRESL)

    3- A/D Kontrol kaydedici 0 (ADCON0)

    4- A/D Kontrol kaydedici 1 (ADCON1)

    A/D eviricinin kontroln ADCON0 ve ADCON1 kaydedicileri salamaktad r.

    3.18.1 ADCON0 Kaydedicisi

    ekil 3.39:ADCON0 Kaydedicisinin Bit Yerleimi

    Adcon,0(ADON):A/D eviriciyi yetkilendirme bitidir. ADON=1 ise A/D eviricia kt r ve ilem yap labilir. durumdad r. ADON=0 ise A/D evirici kapal d r.

    Adcon,2(GO/DONE):Eer ADCON biti de 1 ise A/D evirici stat biti grevinistlenir. GO/DONE=1 ise A/D evirici ilem yap yor demektir. GO/DONE=0 ise A/D

    evirici zerinde herhangi bir ilem yap lm yordur.

    Adcon,3:5(CHS0:CHS2):A/D evirici iin kanal seim bitlerini oluturur. Bu bitlere verilecek deerlerle A/D evirme iin hangi kanal n seilecei belirlenir. Daha

    nceden de belirtildii gibi PIC 16F877de A/D evirici iin 8 kanal mevcuttur.

    000 = kanal 0, (RA0/AN0)

    001 = kanal 1, (RA1/AN1)

    010 = kanal 2, (RA2/AN2)

    011 = kanal 3, (RA3/AN3)

    100 = kanal 4, (RA5/AN4)

    101 = kanal 5, (RE0/AN5)

    110 = kanal 6, (RE1/AN6)111 = kanal 7, (RE2/AN7)

  • 8/7/2019 16f877 datasheet ( tr )

    64/107

    64

    64

    Adcon,6:7(ADCS0:ADCS1):A/D evirici iin clock frekans seim bitleridir. Bu bitlere verilecek deerler ile A/D evirme ilemi esnas nda kullan lacak frekans deeri bize

    sunulan deerler ierisinden seilir.

    00 = FOSC/2

    01 = FOSC/8

    10 = FOSC/32

    11 = FRC