You are on page 1of 112

MKROLEMCLER MKRODENETLEYCLER 1

ENTEGRE Nedir?

ekil 1.Entegre Klf rnekleri

Kullanm Alanlar Nerelerdir?

ekil 2.Kullanm Alanlar

MKROLEMC NEDR? ok genel bir ifadeyle bir bilgisayarn beyni, esas ii yapan ksm olarak isimlendirilebilecek olan mikroilemciler hakknda biraz daha ayrntl bir aklama u ekilde yaplabilir: Bir dijital bilgisayar temel ksmdan olumaktadr. Merkezi lem Birimi - MB Program ve Veri Hafzalar Giri k Birimleri (Central Processing Unit CPU) (Program and Data Memory) (Input Output Units)

Merkezi lem Birimi (MB / CPU), verileri ileme ve sistemi oluturan eitli birimler arasnda bilgi ak kontrol ilemlerini gerekletirir.Veri ilemenin byk ounluu MB de yer alan Aritmetik Lojik Birim zerinde gerekletirilir. Ancak bu ilemlerin gerekletirilmesi srasnda Kod zme Kontrol Birimleri ile eitli Saklayclar (Registers) da ok youn olarak kullanlr.te bu merkezi ilem birimini oluturan eitli alt birimlerin tek bir entegre devre zerinde gerekletirilmi retilmi haline Mikroilemci (Microprocessor) ad verilir.Bir mikroilemci kullanlarak hazrlanm bilgisayarlara mikrobilgisayar denilmektedir. Hafza ve giri-k birimlerinin miktar, tr ve kapasitesi uygulamaya bal olarak deiir.simlendirmede kullanlan mikro ad ise ilemcinin veya bilgisayarn yeteneinin kstlln deil, boyutlarnn kkln belirtmek iin kullanlr. Modern gelimi mikroilemcilerde bir ka milimetre karelik alanda milyonlarca tranzistr yer almaktadr. rnein Pentium II ilemcisinde (n hafza, cache memory) hari 7.5 milyon adet transistr bulunmaktadr. Mikroilemcilerin tarihsel geliimine ksaca bir gz atlacak olursa ilk mikroilemcinin bir hesap makinesinde kullanlmak zere INTEL firmas tarafndan 1971 de I4004 adyla retilen 4 bitlik bir ilemci olduu grlr. Bu tarihten nce bilgisayarlarn MB leri nceleri elektron tpleri ve rleler daha sonraki dnemde ise transistrler ve eitli elektronik devreler kullanlarak hazrlanyordu. ok byk yer kaplayan ve ok g tketen bu eski bilgisayarlar ortam artlarna kar da ok duyarlydlar. lem kapasitelerinin ok kstl olmasnn yan sra srekli bakm gerektiriyorlard. Bir fikir vermesi asndan 1945 de Pennsylvania niversitesinde tamamlanan ENIAC isimli ilk bilgisayarn 30 metre boyu ve 30 ton arl olduunu syleyebiliriz. 18,000 radyo tpnden oluan cihaz 100 Kwatt g harcamaktayd.1971 deki, bilgisayarn temel eleman kabul edilen MB in tek bir entegre devre iine sdrlarak retimi, yar-iletken teknolojisinde, transistrn kefi gibi bir srama gerekletirmitir. Mikrobilgisayarlar, gnlk yaantmzda kullanm alanlar gn getike artmaktadr. Bir mikrobilgisayarn temel yaps, bir dierinden pek farkl deildir. 1960larda bilgisayarlar, fiyatlarnn ok yksek olmas nedeni ile sadece byk irketler, gelimi niversiteler ve devlet daireleri tarafndan kullanlabiliyordu. Yar iletken teknolojisindeki hzl gelimeler 3

neticesinde, 1960 lardaki bilgisayar kapasitesi gnmzde 10 dolardan daha ucuz olan mikroilemci denilen tmleik devrelere sdrlmaktadr. Bir mikroilemci kullanlarak tasarmlanan bilgisayara mikrobilgisayar denilmektedir. Bilgisayarlar bit ad verilen, 0 ve 1 saylarn kullanan ikili say sistemi ile alr ve haberleirler. Her bilgisayarn Kendine zg, makine dili denilen ve ikili kodlardan oluan sabit bir komut kmesi vardr. Makine dili ile almak zor olduundan ikili kodlanm komutlarn her biri isimlendirilmitir. Bu komut isimlerine mnemonic denir. Mnemoniklerle yazlan programlar assembly dili ile yazlm olurlar. Ancak bilgisayarlar ikili saylarla altndan assembly programn, makine diline evrilmesi gerekir. evirme ilemine derleme denir. Derleme ilemi tablolardan faydalanlarak yaplr. Bu ilemin elle yaplmas olduka zordur. Bu yzden her mikroilemci ailesine ait bir derleyici program (Cross Assembler) gelitirilmitir. Kullanc, programlarn O dili ile de yazabilmektedir. Ancak bunun derleyicisi de farkldr. Fiziksel olarak bir mikrobilgisayar temel yaps ekil l de verilmitir. Bellek, bilgisayar altran programlarn ve bilgilerin depoland ksmdr. Giri, alma esnasnda kullancnn veri girebildii ksmdr. Basit anahtarlar, klavye veya baka bir devre olabilir. k. yaplan ilemlerin neticesinde elde edilen sonularn darya karld ksmdr. Gsterge, yazc veya bir devre olabilir. Giri/k birimlerine evre birimi (Peripheral) denir. CPU (Central Processing Unit, Merkezi lem Birimi), sistemin beynidir. Bilgi depolama iin kullanlan eitli yazmalar, Aritmetik Mantk Birimi, komut zc, sayc ve denetim hatlarndan oluur. Bellekten komutlar okur ve gerekli ilemleri yapar. Dier birimler ile iletiimi salar. ekil 1.2de temel CPU yaps verilmitir. ALU (Aritmetik Logic Unit, Aritmetik Mantk Birimi), toplama karma gibi aritmetik ilemler ile VE, VEYA ve Sekin VEYA gibi mantksal ilemleri yapan birimdir. Yazma birimi, alma esnasnda, geici veya kalc olarak bilgi depolanan yazmalar ieren ksmdr.

Aritmetik Mantk Birimi Giri Denetim Birimi k

BELLEK
ekil 3.Temel mikrobilgisayar blok diyagram

GR
YAZMA

IKI

ALU BRM SSTEM BARASI DENETM BRM

ROM

RAM

ekil 4.Temel mikroilemci blok diyagram

Denetim birimi, bir komutun ilenmesi esnasnda gerekli olan tm zamanlama ve denetleme klarn salayan ksmdr. Sistem baras (System bus), mikroilemci ile evre birimlerinin iletiimini salayan bir balant yoludur. Adres, veri ve denetim bitlerinden oluur.

KONTROL KAYDEDCLER

ALU BIU KONTROL

KONTROL YOLU ADRES YOLU VER (DATA) YOLU

GENEL AMALI KAYDEDCLER

DURUM KAYDEDCLER

ekil 5.

1) Veri yolu: Bu yol, ilemci, bellek ve evre birimleri arasnda veri iletmek iin kullanlr. 2) Adres yolu: Bu yol, ilemcinin program komutlarna ve veri saklama alanlarna eriimi salayan bellek adreslerini, ROM ve RAM belleklerine gndermek iin kullanlr. 3) Denetim yolu: Bu yol, RAM belleine veri yazld veya ondan veri okunduuna dair bilgi vermek gibi, denetim amalar iin kullanlr. Bu yol ayn zamanda kesmelerin kullanmna olanak tanyan balantlar da ierir. Tipik bir mikroilemci komutunun yrtlmesi her yolunda kullanmn gerektirebilir. Bylelikle kullanlan ek devreler artarak maliyet ykselir ve tasarm ok karmak hal alr. lemci ilk olarak komuta, komut adresini adres yoluna koyarak eriir. kili kodlardan oluan bu adres, buna karlk gelen bellek konumu tarafndan tannr ve bu konum istenen komutu veri yolundan ilemciye gnderir. rnein eer bu komut, verinin ilemciden gnderilmesini ve bir RAM konumunda saklanmasn gerektiriyorsa ilemci, adres yolunu istenen konumu belirtmek, veri yoluna veriyi iletmek ve denetim yolunu da RAMe yazyor olduunu belirtmek iin kullanlr.

KLAVYE
VER GRER

DISPLAY

VER IKAR

MONTR PROGRAM (ROM)

KOMUTLAR

MKROLEMC (MERKEZ LEM NTES)

VERLER VE KOMUTLAR VERLER VE KOMUTLAR

USER MEMORY (RAM)

ekil 6. Temel bir mikrobilgisayaryaps

Adres Yolu (Bus)

MPU Mikroilemci

RAM Bellek

ROM Bellek

I/O Birimi Giri/k Portlar

GR KLAVYE

IKI DISPLAY

Veri Yolu Kontrol Yolu

ekil 7. Basitletirilmi Mikroilemciye Dayal Bir Bilgisayar Sistemi Mimarisi

1.2

LEMCLERN TARH Srekli baar elde edilen ilk mikroilemci INTEL in rettii 8080 ilemcisi ZILOG tarafandan Z80 MOTOROLA' nn ilk ilemcisi 6800 ROCKWELL in ise 6502 Btn bunlar 8 bitle ilem gren, 16 bit adresleme yapabilen mikroilemcilerdir. 6800 ismi, ierdii tmleik eleman says gz nne alnarak verilmitir. 3 durumlu (Tristate) alan adres barasna sahip olmas, kendinden RAM i olmamas ve 2 fazl bir saat sinyaline ihtiya duymas hususlar dnda 6802 le ayndr. 6502, ROCKWELL 1975 ylnda bir grup 6800 tasarmcs tarafndan tasarmlanm ve 5802ye ok benzer bir ilemcidir. Kendinden bir saat devresi olup RAM i yoktur. En ok gze arpan fark adresleme durumlar ve programlama esnekliidir. MOS teknolojisi ile tasarmlanmtr. 6801, MOTOR0LAnn daha ilerlemi bir mikrobilgisayardr. 2 Kbytelk maskeli ROMa ve 31 I/O hattna sahiptir. ILO hatlar adres ve veri hatt olarak programlanabilir ve bylece harici belleklere eriilebilir. 6803, 6801 in ROMsuz versiyonudur. Bu bilgisayarlar ayni komut setini kullandklarndan 6800 ve 6802 ile ayni programlar altrabilirler. arpma ve l6 bitlik veri ileme gibi komutlar da ierirler. 6805, MOTOPOLA nn tek-yongal mikrobilgisayarlarnn bir ailesidir. 1 veya 4 Kbytelk bir program bellei, 64 veya 112 bytelk PAM, bir saat ve 16 veya 32 1/0 hattn 28 veya 40 bacakl bir yongada toplamtr. G ileme ve alma bakmndan 6800e benzerdir. Program bellei maskeli ROM olduundan, sabit programl ve byk miktarlarda sipari edilmek zorundadr. Adres ve veri babalar, bacaklara tanmadndan deneme yapmak iin uygun deillerdir. 6809, 6800n olduka gelitirilmi bir versiyonu olup MOTOROLA tarafndan 1978 ylnda dnyaya tantlmtr. Bir adet arpma ve 16 bitlik veriler iin baz komutlar ieren olduka gl ve karmak bir komut setine sahiptir. Dahili bir saat devresi vardr, ancak RAM' i yoktur. 6809E versiyonu, birka ek kontrol fonksiyonu iermekte ve harici bir saat devresine ihtiya duymaktadr. 8051, INTEL in dahili ROM ve saat devresine ayrca 1/0 hattna sahip mikro denetim (microcontroller) tm devresidir. 4KBytelk bir ROMa ve 32 1/0 hattna sahiptir. Ayrca 8O32BASIC ad altnda bir de Basic programlar altrabilen versiyonu vardr. Kendi zerinde bir Basic yorumlaycs vardr. Program, ksmen Basic ve ksmen de makine dili ile yazlabilir. 8080 in 6800 den fark donanmdan ok komutlarda ve programlamadadr. INTEL, zel sipari zerine gelitirdii 4 bitlik I4004 (1971) ve 8 bitlik I8008 (1972) entegre devrelerine ilk mterilerinden baka bir ilgi beklemedii iin retim hattn dk kapasitede tutmutu. Ancak 9

aksine bu ilemciler byk bir ilgi grd ve 1974 de genel amal ilk 8 bitlik MB olan I8080 ilemcisini retti. Bu ilemciye byk bir talep oldu ve ksa bir zamanda I8080 endstri standard oldu.. Bu arada 1975 ylnda sektrn ikinci nemli ismi olan Motorola firmas da MC6800 adndaki ilemciyi piyasaya srerek o gnden itibaren sre gelen bir yara katlm oldu. 8080' in 6800den fark donanmdan ok komutlarda ve programlamadadr. 8080, imdiye kadar anlan tm mikroilemcilerden nde olup hzla geni bir takip kazanmtr. Komut seti baz hususlarda 6800den daha gl fakat kesinlikle daha az gvenilirdir. zel bir harici saat yongasna ve 3 adet g kaynana (-5 V, +5V ve +12V) gereksinimi vardr. Z80, 1976da bir grup 8080 tasarmcs tarafndan tasarmlanm ve ZILOG tarafndan piyasaya srlmtr. 8080in komut setini takip eden ancak ek olarak baz gl komutlar ve oklu grevlerin kullanmn kolaylatran bir ok yeni yazma eklenmitir. Z80 basit bir TTL saat retecine ve standart +5V g kaynana gereksinim duymaktadr. 8085, INTEL in 1976da kard ve 8080m gelimi bir versiyonu olan mikroilemcidir. Kendinden bir saat devresine sahip olup sadece 5Vluk bir g kaynana ihtiya duymaktadr. Seri giri ve k hatlar mevcuttur. Veri baras, adres barasnn dk byte ile ortak (multiplex) olarak kullanlmaktadr. Yani bu hatlar ayn bacaklara baldr ve makine dnnn ilk ksmnda adres bilgisi ve ikinci ksmnda veri bilgisi ka verilmektedir. Bellek ve evre yongalar kullanlacaksa, bunlar ya INTEL in multiplex barasna edeer yapya sahip olmal yada bir adres tutucu arabirim kullanlmaldr. Mikroilemcilerin snflandrlmasnda nemli bir l olan bit says ilemcinin zerinde ilem yapabildii en uzun verinin bit saysn gsterir. Kelime uzunluu (word lenght) de denilen bu parametre 4 bit, 8 bit, 16 bit, 32 bit gibi deerler alabilmektedir. Bu deer ayn zamanda ilemcinin saklayclarnn ve veri yolunun geniliini de gsterir. Ancak bazen harici ve dahili veri yollar farkl geniliklerde olabilir. 1978 ylnda ilk 16 bitlik ilemcisi olan 8086 y reten INTEL bir yl sonra 1979 da harici veri yolu genilii 8 bit olmann dnda 8086 ile ayn yapya sahip olan 8088 i piyasaya srd. 8088, 1981 de retilmeye balanan IBM PC (Personel Computer Kiisel Bilgisayarlarn) ilk ilemcisi olmutur. 16 bitlik ilemcilerde endstri standard olan 8086 / 8088 gnmze kadar gelen eitli rnlerle X86 ailesi diye isimlendirilen mikroilemci ailesinin ekirdei (core) olmutur.

10

Hafza Birimlerinin Tanmlar, Fonksiyonlar Kiisel bilgisayarlar programlarn manyetik hard disklerinde, disketlerde ya da optik CD-ROMlarda saklarlar.Bu programlarn altrlmas gerektiinde programlar bulunduklar ortamdan RAMe aktarlarak burada altrlrlar. Mikrokontrolrler ise programlarn farkl tipte belleklerde saklarlar. Uygulanan gerilim kesildiinde programn kaybolduu ve dzenli olarak yenilenmesi (refresh) gereken DRAM ler yerine MCUlar program kodlarn kalc bir bellekte tutarlar. Btn mikroilemci tabanl sistemlerde alabilecek minimum konfigrasyonda Merkezi lem Biriminin yannda Hafza Birimleri yer almaktadr. Sistem programlarnn ve sabit deerlerin zerinde yer ald Salt Okunabilir Hafzalar (Read Only Memory ROM) ile btn deikenlerin, deiken deer alabilen tablolarn yer ald ve geici ilem hafzas olarak kullanlan Okunabilir-Yazlabilir Hafzalar (Read-Write Memory veya Random Access Memory RAM) bulunmadan bir mikroilemcinin almas mmkn deildir. ROM Tr Hafza eitleri ve Fonksiyonlar Salt Oku Bellek (Read Only Memory-ROM) ierisinde bulunan verilerin okunmasna izin veren fakat verilerin deitirilmesine izin vermeyen bir bellek trdr. Salt oku belleklerin programlanmas zel tekniklerle gerekletirilir.Bu tr bellekler genellikle arabalarda,mikrodalga frnlarda ,amar makinalarnda vs. kullanlan MCU sistemlerinde yer alrlar. ROM (Read Only Memory Salt Okunabilir Hafza)zerinde yer alan komut kodlarnn artan adreslere doru srayla birer birer MB tarafndan okunup icra edilmesi nedeniyle zaman zaman Sral Eriimli Hafza olarak da anlr. ROM Ana grupla ayn ad tayan bu alt grup hafza trnde, sistem programlar, fabrikada hafza entegresinin retimi esnasnda entegre devrenin zerine kaydedilir. Factory Mask (Fabrikada Maskeleme) ad verilen bu yntemde, mikroilemci tabanl sistemi reten firma istedii programa ait kodlar, mikroilemci entegresini reten kurulua teslim eder ve ayn programa sahip yksek miktardaki (en az binlerce adet) rn teslim alr. Normal rn fiyatnn yannda maskeleme ilemi iin de sabit bir cret alnmaktadr. Bu cret retilen entegre says ile deimediinden ne kadar yksek adetli retim gerekletirilirse entegre bana den birim maliyet (maskeleme creti) o kadar az olmaktadr. rnein INTEL firmas 8051in maskeleme ilemi iin 3,000 US$ cret almaktadr. Eer 300 mikroilemci programlattrrsanz 10$, 3,000 adet retilirse 1$, 30,000 adet retilirse 0.1$ ek birim maliyet sz konusu olacaktr. 11

