You are on page 1of 18

P I C16F877

M MA R (Architecture) PIC16F87Xve16F8Xserisincelikle,PIC16CXXailesininzelliklerinitar.PIC16CXXde Harvardmimarisikullanlmtr.VonNeumanmimarisinde,veriveprogrambelleineayn yoldaneriilebilirken,bumimarideprogrambelleiveveribelleineeriimfarklboylarda yaplr. Veri yolu (databus) 8 bit geniliindedir. Ayn anda, veri belleine 8 bit geniliindeki bu yolla eriilirken program belleine program yolu ya da adres yolu (programbus/adressbus)denilen14bitgeniliindekidierbiryollaeriilir.Bununiin PIC 16F87X ve PIC 16F84de komut kodlar (opcode), 14 bittir. 14 bitlik program belleininherbiradresi,birkomutkoduna(InstructionCode/InstructionWord)karlk gelir.Dolaysylaherkomutabirevrimsresinde(cycle)eriilirvekomutkaydedicisine yklenir. Komut kaydedicisi, CPU tarafndan kullanlan bir kaydedicidir ve dallanma komutlar dndaki btn komutlar, ayn evrim sresinde altrlrlar. Bu srada programsayac,PC(ProgramCounter)birartar.Dallanmayadasapmakomutlarise,iki ardkperiyottaaltrlrveprogramsayacPC,ikiarttrlr. Harvard VonN euman

Veri Bellei

CPU 8 14

Program Bellei

CPU 8

Program Ve Veri Bellei

Merkeziilembiriminin(CPU)ennemlialtbirimlerindenbiri,ALU(AritmetikLogicUnit) olarak adlandrlan aritmetik mantk birimidir.ALUnun grevi,kendisineyollanan veriler zerinde, aritmetik ya da mantksal ilemler yapmaktr. ALUnun biri W (Working Register)ismiverilenkaydedicidenolmakzere,ikianagiriivardr.ALUkendisinegelen iki veriyi (ileler), toplayp karlabilir. eitli mantk ilemleri yapabilir (and,or, xor gibi).
8bitsabit (KomutSzcnden)

8bitkaydedicideeri

WKaydedicisi 8

8(Komutundorudanveya
dolayladresinden)

dbitkomuttan d=0or SabitKomutlar d=1

zel Fonksiyon Kaydedicile ri (SFR) ve Genel Amal RAM (GPR)

Mikroilemcilerde en ok kullanlan kaydedici, working registerdr. Bu ksaca W olarak adlandrlr. W, aritmetik ve mantk ilemlerinde, iki ilevi bir arada yrtr. lemden nce,ilenenlerdenbirinibarndrr.lemdensonraiseilemsonucunusaklar,PIC16F8X ve 16F87X serisi mikrodenetleyicilerde, komutun sonuna konan 1 veya 0 saysyla (d), sonucunWdeyadabakabirkaydedicisindetutulacamikroilemciyebildirilir. PIC16F877ve16F876,8Kwordbyklndebelleesahiptir.Programbelleiyongann ierisindedir.PIC16F84nbelleiise1Kwordbyklndedir. PIC 16F84 ve 16F87X serisi mikrodenetleyiciler, kendi kaydedicilerini ve veri belleini, dorudan,dolaylvegreceliolarakadresleyebilirler. 16F87XMikrodenetleyiciailesiaadakitemelzellikleritar. CPUazaltlmkomutseti RISCtemelinedayanr. renilecek35komutvardrveherbiri14bituzunluktadr. Dallanma komutlar iki evrim (cycle) srede, dierleri ise bir evrimlik srede uygulanr. lem hz 16F877de DC20 MHzdir. (16F877de bir komut DC200 ns hznda alr.) Veriyolu(databus)8bittir. 32adetSFR(SpecialFunctionRegister)olarakadlandrlanzelilemkaydedicisi vardrvebunlarstatikRAMzerindedir. 8Kwordekadarartanflashbellei1milyonkezprogramlanabilir. 368Byteakadarartanveribellei(RAM), 256ByteakadarartanEEPROMveribelleivardr. PinklarPIC16C73B/74B/76ve77ileuyumludur. 14kaynaktankesmeyapabilir. Ynderinlii8dir. Dorudan,dolaylvegreceliadreslemeyapabilir. PoweronReset(Enerjiverildiindesistemiresetlemezellii) PowerupTimer(Powerupzamanlayc) OsilatrStartupTimer(Osilatrbalatmazamanlaycs) WatchdogTimer(zeltipzamanlayc),devreiiRCosilatr Programlakodgvenliininsalanabilmesizellii DevreiiDebugger(Hataayklamaktakullanlabilecekmodl) Dkgerilimliprogramlama FlashROMprogrambellei(EEPROMzellikliprogrambellei) Enerjitasarrufusalayan,uykuSleepModu Seimliosilatrzellikleri Dkgle,yksekhzlaeriilebilen,CMOSFlashEEPROMteknoloji Tmylestatiktasarm

2pinleprogramlanabilmezellii yalnz5Vgirile,devreiiseriprogramlanabilmezellii lemcininprogrambelleine,okuma/yazmazelliiileeriimi 2.0V5.0Varasndadeiengeniiletimaral 25mAlikkaynakakm Devreii,ikipinilehataayklamazellii Geniscaklkaralndaalabilmezellii Dkglealabilmezellii

