Upload
yakub-irmak
View
222
Download
0
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