Cihaz retimi esnasnda ek bir programlama ilemini gerektirmeme avantajna karlk bu rnlerin gerektiinde deitirilme imkan olmadndan gncel piyasa artlarna pek uygun deildir. nceden belirlenmi olan kodlar, bir hatann belirlenmesi, yeni bir zellik eklenmek istenmesi veya programlarn tamamen deitirilmek istenmesi durumlarnda hi bir mdahale yaplamadan stelik yksek adetlerde firmann elinde kalmakta ve bu da byk bir dezavantaj olarak deerlendirilmektedir. PROM Programmable ROM Programlanabilir-ROM lar temel olarak ROM lar ile ayn zelliklere sahiptir. Fakat zel bir programlayc donanm yardmyla sadece bir kere olmak artyla iine yazma ilemi yaplabilir. Yksek adetli retim yapmayan veya zaman iinde ayn rnn farkl modellerini retmek isteyen firmalar tarafndan tercih edilir. OTP (One Time Programmable Bir Kez Programlanabilir) ROM olarak da adlandrlan bu rnlerin birim fiyat ROM lara gre biraz daha yksek olmakla birlikte kazandrd esneklik nedeniyle avantajldr. Ancak retici firmann bu entegreleri programlamak iin zel bir donanma sahip olmas ve kullanlacak btn PROM larn bir eleman tarafndan programlanmas gerekmektedir. EPROM Erasable PROM Silinebilir PROM lar da temel olarak ROM lar ile ayn zelliklere sahiptir. Fakat zel bir cihaz yardmyla iindeki bilgiler silinebilir. Bu sayede tekrar tekrar programlanabilme zellii kazanan bu tr hafza entegreleri program gelitirirken eitli denemeler yaplmasna imkan verdikleri iin byk avantaj salarlar. Ancak PROM lara gre yksek maliyetleri nedeniyle daha ok program gelitirme aamasnda, AR&GE laboratuarlarnda, vb yerlerde kullanlrlar. Entegre devrenin klfnda, silikon chipin bulunduu yerin st ksm effaf bir malzeme ile rtldr. Ultraviyole k altnda belirli bir sre kalan hafza entegresinin zerinde kaytl olan program silinir. Bylece tekrar programlanabilir hale gelen rn tekrar tekrar farkl programlarn denenmesi ve cihazn altrlmas iin kullanlabilir. Silme ilemi esnasnda belirli artlara dikkat edilmemesi (gereinden fazla sre UV a maruz kalmak, yksek k iddetine sahip UV ampul kullanmak gibi) halinde silinebilme mr ksalan entegreler bir sre sonra kullanlamaz (silinemez) hale gelmektedir. EEPROM Electrically Erasable PROM Buraya kadar anlatlan btn hafza trleri zel ortamlarda iine yazma ilemi yaplabilirken Eeprom larda bu durum daha deiik ve gelimi bir yapdadr. Genel olarak ROM ailesine ait olmakla birlikte

12

mikroilemci tarafndan iine yazma yaplabilmesi zellii ile dier ROM lardan ayrlr. Eprom larda grlen UV k altnda silinebilme zellii, bu tr hafzalarda elektriksel olarak gerekletirilebilmektedir. Yani Mikroilemci elektronik devre kart zerinde bulunan bir Eeproma bilgi yazabilmektedir. Bu bilgi, ROM tr hafzalarn elektrik kesintilerinden etkilenmeme zellii sayesinde unutulmamakta, dolaysyla cihazn almas esnasnda kullanlan, istendiinde deitirilebilen ve fakat silinmemesi istenen bilgilerin, eitli parametrelerin saklanmas iin ideal bir zm tekil etmektedir. RAM Tr Hafza eitleri ve Fonksiyonlar Mikroilemci tarafndan hem okunup hem de yazlabilen hafza trlerinin RAM olarak isimlendirildii daha nce ifade edilmiti. Sistem programlarnda yer alan her trl deikenin zerinde yer ald, geici ilemlerin gerekletirildii trdeki bu hafzalar gerekletirildikleri teknik asndan ikiye ayrlrlar. Statik ve Dinamik RAM olarak adlandrlan bu hafza birimleri hakknda aada zet bilgi verilmitir. RAM (Random Access Memory Rastgele Eriimli Hafza - Oku-Yaz Hafza) Mikroilemcinin almas esnasnda her trl deikenin zerinde yer alaca ve geici ilemlerin yaplaca hafza birimi ise zel bir sra takip etmeden her hangi bir adrese eriilebilindii iin Rastgele Eriimli Hafza RAM olarak isimlendirilir. Ayrca yn (stack) olarak adlandrlan ve mikroilemci programlarnn altrlmas esnasnda eitli alt-programlar kullanldka geri dn adreslerinin, ieriklerinin deimesinin istenmedii register larn sakland hafza blgesi de yine RAM hafza birimlerinde yer alr. RAM tipi entegreler hem yazmada hem okumada kullanldklarndan CPU merkezi ilem nitesinin, bu entegreleri kontrol ederken okuma R ve W yazma sinyalleri gndermesi gerekir. Ayrca entegrenin istendii zaman aktif duruma gemesinin salayacak CS (Chip Select) pini bulunmaktadr ve active low (aktif dk, 0 Volt) ile alr. Statik RAM Her bir biti bir flipflop devresi olan bu tr hafzalar, yeni bir tetikleme iareti gelinceye kadar iindeki bilgiyi (0 veya 1i) saklayabilme zellii nedeniyle ok dk g tketimi ile almaktadr. Dardan devreye balanan bir pil yardmyla iindeki bilgileri ok uzun sreler boyunca saklayabilme imkan vardr. Dinamik RAM lara gre daha yksek maliyetli olmalar nedeniyle ok yksek kapasitelerde retilmezler. CS: Chip select , active low .(Entegre seici , 0 ile aktiflenir) WE: Write Enable , active low.(Datayazm aktif , 0 ile aktiflenir) OE: Output Enable , active low.(Data okuma aktif, 0 ile aktiflenir) SRAM girilerine adres , veri ve kontrol sinyalleri uygulanr. Ayrca g ve toprak balantlarna da ihtiya vardr. Tabloda verilen hafzalarn alma gerilimi 13

+5Vtur. Hafza kontrol girileri, yazma veya okuma ilemlerini kontrol ederler. Genel olarak iki yntemi vardr : Birincisi , kontrol hattna sahiptir; CS, WE ve OE. kincisi ise sadece iki kontrol hattna sahiptir; CS ve WE her iki yntemde CS sinyaline ihtiya vardr. Bu sinyal istenilen modln seilmesini salar ve aktif dk ile alr. Birinci hafza kontrol ynetiminde, yazma ilemi iin, hafzaya bir adres uygulanr ve ardndan CS = 0, OE =1 , WE =0 yaplr. Okuma ilemi iinse CS =0 , WE =1 ve OE =0 yaplr. WE ve OE girileri hibir zaman ayn anda aktif olmamaldr. kinci hafza kontrol ynetiminde ise OE sinyali yoktur. WE giriinin deeri yazmay veya okumay belirler . Adres bilgisi uygulandktan sonra WE =0 ise yazma , 1 ise okuma ilemi yaplr. Bu yntem sayesinde bir utan tasarruf edilmi olunur.Yazma okuma ilemleri iin uygulanacak sinyallerde belli bir zamanlama sresine uymak gerekir. Dinamik RAM Her bir biti, bir kuvvetlendirici (genellikle bir tranzistr) ve onun baz giriindeki bir kondansatrden oluan bir yapya sahiptir. Bir biti lojik 1 konumuna getirmek iin kondansatrn doldurulmas gerekir. Ancak kaak akmlar nedeniyle kondansatr boalr. BLGSAYAR TARH 4004 8008 8080 8086 286 Intel386 processor Intel486 processor Intel Pentium processor Intel Pentium II processor Intel Pentium III processor Intel Pentium 4 processor Intel Itanium processor Intel Itanium 2 processor 1971 2,250 1972 2,500 1974 5,000 1978 29,000 1982 120,000 1985 275,000 1989 1,180,000 1993 3,100,000 1997 7,500,000 1999 24,000,000 2000 42,000,000 2002 220,000,000 2003 410,000,000

14

ekil 8. Moore Kanunun Intel Firmas tarafndan ngrlen hali

ekil 9. Moore Kanunun Intel Firmas tarafndan ngrlen hali

15

Moore Yasas Moore Yasas, Intel irketinin kurucularndan Gordon Moore'un 19 Nisan 1965 ylnda Electronics Magazine dergisinde yaynlanan makalesi ile teknoloji tarihine kendi adyla geen yasa. Her 18 ayda bir entegre devre zerine yerletirilebilecek bileen saysnn iki katna kacacan, bunun bilgisayarlarn ilem kapasitelerinde byk artlar yaratacan, retim maliyetlerinin ise ayn kalacan, hatta dme eilimi gstereceini ngren deneysel (ampirik) gzlem. 1965 ylnda, "mikroilemciler iindeki transistr says her yl iki katna kacaktr" diyen Moore, daha sonralar 1975 ylnda bu ngrsn gncellemi ve her iki ylda bir iki katna kacak ekilde dzeltmitir. Moore "18 ayda bir" ifadesinin de kendisi tarafndan sylenmedii konusunda da srar etmitir. Kendisi tarafndan hibir zaman yasa olarak tanmlanmayan ifadesi, Kaliforniya Teknoloji niversitesi profesr ve yksek lekli indirgeme konusunun nclerinden biri olan Carver Mead tarafndan bu ekilde adlandrlmtr. Szn ilk sylendii 1965 ylndan bu yana bu yasa ounlukla geerli olmutur. Yasa temel olarak bir entegre devrenin fiziki boyutunun devreyi oluturan transistr saysnn karesiyle deitii anlamna gelir. rnein entegre devre bnyesindeki transistr says iki katna karsa devrenin boyutu drt katna kar. Optik litografi yntemi ile retilen entegre devrelerde gnmzde silisyum yongalar zerinde 65 nanometre (1 nanometre = 10-9m) boyutuna kadar byklklerde, yani yaklak olarak 600 silisyum atomu boyutunda yaplar oluturulabilmektedir. Kullanlan mortesi k dalga boylarnn, atom fiziksel boyutlarnn snrll ve kk yaplarn yksek frekanslarda altrlmasnda ortaya kan alma dzensizlikleri, yeni bir entegre devre teknolojisi gelitirilemez ise Moore yasasnn ksa bir sre geerliliini yitireceini gstermektedir. Gordon Moore, 13 Nisan 2005 tarihinde kendisi ile yaplan bir syleide, ngrsnn ksa bir zaman iinde geerliliini yitirebileceini ifade etmitir.

ekil 10. Gordon Moore's original graph from 1965

16

MKRODENETLEYCLER

PIC MikroDenetleyici
I/O Giri/k nitesi CPU MKROLEMC RAM Bellek

EVRESEL NTELER (MONTR-PRINTER-KLAVYE)


ekil 11. Mikrodenetleyicilerin Yaps

Mikrodenetleyici Nedir?: Bir yazlm olmadan hibir ie yaramayan bir plastik, metal ve temizlenmi kum yndr. Mikrodenetleyiciyi kontrol eden bir yazlm olduundaysa neredeyse snrsz bir uygulamaya sahiptir. Bir Mikrodenetleyiciler, komple bir bilgisayarn (MB, hafza ve giri klar) tek bir entegre devre zerinde retilmi halidir. Kstl miktarda olmakla birlikte yeterince hafza birimlerine ve giri k ularna sahip olmalar sayesinde tek balarna (stand alone) alabildikleri gibi donanm oluturan dier elektronik devrelerle irtibat kurabilir, uygulamann gerektirdii fonksiyonlar gerekletirebilirler. Mikrodenetleyiciler ounlukla, yer aldklar uygulama devresinin iine gmlm, sadece oraya adanm olarak kullanlrlar. Bu zellikleri nedeniyle bilgisayarlardaki kullanc uygulama programlarn altrma gibi esneklikleri olmamakla birlikte kontrol arlkl uygulamalarda alternatifsiz seenek olarak karmza karlar.Onlar byle cazip klan, ok dk boyutlu olmalar (az yer kaplamalar), dk g tketimleri, dk maliyetlerine karn yksek performansa sahip olmalar gibi zellikleridir. Motor kontrolnden fotoraf makinesi k ve fokus ayarna, cep telefonlarndan merkezi klima sistemlerine, faks ve fotokopi makinelerinden radyo teyp ve TV lere, fabrika otomasyonundan hayat kurtaran biyomedikal cihazlara, oyuncaklardan askeri cihazlara, cebinizdeki elektronik bilet 17

uygulamasndan czdannzdaki banka kartlarna varncaya kadar akla gelebilecek her yerde Mikrodenetleyiciler yer almaktadr. Bu tr uygulamalarda kullanldklar iin hafza ve paralel/seri giri-k birimlerinin yan sra zamanlayclar (timers), sayclar (counters), kesme kontrol birimleri (Interrupt Control), Analog-Saysal dntrcler (A/D Converters) gibi eitli evre birimleri de Mikrodenetleyiciler entegre devrelerinin iinde yer almaktadr. Ayrca genellikle gerek zamanl uygulamalarda almalaryla Mikrodenetleyiciler, mikroilemcilerden ayrlmaktadrlar. Gerek zamanl uygulamalarda d dnyadan (ilemcinin dndaki elektronik ortamdan) gelen iaretler ok hzl deiim gsterebilir ve bunlar ileyip gereken klar ayn hzllkta d dnyaya uygulamak gerekebilir. Byle bir performans, ok kk boyutlarda ve ok daha az g gerekletirmek tketerek sadece Mikrodenetleyiciler araclyla mmkndr. Dier taraftan matematik ilem yapma yeteneklerinin kstl oluu, ok eitli on-chip evre birimlerine sahip olmakla birlikte bunlarn kapasitelerinin de snrl olmas nedeniyle bir mikroilemcinin kullanld (rn: bir kiisel bilgisayar gibi) yerler iin uygun bir seenek oluturmazlar. Sonu olarak mikroilemciler ve Mikrodenetleyiciler temelde ayn alt yap alma mantna sahip olmakla birlikte kullanm yeri ve amacna gre iki ayr grup rn olarak deerlendirilebilir. Mikroilemciler ve Mikrodenetleyiciler gnlk hayatta kullanlan saysz cihaz ve sistemin iinde yer almakta olup, bu rnleri kullanarak gerekletirilebilecek uygulamalar insann hayal gc ile snrldr. Gnmzde Mikroilemci ve Mikrodenetleyiciler reten irili ufakl pek ok firma bulunmaktadr. Bunlara rnek olarak INTEL, MOTOROLA, AMD, PHILIPS, SIEMENS, TEXAS INS., DALLAS, ATMEL, MICROCHIP, HITACHI, MITSUBISHI, SGS-THOMSON, ANALOG DEVICES, NATIONAL gibi firmalar saylabilir. Bu firmalarn bazlar sadece kendilerine zg ilemcileri piyasaya srerken bazlar da ilk retimi ve patenti bir baka firmaya ait olmakla birlikte, orijinal ilemci ile uyumlu fakat eitli baka ek zelliklere de sahip trev rnler (derivatives) retebilmektedir. 1995 istatistik raporlarna gre Intel uyumlu ilemciler %70 lerin zerindeki Pazar payyla en yaygn kullanlmakta olan rnlerdir. Mikrodenetleyicinin Avantajlar: Mikrodenetleyiciler mikroilemcilere gre daha yava ve bellek adresleme yetenekleri daha azdr. Buna ramen gerek zamanl uygulamalarn zm iin gereklendiklerinden hem kullanmlar kolaydr hem de daha ucuzdur. Mikrodenetleyiciler yap olarak ok fazla d donanma ihtiya duymazken mikroilemcili bir sistem yapldnda mikroilemcinin yan sra hafzalar (RAM, ROM veya EPROM), GR / IKI giri k birimi ve buna benzer birok sistem kullanlmaktadr. Bu kark sistemin hem tasarlanmas ve yapm zordur, hem de maliyeti olduka yksektir. Mikrodenetleyicilerde de bir sistemin altrlabilmesi iin yalnzca bir 18

mikrodenetleyici ve osilatr devresi kafi gelmektedir. Sistemde gerekli olan n bellek ve GR / IKI birimi mikrodenetleyiciler iinde bir yonga halindedir. Kontrolrlerin kullanmnn kolay olmas endstriyel uygulamalarda olduka fazla kullanlmalarn salamaktadr. 1.4 PIC MKRODENETLEYCLERNN TERCH SEBEPLER a) Lojik uygulamalarnn hzl olmas, b) Fiyatnn olduka ucuz olmas, c) 8 bitlik mikrodenetleyiciler olmas ve bellek ile veri iin ayr yerleik BUSlarn kullanlmas, d) Veri ve bellee hzl olarak eriiminin salanmas, e) PICe gre dier mikrodenetleyicilerde veri ve program tayan bir tek bus bulunmas, dolaysyla PICin bu zellii ile dier mikrodenetleyicilerden iki kat daha hzl olmas, f) Herhangi bir ek bellek veya giri / k eleman gerektirmeden sadece 2 kondansatr ve bir diren ile alabilmeleri, g) Yksek frekanslarda alabilme zellii, h) Stand-by durumunda ok dk akm ekmesi, i) Kesme kapasitesi ve 14 bit komut ileme hafzas. 1.5 PICN KULLANIMI N GEREKL AAMALAR GR / IKI (Giri / k): Mikrodenetleyicinin d dnya ile ilikisini salayan, girdi ve kt eklinde ayarlanabilen bir balant pinidir. GR / IKI ounlukla mikrodenetleyicinin iletiim kurmasna, kontrol etmesine veya bilgi okumasna izin verir. Yazlm: Mikrodenetleyicinin almasn ve iletilmesini salayan bilgidir. Baarl bir uygulama iin yazlm hatasz (bug) olmaldr. Yazlm C, Pascal veya Assembler gibi eitli dillerde veya ikilik (binary) olarak yazlabilir. Donanm: Mikrodenetleyici, bellek, arabirim bileenleri, g kaynaklar, sinyal dzenleyici devreler, bunlar altrmak ve arabirim grevini stlenmek iin bu cihazlara balanan tm bileenlerdir. Simlatr: PC zerinde alan ve mikrodenetleyicinin iindeki ilemleri simle eden MPSIM gibi bir yazlm paketidir. Hangi olaylarn ne zaman meydana geldii biliniyorsa, bir simlator kullanmak tasarmlar test etmek iin kolay bir yol olacaktr. te yandan simlatr, programlar tmyle veya adm adm izleyerek buglardan arndrma frsat sunar. u anda en gelimi simlatr program Microchip firmasnn gelitirdii MPLAB programdr. ICE: PIC MASTER olarakta adlandrlr. (In- Circuit Emulator / devre takipisi) PC ve mikrodenetleyicinin yer alaca soket arasna balanm yararl bir geretir. Bu gere yazlm PC de alrken devre kart zerinde bir mikrodenetleyici gibi davranr. ICE, bir programa 19