evreselzellikleriiseylesralanabilir: TMR0:8bitlikzamanlayc,8bitnblcl TMR1: nblcl, 16 bit zamanlayc, uyuma modundayken d kristal zamanlaycdankontrolarttrlabilir. TMR2:8bitlikzamanlayc,hemnblchemdesonblcsabiti kiCapture/Compare/PWMmodl 10bitokkanallA/Devirici
2 senkronseriport(SSP),SPI(Mastermod)veIC(MasterSlave)ilebirlikte

ParalelSlavePort,8bitgeniliktevedRD,WR,CSkontrolleri USART/SCI,9bitadresyakalamal BORReset(BrownOutReset)zellii

PIC 16F84 ile PIC 16F87X mikrodenetleyici ailesinden farklar aadaki tabloda grlmektedir. ZELL KLER almaHz ProgramBellei EEPROMBellei KullancRAM Giri/kPortSays Zamanlayc A/Devirici P I C16F877 DC20MHz 8KwordFlashROM 256Byte 368Byte 33 Timer0,Timer1,Timer2 8Kanal,10Bit P I C16F84 DC20MHz 8KwordFlashROM 256Byte 368Byte 33 Timer0 Yok

Capture/Compare/PWM 16 Bit Capture, 16 Bit Yok Compare, znrlk SerievreselArayz SPI(Master)ve12C(Master Yok Slave)modunda SPI portu vesenkronseriport ParalelUyduPort 8 Bit, harici, RD, WR ve CS Yok kontroll USART/SCI 9Bitadresli Yok 10 Bit PWM

PNADI

PN I/O BUFFERTP NO:

AIKLAMALAR

OSC1/CLKIN OSC2/CLKOUT MCLR/Vpp

13 14 1

I O

(3) ST/CMOS

Osilatrclockgirii(kristalveyaharicikaynak)

Osilatrkristalkucu
Resetleme girii / Programlama annda programlama gerilimi girii (Mikrodenetleyicinin resetlenmesi iin bupinlojik0yaplmaldr.)

I/P ST

PORTAikiynlgiri/kportudur. RA0/AN0 RA1/AN1 RA2/AN2/VREF RA3 RA4/T0CK1 RA5/SS/AN4 2 3 4 5 6 7 I/O TTL I/O TTL I/O TTL I/O TTL I/O ST I/O TTL Analogolarakkullanlabilir. Analogolarakkullanlabilir. Analogolarakkullanlabilir. Analogolarakkullanlabilir.
Bupin(istenirse)TMR0iinbirclockgiriiolabilir. SSPSlavesemepiniveyaanaloggiri/kolabilir. PORTB iki ynl giri/k portudur.giri konumunda

RB0/INT RB1 RB2 RB3/PGM RB4 RB5 RB6/PGC

33 34 35 36 37 38 39

(1) I/O TTL/ST

iken dahili pullup devresi aktifleebilir. D kesme giriiolarakseilebilir.

I/O TTL I/O TTL I/O TTL I/O TTL I/O TTL
(2) I/O TTL/ST

Dkakmlaprogramlamadadakullanlabilir.

Kesmegiriiolarakseilebilir. Kesmegiriiolarakseilebilir.
Kesme girii olarak seilebilir.Seri programlamada clockpinidir. Kesme girii olarak seilebilir. Seri programlamada

RB7/PGD

40

(2) I/O TTL/ST

data(veri)pinidir.

PORTCikiynlgiri/kportudur.

RC0T1OS0/T1CK1 15 RC1/T1OS1/CCP2 16

I/O ST I/O ST

Timer1osc.kveyasaatgiriiolarakkullanlabilir. Timer1 osc. giri veya Capture2 giri/Compare2 k/PWM2kolarakkullanlabilir.

RC2/CCP1

17

I/O ST

Timer1 osc. giri veya Capture1 giri/Compare1 k/PWM1kolarakkullanlabilir.

RC3/SCK/SCL RC4/SD1/SDA RC5/SDO RC6/TX/CK RC7/RX/DT

18 23 24 25 26

I/O ST I/O ST I/O ST I/O ST I/O ST

2 SPIveI modunda,serisaatgiri/kndakullanlr. 2 SPAmoddaSPIgiriverisiveyaICmoddaI/Oiin

SPAmoddaSPIkverisiiinseilebilir. USARTasenkrongndermeyadasenkronsaatiin USARTasenkronalmayadasenkronveriiin

PORTCikiynlgiri/kportudur. RD0/PSP0 RD1/PSP1 RD2/PSP2 RD3/PSP3 RD4/PSP4 RD5/PSP5 RD6/PSP6 RD7/PSP7 19 20 21 22 27 28 29 30 I/O TTL/ST
(1)

PSP0.bitiolarakkullanlabilir. PSP1.bitiolarakkullanlabilir. PSP2.bitiolarakkullanlabilir. PSP3.bitiolarakkullanlabilir. PSP4.bitiolarakkullanlabilir. PSP5.bitiolarakkullanlabilir. PSP6.bitiolarakkullanlabilir. PSP7.bitiolarakkullanlabilir.

(1) I/O TTL/ST

