Professional Documents
Culture Documents
PDF 07
PDF 07
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
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)
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
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
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
AIKLAMALAR
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
33 34 35 36 37 38 39
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
data(veri)pinidir.
PORTCikiynlgiri/kportudur.
RC0T1OS0/T1CK1 15 RC1/T1OS1/CCP2 16
I/O ST I/O ST
RC2/CCP1
17
I/O ST
18 23 24 25 26
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)
I/O TTL/ST
(1)
I/O TTL/ST
(1)
(1) (1)
NC VSS VDD
I:Input(Giri) TTL:TTLGiri Not:
8 19 P P
O:Output(k) :Kullanlmyor
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
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
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
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
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
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