girilmesini, mikro iinde neler olduunu ve d dnya ile nasl iletiim kurulduunun izlenmesini mmkn klar. Programlayc: Yazlmn mikrodenetleyici belleinde programlanmasn ve bylece ICEnin yardm olmadan almasn salayan bir birimdir. ounlukla seri porta (rnein PICSTART, PROMASTER) balanan bu birimler ok eitli biim, ebat ve fiyatlara sahiptir. Kaynak Dosyas: Hem Assemblerin, hem de tasarmcsnn anlayabilecei dilde yazlm bir programdr. Kaynak dosya mikrodenetleyicinin anlayabilmesi iin nceden assemble edilmi olmaldr. Assembler: Kaynak dosyay bir nesne dosyaya dntren yazlm paketidir. Hata aratrma bu paketin yerleik bir zelliidir. Bu zellik Assemble edilme srecinde hatalar ktka program buglardan arndrrken kullanlr. MPASM, tm PIC ailesini elinde tutan Microchipin son assemble edicisidir. Nesne Dosyas (object file): Assembler tarfndan retilen bu dosya; programc, simlatr veya ICEnin anlayabilecekleri ve bylelikle dosyann ilevlerinin almasn salayabilecekleri bir dosyadr. Dosya uzants assemble edicinin emirlerine bal olarak, .OBJ veya .HEX olur.

20

STENEN AMA

DONANIM TASARIMI

YAZILIM TASARIMI Program_ad.ASM DERLEME-MPASMWIN Program_ad.HEX ASM HATA KONTROL

H A T A V A R

H A T A V A R

DONANIM HATA ARAMA

PIC PROGRAMLAMA IC-PROG

ekil 12. PIC yazm Basamaklar

1.6 PIC MKRODENETLEYCLERNN ZELLKLER Gvenirlik: PIC komutlar bellekte ok az yer kaplarlar. Dolaysyla bu komutlar 12 veya 14 bitlik bir program bellek szcne sarlar. Harvard mimarisi teknolojisi kullanlmayan mikrodenetleyicilerde de yazlm programnn veri ksmna atlama yaparak bu verilerin komut gibi altrlmasn salamaktadr. Buda byk hatalara yol amaktadr. PICler de bu durum engellenmitir. Hz: PIC olduka hzl bir mikrodenetleyicidir. Her bir komut dngs 1sn dir. rnein 5 milyon komutltk bir programn 20Mhzlik bir kristale iletilmesi yalnz 1sn srer. Bu sre 386SX33 hznn yakalk 2 21

katdr. Ayrca RISC mimarisi ilemcisi olmasnn hza etkisi olduka byktr. Komut Seti: PICin 16C5X ailesinde bir yazlm yapmak iin 33 komuta ihtiya duyarken 16CXX aralar iin bu say 35tir. PIC tarafndan kullanlan komutlarn hepsi kaydedici temellidir. Komutlar 16C5X ailesinde 12 bit, 16CXX ailesinde ise 14 bit uzunluundadr. PICte CALL, GOTO ve bit test eden BTFSS ve INCFSZ gibi komutlar dnda dier komutlar 1 saykl eker. Belirtilen komutlar ise 2 saykl eker. Statik lem: PIC tamamyla statik bir ilemcidir. Yani saat durdurulduunda da tm kaydedici ierii korunur. Pratikte bunu tam olarak gerekletirebilmek mmkn deildir. PIC mikrosu program iletilmedii zaman uyuma (uyku) moduna geilerek micronun ok dk akm ekmesi salanr. PIC uyuma moduna geirildiinde, saat durur ve PIC uyuma ileminden nce hangi ileminden nce hangi durumda olduunu eitli bayraklarla ifade eder (elde bayra, zero bayra vs.) PIC uyuma modunda 1Aden kk deerlerde akm eker (stand-by akm). Srme zellii (Src Kapasitesi): PIC yksek bir kt kapasitesine sahiptir. Tek bacaktan 40mA akm ekebilmekte ve entegre toplam olarak 150mA akm aktma kapasitesine sahiptir. Entegrenin 4MHz osilatr frekansnda ektii akm alrken 2mA, stand-by durumunda ise 2A kadardr. Seenekler: PIC ailesinde her trl ihtiyalarn karlanaca eitli hz, scaklk, klf, GR / IKI hatlar, zamanlama (timer) fonksiyonlar, seri iletiim portlar, A/D ve bellek kapasite seenekleri bulunur. ok Ynllk: PIC ok ynl mikrodur ve rnn iinde yer darl durumunda birka mantk kapsnn yerini deitirmek iin dk maliyetli bir zm bulunur. Gvenlik: PIC endstride en stnler arasnda yer alan bir kod koruma zelliine sahiptir. Koruma bitinin programlanmasndan itibaren, program belleinin ierii, program kodunun yeniden yaplandrlmasna olanak verecek ekilde okunmaz. Gelitirme: PIC program gelitirme amacyla programlanabilip tekrar silinebilme zelliine sahiptir (EPROM, EEPROM). Ayn zamanda seri retim amacyla bir kere programlanabilir (OTP) zelliine sahiptir. Liste Dosyas: Assembler tarafndan oluturulan ve kaynak dosyadaki tm komutlar hexadecimal sistemdeki deerleri ve tasarmcnn yazm olduu yorumlaryla birlikte ieren bir dosyadr. Bir program buglardan arndrrken aratrlacak en yararl dosya budur. nki bu dosyay izleyerek yazlmlarda neler olup bittiini anlama ans kaynak dosyasndan daha fazladr. Dosya uzants .LSTdir. Dier Dosyalar: Hata dosyas (error file: uzants: .ERR) hatalarn bir listesini ierir ancak bunlarn kayna hakknda hibir bilgi vermez. Uzants .COD olan dosyalar emlatr tarafndan kullanlrlar.

22

Buglar: Tasarmcnn farknda olmadan yapt hatalardr. Bu hatalar, basit yazlm hatalarndan , yazlm dilinin yanl kullanmna kadar uzanr. Hatalarn ou derleyici tarafndan bulunur ve bir .LST dosyasnda grntlenir. Kalan hatalar bulmak ve dzeltmekte gelitiriciye der.

23

1.7PIC MKRODENETLEYCLERNN DONANIMSAL NCELENMES

ekil 13:PIC 16F84 N Bacak Balantlar

GENEL ZELLKLER DC 10 MHz alma hz 14 bit geniliinde veri yolu 8 seviye yn derinlii Dorudan, dolayl ve greceli adresleme metodlar EEPROMda 40 yl veri tutma EEPROM veri belleine 1.000.000 kez veri yazma silme 13 adet tek tek kontrol edilebilen giri k pini 4 kesilim kayna 8 bit zamanlayc / sayc 8 bit programlanabilir n blc Tamamen statik tasarm Dk gl, yksek hzl CMOS Flash / EEPROM teknolojisi Geni alma voltaj aral (Ticari = 2.0 V, -6.0 V) Dk g tketimi (5V - 4 Mhzde tipik 2 mAden dk, 2V 32 KHzde tipik 15A, 2Vta skunet akm 1 Aden dk) Kod koruma Uyarma modunda g tasarrufu 1024 kelime gncellenebilir 68 bayt veri bellei (RAM rasgele erimli bellek) 64 bayt veri bellei (EEPROM) Yalnzca 35 adet tek kelime komut renme alma scakl (Ticari= 0 C / +70 C , Endstriyel = -40 C / +85C) 24

PIC Mikrodenetleyicilerinin Yaps CPU blgesinin kalbi ALUdur (Aritmetic Logic Unit- Aritmetik mantk birimi). ALU, W (Working alan) adnda bir kaydedici ierir. PIC, dier mikroilemcilerden, aritmetik ve mantk ilemleri iin bir tek ana kaydediciye sahip oluuyla farkllar. W kaydedicisi 8 bit geniliindedir ve CPUdaki herhangi bir veriyi transfer etmek zere kullanr. CPU alannda ayrca iki kategoriye ayrabileceimiz veri kaydedici dosyalar (Data Register Files) bulunur. Bu veri kaydedici dosyalarndan biri, GR / IKI ve kontrol ilemlerinde kullanlrken, dieri Ram olarak kullanlr. PICler de Harward mimarisi kullanlr. Harward mimarisi mikrodenetleyicilerde veri ak miktarn hzlandrmak ve yazlm gvenliini arttrmak amacyla kullanlr. Ayr buslarn kullanmyla veri ve program belleine hzl bir ekilde eriim salanr.

ekil 14:PIC16F84n basitletirilmi i yaps

PIC mikrodenetleyicilerini donanmsal olarak incelerken PIC16F84 zerinde durarak bu PICi temel alp donanm incelenecektir. Bellek ve baz kk farkllklar dnda burada anlatlanlar btn PICler iin geerlidir.

25

Genel Tanmlama PIC16F84 veya F84, dk maliyetli, yksek performansl, COMOS, full-statik, 8 bit mikrodenetleyicilerdir. Tm PIC 16/17 mikrodenetleyiciler RISC mimarisini kullanmaktadr. PIC16CXX mikrolar birok esas zelliklere sahiptir. 8 seviyeli, derin kme ve oklu i ve d kesme kaynaklarna sahiptir. Harward mimarisinin ayr komut ve veri taycsyla ayr 8 bitlik geni veri taycl, 14 bitlik geni komut kelimesine imkan vermektedir. 2 aamal komut hatt tm komutlarn tek bir sayklla (evrimle) ilenmesini salamaktadr. Yalnzca baz zel komutlar 2 saykl ekerler. Bu komutlar dallanma komutlardr. PIC16CXX mikrodenetleyicileri tipik olarak 2:1 orannda kod sktrmasna erimektedir ve snflarndaki 8 bit mikrodenetleyicilerden 2:1 orannda hz artrlmasna olanak salanmaktadr.(10MHz)PIC16F84 Mikrochipi 36 bittlik RAM belleine, 64 bayt EEPROM belleine ve 13 GR / IKI pinine sahiptir. Bunun yan sra, timer ve sayata mevcuttur. PIC16CXX ailesi d elemanlar azaltacak spesifik zelliklere sahiptir ve bylece maliyet minimuma inmekte, sistemin gvenirlii artmakta, enerji sarfiyat azalmaktadr. Bunun yan sra tm PICler de 4 adet osilatr seenei mevcuttur. Bunlarda tek pinli RC osilatr , dk maliyet zmn salamakta (4MHz), LP osilatr (kristal veya seramik rezonatr), enerji sarfiyatn minimize etmekte (asgari akm) (40 KHz), XT kristal veya seramik rezonatr osilatr standart hzl ve HS kristal veya seramik rezonatrl osilatr ok yksek hza sahiptir (20 MHz).

26

ekil 15.PIC16F84n basitletirilmi i yaps

27

PIC mikrodenetleyicilerinin en byk zellii uyku modu zelliidir. Bu mod ile PIC ilem yaplmad durumlarda uyuma moduna geerek ok dk akm eker (5mA). Kullanc birka i ve d kesmelerle PICi uyuma modundan karabilmektedir. Yksek gvenirlikli Watchdog timer kendi bnyesindeki yonga st RC osilatr ile yazlm kilitlemeye kar korumaktadr. PIC16F84 EEPROM program bellei, ayn aygt paketinin orjinali ve retimi iin kullanlmasna olanak vermektedir. Yeniden programlanabilirlii mikroyu uygulamann sonunda kaldrmadan kodu gncelletirmeye izin vermektedir. Bu aygtn kolayca eriilemedii, fakat prototipin kod gncelletirmesi gerekli olduu durumlarda, bir ok uygulamann gelitirilmesinde yararldr. Bunun yan sra bu kodun gncelletirilmesi dier ayr uygulamalarda da yararldr. ekil 1.3 de PICin basitletirilmi i yaps grlmektedir. PICler zelliklede PIC16F84 yksek hzl otomobillerden, motor kontrol uygulamalar, dk enerji sarfiyatl uzaktan alan sensrler, elektronik kilitler, gvenlik aygtlar ve akll kartlara kadar bir ok uygulamalarda kullanlrlar. EEPROM teknolojisi uygulama programlarn (transmitter kodlar, motor hzlar, alc frekanslar, gvenlik kodlar vb.) uygulanmasn son derece hzl ve uygun hale getirmektedir. Kk boyutlaryla bu mikrodenetleyiciler alan snrlamas bulunan uygulamalarda kusursuzdur. Dk maliyet, dk enerji sarfiyat, yksek performans, kullanm kolayl ve GR / IKI esneklii zellikle de PIC16F84 mikrosunun daha nce kullanlmas hi dnlmeyen alanlarda kullanlmasn salamaktadr (bunlar; timer fonksiyonlar, seri komnikasyon, PWM fonksiyonlar ve birlikte ilemci uygulamalar). Seri sistem ii programlama zellii (iki pinin zerinden) rnn tamamen toplanmas ve test edilmesinden sonra rnn altrlmas imkan vermektedir. Bu zellik sayesinde rn esneklie seriletirilebilmekte ve veriler saklanabilmektedir. Gelime Destei PIC16CXX snf tam zellikli mikrobirletirici, yazlm simlator, devre ii emlatr, dk maliyetli program gelitirme ve tam zellikli PIC16F84, PIC16C5X programlayc ile desteklenmitir. Mikrodenetleyicilerinin gelitirilmi halidir. PIC16C5X iin yaplan devrelerde kolaylkla PIC16F84 kullanlabilir. HAFIZA ORGANZASYONU PIC iersinde iki hafza blou bulunur. Bunlar program hafzas ve data hafzasdr. Her bir bloa geiin kendi bacaklar vardr. Data hafzas genel amal RAM ve zel fonksiyon kaydedicilerini ierir. Data hafza alan ayrca EEPROM hafzasn iermektedir. Data EEPROM hafzasnn yazlmas ve okunmas iin adresi tayin eden, dolayl adres iaret

28

edicisidir. Data arasndadr.

EEPROM

hafzasnn

64

baytn

adresi

00-3HF

Program hafza (memory) blok Data hafza (memory) blok

PROGRAM HAFIZA ORGANZASYONU 14 bit kelime boyunda ve 1 Kbyte kapasitesindedir.13 bit ile adreslenir, program bus 14 bittir. Buraya program olarak yazp Pic iine attmz hex dosyas bilgileri yazlr, gerekirse silinir ve tekrar yazlr. 8K14 program hafza alann adresleme yeteneine olan bit 13-bit program saycsna sahiptir. Bunun sadece 1K14 (0000-03FH) fiziksel olarak gerekletirilir. Fiziksel olarak gerekletirilmi adres zerinde bir blgede gei kapsamaya sebep olacaktr. rnein, blgeler 20H, 420H, 820H, C20H, 1020H, 1820H ve 1C20H ayn talimatta olacaktr. Reset vektr 0000Hde ve kesme vektr 0004Hdedir. DATA HAFIZA ORGANZASYONU Data hafzas iki alana blnmtr. Birincisi zel fonksiyon kaydedici (SFR) alan; ikincisi zel amal kaydedici (GPR) alandr. SFRler PICin operasyonunu kontrol eder. Data hafzasnn paralar banka konulur. Bu hem SFR hem de GPR alan iindir. GPR alan genel amal RAMin 96 baytdan byk olmas iin banka konulur. SFRnin banka yatrlm evresel fonksiyonlar kontrol eden kaydediciler iindir. Banka yatrma, bank seimleri iin kontrol kullanm gerekletirilir. Bu kontrol bitleri DURUM kaydedicilerine yerletirilmitir. Komutlar MOVWF ve MOVF, deerleri W kaydedicisinden kaydedici dosyasndaki (F) herhangi bir blgeye karlk olarak kaydrlr. Tam dalga hafzas ya dorudan, yada dolayl olarak dosya seme kaydedicisi (FSR) ierisinden geirilir. Dolayl adreslemede data hafzasnn banklarna gei iin RPO:RP1 bitlerinin mevcut deerleri kullanlr. Her bankn daha dk yerleimleri SFRler iin saklanr. 8 bit tabanl olan 64Kbyte a kadar adresleme yapabilen, 32 adet I/O portuna sahip bu ilemciler kendi endustri standartn oluturdu. 8031 ailesinin en nemli dejavantaj ise Eprom programlamann zorluklar , almas iin harici entegrelere ihtiya duymas idi. Geri 8051 de bu sorun yok ama onda da 8031 e gre fiyat dejavantaj var. Bu makalede RISC mimarisi ile retilen ve 8031 ailesine gre daha stn zelliklere sahip olan (Fiyat,Kolay programlama,Bol kaynak,...) Microchip in PIC serisi mikroilemcilerinden en popleri olan 16C84/16F84 tantlacaktr

29

ekil 16.Program Hafza Organizasyonu

30

ekil 17.W register

GENEL AMALI KAYDEDC (GPR) GPR 8 bit geniliinde olup, btn devrelerde belirli miktarda GPR blgesine sahiptir. PIC16F84 devresinde kmelenmi hafza blgesi GPR iinde yoktur. Bazlar Bank1 giri yapacak, bazlarda hedef olarak Bank 0 gidecek, bu ise MSBnin bir neminin olmadn gsterir. ZEL FONKSYON KAYDEDCLER SFRler PIC operasyonu kontrol etmek amacyla CPU ve evresel fonksiyonlar tarafndan kontrol edilir. Bu kaydediciler statik RAMlerdir. zel kaydediciler iki sette snflandrlr. ekirdek fonksiyon ile birletirilmi olanlar bu blmde tanmlanmaktadr. evresel zelliklerin operasyonu ile balantl olanlar spesifik zellik blmnde tanmlanmaktadr.

31