I/O TTL/ST

(1)

(1) I/O TTL/ST

I/O TTL/ST

(1)

(1) I/O TTL/ST

I/O TTL/ST I/O TTL/ST

(1) (1)

PORTAikiynlgiri/kportudur. RE0/RD/AN5 RE1/WR/AN6 RE2/CS/AN7 8 9 10


(3) I/O ST/TTL (3) I/O ST/TTL (3) I/O ST/TTL

AnalogolarakyadaPSPokumakontrollkullanlabilir. AnalogolarakyadaPSPokumakontrollkullanlabilir. AnalogolarakyadaPSPokumakontrollkullanlabilir.

NC VSS VDD
I:Input(Giri) TTL:TTLGiri Not:

8 19 P P


O:Output(k) :Kullanlmyor

Bupinlerierdekontroledilmiyor,baldeil. Ground(toprak)u Pozitifkaynakucu I/O:Input/Output(Giri/k) ST:SchimittTriggergiriolarakalr.

1.Bubuffer,dkesmeolarakdzenlendiindeSchimittTriggergiriolarakalr. 2.Bubuffer,seriprogramlamamodundaSchimittTriggergiriolarakalr. 3.Bubuffer,RCosilatrmodundaveCMOSdevrelerindeSchimittTriggergiriolarakalr.

CP UZELFON KS Y ONLARI (KonfigrasyonBitleri) Konfigrasyontanmnda,heryongannkendikonfigrasyonszc(14bitliktir)iindeki bitlerin (013. bitler) nasl kullanlaca, program iinden seilebilir. Konfigrasyon bitlerinde hibir deiiklik yapmadnz takdirde, retici tarafndan belirlenmi, n koullarabamlkalnr. PIC16F877ninkonfigrasyonbitleri,ilevleriyleaadasaylmtr. Poweronreset(POR) Poweruptimer(PWRTE) Osilatrstartuptimer BOR(BrownOutReset) YongaiindekibirRCosilatrdevresiilebelirlibirfrekanstaalmasdenetlenen WDT(WatchDogTimer)birimi Kesmeler Kodkorumagvenlii Idyerleimleri Gharcamasnnazaltlmasistendiidurumlariinuyku(sleep)modu steebalosilatrseenekleri:RC/XT/HS/LS Devreiiseriprogramlama(ikipinileseriolarakprogramlanabilme) Devreiidkgerilimleprogramlama Devreiihataarayc(Debugger)

Aada PIC 16f877 VE PIC 16f84n, program belleinde 2007h adresindeki konfigrasyonszckleri,bitalmvedeerleriaklanmaktadr.
13121110987654 3 2 10

CP CP CP CP CP CP CP CP CP CP PWRTE WDTE FOSC1 FOSC0 Bit134:CP:Kodkorumabiti 1=Kodkorumasyok 0=Tmprogrambelleizerindekodkorumasvar Bit3:PWRTE:Powerupzamanlaycbiti 1=Powerupzamanlaycaktif 0=Powerupzamanlaycpasif Bit2:WDTE:Bekikpeizamanlaycs(Watchdogtimer)bit 1=Bekikpeizamanlaycsaktif 0=Bekikpeizamanlaycspasif Bit10:FOSC0FOSC1:Osilatrsemebiti 11=RCosilatrseildi 10=HSosilatrseildi 01=XTosilatrseildi 00=LPosilatrseildi

PIC16F87Xailesininkonfigrasyonszcnnalm:
13 121110 987654 3 2 1 0

CP1 CP0 DEBUG

WRT CPD LVP BODEN CP1 CP0 PWRTE WDTE FOSC1 FOSC0

Bit1312ve54:CP1,CP0:Flashprogrambelleikodkorumabiti 11=Kodkorumasyok 10=1F00h1FFFharaskodkorumalblge 01=1D00h1FFFharaskodkorumalblge 00=0000h1FFFharaskodkorumalblge Bit11:DEBUG:Devreiihataaramamodu 1=Devreiihataaramapasif 0=Devreiihataaramaaktif Bit10:Alanuygulanmad,1olarakokunur. Bit9:WRT:Flashprogrambelleineyazmabiti 1=KodkorumaszprogrambelleineEECONdenetimiileyazlabilir. 0=KodkorumaszprogrambelleineEECONdenetimiileyazlamaz. Bit8:CPD:VeriEEbelleikorumabiti 1=Kodkorumasyok 0=Kodkorumal Bit7:LVP:Dkgerilimdevreiiseriprogramlamabiti 1=RB3/PGMpiniPGMilevlidir,dkgerilimleprogramlanabilir. 0=RB3saysalI/Otanml,MCLRyeprogramlamaiinyksekgerilim uygulanmaldr. Bit 6: BODEN: Gerilim alt ve st limitleri aarsa, program yeniden balatabilen (BrownoutResetEnable)bit 1=BORyenidenbalatmaaktif(ON) 0=BORyenidenbalatmapasif(OFF) Bit3:PWRTE:Powerupzamanlaycbiti 1=Powerupzamanlaycaktif 0=Powerupzamanlaycpasif Bit2:WDTE:Bekikpeizamanlaycs(Watchdogtimer)biti 1=Bekikpeizamanlaycsaktif 0=Bekikpeizamanlaycspasif Bit10:FOSC1FOSC0:Osilatrsemebiti 11=RCosilatrseildi 10=HSosilatrseildi 01=XTosilatrseildi 00=LPosilatrseildi