Adresler Bank 0 00h 01h 02h 03h 04h 05h 06h 07h 08h 09h 0Ah 0Bh Bank 1 80h 81h 82h 83h 84h 85h 86h 87h 88h 89h 8Ah 8Bh

Dosya Ad

Bit 7

Bit 6

Bit 5

Bit 4

Bit 3

Bit 2

Bit 1

Bit 0

INDF TMR0 PCL STATUS FSR PORTA PORTB -EEDATA EEADR PCLATH INTCON INDF OPTION_REG PCL STATUS FSR TRISA TRISB -EECON1 EECON2 PCLATH INTCON

FSR Kaydedicisi tarafndan kullanlr. Fiziksel bir kaydedici deildir 8 bit gerek zamanl darbe sayc PC nin dk seviyeli bitleri

IRP
-RB7

RP1
-RB6

RP0
-RB5

IO RA4/T0CKI RB4

PD

Z
RA2 RB2

DC
RA1 RB1

C
RA0 RB0

Dolayl Hafza Adres Gstericisi RA3 RB3

Tanmlanmam Konum EEPROM Veri Kaydedicisi EEPROM Adres Kaydedicisi PCnin yksek bytelarn bulunduran kaydedici GIE EEIE T0IE INTE RBIE T0TF INTF RBIF

FSR Kaydedicisi tarafndan kullanlr. Fiziksel bir kaydedici deildir RBPU INTEDG T0CS T0SE PSA PS2 PS1 PS0 Pc nin dk seviyeli bitleri

IRP
--

RP1
--

RP0
--

IO

PD

DC

Dolayl Hafza Adres Gstericisi PORTA (f05) data ynetim kaydedicisi PORTB (f06) data ynetim kaydedicisi Tanmlanmam Konum --GIE --EEIE --T0IE EEIF WRERR WREN WR RD EEPROM kontrol kaydedicisi 2 Fiziksel bir kaydedici deildir PC nin yksek bytelerini tutan kaydedici INTE RBIE T0TF INTF RBIF

Tablo 1.Kaydedici dosyalar (PIC16F84)

32

DURUM (STATUS) KAYDEDC DURUM kaydedicisi, data hafzas iin ALU, RESET durumlar ve bank seimlerinin aritmetik durumlarn ierir. DURUM kaydedicisi Z, DC veya C bitlerini etkileyen talimat iin gidilecek yer ise bu bite yazm engellenir. Bu bitler yerletirilir veya PIC mantna gre temizlenir. Ayrca TO ve PD bitlerine yazlamaz. Bu yzden var olarak DURUM kaydedicisi komutu verilecek olursa sonu tasarlanandan farkl olabilir. rnein; CLFR DURUM stteki biti temizleyecek ve Z bitini yerletirecektir. Bu DURUM kaydedicisine 00uu1uu brakacaktr. (u=deimez) Sadece BCF, BSF, SWAPF ve MOVWF komutlar DURUM kaydedicisini deitirmek iin kullanlmaktadr. nk bu komutlar hibir DURUM bitini etkilemez. IRP ve RPI bitleri (DURUM<7;6>) PIC16F84 tarafndan kullanlmaz ve temizlenmi olarak programlanr. Genel ama R/W bitleri olarak bu bitlerin kullanm tavsiye edilmez. Bu yzden gelecek rnler ile yukar doru uygunluu etkilenebilir. C ve DC bitleri bor alma olarak iler ve dikit srasyla kartmada bir bor alr. rnekler iin SUBLW ve SUBWF komutlarn inceleyebiliriz.
bit 7 6 5 4 3 2 1 bit0

IRP

RP1

RP0

T0

PD

DC

33

Bit 7

IRP

Register Bank Select Bit (Dolayl adresleme Bank Seme Biti) 0= Bank 0, 1 (h00-hFF) 1= Bank 1, 3 (h100-h1FF) IRP biti 16F84 de kullanlmaz 0 olarak kalmak zorundadr. Register Bank Select Bit (Dorudan adresleme Bank Seme Biti)

Bit 6-5

01= Bank 1 (h80-hFF) RP0 00= Bank 0 (h00-hFF) 10= Bank 2 (h100-h17F) 11= Bank 3 (h180-h17F) 16F84 de sadece RP0 biti kullanlr. RP1 0 olarak kalmak zorundadr. Time Out Bit i (zaman Dolma Biti) T0 1= PIC e enerji verildiinde CLRWDT ve SLEEP komutu alnca 0=WDT zamanlaycsnda, zaman dolduunda Power DownTime Out Bit i (Enerji Kesilme Biti) 1= PIC e enerji verildiinde CLRWDT komutu alnca 0=SLEEP komutu alnca Zero Biti (Sfrlama Biti) 1= bir aritmetik veya mantksal komutun sonucu 0 (sfr) olduunda 0= bir aritmetik veya mantksal komutun sonucu 0 (sfr) olmadnda Digit Cary Barrow Biti (Tama /dn Biti) ADDLW ve ADDWF komutlar kullanldnda oluan tama ve dn alma olduunda 1= Alt drt bitin 4. bitinde tama meydana geldiinde 0= Alt drt bitin 4. bitinde tama meydana gelmediinde Cary Barrow Biti (Tama /dn Biti) ADDLW ve ADDWF komutlar kullanldnda oluan tama ve dn alma olduunda 1= En soldaki 7. bitinde tama meydana geldiinde 0= En soldaki 7. bitinde tama meydana gelmediinde

Bit 4 Bit 3 Bit 2

PD

Bit

DC

Bit

NOT:RLF ve RRF komutlar altnda en sol bit veya en sa bitin deeri Cary bitine yklenir.
Tablo 2. Status (Durum) kaydedicisi

34

GR / IKI PORTLARI PIC16F84, 2 port olup, bunlar sras ile PORTA ve PORTBdir. Baz PORTB bacaklarnn nitelikleri deitirilebilir. PORTA ve TRISA KAYDEDCS PORTA ve TRISA kaydedicileri, PORTA 5 bit geniliinde anahtar ve RA4 schmit tetikleyici giri ve k kollektrl ktan ibarettir. Dier RA4 portlar TTL giri ve tamamen CMOS kl srclerdir. Portlara giri ve k yaplabilir. TRISA kaydedici herhangi bir biti lojik 0 ise ilgili PORTA biti 0 biti k olur. TRISA kaydedici herhangi biti lojik 1 ise ilgili port, giri olur. PORTA kaydedici durumlarn okuyor ve k bacaklarna yazyor, btn yazlabilir operantlar okunabilir, deitirilebilir, yazlabilir. Dolaysyla PORTA bacaklar ilk olarak okuyor, daha sonra durum deitiriyor ve sonucu PORTA anahtarna yazyor.
Bit No Port Bin Ad Pin Fonksiyonu Alternatif Fonksiyon

Bit 0 Bit1 Bit2 Bit3 Bit4

RA 0 RA 1 RA 2 RA 3 RA 4 /TCOK1

GR / IKI port TTL giri seviyesinde GR / IKI port TTL giri seviyesinde GR / IKI port TTL giri seviyesinde GR / IKI port TTL giri seviyesinde GR / IKI port k ak kollektr tipinde, giri Schmit Trigger tipinde PORTA Fonksiyonlar

Analog Giri kanal 0 Analog Giri kanal 1 Analog Giri kanal 2 Analog Giri kanal 3 / harici referans voltaj VREF RTCC timer / counter iin harici giri

PORTB ve TRISB KAYDEDCS PORTB 8 bit geniliinde ift ynl porttur, uygun kontrol kaydedicisi TRISBdir. TRISB kaydedici A 1 olduunda k srcsnde yksek empedans meydana geliyor, kaydedici A 0 olursa, k anahtarna iaret gnderiyor. Her bir PORTB zayf dahili ekmeye sahiptir. Btn ekme ilemi tek bir kontrol bitinin dndrlmesi ile salanr. Bunun sonucu RPBU (seenek <7>) biti kendini temizler. Zayf darbe otomatik olarak ak durumuna geer. Eer PORTB bacaklar k olduu taktirde PORTB bacanda 4 RB7, RB4 deiiklie kar kesici vardr. Bacaklarn durumunu giri modunda nceki durum ile 35

karlatrlr ve deiiklik olmusa kesme devreye girer. kn ilk bacaklarndaki uygunsuzluk RBF kesicisini oluturmaktadr (INTCON <7>). Bu kesme devreyi uykudan uyandrabilir. Kullanc kesiciyi, iki ekilde temizleyebilir. RBIE temizlendiinde kesme bu durumdan mahrum edilebilir. Yada PORTB okunur, daha sonra RBIF temizlenir. Uygunsuzluk durumunda RBIF set durumunda devam eder. PORTBnin okunmas uygunsuzluk durumunda sona erecektir ve uygunsuzluk RBIF bitini temizler. NOT: GR / IKI deiiklik vuku bulduunda eer okuma ilemi (balang Q2 zamannda) olursa, RBIF bayra set olmayacaktr. Deiiklik annda kesicilerin kullanlmas (PORTBnin oylamas esnasnda) tavsiye edilmiyor. PORTBnin sadece deiiklik annda kullanlmas tavsiye ediliyor. GR / IKI PROGRAMLAMANIN NEM ift ynl GR / IKI Portlar Baz komutlar dahili olarak yazlm ile takip edilen okuma olarak ilem grrler. rnek olarak BCF ve BSF komutlar btn portu CPUya okur, bit ilemini gerekletirir ve sonucu tekrar ktan alr. Bir veya daha fazla bacan giri k olarak kullanld bu komutlar bir porta uygulandnda dikkat edilmelidir. rnein PORTBnin 5. biti zerinde yaplan bir BSF ilemi PORTBnin 8 bitinin tamamnn CPUya okunmasna sebep olur. Sonra PORTB dier biti ift ynl GR / IKI baca olarak kullanrsa ve giri olarak tanmlanrasa mevcut bacaktaki mevcut giri sinyali CPUya okunur ve bu zel bacan data latchine daha nceki ieriin zerine yazlr. Bacak giri modunda kald srece bir problem kmaz. Ancak 0 biti k moduna getirilirse data latchin ierii bilinmeyebilir. Sfr veya bir ekilde aktif olarak k veren bir bacak ayn anda zerindeki seviyeyi deitirmek amac ile harici devreler tarafndan srlmemelidir. Sonuta yksek k akmlar yongaya zarar verebilir. Giri / k Portlarnda Ard Arda Gelen lemler Bir GR / IKI gerek yazlm komut peryodunun sonunda meydana gelir. Oku-yaz ilemi bir oku ilemi tarafndan takip ediliyor ve ayn GR / IKI portta gerekleiyorsa dikkat edilmelidir. Komutlar dizisi CPUnun iinde dosyann okunmasna sebep olan bir sonraki komuttan nce bacak voltajnn stabilize edilmesine izin verecek ekilde olmaldr. Aksi takdirde bacan bir nceki durumu yeni durumdan ziyade CPUya ilenecektir. Kararszlk durumunda bu komutlar NOP komutu ile veya GR / IKI portu artrmayan baka bir komutla ayrmak daha iyi olur.

36

EVRESEL ZELLKLER 16F84 n Giri ve k Deerleri 16F84'n ektii akm saat hzna baldr. Saat hz arttka ekilen akm artar. 4 Mhz saat hznda ekilen akm 2 mA kadardr. Eer pic sleep modda ise bu akm 40 mikroamper'e kadar der. CMOS entegrelerde giri uclarn +5 Volt'a balamak gerekir.16F84 de bir CMOS entegredir, fakat burada pic iinde I/O pinleri zel ekilde balanmlardr ve program aracl ile giri veya k halne getirilir. Giri pozisyonunda bu ular pullup konumundadr, yani pic iinde bir ekilde +5 volta bir diren zerinden bal gibidir. Burada pull-up direnleri 50 K kadardr.

16F84 n klarnn Balanmas 16F84'n 13 ucunu da k olarak kulllanabiliriz. Bu klar A ve B diye ikiye ayrlr A klar 5 adettir RA0-RA1-RA2-RA3-RA4 diye adlandrlr. B klar ise 8 adettir ve bunlarda RB0-RB1-RB2-RB3-RB4RB5-RB6-RB7 diye adlandrlrlar. Bu klar da bir tek RA4 yani TOCKI ucu dierlerinden farkldr ve bu u ak kollektr zellii gsterir, bu nedenle k olarak kullanldnda, 10 K lk bir diren le + 5 V a aslr. RB0 ucu giri olarak ayarlanrsa, ayn zamanda "external interrupt" giriidir. Yine B port'un 4-5-6-7 klar (RB4-RB5-RB6-RB7) internal interrupt alma zelliindedir. Pic power-on reset ile yani pic'e enerji verildiinde, balang adresinden balar. Bu durumda tm pull-uplar iptal edilmi olur ve pic portlar k pozisyonundadr. Programlama ile port klar giri veya k olarak ynlendirilir, bunun iin "option" register iinde de disable veya enable seenekleri vardr. Power-on reset ile disable olan pic de tm portlar ktr.

37

Bu portlarn giri veya k olarak ynlendirilmesi TRIS register ile salanr, veya Write register vastas ile aktarlan komutlar yardm ile port lar tek tek seilebilir.

PIC 16F84 n portlaryla kontrol edilen 220 v luk lamba ve LED B portunun 8 ucu PIC ierisinde 50 KOhm luk direnlerle pull-up yaplm gibi etki gsterir. Bu 8 pull-up direncin tamam option register yazlm aracl ile iptal edilebilir. Port ularndan herhangi birisi k olarak ynlendirildiinde o utaki pull-up direnci otomatik olarak iptal olur.16F84'n altrlmasnda en ok kullanlan yntemler :

38

RESET LEM Pic'i balang adresinden balatan 3 mekanizma vardr bunlar : 1-) Power-on reset 2-) MCLR reset (Master Clear Reset) kullanc tarafndan program baa dndrmeye yarar. 3-) Watchdog timer (ptal edilmediinde program belli zaman aralklar ile baa dndrr.

PIC 16F84 n RESET DEVRES

39

OSLATR KONFGRASYONU Osilatr Tipi 1-) RC - Diren/Kondansatr (Resistor/Capasitor) 2-) XT - Kristal veya Seramik rezonatr (Xtal) 3-) HS - Yksek hzl Kristal veya seramik resonator (High Speed) 4-) LP - Dk Frekansl Kristal (Low Power) Osilatr Tipi RC LP XT HS (-04) HS (-10) HS (-20) OSLATR TP LP Frekans Snr 0~4 Mhz 5~200 KHz 100 KHz ~ 4 MHz 4 MHz 4~10 MHz 4~20 MHz FREKANS 32 KHz 200 KHz 100 KHz 500 KHz 1 MHz 2 MHz 4 MHz 8 Mhz 20 MHz KONDANSATR 33 ~ 68 pF 15 ~ 47 pF 47 ~ 100 pF 20 ~ 68 pF 15 ~ 68 pF 15 ~ 47 pF 15 ~ 33 pF 15 ~ 47 pF 15 ~ 47 pF

XT

HS

PIC16F84 4 farkl osilatr moduna sahiptir. Bu 4 modun birini semek iin kullanc iki konfigrasyon bitinden (FOSC1 ve FOSC2) seebilir. Kristal Osilatr / Seramik Rezonatr OSC1 / CLKN ile OSC2 / CLKOUT seramik rezonatr XT, LP veya HS modundaki kristal veya seramik rezonatr balanr. PIC16F84 osilatr plan ile paralel kristal osilatr kullanlyor. Kesme kristal serisi kullanldnda kta 40

frekans veriyor. Eer XT, LP veya HS modunda ise OSC1 / CLKIN bacandaki harici clock kaynana da sahip olabilir. Harici Kristal Osilatr Devresi Paket osilatr kullanlabilir yada TTL kapl basit devresi kurulabilir. Paket osilatr geni ilem sras salamakta ve iyi bir ekilde kararldr. Uygun plandaki kristal osilatr TTL kap ile birlikte ok iyi performans salamaktadr. ki tip kristal osilatr devresi kullanlabilir; ilki seri rezonans ve dieri paralel rezonanstr.

Seramik rezanatr Bir 16F84'de + gerilim ile GND ular arasna bir adet 0.1 uf kondansatr konmas, istenmeyen baz gerilim dalgalanmalarn nler. 16 nolu bacaktan girilen osilatr sinyali, pic iinde 4'e blnr ve frekansn 1/4' 15 nolu bacaktan alnabilir. Bu 4'e blnm saat frekansnn karl olan periyota "instruction cycle"yani komut sresi denir. Bu bir komutun ilenmesi iin gereken zamandr.16F84'de bu 4 Mhz de 1 mikrosaniye 10 Mhz de ise 0.4 mikrosaniyedir. Bu zaman, programlama esnasnda ok nem arzeder, bu komut srelerinin toplam ile zamanlar hesaplanr. Dardan balanan osilatrler ile pic daha yava saat hzlarnda da altrlabilir. Bu nun iin kullanlan u RA4 /TOCKI pinidir. Buras k olarak RA4, giri olarak ta TOCKI giriidir (Timer Zero Clock Input). Kristal osilatr kullanldnda 16F84'e 22 pf kondansatr balanr. Seramik rezonatr iin bir zellik yoktur.

41

RC Osilatr Daha nemsiz devrelerde masraftan kamak iin RC osilatr tercih edilir. RC osilatr frekans kaynak voltajn, rezonatrn ve kapasitr ile alma deeri scaklnn bir fonksiyonu olarak ortaya kar. Buna ek olarak osilatr frekans normal alma parametresinin deiimine gre nite deitirecektir. Bundan baka paketleme tipi arasndaki kurun levhalarn kapasite farklar da osilator frekansn etkiler. zellikle dk Cext deeri ve ayrca kullanc tarafdan R ve C elemanlarnn toleranslarna bal olan deiimlerde hesaba katlmaldr. 2.2 kdan dk Rext deeri iin osilatrn almas durabilir veya kararsz olabilir. ok Rext deeri iin osilatr sese, neme ve szntya duyarl hale gelir. Bu yzden 5k ile 100k arasnda olmas tavsiye edilir. Osilatr harici bir kapasite ile altrlmasa da (Cext = 0pF) dan yksek kapasite kullanmak ses ve kararllk iin iyi olur. Kk deerli veya hi harici kapasite kullanmamakla osilasyon frekans harici kapasitedeki deiikliklere bal olarak ciddi ekilde deiir. Osilatr frekans 4e blmek OSC2, CLKOUT baca iin uygun olarak, test iin ve senkronizasyonu iin kullanlabilir. Yksek kapasite osilatrn kararlln ykseltir. Ayrca balama zamann da ykseltir. Bu deerler dizayn iin kullanlr. Her rezonatr kendi karakteristiine sahip olduundan, kullanc harici elemanlarn deerini uygunlatrmak iin rezonatr imalatsna danmaldr. Reset durumu yongaya g uygulayarak, MCLR giri dk duruma getirilerek veya bir WDT zaman am ile gerekletirilebilir. Osilatr balatc zamanlayc aktif olduu zaman veya MCLR girii dk seviyeli olduu mddete devre reset durumunda kalr. MCRL girii yksek seviyeye ayarlanr ayarlanmaz osilatr balatan zamanlayc aktif hale gelir. MCLR Vddye balanmas ile g kesildiinde bu uygulamalar OST gc ile almaya balar. WDT zaman am durumunda zaman amnn sonunda almaya balar. Bu portlarn giri veya k olarak ynlendirilmesi TRIS register ile salanr, veya Write register vastas ile aktarlan komutlar yardm ile port lar tek tek seilebilir.