ZA MAN LA MA VEKOM UTP ER Y ODU 16F87X ve 16F84 mikrokontrollerine OSC1 pininden gelen saat (clock) sinyali, yonga iinde drde blnr. Bunlara Q1, Q2, Q3, Q4 evrimi denir. Program sayac her Q1 evriminde bir artar. Komut Q4 annda bellee getirilerek, komut kaydedicisine (Instruction Register) yklenir. Komut kodunun zmlenmesi (decode) ve altrlmas (execute),izleyenQ1denQ4edekolansredegerekleir. Komutun ilenme aamalar: lk komut evriminde ilenecek olan komut, program belleindeki,komutkaydedicisinealnr.Bukomutevriminbitiminde,programsayacbir arttrlrveprogramsayacartkbellektebirsonrailenecekkomutugsterir. kinci komut evriminde ise bir nceki evrimde, komut kaydedicisine aktarlm olan komut, ayrtrlr (decode). Bylece komut ileyaplacak ilem belirlenir (Q1). lenecek veri bellekten alnr (Q2), komut altrlr (Q3) ve oluan sonu, gerekli adrese yazlr (Q4).Bylecekomutunilenmesitamamlanr.Dallanmakomutlarkullanlmsa,builem iinikikomutevrimliksregeer.nkilkkomutevrimindedallanmakomutu,dier komutlargibiprogrambelleindenalnr.Buaradabirncekikomutdayrtlmektedir. kinci komut evriminde dallanma komutu ilenecek ve bir sonraki komut evrimine geerken,programsayacdallanmakomutundanhemensonrakikomutudeil,bakabir komutu gsterecektir. Ama mikrodenetleyici, bu komutun nasl sonulanacan ikinci komut evriminin sonunda anlar. Eer dallanma olacaksa, kaydedicisindeki bu deerin kullanlmamas ve yeniden komut yakalamas gerekir. Bylece PIC16F87X ve 16F84 bir komutevriminikaybedervesapmaveyadallanmakomutlareersapmaolacaksaiki komutevrimindegerekleir. BELLEKYN ET M PIC 16F87X ve 16F84 ailelerinin adet bellek blou bulunur. Bunlar program bellei (program memory), veri bellei (data memory) ve EEPROM veri belleidir. Her bloun, kendiveriyoluvardr(Harvardmimarisi).yleki,aynosilatrevriminde,herbirbloa eriimsalanabilir. P rogramBelleiY netimi 16F877de bu bellek kapasiteleri srasyla 0000h07FFh, 0800h0FFFh, 1800h1FFFh adresleri arasndadr. Reset vektr adresi 0000h ve kesme (interrupt) vektr adresi 0004htr.

VeriBelleiY netimi Veri bellei kendi iinde, bank ad verilen sayfalara blnmtr. Bunlarn her birinin banda zel fonksiyonlu kaydedici (Special Function RegisterSFR) alan ve daha sonra da genel amal kaydedici (General Purpose RegistersGPR) alan bulunur. zel ilem kaydedicileri mikrodenetleyicinin iletimini kontrol eder ve bir ilemin sonucunu renebileceimiz,zeldurumbitlerivardr. rnein STATUS kaydedicisinin, 5. ve 6. bitleri olan RP0, RP1 adl bitler bank seimi bitleri olarak, bu bellek blmlerini semede kullanlr. Her bank 07Fh adresine dek geniletilmitir(128Byte). Baz zel ilem kaydedicileri bir banktan, daha ok bankta yer alr. Bu yntem, eriimi hzlandrmaamalolup,okkullanlankaydedicileringrntsaynagibidierbanklara yanstlmtr. Bylece bu kaydedicilere erimek iin sk sk bank deitirilmesi gerei ortadankaldrlmveprogramlamayakolaylksalamtr. Veri bellei olarak kullanlmak zere,klfnierisinde bir de EEPROM bellek alan vardr. Bu bellek, dier veri bellei gibi dorudan adreslenemez. EEPROM veri belleine dolayl eriilir.Toplam92bytetr. Reset (balama) vektr:Enerji uygulandnda (Poweron) mikroilemcinin iinde veya dnda olan bir elektronik devre ile yeniden balatlmaldr (reset). Bu devre poweron reset ad ile klf ierisine yerletirilmitir. almaya balatlan mikroilemci, kendi program sayacn zel bir say ile ykler. tebu say, o mikroilemci iin, reset vektr adresidir.