42

KESMELER PIC16F84 ailesi 4 adet kaynak kesmesine sahiptir: Harici kesme baca RB0/INT TMR0 tama kesmesi PORTB de deiim durumunda kesme EEPROMa yazma ilemi tamamlanmas durumunda kesme ilemi INTCON REGSTER: Bit 7 Bit 6 Bit 5 GIE EEIE T0IE Bit No Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Ad GIE EEIE T0IE INTE RBIE TOIF INTF RBIF Aklama Tm interrupt ilemlerini ama bayra 0: Tm interruptlar disable 1: Tm interruptlar enable EEPROM hafzaya yazma ilemlerini tamamlama interruptu 0: Disable 1: Enable TMR0 saycs interruptunu aktif yapma bayra 0: Disable 1: Enable Harici (RB0) interruptunu aktif yapma bayra 0: Disable (Harici interruptlar geersiz yaparalglanmaz) 1: Enable (Harici interruptlar geerli yaparalglanr) RB7..RB4 deiimi interruptunu aktif yapma bayra 0: Disable (RB7..RB4 deiimi alglanmaz) 1: Enable (RB7..RB4 deiimi interrupt oluturur) TMR0 saycs zaman am bayra 0: Sayc normal saymaya devam ediyor 1: Sayc sayma sresini tamamlam (FF-00geii) Harici (RB0) interrupt bayra 0: Harici interrupt alglanmad 1: Harici interrupt algland RB7..RB4 deiimi interrupt bayra 0: (RB7..RB4 ) uclarnda deiim yok 1: (RB7..RB4) uclarnda deiimi var.

Bit 4 INTE

Bit 3 RBIE

Bit 2 TOIF

Bit 1 INTF

Bit0 RBIF

Kelime anlam olarak kesilim istei anlamna gelen interrupt kelimesi, ilemcinin herhangi bir program gerekletirirken, bu programa dardan gelen bir sinyal sebebiyle ara verip, baka bir programa (interrupt alt program) atlayp, atlad program tamamladktan sonra tekrar geri dnp 43

ilk kald programdan devam etmesi ilemidir. Bu anlatmdan anlalaca gibi interrupt bir alt program altrma ileminin ayns gibidir. Ancak, alt programn arlma ekli farkldr. Bu fark ise normal alt program arma ilemi CALL komutu ile yaplrken, interrupt alt programnn ise, normal programn herhangi bir annda dardan gelecek bir sinyal ile arlmas olaydr. Uygulamada ok rastlanan bir rnekle konuyu aklayalm: rnein evinizde film seyretmek istediinizde filmi seyretme iinizi durduracak kaynaklar bellidir. rnein telefon almas, kapnn almas yemein yanmas, vb. te film seyrederken telefon almas durumunda filmi durdurup telefona basmas ii bir interrupt olaydr. Eer film seyretmeye balarken kap alarsa bakarm telefon alarsa bakmam diyorsanz pic teki gibi sizi etkileyecek kaynaklar belirlemi oluyorsunuz. Bilgisayarnzda bir program alyorken sizin klavye basmanz durumunda bilgisayarnzn buna tepki vermesi de bir kesme durumudur. Aksi durumda zaten program alacak iini bitirinceye kadar klavyeden size cevap vermeyecektir ki rnein o zaman ESC tuu hibir zaman almayacaktr. te sizin evde telefona bakp filme kaldnz yerden devam etmeniz yada bilgisayarn sizin klavyeden gerekli bilgiyi alp programa devam etmesi de Kesme alt programnda kmas ile ilgilidir. nterrupt alt programnn yazlm normal alt program ile ayndr, ancak alt programn biti komutu RETFIE komutudur. Bu alt programn interrupt geldiinde kullanlmas iin 3 ilemin program ierisinde yaplm olmas gerekir. Bu ilemler: 1. nterrupt alt programnn ad, 04h adresine interrupt vektr adresi olarak tantlm olmaldr. rnek: ORG 04h GOTO KESME 2. Interrupt ayarlarn salayan INTCON ve OPTION registerlerinin ayarlarnn yaplm olmas gerekir. Bu registerlerin herbir bitinin bir anlam vardr. Bu sebeple kullanlacak interrupt tipine gre ayarlanm olmalar gerekir. 3. Kullanlan interrupt trne gre interrupt geldiinde INTCON registerinin kullanlan interrupt ile ilgili bir biti 1 olmaktadr. nterrupt alt program tamamlandnda yeni interrupt gelmedii halde, tekrar interrupt alt programnn almas istenmiyorsa, interrupt geldi anlamnda 1 olan bitin alt program ierisinde tekrar 0 yaplmas gerekir.

44

OPTION REGSTER OPTION kaydedicisi PORTB zerindeki zayf ekicileri, TMR0 dal INT kesiciyi ve TMR0 / WDT prescaleri ekillendirmek iin farkl kontrol bitlerini ieren okunabilir ve yazlabilir bir kaydedicidir.
Bit 7 BPUR Bit 6 INTEDG Bit 5 T0CS Bit 4 T0SE Bit 3 PSA Bit 2 PS2 Bit 1 PS1 Bit0 PS0

Bit No Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Ad RBPU

Aklama

PORTB Pull Up Geerli yapma biti 0: PORTB Pull Uplar Geersiz 1: PORTB Pull Uplar Geerli INTEDG Harici interrupt tipi seme biti 0: RB0/INT ucundan alalan kenar tetikleme 1: RB0/INT ucundan ykselen kenar tetikleme T0CS TMR0 saycs sinyal kayna seme biti 0: Dahili komut periyotu seilir 1: Harici sinyal (RA4/TOCKI ucundan) periyotu seilir T0SE TMR0 harici sinyal kayna kenar seme biti 0: RA4/T0CKI ucundan alalan kenar tetiklemesi 1: RA4/T0CKI ucundan ykselen kenar tetiklemesi PSA Frekans blc seme biti 0: Frekans blme says TMR0 iin geerli 1: Frekans blme says WDT iin geerli PS2 Frekans blme says biti 2 (Alttaki tabloya baknz) PS1 Frekans blme says biti 1 (Alttaki tabloya baknz) PS0 Frekans blme says biti 0 (Alttaki tabloya baknz) Frekans Blme Says TMR0 WDT (Bit2-Bit1-Bit0) Oran Oran (PS2-PS1-PS0) 000 1/2 1/1 001 1/4 1/2 010 1/8 1/4 011 1/16 1/8 100 1/32 1/16 101 1/64 1/32 110 1/128 1/64 111 1/256 1/128 Seenek (Option) Kaydedicisi 45

Yukardaki tablolar incelendiinde INTCON registerinin 7 numaral ucunun bu ite en nemli register olduunu anlamak mmkndr. nk bu uc 0 olduunda tm interrupt sinyalleri DISABLE yani alglanmaz olur. Yukarda anlatlan her bir interrupt eklinden kullanlacak olan ayarlamak iin birer u (3-4-5) ve interrupt geldiinde bunu belirten birer u (0-1-2)olmak zere 6 uc programlanabilen interrupt ilemlerine ayrlmtr. Option register ise daha ziyade TMR0 ile ilgili ayarlar iindedir. Option registerin 6 numaral ucu ise RB0 ucunun alalan ya da ykselen kenar eklinde tasarlanmas iin kullanlmaktadr. Prescaler WDT (PSA = 1) ye atand zaman, TMR0n 1-1 prescaler atamas vardr. WATCHDOG ZAMANLAYICISI (WDT) WDT, yonga zerinde herhangi bir harici elemana gerek duymadan serbest alan RC osilatrdr. Bu WDTnin devrenin OSC1 / OSC2 bacaklarndaki Clock dursa da alaca anlamna gelir. Mesela uyku komutu ilemini WDT zaman am durumu devresi retir. WDT srekli olarak normal program hafzas olmayan zel bir EEPROM sigortasn sfra programlayarak engellenir. WDT Peryodu WDT 18 mslik bir nominal zaman am peryoduna sahiptir. Zaman am peryotlar scaklkla Vddyle ve ilem versiyonlar ile blmden blme deiir. Eer daha uzun zaman am peryotlar isteniyorsa yazlm kontrol altnda OPTION kaydedicisi yazarak 1:128e kadar blm orannda bir n skala uygulanr. Bylece 2.5 snye kadar zaman am peryotlar gerekletirilir. CLEWDT ve UYKU komutlar WDTye uygulanmsa n skala saycsn temizler (sfrlar). Zaman am, durumdan korur ve devrenin reset durumunu meydana getirmesini engeller. Dosya kaydedicisindeki f3deki TO durum biti bir WDT zaman am durumuna kadar sfrlanr. WDT peryodu scakl ileyen kaynak voltajnn bir fonksiyonudur ve ayn zamanda ilemin yaplmasndaki varyasyonlara bal olarak birimden birime deiir. WDT Programlamann nemi En kt durumlarda bile (WDT = minimum scaklk = maksimum WDT n skala) bir WDT zaman am meydana gelmeden birka saniye geecei dikkate alnmaldr. TMR0 (RTCC) MODL TMR0 modu zamanlayc / sayc aadaki niteliklere sahiptir. 8 bit timer / counter Okunabilir ve yazlabilir Prescaler (n frekans blc) 8 bit yazlmla programlanabilir 46

Harici ve dahili clock semek FF-00h tama olduunda kesme devreye girer Harici clock iin u seme. TOCS biti sfrlandnda (seenek <5>) timer modu seilir (tablo 2.1 de bu tip bit hakknda bilgi verilmiti). Timer modu her komut darbesinde bir artar (prescaler hari). TMR0 yazlabilir mod da ise iki darbe de art iin ekingendir. TMR0 yaz moduna getirmek bir kullanc tarafndan mmkndr. TOSC biti (seenek <5>) lojik 1 yapldnda, counter modu seilmi olur . Bu modda RA4 / TOCK1 pin ucunda ykselme veya dme gibi her iki durumda TMR0 da bir art sz konusudur. T0 kaynak ucu (TOSE) kontrol biti (seenek <4>) art ucunda kararldr. TOSE biti (seenek <4>) lojik 0 olduunda o zaman ykselen ucu seer. Prescaler TMR0 ve WDT arasnda paylatrlyor, prescaler grevi yazlmda kontrol biti PSA (seenek <3>) kontrol etmektedir. PSA lojik 0 olduunda prescaler TMR0a ayryor. Prescaler hem okunamaz, hemde yazlamaz. Eer prescaler TMR0 modu iin iyi grevlendirilirse bu durumda prescaler durum (1:2, 1:4,.1:256) yazlmla iaretlenir. TMR0 Kesmesi Genel olarak timer / counter FFh-00h tat anda TMR0 kesmeyle engellenir. Bu tama TOIF bitini lojik 1 yapar (INTCON <2>). Bu kesmesi imkan salamadan nce TMR0 kesme seviyesinde TOIF biti lojik 0a yazlmla getirilmelidir. Uyku modunda time kapanmas srasnda TMR0 modl kesme bu ilemciyi uyandrmaz. Harici Clock ile TMR0n Kullanlms Harici clock girii TMR0 iin kllanldnda kesin olarak ihtiyac karlamaldr. Harici clock ihtiyac tam olarak dahili clock fazna (TOCS) senkronizedir, dolaysyla senkronizasyondan sonra TMR0 da gerek artta bir gecikme sz konusudur. Harici Clock Senkronizasyonu Perscaler kullanlmadysa, girii prescaler k ile ayndr. TOCK1 ile harici faz clocku becerikli bir rnekleme ile prescaler k, harici clockun Q2 ve Q4 cycle ile senkronizedir. Bu yzden TOCK1 en az iki TOCS dktr (Bunlar kk RC gecikmesindendir). Eer prescaler kullanldysa harici clock giriine blnd, asenkron ripple sayc tipindeki prescaler dolaysyla prescaler k simetrik olur. Harici clock iin rnekleme ihtiyac gereklidir. Bu yzden TOCK1 peryodu 4 TOCs peryoduna blnd (kk RC gecikmesinde) prescaler olmas durumunda TOCK1 yksek ve alak zamanlarda istekleri minimum darbe genilii 10 ns olsa bile bozulmuyor. 47

TMR0 Artndaki Gecikme Harici clock ucunda vuku bulan kk bir gecikme zaman TMR0 modunda gerekten bir artma meydana getirdi. Bu olaydaki prescaler k ile harici clock senkron olduu zaman grlr. n Frekans Blc (Prescaler) 8 bitlik bir sayc TMR0 iin prescaler olarak uygundur yada watchdog timer iin son skala olarak uygundur. Kolaylk olarak bu sayc, bu bilgi tabakas boyunca prescaler olarak tercih edilir. TMR0 ve WDT arasnda yalnz karlkl olarak paylatrlan uygun sadece bir tane prescaler olduuna dikkat ediniz. Bu yzden TMR0 iin ayrlan prescaler pay WDT ve karlkl olarak hibir prescaler olmad anlamna gelir. Seenek kaydedicideki PSA ve PS0-PS2 bitleri prescaler payn ve prescaler orann belirtir. TMR0a ayrldnda TMR0a yazlan btn komutlar prescaleri siler. n Frekans Blc Anahtarlama Grevi Prescaler tamamen yazlmla kontrol edilebilir. Program srasnda hzn deitirmek mmkndr. Resete engel olmak istendiinde prescaler grevi TMR0dan WDT deitirildii zamandr. rnek: Prescaler Deitirilmesi (TMR0WDT) BCF DURUM, RP0 ; Bank 0 CLFR TMR0 ; Temizle TMR0 & Prescaler BSF DURUM, RP0 ; Bank 1 CLRWT ; Temizle MOVLW xxxx1xxxb ; Yeni prescaler seiliyor MOVWF OPTION ; Durum BCF DURUM, RP0 ; Bank 0 Prescalerdeki deiik WDT den TmR0 a doru ise yaplan ilemler aadaki rnekte gsterilmitir.lem srasnda WDT mahrum edilmek istendiinde yaplan ilemdir. rnek: Prescaler Deitirilmesi (WDTTMR0) CLRWDT Prescaler BSF DURUM, RP0 MOVWF xxxx0xxxb prescaler durumu ve clock kayna MOVWF OPTION BCF DURUM, RP0 ; Temizleme WDT & ; ; Seilenler, TMR0, yeni ; ;

48

PLC VE PCLATH Program sayc (PC) 13 bit geniliindedir. Dk byte PLC, okunabilir ve yazlabilir PC'nin yksek byte ise direkt olup, okunup yazlamaz. PCLATH, PC<12;8> nin CALL, GOTO veya PLCye yazm mddetince, PC yeni bir deer ile yklendii zaman PCnin yksek bitleri PCLATHten yklenirler. YIIN (STACK) PI16F84 8 adet 13 bit geniliinde donanm ynna sahiptir. Yn alan, ne data alannn ne de programn paras deildir. Yn iaret edicisi okunamaz ve yazlamaz. Tm 13 bit PC; RETURN, RETLW veya RETFIE komutu gereklemesi halinde CALL komutu gerekletirildii yada kesici dorulandd zaman yn zerine itilir. PCLATCH itme veya patlama operasyonu tarafndan etkilenmez. Yn dairesel tampon olarak operasyon yapar. Yani yn sekizinci kez itilmeden sonra, onuncu itme ilk itmeden stok edilmi deeri fazladan yazar. Onuncu itme ilk itmeyi yeniden yazar ve bu ekilde devam eder. Eer yn etkili bir ekilde on kez itilirse, PC deeri ilk patlamadan sonraki deeri ile ayndr. Yn st ve alt ak durumlarn gstesmek iin hibir hal biti yoktur. tme veya patlama denen hibir hatrlatc ipucu komutu yoktur. CALL, RETURN, RETLW ve RETFIE komutlarnn gereklemesinden veya kesici vektrlemeden meydana gelen aksiyonlar vardr. PROGRAM HAFIZA SAYFALAMA PIC16F84n 1K program hafzas vardr. CALL ve GOTO komutlarnn 11-bit adres oran vardr. Bu 11-bit adres oran 2 K program hafza sayfa ls iinde bir blm verir. Gelecekteki PIC 16C8X program hafza genilemesinden dolay hafza saysn belirtmek iin baka iki bit olmak zorundadr. Bu sayfalama bitleri PCLATCH <4:3> bitlerinden gelmektedir. CALL ve GOTO komutunu yaparken kullanc bu dizgi bitlerinin (PCLATCH <4:3>) istenilen hafza sayfasna programlanmasn salamak zorundadr. Eer CALL komutu (veya kesici) gerekletirilirse tm 13 bit PC yn zerine itilir. Bu yzden PCLATCH <4:3>n manipulasyonuna geri dn komutlar iin gerek duyulmaz (Geri dn komutlar yndan gelen PCleri patlatr). PIC16F84, program hafza saylar 1,2 ve 3 (08000H 1FFFH) iin kullanlan PCLATCH <4:3> bitlerini grmezden gelir. Genel ama R/W bitleri olarak PCLATCH <4:3> n kullanm tavsiye edilmez. nk bu gelecek rnle yukar doru uygunluu etkileyebilmektedir.

49