Kesme (interrupt) vektr: Mikroilemci program belleindeki program altrrken, sras belirsiz, acilen yaplmas gerekli yordamlar da altrabilir. Sras ve ne zaman ortaya kaca bilinmeyen bu ileri yapmak iin mikroilemci, bir yolla dardan veya kendi iinden uyarlmaldr. Gelen uyardan mikroilemcinin baz birimleri etkilenir. Bu birimlerdenbiriolanprogramsayacna,zelbirsayyklenir.Busay,omikroilemcinin kesmevektradresidir. Kesme srasndaki uyardan etkilenen dier birim, yndr. Yn, program iinde bir alt programkullanldnda,bualtprogramdan,aslprogramblounadnlecekadresitutar. Kesmedebiraltprogramgibielealnr.Kesmeyesapldndakesmeblmndensonra dnlecek adres PCden yna yerletirilir. Daha sonra kesme yordamnn komutlar ilenir. Kesmeden k komutu olan Retfie, altprogramdan k komutu return gibi alr. Retfie komutu ile, programda dnlecek yerin adresi yndan alnp, PCye geri yklenir.Bylecekesmedensonra,programblouiindeilemeyibraktyerednerve kalankomutlarilemeyedevameder. iekullanlanaltprogramlarenoksekizolabilir.bunlarakesmeblmleridedahildir. Kesmeleri dahil etmezsek,yntamasnaneden oluruz. Yntamas olutuunda bizi uyaracak,herhangibiruyar(flag)kaydedicisibulunmamaktadr. Kaydedici BANK0 Adresi KaydediciAd 00h INDF 01h TMR0 02h PCL 03h STATUS 04h FSR 05h PORTA 06h PORTB 07h Kullanlmyor 08h EEDATA 09h EEADR 0Ah PCLATH 0Bh INTCON 0Ch (GPR) (GPR) BANK1 Kaydedici KaydediciAd Adresi INDF 80h OPTION PCL STATUS FSR TRISA TRISB Kullanlmyor EECON1 EECON2 PCLATH INTCON 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh 8Ch

07h VeriBelleiHaritas

FFh

10

Kaydedicilerin levleri: INDF(Indirect FileRegister):Dolayl adresleme kaydedicisidir.Birbiri ard srayaplacak eriim ilemlerinde, GPR Genel amal kaydedicilerle (statik RAM alannn) kullanm hzlandrlrveyazlacakprogramkltr. TMR0 (Timer): Mikrodenetleyici iinde bulunan zamanlayc ve saya olarak altrlan blmdenetleyenkaydedicidir. PCL (Program Counter Low Byte):bir sonraaltrlacak komutun program belleindeki adresinitutar. STATUS:Mikrodenetleyiciiindekiaritmetikilembirimi(ALU)ilemsonularnaaitbaz bilgileridurumkaydedicisindetutar.Banksemebitleridebukaydedicidedir. FSR (File Select Register): Dolayl adreslemede INDF ile birlikte kullanlr. Mikrodenetleyicinin iindeki RAM adresinde yaplacak ilemlerde, RAM adresini tutar. Bu durumdaINDFyeyazlacakherveri,aslndaadresiFSRdebulunanRAMeyazlmtr. PORTAPORTE:Portlar,mikrodenetleyicininddnyadanbilgialmasvekendidndaki devrelereveriaktarabilmesiamacylakullanlr.PIC16F877ninbeportuvardr.Aportu6 bitgeniliindedir.B,C,Dportlar8bit,Eportuise3bitgeniliindedir. TRISA TRISE:Portlarn ynn (yongaya veri girii mi, yoksa yongadan veri k m yaplacak?) belirleyen kaydedicilerdir. Eer portlarn herhangi bir pininden

mikrodenetleyici dna veri gnderilecekse, nce ilgili portun yn kaydedicisinin ayn numaral biti, b0 yaplr. Eer o pinden mikrodenetleyiciye veri girilecekse, yine nceden, o portun yn kaydedicisinin ayn numaral biti b1 yaplr. zetle ilgili TRIS kaydedicisipinikiinb0,giriiinb1yaplr. EEDATA ve EEADR: Mikrodenetleyici iindeki EEPROM veri belleine ulamakta kullanlrlar.SonutaEEDATAkaydedicisindekiveriEEADRkaydedicisindeadresnumaras bulunanveri,EEPROMveribelleindenokunarakEEDATAkaydedicisinegetirilir. PCLATCH:Programsayacnnykseknceliklibyteyani,st5bitiiinkullanlr. INTCON:Kesme(interrupt)ilemlerindekullanlr. GPR (General Purpose Register): Genel amal kaydedicilerin adresleri yukardaki izelgede verilmiti. Programc buradaki adresleri istedii gibi, kendi deikenleri iin kullanabilir. Bu adresleri isterse programn iinde, aadaki rnekte grld gibi adlandrabilir. SEC_1EQUh20 SEC_2EQUh21 GPRalanndakih20adresineSEC_1adverildi GPRalanndakih21adresineSEC_2adverildi.

STA TUSRegister(DurumKaydedicisi) STATUS kaydedicisi, aritmetik ve mantk biriminin (ALU), aritmetik ilem sonucundaki durumunu, merkezi ilem biriminin (CPU) test durumlarn ve veri belleine ait kme (bank) seme bitlerini tutar. Herhangi bir kaydedici gibi, STATUSda bir komuta hedef olabilir. yani, ierii okunabilir, deitirilebilir. Ancak, TO ve PD isimli bitleri sadece okunabilir,deitirilemez.

11

Eer, bu kaydedicinin ierii CLRF STATUSkomutuyla, silinmek istenirse sadecest bit, 0 olur. Bu komut sonunda STATUSun ierii 000u u1uu deerini alr. Burada u:deimez(Unchangable)anlamndadr. 7 IRP R/W 6 RP1 R/W 5 RP0 R 4 TO R 3 PD R/W 2 Z R/W 1 DC R/W 0 C R/W

Bit7:IRP:Kaydedicibanksemebiti(dolayladreslemedekullanlr) 0=Bank0,1(00hFFh) 1=Bank2,3(100h1FFh) Bit65:RP1:RP0:Kaydedicibanksemebiti(dorudanadreslemedekullanlr) 00=Bank0 01=Bank1 10=Bank2 11=Bank3 Herbirbank128bytetr. Bit4:TO:Timeout(sreambiti) 1= CLRWDT komutuyla veya SLEEPden, g verme durumuna geirildiinde1olur. 0=WDTtimeout(sream)ilemigereklemiise,0olur. Bit3:PD:Powerdown(Gkesme)biti 1=CLRWDTkomutuileveyagvermedurumunda1olur. 0=SLEEPkomutualtrlnca0olur. Bit2:Z:Zero(Sonusfr)biti 1=Aritmetikveyalojikilemsonucu0isebubit,1olur. 0=Aritmetikveyalojikilemsonucu0deilisebubit0olur. Bit1:DC:Dijitelde(DigitCarry/Borrow)biti.(ADDWF,ADDLWkomutlariin.) 1=8Bitindknceliklidrtls,taarsabubitlojik1olur. 0=8Bitindknceliklidrtlstamazsa,bubit0olur. Bit0:C:Carry/Borrowbiti(ADDWFveADDLWkomutlariin) 1=Enduyarlbit,taarsa,bubit1olur. 0=Enduyarlbittamazsa,bubit0olur. Not: dn alma (borrow) ilemleri iin ters kutup kullanlmtr (ilemde sonu 0sa, uyar bitleri 1, 1 ise 0 olmak zere tersleri yazlr). karma (SUB) ve dndrme (RLF, RRF)ilemlerindebununetkisianlatlacaktr. OptionRegister(SeenekKaydedicisi) Option Register, okunabilir ve yazlabilir bir kaydedicidir. Kapsamnda TMR0 / WDT zamanlayclarnn konfigrasyon bitleri, d kesme (interrupt) denetim bitleri, TMR0 zamanlaycs kesme denetim bitleri ve PORTB iin ekme (pullup) direnlerinin kullanlmasnsalayanbitbulunur.

12

7 RBPU R/W

6 INTEDG R/W

5 TOCS R/W

4 TOSF R/W

3 PSA R/W

2 PS2 R/W

1 PS1 R/W

0 PS0 R/W

Bit7:RBPU:PORTB,ekme(pullup)direnleriniaktifletirmebiti 1=PORTBekmedirenleripasif 0=PORTBekmedirenleriaktif Bit6:INTEDG:Kesmekaynaetkilenmekenarseimbiti 1=RB0/INTpinkesmesiykselenkenarsemebiti 0=RB0/INTpinkesmesidenkenarsemebiti Bit5:TOCS:TMR0saatkaynasemebiti 1=RA4/TOCK1pinindengelendarbelerclockkaynaolsun 0=Clockkaynaolarakikomutevrimikullanlsn Bit4:TOSF:TMR0clockkaynakenarsemebiti(eerTOCS=1ise) 1=RA4/TOCK1pinindengelenherdenkenariinbirarttr 0=RA4/TOCK1pinindengelenherykselenkenariinbirarttr Bit3:PSA:nblcbiti 1=nblcWDTiinayrld 0=nblcTMR0iinayrld Bit2,1,0:PS2,PS1,PS0:nblcoransemebiti Bit(PS2,PS1,PS0) Deeri 000 001 010 011 100 101 110 111 TMR0 WDT

BlmeOran BlmeOran 1:2 1:4 1:8 1:16 1:32 1:64 1:128 1:256 1:1 1:2 1:4 1:8 1:16 1:32 1:64 1:128

I NTCON Register(KesmeKaydedicisi) INTCON kaydedicisi, okunabilir ve yazlabilir bir kaydedicidir. Kapsamnda TMR0 / WDT kaydedicisi tama uyar bitleri, RB port deiim ve d kesme (RB0 / INT pin interrupt) denetimbitleri,TMR0kesmedenetimbitleribulunur. 7 GIE R/W 6 PEIE R/W 5 TOIE R/W 4 INTE R/W 3 RBIE R/W 2 TOIF R/W 1 INTF R/W 0 RBIF R/W

13