DOLAYLI ADRESLEME INDF VE FSR KAYDEDCLER INDF fiziksel bir kaydedici deildir ve konjksiyon ile birlikte FSR kaydedicisine dolayl olarak adreslenir. Dolayl adresleme INDF ile mmkndr. FSR anlaml bilgi girii INDF kaydedicisine birka komutun kullanlmasyla olmaktadr. Kendini dolayl okumas (FSR=0), korumada ise 00H olmaktadr. Concatenatingde 8 bit FSR kaydedici ve IRP biti (durum kaydedici <7>) etkili sonu 9.bit adresi elde etmede IRP PIC16F84de kullanlmyor. Basit program RAM silinmesi 20h-2Fh dolayl adresleme kullanlyor. Bu bir rnekle izah edilirse; movlw 0x20 movf FSR Next clrf INDF incf FSR btfss FSR,4 goto next

50

DATA EEPROM HAFIZASI EEPROM bilgi hafzas normal ilem srasnda hem okunabilir hem de yazlabilir. Bu hafza kaydedici file boluk iinde dorudan planlanmtr, onun yerine SFRs iinde dolayl olarak adreslenmitir. Hem okunabilir hemde yazlabilir 4 adet SFRs mevcuttur. Bunlar; EECON1 EECON2 EEDATA EEADR EEDATA 8 bitlik bilgi oku / yaz tutulur ve EEADR ise EEPROMun iindeki bilginin yolunun adresini tutmaktadr. PIC16F84 devresi 64 bilgi EEPROM hafzasnda 0h-3Fe kadar belli bir adres srasndadr. EEPROM bilgi hafzas yazma ve okuma ilemini bitlerle ayryor. Bir byte yazldnda otomatik olarak yeri siliniyor ve yeni bilgi yazlyor (yazmadan nce siliniyor). Yazma zamann asgari olarak 10ms ve onyonga timer ile kontrol edilmektedir. Gerek yazm zaman aynen bir yongadan dier yongaya s veya voltaj deiimi ile olmaktadr. Devre kod koruma ise sadece CPU tarafndan yazlabilir veya okunabilir olduu tanmlanmtr. EEADR EEPROM iinde max. 256 byte EEADR tarafndan adreslenebilmektedir. lk 64 byte EEPROM iin tamamlanmakta ve sadece 6-8 biti ile kaydedici (EEADR <5:0>) iin gereklidir. stteki iki bit adres kodu zlmedi, bunun dndaki 6 bit 64 byte hafza adresinin planlanmasna izin veriyor. Tavsiye edilen adres 0h-3Fh arasndadr. EECON1 ve EECON2 Kaydedici EECON1 kontrol kaydedicisi 5 seviyeli dk biti fiziksel olarak yerine getirmektedir. stteki bit ise mevcut olmayan ve sfr olarak okunur. Kontrol biti RD ve WR alnan sraya gre oku ve yaz dr. Bunlar lojik sfra getirilemez sadece lojik 1e getirilebilir, buda yazmla olur. WREN biti lojik 1 ise yazma ilemine msaade eder, g verince WREN biti lojik 0 olur. WCLR reset ile yazma ilemi kesildiinde veya normal ilem srasnda WDT zaman k resetlenmesi durumunda WRERR biti lojik 1 ise olmaktadr. Bu durumda reset sonras kullanc kontrol eder ve tekrar yerine yazar. Bilgi ve adres EEDATA ve EEADR kaydedici hep ayndr. EEF kesme bayra lojik 1 ise yazma ilemi tamamlanmtr, o zaman yazlm sfrlanmaktadr. EECON2 fiziki bir kaydedici deildir, EECON2 btnnn 0 s okunur.

51

EEPROM VER HAFIZASININ OKUNMASI Bilgi hafzasnn yerinin okunmas iin kullanc EEADR kaydedicisi ades yazmal ve RD bitini lojik 1 yapmal (EECON<0>) dier darbede bilgi EEDATA kaydedicisi kullanlr , her biri dier komutta okunabilir. Baka okuma durumuna kadar yada kullanc tarafndan baka bir ey yazlana kadar, yazma ilemi srasnda EEDATA duracaktr. rnek: DATA EEPROM okunmas BCF MOVLW MOVWF BSF BSF BCF MOVF DURUM, RPO CONFG ADR EEADR DURUM, RP0 EECON, RD DURUM, RP0 EEDATA, W ;Bank0 ; ;Adres to oku ;Bank 1 ;EE oku ;Bank 0 ;W=EEDATA

EEPROM VER HAFIZASININ YAZILMASI EEPROM bilginin yerine yazlmal ve ilk olarak EEADR kaydedici adresi yazlmaldr. Ayrca bilgide EEDATA katdedicisine yazlmaldr. Kullanc yazma ilemi kesinlikle ard arda olmamaldr. rnek: DATA EEPROM yazma BSF BCF MOVLW MOVLF MOVLW MOVLW BSF BSF DURUM, RP0 INTCON, GIE 55h EECON2 Aah EECON2 EECON1, WR INTCON, GIE ;Bank 1 ;pasif INTs ; ;55h yazma ;yaz Aah ;Aah yazma ;WR biti lojik 1 ve yazma ilemi balad ;ENABLA INTs

Tam zamanlamayla ard arda EECON2 55h, EECON2 Aah yaz, WR biti lojik 1 olur izlemeden yazma balamaz. Burada tavsiye edilen bu kesmeleri kod blme ileminden mahrum etmektedir. Ek olarak, yazmada EECON1 iindeki WREN biti lojik 1 yaplmaktadr. Eer EEPROM gncelletirilecekse btn zamann haricinde WRENi lojik 0da korumaldr. Ard arda yazma baladktan sonra WREN biti yaz darbesine tesir etmeyecektir. WR biti balangta WREN biti lojik 1olana kadar ekingendir. WR darbe tamamlandnda WR biti donanmda lojik 0a ve EE yaz tamam bayra (EEIF) lojik 1 olur. Kullanc aktifi bir olan bu biti veya kesmesi seer.

52

SAHTE YAZIMA KARI KORUMA Bilgiyi EEPROMa yazmak istediimiz durumlarda eitli deiik mekanizmalar oluturmak iin EEPROMu sahte yazma kar korumaktr. G verince WREN lojik 0 olur dolaysyla g verme sayc (72 ms) EEPROMa yazmay engeller. Yazma ard arda balamak ve WREN biti ile birlikte yardm, g aksamlar veya yazlmn kt almasdr.
Adresler 08 09 88h 89h Kaydedici Bit EADATA EEADR EECON1 EECON2 Bit7 Bit6 Bit5 Bit4 Bit3

Bit2

Bit1

Bit0

EEPROM data kaydedicisi EEPROM adres kaydedicisi ---EEIF WRERR

WREN

WR

RD

EEPROM Kontrol Kaydedicisi 2

Kaydedici / Bitleri EEPROM Bilgileri ile G TKETMN GZ NNDE BULUNDURMA Tavsiye edilen EEADR <7:6> bitleri lojik 0dadr. Bu ikisinden biri lojik 1 olursa o zaman maksimum Idd yksektir. Her zaman her ikiside lojik 0da olmaldr. Bu art 400 A EEADR <7:6> lojik 0da iken maksimum deer ise yaklak 150 Adir.

53

KONFGRASYON BT Konfigrasyon (oku 0) olduunda programlanabilir ve (oku 1) olursa programlanamaz. Bu bitler program hafzas yerine 2007h de planlanmtr. Bu adres 1007h kullanc program hafza yerinde iaretlidir. Gerek olay, zel test / konfigrasyon hafza yeri (2000h-3FFFh) uygun olmaldr. Bit No Kaydedici Bitleri Aklama OSC Seim Bitleri FOSC0, FOSC1 00:LP Osilatr 01:XT Osilatr 10:HS Osilatr 11:RC Osilatr WDT aktif Biti WDTE1 WDT aktif WDTE0 WDT aktif G verme aktif biti Kod korumal biti

Bit 0

FOSC0

Bit1 Bit2 Bit3 Bit4 Bit5

FOSC1 WDTE PWRTE CP

Konfigrasyon Sigortalar

54

A
k d b h x []

SSEMBLER KOMUTLARI PIC 16F8X KOMUTLARI

KULLANILAN SEMBOLLER: f : File register, Herhangi bir deikenle tarif edilen bir saklayc adresi (0h-7Fh) : Sabit deer (genellikle (0-FF arasnda) : Destination (hedef) gstergesi (Genellikle 0 ya da 1) : Bit belirten say (0-7 aras) veya Binary say (b00101111) : Hexadecimal say (hFF veya FFh) : Deeri nemli olmayan bit (1 ya da 0 olabilir) : Duruma gre kullanlp kullanlmamas serbest olan seenek : se veya ... ileminin sonunda : Deer atama

etiket : Deiken ad veya adres bildirmek iin kullanlan isim KOMUTLAR VE KULLANIM RNEKLER ADDLW : Bir say ile Wnin ieriini topla ngilizce Yazlm:Add Literal with W Kullanm ekli: ADDLW k levi: W W+k Etkilenen Bayraklar: C,DC,Z Periyot:1 rnek: ADDLW

05h

Komuttan nce W=60h ise Komuttan sonra W=65h olur. ADDWF : Bir register ile Wnin ieriini topla ngilizce Yazlm:Add W with File register Kullanm ekli:ADDWF f,d levi: WW+f veya fW+f Etkilenen Bayraklar:C, DC, Z Periyot:1 55

rnek: ADDWF SAYI,1 Komuttan nce W=60h ve SAYI=05h ise Komuttan sonra W=60h , SAYI=65 h olur. rnek 2: ADDWF SAYI,0 Komuttan nce W=60h ve SAYI=05h ise Komuttan sonra W=65h , SAYI=05 h olur. ANDLW : Bir say ile WYi AND ilemi yapar ngilizce Yazlm:And Literal with W Kullanm ekli: ANDLW k levi: W W AND k Etkilenen Bayraklar: Z Periyot:1 rnek: ADDLW 05h

Komuttan nce W=67h ise Komuttan sonra W=05h olur. ANDWF : Bir register ile Wyi AND yapar. ngilizce Yazlm:And W with File register Kullanm ekli:ANDWF f,d levi: WW AND f veya fW AND f Etkilenen Bayraklar:Z Periyot:1

56

0 1

0 1

1 1

1 1

0 0

0 0

1 0

1 1

PORTA ierii b11110001 MOVLW ANDWF MOVWF rnek: ADDWF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=6Fh , SAYI=05 h olur. rnek 2: ADDWF SAYI,0 Komuttan nce W=65h ve SAYI=0Fh ise Komuttan sonra W=65h , SAYI=05 h olur. BCF : Registerin istenilen bitini 0 yap ngilizce Yazlm:Bit Clear f Kullanm ekli:BCF f,b levi: f(b) 0 Etkilenen Bayraklar:Yok Periyot:1 rnek: BCF SAYI,3 Komuttan nce SAYI=FFh ise Komuttan sonra SAYI=F7h olur. 57 b00110011 PORTA, W PORTB

BSF : Registerin istenilen bitini 1 yap ngilizce Yazlm:Bit Set f Kullanm ekli:BSF f,b levi: f(b) 1 Etkilenen Bayraklar:Yok Periyot:1 rnek: BSF SAYI,5 Komuttan nce SAYI=00h ise Komuttan sonra SAYI=20h olur. BTFSC : Registerin istenilen bitini test et ve bu bit 0 ise 1 konut atla ngilizce Yazlm:Bit Test f, Skip if Clear Kullanm ekli:BTFSC f,b levi: f(b) = 0 bir komut atla Etkilenen Bayraklar:Yok Periyot: f(b)=1 ise 1 periyot f(b)=0 ise 2 periyot rnek 1: BTFSC SAYI,3 GOTO LEM1 GOTO LEM2 Komuttan nce SAYI=00h ise Komuttan sonra ilem ilem 2 ye gider. rnek 2: BTFSC SAYI,3 GOTO LEM1 GOTO LEM2 Komuttan nce SAYI=FFh ise Komuttan sonra ilem ilem 1 e gider.

58

BTFSS : Registerin istenilen bitini test et ve bu bit 1 ise 1 konut atla ngilizce Yazlm:Bit Test f, Skip if Set Kullanm ekli:BTFSS f,b levi: f(b) = 1 bir komut atla Etkilenen Bayraklar:Yok Periyot : f(b)=0 ise 1 periyot f(b)=1 ise 2 periyot rnek 1: BTFSS SAYI,3 GOTO LEM1 GOTO LEM2 Komuttan nce SAYI=00h ise Komuttan sonra ilem ilem 1 e gider. rnek 2: BTFSS SAYI,3 GOTO LEM1 GOTO LEM2 Komuttan nce SAYI=FFh ise Komuttan sonra ilem ilem 2 ye gider. CALL Alt program arma komutudur.

ngilizce Yazlm:Call Subrutine Kullanm ekli:CALL Altprogram levi: TOS (Top Of Stack) PC+1 PC Alt Program Balang Adresi Etkilenen Bayraklar:Yok Periyot:2 rnek: LEM ... CALL TOPLAMA DEVAM TOPLAMA ... ...

Komuttan sonra lem TOPLAMA adresinden devam eder. Bu arada DEVAM etiketinin adresi stactta tutulur.

59

CLRF : Registerin ieriini 00h yap ngilizce Yazlm:Clear f Kullanm ekli:CLRF f levi: f 00h Etkilenen Bayraklar:Z Periyot:1 rnek: CLRF SAYI Komuttan nce SAYI=xxh ise Komuttan sonra SAYI=00h olur. CLRW : Akmlatrn ieriini 00h yap ngilizce Yazlm:Clear W Kullanm ekli:CLRW levi: W 00h Etkilenen Bayraklar:Z Periyot:1 rnek: CLRW Komuttan nce W=xxh ise Komuttan sonra W=00h olur. CLRWDT : Watchdog timer ieriini 00h yap ngilizce Yazlm:Clear Watch Dog Timer Kullanm ekli:CLRWDT f levi: WDT 00h WDT nblcs 0 TO 1 , PD 1 Etkilenen Bayraklar: TO, PD Periyot:1

60

rnek: CLRWDT Komuttan nce WDT=xxh ise Komuttan sonra WDT=00h olur. levde belirtilen dier deerler atanr. COMF : Bir registerin komplementini alr ngilizce Yazlm:Complement f Kullanm ekli:COMF f,d levi: W (Complement) f veya F (complement) f Etkilenen Bayraklar:Z Periyot:1 rnek 1: COMF SAYI,0 Komuttan nce W=07h ve SAYI= 30h ise Komuttan sonra W=CFh ve SAYI= 30h olur. rnek 2: COMF SAYI,1 Komuttan nce W=07h ve SAYI= 30h ise Komuttan sonra W=07h ve SAYI= CFh olur. DECF : Register ieriini 1 azalt. ngilizce Yazlm:Decrement file register. Kullanm ekli:DECF f,d levi: Wf-1 veya ff-1 Etkilenen Bayraklar:Z Periyot:1 rnek 1: DECF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=6Fh , SAYI=14h olur.

61

rnek 2: DECF SAYI,0 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=14h , SAYI=15h olur. DECFSZ : Register ieriini 1 azalt, sonu 0 ise bir komut atla. ngilizce Yazlm:Decrement f, Skip if Zero Kullanm ekli:DECFSZ f,d levi: ff-1 ve eer f=0 ise 1 komut atla. Etkilenen Bayraklar:Yok Periyot: f0 ise 1 periyot f=0 ise 2 periyot rnek : MOVLW 0Fh MOVWF SAYAC DECFSZ SAYAC,1 GOTO TEKRAR ....

TEKRAR DEVAM

Aklama: Sayac 0 olana dek ilem tekrar ve goto tekrar satrlar arasnda 15 kez tekrarlar. Sonra sayac 0 olunca ilem devam satrndan devam eder. GOTO : Verilen adrese git. ngilizce Yazlm:Go to adress Kullanm ekli:GOTO k levi: PCAdres(k) Etkilenen Bayraklar : Yok Periyot:2 rnek : LEM1 GOTO LEM2

Komuttan sonra ilem sras, ilem2 ye gider.

62

INCF : Register ieriini 1 artr. ngilizce Yazlm:Increment file register. Kullanm ekli:INCF f,d levi: Wf+1 veya ff+1 Etkilenen Bayraklar:Z Periyot:1 rnek 1: INCF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=6Fh , SAYI=16h olur. rnek 2: DECF SAYI,0 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=16h , SAYI=15h olur. INCFSZ : Register ieriini 1 artr, sonu 0 isebir komut atla. ngilizce Yazlm:Increment f, Skip if Zero Kullanm ekli:INCFSZ f,d levi: ff+1 ve eer f=0 ise 1 komut atla. Etkilenen Bayraklar:Yok Periyot: rnek : MOVLW 00h MOVWF SAYAC INCFSZ SAYAC,1 GOTO TEKRAR DEVAM .... f0 ise 1 periyot f=0 ise 2 periyot

TEKRAR

Aklama: Sayac 0 olana dek ilem tekrar ve goto tekrar satrlar arasnda 256 kez tekrarlar. Sonra sayac 0 olunca ilem devam satrndan devam eder. 63

IORLW : Bir say ile Wyi OR ilemi yapar ngilizce Yazlm:Inclusive Or Literal with W Kullanm ekli: IORLW k levi: W W OR k Etkilenen Bayraklar: Z Periyot:1 rnek: ADDLW 05h

Komuttan nce W=62h ise Komuttan sonra W=67h olur. IORWF : Bir register ile Wyi OR yapar. ngilizce Yazlm:Inclusive Or W with File register Kullanm ekli:IORWF f,d levi: WW OR f veya fW OR f Etkilenen Bayraklar:Z Periyot:1

0 1

0 1

1 1

1 1

0 0

0 0

1 0

1 1

PORTA ierii b11110001 MOVLW IORWF MOVWF b00110011 PORTA, W PORTB

64

rnek 1: IORWF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=6Fh , SAYI=7F h olur. rnek 2: ADDWF SAYI,0 Komuttan nce W=65h ve SAYI=0Fh ise Komuttan sonra W=7Fh , SAYI=0F h olur. MOVLW : Accumulatora bir say ykle. ngilizce Yazlm:Move Literal to W Kullanm ekli: MOVLW k levi: W k Etkilenen Bayraklar:Yok Periyot:1 rnek: MOVLW 05h

Komuttan nce W=xxh ise Komuttan sonra W=05h olur. MOVF : Bir register ieriini hedefe ta. ngilizce Yazlm:Move f Kullanm ekli:MOVF f,d levi: Wf veya ff Etkilenen Bayraklar:Z Periyot:1 rnek: MOVF SAYI,0 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=15h , SAYI=15h olur. 65

MOVWF : Wnin ieriini bir registere ta. ngilizce Yazlm:Move w to f Kullanm ekli:MOVWF f levi: fW Etkilenen Bayraklar:Yok Periyot:1 rnek: MOVWF SAYI Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=6Fh , SAYI=6Fh olur. NOP : lem yapma ngilizce Yazlm:No Operation Kullanm ekli:NOP levi: 1 periyot pekle Etkilenen Bayraklar:Yok Periyot:1 rnek: NOP Aklama : 1 periyot sresince bekletir. RETFIE : Interupt altprogramndan geri dn. ngilizce Yazlm:Return From Interrupt. Kullanm ekli:RETFIE levi: PCTOS GIE 1 (INTCON(7)1) Etkilenen Bayraklar Yok Periyot:2 Aklama : levde belirtilenleri yaparak interrupt alt programnn arld yerden ilemin devam etmesini salar. Yani interrupt altprogramn sonlandrma komutudur.

66

RETLW :Altprogramdan accumulatora bir say ykleyerek geri dn. ngilizce Yazlm:Return with Literal in W. Kullanm ekli:RETLW k levi: W k ve PCTOS Etkilenen Bayraklar:Yok Periyot:2 rnek: CALL LSTE komutu iletilecekse ve LSTE isimli altprogramda aadaki gibi ise W=01h ise ilem bitiinde W=11h olur ve geri dner. W=02h ise ilem bitiinde W=12h olur ve geri dner. Bu ekilde listeden deer seme ilemlerinde kullanlr. LSTE ADDWF PC RETLW RETLW RETLW RETLW 11h 12h 13h 14h

RETURN : Altprogramdan geri dn. ngilizce Yazlm:Return From Subrutine. Kullanm ekli:RETURN levi: PCTOS Etkilenen Bayraklar:Yok Periyot:2 rnek: RETURN Aklama : levde belirtilenleri yaparak altprogramn arld yerden ilemin devam etmesini salar. Yani alt program sonlandrma komutudur. RLF : Registerin bitlerini 1 bit sola dndr. ngilizce Yazlm:Rotate Left f Kullanm ekli:RLF f,d Etkilenen Bayraklar:C Periyot:1 levi: C Register (f)

67

rnek 1: RLF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h C=0 ise Komuttan sonra W=6Fh , SAYI=2Ah , C=0 olur. lem 4 kez tekrarlarsa W=6Fh, SAYI=05h ve C=1 olur. rnek 2: RLF SAYI,0 Komuttan nce W=6Fh ve SAYI=15h C=0 ise Komuttan sonra W=2Ah , SAYI=15h , C=0 olur. RRF :Registerin bitlerini 1 bit saa dndr. ngilizce Yazlm:Rotate Right f Kullanm ekli:RRF f,d Etkilenen Bayraklar:C Periyot:1 levi: C Register (f)

rnek 1: RRF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h , C=0 ise Komuttan sonra W=6Fh , SAYI=0Ah , C=1 olur. lem 2 kez tekrarlarsa W=6Fh, SAYI=85h ve C=0 olur. rnek 2: RRF SAYI,0 Komuttan nce W=6Fh ve SAYI=15h C=0 ise Komuttan sonra W=0Ah , SAYI=15h , C=1 olur.

68

SUBLW : Bir saydan Wnin ieriini karr. ngilizce Yazlm:Subtract W from Literal Kullanm ekli: SUBLW k levi: W k-W Etkilenen Bayraklar: C,DC,Z Periyot:1 rnek: SUBLW 65h

Komuttan nce W=60h ise Komuttan sonra W=05h olur. SUBWF : Bir registerin ieriinde Wnin ieriini karr. ngilizce Yazlm:Subtract W from File register Kullanm ekli:SUBWF f,d levi: Wf-W veya ff-W Etkilenen Bayraklar:C, DC, Z Periyot:1 rnek: SUBWF SAYI,1 Komuttan nce W=60h ve SAYI=65h ise Komuttan sonra W=60h , SAYI=05 h olur. rnek 2: SUBWF SAYI,0 Komuttan nce W=60h ve SAYI=65h ise Komuttan sonra W=05h , SAYI=65 h olur.

69

SWAPF : Bir registerin nibblelarn yer deitir. ngilizce Yazlm:Swap nibbles in f Kullanm ekli:SWAPF f,d levi: W(LSN)f(MSN) ve W(MSN)f(LSN) veya f(LSN)f(MSN) ve f(MSN)f(LSN) Etkilenen Bayraklar:Yok Periyot:1 rnek: SWAPF SAYI,1 Komuttan nce W=60h ve SAYI=65h ise Komuttan sonra W=60h , SAYI=56 h olur. rnek 2: ADDWF SAYI,0 Komuttan nce W=60h ve SAYI=65h ise Komuttan sonra W=56h , SAYI=65 h olur. XORLW : Bir say ile WYi EXOR ilemi yapar ngilizce Yazlm:EX-OR Literal with W Kullanm ekli: XORLW k levi: W W EXOR k Etkilenen Bayraklar: Z Periyot:1 rnek: XORLW 05h

Komuttan nce W=67h ise Komuttan sonra W=62h olur.

70

XORWF : Bir register ile Wyi EXOR yapar. ngilizce Yazlm:EX-OR W with File register Kullanm ekli:XORWF f,d levi: WW EXOR f veya fW EXOR f Etkilenen Bayraklar:Z Periyot:1 0 1 0 1 1 1 1 1 0 0 0 0 1 0 1 1

PORTA ierii b11110001 MOVLW XORWF MOVWF rnek 1: XORWF SAYI,1 Komuttan nce W=6Fh ve SAYI=15h ise Komuttan sonra W=6Fh , SAYI=7Ah olur. rnek 2: XORWF SAYI,0 Komuttan nce W=65h ve SAYI=15h ise Komuttan sonra W=70h , SAYI=15 h olur. Not: Komutlarda hedef olarak 0 eklinde belirtildiinde bilgi W adresine gider, 1 ile belirtildiinde ise ilgili registere gider. Burada 0 yerine w, 1 yerine ilgili registerin ad yazlrsa da program ayn olur. Bu yazlmda program daha anlalr olur. 71 b00110011 PORTA, W PORTB

ZAMAN GECKTRME Komutlar 1 komut saykl sresinde alr. rnein Status, NOP, CLRF vb. KOMUT GOTO CALL RETURN DECFSZ RETLW RETFILE INCFSZ BTFSZ BTFSS COUNTER VER YAZAN KOMUTLAR KOMUT SAYKILI 2 2 2 REGISTERDEK SAYI = 0 2 REGISTERDEK SAYI 0 1 2 2 REGISTERDEK SAYI = 0 2 REGISTERDEK SAYI 0 1 TEST EDLEN BT = 0 2 TEST EDLEN BT 0 1 TEST EDLEN BT = 1 2 TEST EDLEN BT 1 1 2

N
MOVLW MOVWF DONGU DECFSZ GOTO Saykl Tek dngl Zaman Gecikme Hesab: KOMUT SAYKIL SRES=3*N rnek in:10 MHZ XC osilatr Dahili Frekans 10/4=2,5 Mhz Dahili Komut saykl=1/(2,5*106)=0,4 s Sre=766*0,4=306 s =0,3 ms 72 HFF SAYAC1 SAYAC1, F DONGU TOPLAM 1 1

N-1

1*254+2 N-1 2*254 1+1+1*254+2+2*254=766

ift dngl Zaman Gecikme Hesab: KOMUT SAYKIL SRES=3*N*M ift Dng rnek in:10 MHZ XC osilatr Dahili Frekans 10/4=2,5 Mhz Dahili Komut saykl=1/(2,5*106)=0,4 s KSS=3*255*255*0,4=78030 s =78 ms N=KSS/3 KSS=GS*(f/4) rnek: ift Dng, 4 MHZ osilatr ile 60 ms zaman gecikmesi register lara yklenecek deerler nedir? ift Dng rnek in:4 MHZ XC osilatr
M * N = GS * F / 3 M * N = 60000 * 1 / 3 M * N = 20000 M = N = 20000 = 142 = h'8e'

N=GS*f/12

73

AKI DYAGRAMI SEMBOLLER

Ak Diyagram Balang ve Sonu Hazrlk

lem

Karar

Alt Program

Ak Diyagram Balayc

74

KONFGRASYON BTLERNN YAZILMASI Konfigrasyon bitleri PIC lere enerji verildiinde PIC lerin uygulanmas gereken koullar uygulamada kullanlr. Bu koullar PIC uygulama devresine baldr.

Konfigrasyon bitleri aadaki koullar belirlemede kullanlr. 1. 2. 3. 4. Osilatr Tipini Watchdog timer On/OFF Power On Reset On/OFF Kod korumay On yada OFF durumuna getirmek Yazlacak tanm kodlar _CP_ON _CP_OFF _PWRTE_ON _PWRTE_OFF _WDT_ON _WDT_OFF _LP_OSC _LP_XT _HS_OSC _RC_OSC

KOUL Kod koruma Var Kod Koruma Yok Power On Reset Var Power On Reset Yok Watch Dog Timer Devrede WatchDog Timer Devrede Deil Lower Power Osilatr Kristal Osilatr High Speed Osilatr R-C Osilatr

75

ROGRAM YAZMAK ve YKLEMEK Pic programlamak iin gereken temel eyler unlardr. 1-) Pic programlamak iin pic Assembly dilini bilmek ve program yazarak bunu hex dosyas haline getirmek