Bit7:GIE:Btnkesmelergeerli(GlobalInterruptEnable)biti 1=Maskelenmemikesmeleriaktifyapar 0=Kesmeyikaldrr Bit6:PEIE:evreselkesmegeerlibiti 1=evreselkesmeyiaktifletirir 0=evreselkesmeyikaldrr Bit5:TOIE:TMR0clocktamakesmesibiti 1=TMR0kesmesiniaktifyapar 0=Kesmeyikaldrr Bit4:INTE:RB0/INTdkesmebiti 1=RB0/INTpinindendkesmeyiaktifyapar 0=Kesmeyikaldrr Bit3:RBIE:RBPortdeiimikesmebiti 1=RBportdeiiminiaktifyapar 0=Kesmeyikaldrr Bit2:TOIF:TMR0tamauyarsbayrakbiti 1=TMR0tat(tatktansonraprogramiindentemizlenir) 0=TMR0tamad Bit1:INTF:TMR0/INTdkesmeuyarbayrakbiti 1=TMR0dkesmeoldu(programiindentemizlenir) 0=TMR0dkesmeyok Bit0:RBIF:RBPortdeiimikesmeuyarbayrakbiti 1=EnazbirRB<7:4>pinidurumdeitirdi(Programdakontroledilir) 0=HibirRB<7:4>pinidurumdeitirmedi P I E1Register(evreselKesmeKaydedicisi) PIE1 kaydedicisi, evresel kesmelerle ilgili bitleri olan bir kaydedicidir. Bir evresel kesmeninolabilmesiiin,PIE1(INTCON<6>)bitidesetedilmelidir. 7 PSPIE R/WO 6 ADIE R/WO 5 RCIE R/WO 4 TXIE R/WO 3 SSPIE R/WO 2 1 0

CCP1IE TMR2IE TMR1IE R/WO R/WO R/WO

Bit7:PSPIE:ParalelSlavePortokuma/yazmakesmesibiti 1=PSPR/Wkesmesiniaktifletir 0=Kesmeyikaldrr Bit6:ADIE:A/Deviricikesmesiniaktifletirmebiti 1=A/Deviricikesmesiniaktifletirir 0=Kesmeyikaldrr Bit5:RCIE:USARTalma(receive)kesmesiniaktifletirmebiti 1=USARTalmakesmesiniaktifletir 0=Kesmeyikaldrr

14

Bit4:TXIE:USARTgnderme(transmit)kesmesiaktifletirmebiti 1=USARTgndermekesmesiniaktifletirir 0=Kesmeyikaldrr Bit3:SSPIE:SenkronSeriPortkesmesiaktifletirmebiti 1=SSPkesmesiniaktifletirir 0=Kesmeyikaldrr Bit2:CCP1IE:CCP1kesmesibiti 1=CCP1kesmesiniaktifletirir 0=Kesmeyikaldrr Bit1:TMR2IE:TMR2PR2uyumkesmesiaktifletirmebiti 1=TMR2PR2uyumkesmesiniaktifletirir 0=Kesmeyok Bit0:TMR1IE:TMR1tamakesmesiniaktifletirmebiti 1=TMR1tamakesmesiniaktifletir 0=Kesmeyikaldrr P I R1Register(evreselKesmeKaydedicisi) PIR1kaydedicisi,evreselkesmelerleilgiliuyarbitlerinitayankaydedicidir. 7 PSPIF R/WO 6 ADIF RO 5 RCIF RO 4 TXIF R/WO 3 SSPIF R/WO 2 1 0

CCP1IF TMR2IF TMR1IF R/WO R/WO R/WO

Bit7:PSPIFE:ParalelSlavePortokuma/yazmakesmeuyarsbiti 1=PSPR/Wkesmesiolutu(yazlmdatemizlenmeli) 0=Okumayadayazmayok Bit6:ADIF:A/Deviricikesmeuyarsbiti 1=A/Devirmeilemibitti 0=evirmetamamlanmad Bit5:RCIF:USARTalma(receive)kesmesiuyarbiti 1=USARTalmatamponubo 0=Almatamponudolu Bit4:TXIF:USARTgnderme(transmit)kesmeuyarsbiti 1=USARTgndermetamponubo 0=Gndermetamponudolu Bit3:SSPIF:SenkronSeriPortkesmeuyarsbiti 1=SSPkesmesidolu(yazlmdatemizlenmeli) 0=SSPkesmesiyok Bit2:CCP1IF:CCP1kesmesiuyarbiti 1=TMR1kaydedicisiyakalad 0=TMR1kaydedicisiyakalamad Bit1:TMR2IF:TMR2PR2uyumkesmesiuyarbiti

15

1=TMR2PR2uyumkesmesivar 0=Kesmeyok Bit0:TMR1IF:TMR1tamakesmesiuyarbiti 1=TMR1sayactat,kesmeoldu 0=Kesmeyok


2 P I E2 Register (CCP 2, SSP veri yolu arpma, E P ROM evresel Kesme

Kaydedicisi) PIE2kaydedicisi,CCP2(Capture/Compare/PWM2)evreselbirimininkesmebitlerini,SSP (SenkronSeriPort)veriyoluarpmabitiniveEEPROMyazmakesmesibitinitar. 7 UO 6 Reserved R/WO 5 UO 4 EEIE R/WO 3 BCLIE R/WO 2 UO 1 UO 0 CCP2IE R/WO

Bit7,5,2,1:Unimplemented:Bitkullanlmaz0okunur Bit6:Reserved:Bitsonrakullanlmakiinayrlmtr.Temizlenmelidir(set0) Bit4:EEIE:EEPROMyazmailemikesmebiti 1=EEPROMyazmakesmesiniaktifletirir 0=EEPROMyazmakesmesiyok Bit3:BCLIE:arpma(BusCollision)kesmesiuyarbiti 1=arpmakesmesiniaktifletirir 0=arpmakesmesiyok Bit0:CCP2IE:CCP2kesmesiniaktifletirmebiti 1=CCP2kesmesiniaktifletirir 0=CCP2kesmesiyok
2 P I R2 Register (CCP 2, SSP databus arpma, E P ROM evresel Kesme

Kaydedicisi)
2 PIE2kaydedicisiCCP2evreselbirimininkesmebitlerini,SSParpmabitiniveE PROM