2-) Pic programlayacak donanma sahip olmak, bunlar bilgisayar ve gerekli yazlmlardr. MS-DOS/Edit WNDOWS/notepad MPLAB/Pfe Gibi bir text editrnde Pic Assembly dili ile yazlm program derlemeye yani HEX file haline getirmeye yarayan programdr.Bu i iin biz Microchip firmasnn MPLAB iinde gelen MPASM programn kullanacaz. Pic Assembly: Pic'in yapmasn istediimiz ilemleri, pic'in anlamas iin, ksa komutlardan oluturulmu bir dildir. Bu dil ile yazlan program ASM dosyas olarak kaydedilir daha sonra MPASM ile HEX dosyas haline getirilip,pic iine yazlr. Bir pic'i programlamak iin yapmamz gerekenler sras ile yledir: 1-) Bilgisayarmza gerekli Software'i yklemek 2-) Pic Assembly dilinin genel kurallarn renmek 3-) 16F84'n 35 komut setini renmek 4-) Program yazp ASM olarak kaydetmek 5-) Program hatasz yazp Compile edebilmek 6-) Compile edilip HEX haline gelmi dosyay EASYPC ile pic'e aktarmak. SOFTWARE: Microchip firmasnn sitesinden cretsiz olarak indirilen program MPLAB IDE 8.0 64.7Mb Application dosyas eklinde grlr. Bu dosyann yeni versiyonunun ad ve boyu deiik olabilir. Burada zip file olarak verilen dosya budur ve internetten http://www.microchip.com indirebilirsiniz. Kurulum: Aadaki admlar srasyla seilir ilk nce programn bulunduu klasre gidilir. Eer program temin edilmediyse ilgili firmann web sayfasnda bu program indirilebilir. http://www.microchip.com/ indirilen dosya genel ZIP formatndadr bu dosya ilk nce bir klasre alr ve
76

Burada Install_MPLAB_v8 adl Setup dosyas altrlr

Lisans szlemesini okuyun ve onaylayn

77

Complete seenei tmn se grevindedir

Programn kurulaca yer belirtilir. Normalde Program Files klasrdr

78

Maestro Program iin lisans szlemesini okuyun ve onaylayn

MPLAB C32 iin Lisans szlemesini okuyun ve onaylayn

79

Kurulacak eler gsterilmitir.

80

Kurulum balamtr.

Kurulum tamamland. Bundan sonra PICC ile ilgli kurulumlarda da gelebilir. Eer bunlarda kurulmak isteniyorsa ilgili ynergeler onaylanr.

Yardm belgeleri iin Dosya seimi karmza kar bunlardan eer istediiniz varsa seilir. Yoksa pencere kapatlr

81

Proje hazrlama: Pencerede ki MPLAB IDE ikonuna tklanr. Ve program karmza kar.

Proje balamak iin Proje sihirbazndan yaralanacaz. Bunun iin Project mensnde Project Wizard seeneine girilir.

82

Karlama Ekran: leri seilir.

Kullanlacak Pic seilir.

83

Kullanlacak ara kutusu seilir: Assembly iin MPASM Assembler seilir.

Projenin kaydedilecei yer ve ad seilir bunun iin Browse tuuna tklanr ve alan pencere yeri belirlenir ad yazlr ve kaydet tuu tklanr. Burada
84

dikkat edilmesi gereken Dosya yolu 64 karakteri gememesi gerekir: rnein D:\YeniKlasr\YeniKlasr\YeniKlasr\YeniKlasr\deneme gibi ve Trke karakterler kullanlmamaldr.

Projeye dardan eklemek istenen dosyalar seilir.

85

Proje sihirbaz bitmitir. Son tklanr ve buradan klr.

Ekranda view mensnden Project seilirse karmza yukardaki gibi ekran kar. imdi File mensnden New seilir ve yeni bir dosya alr.

Yeni pencereye bir ey yazmadan kaydedilir.


86

Burada dosya ad olarak rnein ornek1.asm yazlr. Burada da dosya adnda Trke karakter kullanlmamaldr.Kaydetme yapldktan sonra bu yeni pencere kapatlr ve Project ara ubuundan Source files sala tklanr ve Add Files seilir. Alan pencereden biraz nce kaydettiimiz dosya seilir.

Buradaki ornek1.asm dosyas ift tklanarak dosya tekrar alr ve artk program buraya yazlr.

87

Yazm doru bir ekilde tamamlandnda yine Project mensnde Built all seilir yada ksayol tularndan CTRL+F10 baslr. Eer program doru ise Output penceresinde BUILD SUCCEEDED yazar

Eer hata olsayd bu pencere yeri ve nedeni gsterilirdi. Ve BUILT FAILED yazard.

88

Bu pencereye baklarak hata bulunabilir. Hatann olmamas durumunda istediimiz HEX dosyas ASM dosyasnn bulunduu yerde oluturulur. Dosyann Yklenmesi: Baar ile compile edilmi dosyay, pic'e aktarmak iin kullanlan program IC-prog gibi bir program dr, Ancak programlaycnz iin zel hazrlanm programlarda mevcuttur biz burada en ok kullanlan IC-Prog programnn tantmn yapacaz. Eer XP kullanyorsanz yapmamaz gereken ilk ey XP/2000 driverlerini yklemek olacaktr. Bundan dolay ilk defa altrldnda bir hata mesaj kacaktr .

Ancak program yinede alacaktr. Programda TRKE Dil destei mevcuttur bunuda istenirse ayarlardan salanabilmektedir. Program aldnda yaplacak olan TAMAM tklanr ve Program alr. Burada mendeki Settings yazan menye tklanr. Yine burada OPTIONS seenei seilir

89

Karmza seenekler penceresi alr. Burada MISC yazl sekme tklanr.

Burada Enable NT/2000/Xp Driver seili onay kutusu seilir. Bunun seilmesi ile aadaki ileti kutusu ekrana gelir.
90

Burada dirverlerin yklenmesi iin Programn tekrar balatlmas gerektii belirtilmektedir. Yes seildiinde program tekrar hata vermeden balar. Bu arada yle bir mesaj yazan bir pencere ekrana gelir

Burada IC-Progr programnn driverlerinin yklenmedii Bunu yklemek istediimize emin misiniz eklinde uyar veren soru gelir Yes seildiinde program dzgn bir ekilde alr. Eer Win95 yada Win98 kullanyorsanz buraya kadar anlatlanlar almak zorunda kalmayacaksnz bu andan itibaren balayabilirsiniz. Bu program da eer dil deitirilmek istenirse yine Settings Mens Optons seeneinde aada pencereye geilir. Burada LANGUAGE sekmesine geilerek Dil TRKE olarak deitirilir. (Deitirlmek istee baldr)

91

Daha sonra OK butonuna baslr. Bundan sonra program bir kez daha alr Program ilk aldnda karnza aadaki pencere gelecek. Bu pencerede aadaki resimde grld gibi Ayarlar ve Donanm senei seilir.

imdi karnza Donanm Ayarlar penceresi gelecek bu penceredeki ayarlar aynen aada anlatld gibi yapn ayrca aadaki resimde bu ayarlarn yaplm halini grebilirsiniz. Eer ngilizce seili durumda ise
92

Programmer ksmnda (Programlayc) : JDM Programmer' sein Interface ksmnda (Arayz) Ports (POrtlar) : Direct I/O' yu iaretleyin : Programlayc devrenizi balayacanz com port' u sein.

I/O Delay Giri/k Gecikmesi ayarn : 10' a getirin Communication (letiim) ve OK (TAMAM) butonuna basn : Hi bir kutucuu iaretlemeyin

Bu yaptmz ayarlar programlayc devremizi ic-prog' a tantmak iin yaptmz ayarlard. Bu ayarlar bir kez yapmanz yeterli. imdi Devreye besleme voltaj verin ( DC 9V VEYA DC 12V ) ve select device kutusundan Pic16F84 veya pic 16F84A' y sein

93

Programlamak istediiniz Pic 16F84' devre zerindeki sokete yerletirin. Pic 16F84' e yklemek istediiniz hex dosyay Open File (Dosya A) butonuna basarak an.

94

Yklemek istediiniz dosyay atktan sonra programdaki Program All (Tmn Programla) butonuna basn.

Onay kutusunda Yes seildikten sonra Setiiniz hex dosya pic 16F84' e yklenmeye balayacaktr. ve ykleme durumu aadaki gibi yeni alan bir pencerede grntlenecektir.
95

Ykleme ilemi sorunsuz olarak tamamlandnda program size aadaki mesaj verecek :

Eer programlama esnasnda aadaki hata mesajn alrsanz :