yazmakesmesiuyarbitinitar. 7 UO 6 Reserved R/WO 5 UO 4 EEIF R/WO 3 BCLIF R/WO 2 UO 1 UO 0 CCP2IF R/WO

Bit7,5,2,1:Unimplemented:Bitkullanlmaz0okunur Bit6:Reserved:Bitsonrakullanlmakiinayrlmtr.Temizlenmelidir(set0) Bit4:EEIF:EEPROMyazmailemikesmesiuyarbiti 1=Yazmailemitamamland 0=Yazmailemitamamlanamadyadabalatlamad Bit3:BCLIF:arpma(BusCollision)kesmesiuyarbiti 1=SSPdearpmaoldu,I2CMastermodolarakayarlanmsa 0=arpmaolmad Bit0:CCP2IF:CCP2kesmesiuyarbiti

16

Capture(yakalama)moduiin 1=TMR1kaydedicisiyakaland(capture).Yazlmdatemizlenmeli 0=TMR1kaydedicisiyakalanmad Compare(karlatrma)moduiin 1= TMR1 kaydedicisi karlatrma (compare) uyumlu. Yazlmda temizlenmeli 0=TMR1karlatrmauyumludeil P CON Register(GKaynaKontrolKaydedicisi) G kontrol kaydedicisi PCON, yazlmda ve reset durumlarnda kullanlr. Reset durumlar devrenin dardan MCLRile, gerilim ya da akmn ar dme ve ykselmesi BrownOut, Watch Dog Timer ve son olarak Power on reset durumlarnda kullanlabilir. BOR biti, Power on resette bilinemez. Reset sonrasnda b1 yaplmaldr ki, bir sonraki BORdurumunurenebilsin. 7 UO 6 UO 5 UO 4 UO 3 UO 2 UO 1 POR 0 BOR

R/W1 R/W1

Bit72:Unimplemented:Bitkullanlmaz0okunur Bit1:POR:PowerOnResetdurumubiti 1=PORdurumuyok 0=PORdolu(yazlmdasetedilmeli) Bit0:BOR:Buscollisionkesmeuyarbiti 1=BORdurumuyok 0=BORdurumuvar(yazlmdasetedilmeli) P CLveP CLATHRegisters(A dresKaydedicileri) Programcounter(PC)olarakadlandrlanadreslemekaydedicisi13bitliktir.Bunundk deerliklibytePCLkaydedicisindengelir.sttekibitlerisePC<12:8>arasndaki5bittir, bunlarPCLATHkaydedicisindenalnr.PCLokunabilirveyazlabilirbirkaydedicidir.Ancak st bitleri (PCH) dorudan okunamaz. Dolayl olarak PCLath yoluyla yazlabilir veya okunabilir.

17

Call komutu, ynn her zaman en tepesine, PCL kaydedicisinin iindeki adres deerini yazar. Return, Retfie ve Retlw komutlar ise ynn en tepesindeki elemann ieriini PCLye aktarr. Sayfa (bank) numaralarnn PCLath kaydedicisinden PCye aktarlabildiini programyazarkendeunutmamalyz. PCLATH kaydedicisinin ierii, altyordama girildikten sonra sabit kalr, bir return ya da retfie benzeri komut gelse de deimez. Programc,call veya goto komutlarndan nce, PCLATH kaydedicisini gncellemelidir. PCH daima PCLATH kaydedicisi yoluyla gncellendiinden(tersiyaplamaz)altyordamveyagidilenkesiminhangibanktaolduu, aadakirneebenzerbiryollabelirtilmelidir.

ORG0x500 BCFPCLATH,4 BSFPCLATH,3 PCLATHkaydedicisinin4.bititemizlendi PCLATHn3.bitisetedildi,1.bankageildi (800hFFFhadresaral) CALLSUB1_P1 . . . ORG0x900 SUB1_P1 . . RETURN Altyordam800hileFFFharalnayerletirildi. Returndensonra0.sayfaya(000h7FFh)dnlecek Bank1(800hFFFh) 1.banktakialtyordamarld

Computedgoto(Hesaplanmgoto):PCyePCLnineklenmesiyleoluur. Y n(Stack) Yn8elemanldr.Elemanlar13bitliktirvedonanmnbirparasdr.Veriveyaprogram alanlarndayeralmaz.Yngstergesi(pointer)yazlabilirveokunabilirdeildir. Yn ilemi komutlar POP ve PUSHtur. Her PUSH ileminde ynn en tepesindeki adrese,PCn ieriiyklenir.Her POPilemindeynn en tepesindeki adres PCniine geriyklenir. Yn,LIFO(LastInFirstOut)SonGirenlkkartekniiylealr. I N DFveFSRRegister(DolaylEriimKaydedicileri) INDF,fizikselbirkaydedicideildir.MikrokontrolrdekiRAMadresinitutar.INDFeyazlan her veri,adresi FSRdebulunan RAMa yazlr.INDFten okunan veriler deadresi FSRde bulunanRAMdenokunmutur.

18

You might also like