Devreye voltaj verip vermediinizi, programlama anahtarlarnn basl durumda olduunu, devre - pc ara kablosunun bal olup olmadn, programn ayarlarn aynen yukardaki gibi yapp yapmadnz kontrol edin ayrca programn ayarlarnda devrenin bal olduu COM port' u yanl gstermi olabilirsiniz. ( rn. devreyi Bilgisayarnzn COM 2 port' una balayp programda COM 1' i semi olabilirsiniz. )

96

UYGULAMALARI yapacanz Devrenin emas

97

UYGULAMALAR rnek1: Pic' e enerji verildiinde porta' nn ularna bal butonlardan hangisi basl tutulursa portb' de o butona karlk gelen led' i sndren program. ( deneme kartna voltaj vermeden nce a1, a2, a4 butonlarna birlikte veya herhangi birine basl tutun ve butonu brakmadan devreye voltaj verin... ) ;======PROG 1 ASM======================================= LIST P=16F84 PORTA EQU H'05' PORTB EQU H'06' STATUS EQU H'03' TRISA EQU H'85' TRISB EQU H'86' CLRF PORTB BSF STATUS,5 CLRF TRISB MOVLW H'FF' MOVWF TRISA BCF STATUS,5 BASLA MOVF PORTA, W MOVWF PORTB DONGU GOTO DONGU END

; PORT B YE BALI LEDLER SNDR ; BANK1' E GE ; PORT BNN ULARINI IKI YAP ; W REGSTERE H'FF' YKLE ; PORT A NIN ULARINI GR YAP ; BANK0' A GE ; PORTA'YI OKU SONUCU W'YE YAZ ; BUTON DURUMUNU PORTB' DE ; SONSUZ DNG ; PROGRAM SONU

98

rnek2 : Portb' nin 0. bitine bal led' i a portunun 1. bitindeki (a1) butona basnca yakan program ;======PROG 2.ASM====================== LIST P=16F84 INCLUDE "P16F84.INC" CLRF PORTB ; PORTB' YE BALI LEDLER SNDR BSF STATUS,5 ; BANK1' E GE CLRF TRISB ; PORTB' NN ULARINI IKI YAP MOVLW H'FF' ; W REGSTERNE H'FF' YKLE MOVWF TRISA ; PORTA' NIN ULARINI GR YAP BCF STATUS,5 ; BANK0' A GE TEST BTFSC GOTO BSF DONGU GOTO END PORTA,1 TEST PORTB,0 DONGU ; A PORTUNUN 1. BTN TEST ET ; 0 DELSE TEKRAR TEST ET ; B PORTUNUN 0. BTN 1 (SET) YAP

99

rnek3 : Zaman gecikme dngs kullanarak portb' ye bal olan tm ledleri belirli zaman aralklaryla yakp-sndren program :=PROG3.ASM====================================== LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 EQU H'0C' SAYAC2 EQU H'0D' CLRF PORTB BSF STATUS,5 CLRF TRISB BCF STATUS,5 TEKRAR MOVLW H'00' MOVWF PORTB CALL GECIKME MOVLW H'FF' MOVWF PORTB CALL GECIKME GOTO TEKRAR GECIKME ; ALT PROGRAM BALANGICI MOVLW H'FF' MOVWF SAYAC1 DONGU1 MOVLW H'FF' MOVWF SAYAC2 DONGU2 DECFSZ SAYAC2,F GOTO DONGU2 DECFSZ SAYAC1,F GOTO DONGU1 RETURN END

100

rnek4 : Portb' ye bal 8 led zerindeki bir led' in yann belirli aralklarla kaydran ( led0' dan led7' ye doru ) program. yanarak kayan led en sona geldiinde tm ledler ;snk kalr. ;======PROG4.ASM============================ LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 SAYAC2 CLRF BCF BSF CLRF BCF BASLA BCF MOVLW MOVWF TEKRAR CALL RLF BTFSS GOTO DONGU GOTO GECIKME MOVLW MOVWF DONGU1 MOVLW MOVWF DONGU2 DECFSZ GOTO DECFSZ GOTO RETURN END EQU H'0C' EQU H'0D' PORTB STATUS,0 STATUS,5 TRISB STATUS,5 STATUS,0 H'01' PORTB GECIKME PORTB,F STATUS,0 TEKRAR BASLA H'ff' SAYAC1 H'FF' SAYAC2 SAYAC2,F DONGU2 SAYAC1,F DONGU1

; PORTB' Y SIFIRLA ; CARRY FLAG' I SIFIRLA ; BANK1' E GE ; PORTB' NN TM ULARI IKI ; BANK0' A GE ; B'00000001' SAYISINI W' YE YKLE ; W REGSTERN PORTB' YE YKLE ; GECKME YAP ; PORTB' DEK VERY SOLA KAYDIR ; CARRY FLAG 1 M? ; HAYIR ; EVET SONSUZ DNGYE GR ; GECKME ALT PROGRAMI

101

rnek5 : Portb' ye bal 8 led zerinde bir led' in yann saa-sola kaydran ve bu ilemi devaml yaptran program (kara imek) ;======PROG5.ASM========================== LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 SAYAC2 CLRF BCF BSF CLRF BCF MOVLW MOVWF SOL CALL RLF BTFSS GOTOSOL SAG CALL RRF BTFSS GOTO GOTO GECIKME MOVLW MOVWF DONGU1 MOVLW MOVWF DONGU2 DECFSZ GOTO DECFSZ GOTO RETURN END EQU H'0E' EQU H'0F' PORTB STATUS,0 ; CARRY FLAG' I SIFIRLA STATUS,5 TRISB STATUS,5 H'01' ; B'00000001' SAYISINI W' YE YKLE PORTB ; W REGTERN PORTB' YE YKLE GECIKME PORTB,F PORTB,7 GECIKME PORTB,F PORTB,0 SAG SOL D'255' SAYAC1 H'FF' SAYAC2 SAYAC2,F DONGU2 SAYAC1,F DONGU1 ; GECKME YAP ; PORTB' DEK VERY SOLA KAYDIR ; PORTB 7. BT 1 M? ; HAYIR SOLA KAYDIR ; GECKME YAP ; PORTB' DEK VERY SAA KAYDIR ; PORTB 0. BT 1 M? ; HAYIR, SAA KAYDIR ; EVET SOLA KAYDIR ; GECKME ALT PROGRAMI

102

rnek6 : Portb' nin ularna bal 7 segment displey' de 0-f arasnda saydran program. saylar arasndaki duru gecikme alt program tarafndan salanmtr. ;======PROG6.ASM======================================= LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 EQU H'0C' SAYAC2 EQU H'0D' SAYAC EQU H'0E' CLRF PORTB BSF STATUS,5 CLRF TRISB BCF STATUS,5 BASLA MOVLW H'00' ; B'00000000' SAYISINI W' YE YKLE MOVWF SAYAC ; SAYAC < W DONGU MOVF SAYAC,W ; W < SAYAC ANDLW B'00001111' ; W' NN ST DRT BTN SIFIRLA CALL CEV7SEG ; KODEVRME ALT PROGRAMINI ; AIR MOVWF PORTB ; KODU 7 SEGMENTTE GSTER INCF SAYAC,F ; SAYAC < SAYAC+1 CALL GECIKME ; GECKME YAP GOTO DONGU ; YEN BR SAYI N BAA DN CEV7SEG ADDWF PCL,F ; PCL < W (SAYAC) RETLW H'3F' ;0 RETLW H'06' ;1 RETLW H'5B' ;2 RETLW H'4F' ;3 RETLW H'66' ;4 RETLW H'6D' ;5 RETLW H'7D' ;6 RETLW H'07' ;7 RETLW H'7F' ;8 RETLW H'6F' ;9 RETLW H'77' ;A RETLW H'7C' ;B RETLW H'39' ;C RETLW H'5E' ;D RETLW H'79' ;E RETLW H'71' ;F
103

GECIKME MOVLW MOVWF DONGU1 MOVLW MOVWF DONGU2 DECFSZ GOTO DECFSZ GOTO RETURN END

H'FF' SAYAC1 H'FF' SAYAC2 SAYAC2,F DONGU2 SAYAC1,F DONGU1

104

rnek7 : Porta' nn 1 numaral ucuna bal butona (a1) 10 defa bastktan sonra portb' deki tm ledleri yakan program ;======PROG7.ASM==; LIST P=16F84 INCLUDE "P16F84.INC" SAYAC1 EQU H'0C' SAYAC2 EQU H'0D' MEM EQU H'0E' CLRF PORTB ; PORTB' Y SIFIRLA BSF STATUS,5 ; BANK1' E GE CLRF TRISB ; PORTB' NN ULARI IKI BSF TRISA,1 ; PORTA' NIN 1. BT GR BCF STATUS,5 ; BANK0' A GE CLRF MEM ; MEM REGSTERN SIFIRLA TEKRAR BTFSC PORTA,1 ; PORTA' NIN 1. BT' SIFIR MI? GOTO TEKRAR ; HAYIR TEKRAR TEST ET INCF MEM ; EVET, EM=MEM+1 MOVF MEM,W ; W < MEM SUBLW D'10' ; W=D'10' - W BTFSC STATUS,2 ; STATUS'UN 2. BT' 0 MI? GOTO YAK ; HAYIR, Z=1 CALL GECIKME ; BUTON ARKININ SNMESN BEKLE GOTO TEKRAR ; BUTONU TEST N BAA GT YAK MOVLW H'FF' ; W < H'FF' MOVWF PORTB ; PORTB'DEK TM LED' LER YAK DONGU GOTO DONGU GECIKME MOVLW H'FF' MOVWF SAYAC1 DONGU1 MOVLW H'FF' MOVWF SAYAC2 DONGU2 DECFSZ SAYAC2,F GOTO DONGU2 DECFSZ SAYAC1,F GOTO DONGU1 RETURN END

105

ALT PROGRAMLAR 1.1.ALTPROGRAM NEDR? Programlamada dng kadar etkili bir dier kullanm ekli de alt programlardr. Bu sistemde ilemin birka yerinde lazm olan bir program parasn tekrar tekrar yazmak yerine, bu blm bir kez ayr bir program gibi yazp, bu parann gerekli olduu yerde programn bu ksmn armak (ya da o ksma atlamak) metodu kullanlr. Bu sadece bir program yazmndan ksaltma ile kurtulmak deildir. Bir tablodan istenilen verinin seilmesi veya programn ok fazla hafza isteyip ilemcinizin bunu karlayamad durumlarda, alt programlar adeta bir can yeleidir. Alt program yazmnn bir program ne kadar ksaltacan grebilmek iin, dngler ksmnda zlen trafik neini birde alt program kullanarak zelim. rnek 8: Bir kavaktaki trafik klarnn aada verilen zaman ve sra ierisinde almas isteniyor. Trafik olarak led kullanarak gerekli devreyi tasarlaynz ve programn yaznz.

Sre (Sn) 15 5 25 5

Ara Yeil Sar Krmz Sar ve Krmz

Yaya Krmz Krmz Yeil Krmz

zm: Devre ekli stte verilmitir. Yine zamanlama iin 200*200=40000 turluk bekleme dngsn, 1 saniye olarak kabul ediyoruz. ;Trafik problemi, ;Lambalar:RB0:Yaya-krmz, RB1:Yaya-Yeil ;RB2:Ara-sar, RB3:Ara-Yeil, RB4:Ara-Krmz ;Sre ve durumlar ;15 sn Ara-Yeil,Yaya-Krmz ;5 sn Ara-Sar,Yaya-Krmz ;15 sn Ara-Krmz,Yaya-Yeil ;15 sn Ara-Sar-Krmz,Yaya-Krmz

106

LIST P=16F84 ; Registerler STATUS PORTA PORTB TRISA TRISB ; Deikenler ZD1 zaman X1 goto START bsf movlw movwf bcf TOP movwf movlw movwf call movlw movwf movlw movwf call movlw movwf movlw movwf call movlw movwf movlw movwf call goto EQU EQU EQU EQU EQU EQU EQU org 0h START STATUS,5 0h TRISB STATUS,5 movlw 09h PORTB 0Fh zaman BEKLE 05h PORTB 05h zaman BEKLE 12h PORTB 19h zaman BEKLE 15h PORTB 05h zaman BEKLE TOP 3h 5h 6h 5h 6h 0Eh 0Dh ; Power on ; 0000 ; Page 1 ; 0000-0000 saysn W registerine al ; PortB yi k olarak ayarla ;TRISB=00000000 ; Page 0 ;0 0 0 0 1 0 0 1 ; Ara Yeil, Yaya Krmz ; Bekle 15 saniye ;0 0 0 0 0 1 0 1 ; Ara Sar, Yaya Krmz ; Bekle 5 Saniye ;0 0 0 1 0 0 1 0 ; Ara Krmz, Yaya Yeil ; Bekle 25 saniye ;0 0 0 1 0 1 0 1 ; Ara Sar-Krmz, Yaya Krmz ; Bekle 5 Saniye ; Tekrarla

107

;******************************************************** ; BEKLE alt program ;******************************************************** BEKLE movlw .200 movwf ZD1 D1 movlw .200 movwf ZD2 D2 decfsz ZD2,F goto D2 decfsz ZD1,F goto D1 decfsz zaman,F goto BEKLE return END

108

rnek 9: Port Bde bal olan 8 adet ledi yakp sndren bir flip,flop program yaznz. Bu program yazarken zaman gecikmesini alt programlar eklinde yaznz? zm: LIST P=16F84 INCLUDE P16F84.INC EQU h00 EQU h0D CLRF PORTB BSF STATUS,5 CLRF TRISB BCF STATUS,5 MOVLW h00 MOVWF PORTB CALL GECIKME MOVLW hFF MOVWF PORTB CALL GECIKME GOTO TEK MOVLW MOVWF MOVLW MOVWF DECFSZ GOTO DECFSZ GOTO RETURN END hFF S1 hFF S2 S2,F DON2 S1,F DON1 ;Alt program ksm

S1 S2

TEK

GECIKME DON1 DON2

;Altprogram sonu

Programn birinci ksm port ayar ilemi yapmakta yani portBnin tm ularn k olarak ayarlamaktadr. kinci ksm ise porta b00000000 bilgisi ile b11111111 saysn sras ile gndererek port ucundaki ledlerin snmesini ve yanmasn salamaktadr. Gecikme isimli son ksm ise porta yanma ya da snme bilgisi gnderildikten sonra bekleme sresini ayarlamakta ve alt program eklinde kullanlmaktadr.

109

rnek 10: Zeminden st katlara yk tayan bir asansrn bakm sistemi iin yle bir dzenek isteniyor. Asansrn yukar kp aa dn 1 tur saylmak kaydyla 40.000 tur sonunda bakm zamannn geldiine dair bir sar ikaz lambasnn yanmas isteniyor. Eer bakm yaplmadan almaya devam eder ise 48.000 turdan sonra krmz ikaz lambasnn yanmas isteniyor. ayet asansr bakm yaplmadan 2.000 tur daha altrlrsa bu durumda asansrn almasn engellemesi isteniyor. Bakm yapldnda tur saysnn sfrlanarak ayn ilemin tekrar devreye girmesi isteniyor. Bu ilem iin gerekli devrenin prensip emasn iziniz ve programn yaznz. (pucu: Asansrn her bir turunu zeminde iken alglatma eklinde dnebilirsiniz.) zm: Burada esas olay asansrn ini k turlarn saydrmaktr. Normal sayc mantyla dndnzde bir deikenle sayabileceiniz en byk say 255tir. Bu ekilde dndnzde birler, onlar basama mant ile dnp 2 veya 4 deiken kullanarak program yazlabilir ki biraz uzunca bir program olur. Ancak i ie iki dng ile tu basmasn saydrrsak, bu durumda i ie olmak zere her ikisi de 200 turluk 2 dng ile 200*200=40000 tur sonunda dng tamamlanr. Sonunda 40000 tur sonunda yaplacak ilem yaptrlr. 8000 ve 2000 tur iinde ayn teknik kullanlabilir. Aadaki zm bu manta gre tasarlanmtr. ;Asansr koruma-bakm problemi ;RA0 ucunda asansr turlarn sayan buton sensor ;RB0 Sar k ikaz ;RB1 Krmz k ikaz ;RB2 Asansr aktif/Pasif ucu, RB2=0 iken asansr alr durumda LIST P=16F84 STATUS EQU PORTA EQU PORTB EQU TRISA EQU TRISB EQU say EQU D0 EQU D1 EQU D2 EQU X1 goto org 0h START 3h 5h 6h 5h 6h 0Ch 0Dh 0Eh 0Fh

; ; dng deikeni 0 ; dng deikeni 1 ; dng deikeni 2 ; Power on ; 0000


110

START bsf movlw movwf movlw movwf bcf clrf movlw movwf ZD1 movlw movwf ZD2 call decfsz goto decfsz goto bsf movlw movwf ZD3 movlw movwf ZD4 call decfsz goto decfsz goto bcf bsf movlw movwf ZD5 movlw Movwf ZD6 call decfsz goto decfsz goto ZD7 bsf goto

STATUS,5 0h TRISB 0fh TRISA STATUS,5 PORTB .200 D1 .200 D2 tus D2,F ZD2 D1,F ZD1 PORTB,0 .40 D1 .200 D2 tus D2,F ZD4 D1,F ZD3 PORTB,0 PORTB,1 .10 D1 .200 D2 tus D2,F ZD6 D1,F ZD5 PORTB,2 ZD7

;Asansr 40000 tur alt m ;sorusu iin 200*200=40000 ;turluk dng iinde ;ts program tekrarlanr

;40000 tur olmutur SARI led yanar ;Asansr 8000 tur daha alt m? ;sorusu iin 40*200=8000 ;turluk dng iinde ;tus program tekrarlanr

;48000 tur olmutur SARI led sner ;48000 tur olmutur KIRMIZI led yanar ;Asansr 2000 tur daha alt m? ;sorusu iin 10*200=2000 ;turluk dng iinde ;tus program tekrarlanr

;50000 tur olmutur KIRMIZI led zaten ;yanktr, ;Asansor dumas iin RB2 ucu 1 yaplr ve

111

;Bu konumdan kmak iin RESET butonuna ;baslana kadar beklenir. ;*********************************** ; TUS Altprogram ;*********************************** tus btfss PORTA,0 ;Asansorun 1 turu icin zemindeki goto tus ;butona baslp brakld m? eklinde tus2 btfsc PORTA,0 ;programla test etmek gerekir goto tus2 ;tus ikilemesi gerekmez return END

112

You might also like