pic mikrodenetleyici

Upload: masood-totakhel

Post on 31-Oct-2015

154 views

Category:

Documents


1 download

DESCRIPTION

PIC

TRANSCRIPT

  • PIC 16F84

    MKRODENETLEYC TEMEL BLGLER, PROGRAMLANMASI VE UYGULAMALARI

  • Sunu Kiisel bilgisayarlar kullandmzda genellikle onun donanm hakknda fazlaca

    dnmeyiz. Sadece kullanma yntemlerini renmeye alrz. nk bilgisayarlarla interneti kullanmay veya word, excel, powerpoint programlar bizler iin daha nem tarlar. Biz burada mikrodenetleyicileri daha sonra renmeye alacaz. Mikrodenetleyicileri anlayp renebilmek iin aadaki basamaklar takip etmemiz gerekmektedir. (1) fade deerinin ekli Binary say, Hexadecimal say, Decimal say (2) Mikrodenetleyicileri kullanabilmek iin Assembler dili (3) Elektronik malzemeler ve karakteristikleri hakknda bilgi ( IC, LED, diyot, diren, transistr, vb.)

    Endstriyel matematik dersinde bu saysal deerlerin ve bunlarn birbirlerine dnmleri ile arpma, toplama, blme ve karma gibi ilemlerin nasl olduunu rendik. Bu ders kitabnda bu deerleri kullanmay dahada ileri seviyelere ulatracaz.

    Assembler dili mikrodenetleyici programlar iin kullanlmaktadr. Ancak assembler dili olduka zor olmasna ramen temel oluturduundan dolay pek ok insan tarafndan kullanlmaktadr. nk assembler dilini kullanabilmek iin donanm bilgisine ihtiya vardr. Makine dilini anlayabilirsek bu mikrodenetleyici dilini anlayabiliriz. Assembler dili makine diline benzerlik gsterir. Bu dilde sk sk register, adres, byte, flag, vb. gibi terimler kullanmaktayz. stelik program hatasz olmal ve sonunda derlememiz gerekmektedir. Bu program dili fazla esnek deildir. Program yazarken mikrodenetleyici ilemcisinin data bilgilerini kullanrz. Bu nedenle hata yapmamamz gerekir. Assembler dilinde bir program yazacamzda komutlarnn grevlerini iyi anlamamz gerekmektedir. Assembler veya makine dilinin bu kadar zor ve dikkat edilmesi gereken bir programlama yntemi olmasna ramen neden bu dil gnmzde de tercih edilmekte olduunu aadaki maddelerle sralayabiliriz..

    (1) lem hz ok hzldr. (2) Assembler dili fazla hafza kullanmaz. (3) Makine dili ile direk balantl olduundan kontrol iin uygundur.

    Mikrodenetleyici teknolojisi aracl ile PIC in Assembler dilini reneceiz. Her

    nekadar PIC programlama gelecekte C dili ile kontrol edilip yazlsada assembler dili temel bilgi olarak ok nem tamaktadr. Bununla birlikte elektronik paralarn zelliklerini ve alma prensiplerini eitim setiyle daha iyi renmi olacaz. Buna sensrlerde dahil olmaktadr. Mikrodenetleyici teknolojisini Otomasyon teknolojisine geite bir adm olarak kullanmaktayz.

  • PIC mikrodenetleyicileri PIC mikrodenetleyici eitim seti PIC izgi takip eden robot

  • N D E K L E R Blm 1 Mikrodenetleyicinin temeli 1 - 11 Mikrodenetleyici

    (1) Bilgisayarn temel donanm 2 (2) Mikrodenetleyici iletimi 3 (3) Hafzas ve fonksiyonlar 3

    2 PIC mikrodenetleyici

    (1) PIC in yaps 5 (2) PIC eitleri 6 (3) PIC in yaps 6 (4) PIC programnn gelitirilmesi 7

    3 Saylarn ifadesi

    (1) Saylarn tipi 9 (2) Binary dijit nedir? 10 (3) Hexedesimal dijit nedir? 11 (4) Binary, desimal, hexedesimal saylarn dnmleri 11

    Blm 2 PIC yazcs ve eitim seti yapmak 13 - 25 1 Elektronik elemanlarn anlatm

    (1) Transistr 14 (2) LED ( light emitting diode )( Ik yayan diyot ) 15 (3) Diyot ( anahtar diyot ) 15 (4) Seri reglatr ( Gerilim dzenleyici ) 16 (5) Kristal osilatr 17 (6) Transistor dzeni ( ULN2803 ) 17

    2 PIC eitim setinin yapl

    (1) Elektronik devre zerinde deliklerin delinmesi 18 (2) Alt taban ( effaf ) deliklerinin almas 19 (3) Lehimleme yntemi 19 (4) Elektronik para elemanlarnn yerletirilmesi 20 (5) PIC yazcsnn devre diagram 21 (6) PIC yazc paralarnn dzenini gsteren ema 21 (7) PIC eitim seti devre diyagram 22 (8) PIC eitim seti para dzeni emas 22 (9) Para listesi 23 (10) Balama aparatnn yapm 24 (11) Bilgisayar balant kablosunun yapm 25

  • Blm 3 PICin yaps 26 - 39 1 PIC16F84

    (1) PIC16F84 26 (2) PIC16F84 n yaps 27 (3) Clock dzeni / Komut sresi 28 (4) Komut ak / Bilgi iletim kanal 28 (5) W yazmac ( register ) 29 (6) Program bellei ( memory ) 30

    2 Veri bellei ( DATA memory )

    (1) Veri bellei 31 (2) Yn hafza ( Stack Memory ) 32 (3) Program sayc ( Program counter ) 32 (4) STATUS Yazmac ( Register ) 33

    3 I / O port ( input / output )

    (1) Giri lemi 34 (2) k ilemi 35

    4 Reset Devresi (1) Resetleme lemi ( Power on Reset ) ( POR ) 36

    (2) Butonla Reset 37 5 Osilatr zellikleri

    (1) osilatr modelleri 38 (2) Kristal / seramik resonator ilemi 38 (3) RC Osilatr 39

    Blm 4 PIC Programlamnn temeli 40 - 124 1 MPLAB (MPASM) nasl Kullanrz ?

    (1) Basit bir program 40 (2) Saylarn ifade edilmesi 40 (3) Programn temel ifade ekli 41 (4) Program yazmann yntemi 42 (5) MPLAB nasl kullanlr ? 43 (6) MPASM 56

    2 PIC yazc setini nasl kullanrz ?

    (1) PIC yazcnn ( writer ) kullanlmas 57 (2) Balants kablosunu PCye balaynz. 57 (3) PICWW ( PIC yazc program ) nasl kullanlr ? 58 (4) Bu programn sonu ifadesi 65

    3 Programn aklanmas

    (1) Program Listesi ve ak diyagram 66 (2) Yntem artnamesi ( Specification of processor ) 67 (3) Portun kurulumu 68

  • (4) LEDlerin yaklmas 71 Altrma 4-1 72 Altrma 4-2 72

    4 ki veya daha fazla LED in yaklmas

    (1) Program 4-1 73 (2) Include dosyas 73 (3) MOV komutu 75 Altrma 4-2 76 Altrma 4-3 76

    5 Timer Program (DECFSZ) (1) Zamanlayc ( timer ) program 77 Altrma 4-4 80 (2) Program 4-2 81 Altrma 4-5 83 Altrma 4-6 83

    6 LED lerin ardk olarak yanmas ( Dn uygulamas ) (1) Dn program 1

    1) Dn uygulamas 84 2) Program 4-3 85 3) Ak diyagram 86 Altrma 4-7 86

    (2) Dn program 2 1) BTFSC komutun uygulamas 87 2) Program 4-4 88 3) Ak diyagram 89 Altrma 4-8 90 Altrma 4-9 90

    7 ncrement and decrement uygulamas ( INC , DEC ) (1) Program 4-5

    1) Ak diyagram 91 2) Program yazl 92 Altrma 4-10 92

    8 Anahtarlama arabirimi (1) Anahtarlama devresi 93 (2) Programn aklanmas 93 (3) Program 4-6 94 (4) Ak diyagram 95 Altrma 4-11 95 Altrma 4-12 96

    9 RETLW komutunun uygulamas

    (1) Retlw ilem sras 97 (2) Program 4-7 97 Altrma 4-13 98

  • 10 Buton arabirimi 2 (1) chattering 100 (2) Alc ile buton uygulamas

    1) Klasik tip buton devresi 100 2) Kondansatrl buton devresi 100 3) Schmidt Trigger ters eviricili devre 101

    Altrma 4-14 (1) Altrmann aklanmas 101 (2) Altrma 4-14 ( ak diyagram ) 102 (3) Buton uygulama devresi 103 (4) Buton uygulama devresinin stten grn 103 (5) Deneyin sonucu 104

    11 Uygulanabilir buton program (1) Uygulanabilir buton programnda izlenecek yol 105 Altrma 4-15 106

    12 Mantksal ilemler (AND,OR,XOR) (1) AND ilemi

    1) ANDLW 107 2) ANDWF 107 3) Program 4-8 108 4) Ak diyagram 108 5) Program 4-8 listesi 109

    (2) IOR ilevi 1) IORLW 110 2) IORWF 110 3) Program 4-9 111 4) Ak diyagram 111 5) Program 4-9 listesi 112

    (3) XOR ilevi 1) XORLW 113 2) XORWF 113 3) Program 4-10 114 4) Ak diyagram 114 5) Program 4-10 listesi 115

    Altrma 4-16 115

    13 Aritmetik komutlar ( ADD , SUB komutlar) (1) ADD komutlar

    1) Program 4-11 116 2) Ak diyagram 116 3) Program 4-11 listesi 117

    Altrma 4-17 117 Altrma 4-18 117 (2) ki bit bilginin toplanmas

    1) Dnme yntemi 118 2) Ak diyagram 118 3) Program 4-12 listesi 120

    (3) kartma komutlar 1) SUBLW 121

  • 2) SUBWF 121 3) karma yntemi 122 4) Program 4-13 122

    5) Program 4-13 listesi 123 Altrma 4-19 123 Altrma 4-20 123 6) SUB komutunu eitli ekillerde karlatrmas 124 Altrma 4-21 124

    Blm 5 PIC Program Uygulamalar 125

    1 Yedi Segment kod zc ( Segment decoder ) 125 - 129 (1) Yedi segment kod zcler 125 (2) Programn planlanmas 126 (3) Yedi segment programn ak diyagram 128 (4) Programn yaplmas ve uygulanmas 129

    2 Rle kontrol (Relay control ) 130 - 135 (1) Mekanik rle 130

    1) Rle deney devresi 131 2) letken balants 132 3) Program yapm 133 Altrma 5-1, 5-2, 5-3 133

    (2) SSR ( Solid State Relay ) 1) SSR 134 2) letken balants 134 3) Program yapm 135 Altrma 5-4, 5-5, 5-6, 5-7 135

    3 lemsel Ykselteler (Operational amplifier Op-amp) 136 - 147 (1) lemsel ykselteler 136 (2) Tersleyen ykselte devresi 137 (3) Tersleyen ykselte devresi

    1) Tersleyen ykseltecin ykseltme faktr 137 2) Tersleyen ykselte devresine uygulama 138

    (4) Terslemeyen ykselte devresi 1) Terslemeyen ykseltelerin ykseltme faktr 141 2) Terslemeyen ykselte devresine uygulama 141

    (5) Karlatrc ( Comparator ) olarak kullanlmas 1) Karlatrc 144 2) Karlatrc uygulamas 144

    Altrma 5-8 146 Altrma 5-9 147 (6) Voltaj takip devresi 147

    4 DA konvertr 148 - 156 (1) DA konvertr prensibi 148 Altrma 5-10, 5-11 149 (2) DENEY 1

    1) DA konverterin k 150 2) DA konvertrn deneyi 150

    (3) Testere dili dalga yapm 154

  • Altrma 5-12 156

    5 AD konvertr 157 - 163 (1) AD konvertr prensibi 157 (2) AD konvertr tipinin ardarda tahmin prensibi 159 (3) Program yapm 161 Altrma 5-13, 5-14 163

    6 Seri iletiim (RS-232C) 164 - 182 (1) Bilgi iletiiminin ana hatlar 164

    1) Bilgi iletiim sistemi 164 2) Transmisyon sinyal sistemi 165 3) RS232C 165 4) Seri komnikasyonun format 166 5) Seri komnikasyon uygulama devresi 168

    (2) Seri komnikasyon program 1 1) Program 1 169 2) Program mant 170 3) Programn ak diyagram 170 4) Program1 rnei 172 5) Teraterm programn nasl kullanrz ? 173 6) Programn uygulanmas 175

    Altrma 5-15 175 (3) Seri komnikasyon program 2

    1) Program 2 hakknda 176 2) Program mant 176 3) Program2 rnei 176 4) Program uygulamas 180 Altrma 5-16, 5-17, 5-18 181-182

    7 Step Motor kontrol 183 - 197 (1) Step motorlar hakknda genel bilgiler

    1) Her admn derecesi 183 2) Ularnn tesbiti 184 3) Step motorlarn temel zellikleri 184 4) alma prensibi 185 5) Unipolar Step motor ( 1 fazl srme metodu ) 186 6) Unipolar Step motorun 2 fazl olarak srlmesi 187 7) Unipolar Step motorlarn 1-2 fazl olarak srlmesi 188

    (2) Step motor uygulamas1 1) Step motor uygulama devresi 189 2) Step motorun program 191 3) Programn ak diyagram 191 4) Program listesi 192

    Altrma 5-19, 5-20, 5-21, 5-22 194 (3) Step motor uygulamas 2 ( Pozisyon kotrol )

    1) Foto interrupter 195 2) Program 195 3) Programn ak diyagram ( Altrma 5-23 ) 196

  • 8 DA motor kontrol 198 - 211 (1) DA motorlar hakknda genel bilgi

    1) Transistr ve FET ile DA motor kontrol yapabiliriz. 198 2) H kpr devresi 199 3) Motor src 199 4) DA motorlarnda hz kontrol

    (a) Gerilim kontrol 200 (b) PWM kontrol (Faz genilik kontroll ) 201

    5) DA motor ders eitim setinin devre emas 202 (2) Eitim malzemesi

    1) Motor eitim malzemesi 203 2) DA motor eitim seti 203

    (3) DA motor program 1) Program1 ( FET ile ) ( Uygulama 5-24 ) 204 2) Program2 ( TA7257 ile ) ( Uygulama 5-25 ) 204 3) Program 3 ( PWM program ) 205

    (a) PWM Dalgas ( PB1 ) 205 (b) PWM dalgasn nasl oluturuz. 205 (c) Program3n ak diyagram 206 (d) Program3 listesi 207 (e) Program3n uygulama sonucu 209

    Uygulama 5-26 210 Uygulama 5-27 211

    9 Kesme ( nterrupt ) 212 - 232

    (1) Kesme 1) Kesme kavram 212 2) TMR0 kesme 213 3) D kesme RB0/INT ucu 213

    (2) INTCON Yazmac ( register ) ( Adres 0Bh,8Bh ) 214 (3) OPTION_REG REGISTER ( ADRES 81h ) 215 (4) RB0/INT kesme

    1) RB0/INT kesme program 217 2) programn ak diyagram 218 3) RB0 / INT kesmesi iin program 219

    Uygulama 5-28 221 Uygulama 5-29 222 (5) TMR0 (Timer0 zaman am kesme)

    1) Timer0 zaman am kesme hakknda 223 2) Zaman am frekans nasl elde edilir ? 225 3) Interval zamanlayc ( timer ) 226

    (6) Timer0 program1 1) Ak diyagram 227 2) Timer0 program1 228

    (7) Timer0 program2 ( TMR0n Initial deeri setleme ) 1) Timer0 program2 230

    Uygulama 5-30, 5-31 232

  • 10 izgi takip eden Robot ( Line trace robot control ) 233 - 247 (1) izgi takip eden robot anlatm

    1) izgi sensr 233 2) Foto transistor uygulamas 235 3) Foto IC ( Hamamatsu S7136 ) 238

    (2) izgi takip eden robot 1) izgi takip eden robot devre emas 239 2) izgi takip eden robotun program 240

    (a) izgi takip eden robotun temel alma prensibi a) PIC ucu ( PORT ) 240 b) TA7257P ( Toshiba ) 240 c) Temel program 1 ( leri hareket ) 241 d) Temel program 2 243

    3) izgi takip eden program 1 ( Uygulama 5-33 ) 244 4) Program 1 in ak diyagram 245

    Uygulama 5-34 246

    11 Mzik program 247 - 251 (1) Mzik program 247 (2) Mzik program

    1) Program erevesi 248 2) Program listesi 249

    Uygulama 5-35 250 (3) Mzik program 250 Uygulama 5-36 250

    Eki PIC komutlarnn aklanmas 251 - 286 Include dosyalar 287 - 291 Bilgi sayfalar 292 - 309 renim seti 310

  • Mikrodenetleyicinin temelleri

    Blm 1 Mikrodenetleyicinin temeli

    lk mikrodenetleyici seti (NEC TK-85)

    Mikrodenetleyici chipleri

    1

  • Mikrodenetleyicinin temelleri

    Mikrodenetleyici

    Mikrodenetleyici gerekte kk bir bilgisayardr. evremizde o kadar ok mikrodenetleyici kontroll elektronik cihaz vardr ki bunlara rnek televizyon, radyo, fax-modem, oyuncaklarda, VCR, kamera vb. verebiliriz. Bunlar aada ( ekil 1-1 ) de grmektesiniz.

    micro

    computer

    ekil 1-1 evremizde kullanlan aktif Microdenetleyici rnekleri (1) Bilgisayarn temel donanm

    Btn bilgisayarlar verilen programla almaktadr. Buna sistem programnn kayt edilmesi denir.

    Genel mikrodenetleyici sistemleri ekil 1-2 de grlmektedir. Bu mikrodenetleyiciler CPU ( Merkezi ilem birimi ) , ROM ( Sadece okunabilen bellek ), RAM ( Rastgele eriilebilen bellek ) ve LSI ( Arabirim ) den olumaktadr.

    Clock

    CPUInterface

    Adress BUS

    Data BUS

    ROM RAM

    input/output

    LSI

    ekil 1-2 Genel mikrodenetleyici sistemleri

    2

  • Mikrodenetleyicinin temelleri

    8-bitlik bir mikrodenetleyici dizayn etmek istediimizde ilknce CPU sememiz

    gerekmektedir. Gnmzde popler CPU lar i8085(Intel), Z80, M6809(Motorola) dr. En popleri Z80dir. Z80 i8085 in tm zelliklerini kullanmakta bu nedenle ok sayda komuta sahip olmaktadr. Ancak mikrodenetleyicilar sadece CPU ile almamaktadr. Mikrodenetleyici sistemlerinin oluabilmesi iin I/O ( Giri k ) birimlerinin yan sra adres tanmlama devresine ( burada RAM ve ROM bellek adreslerini ve arabirimi seebiliriz ), ilem hzn salayan clock devresine ve LSI ( 8255,Z-80PIO ) arabirimine ihtiya bulunmaktadr Bu nedenle LSI ve bellek mutlaka mikrodenetleyici sistemleri iin gereklidir. (2) Mikrodenetleyici iletimi

    Mikrodenetleyiciler birimi srekli tekrar ederler.

    a) Alma ( Fetch )

    Hafzaya yklenmi olan program komutlarn alr. b) Kod zme ( Decode )

    Yazmataki komutlar kod zc ( decoder )

    yardmyla zer. c) Uygulama ( Execution )

    zlen komutlar uygular ve bu ilemi srekli

    tekrar eder.

    Fetch

    Decode

    Execution

    ekil 1-3 Mikrodenetleyici devresi (3) Hafzas ve fonksiyonlar

    Mikrodenetleyicinin ana hafzas olarak genellikle IC hafza ( RAM or ROM ) kullanmaktadr.

    a) ROM (Sadece okunabilir bellek) ROM sadece d verileri okumak zere tasarlanmtr, CPU ve IC ile buna veri yazlm

    gerekletirilemez. Bilgileri zerinde dzenli bir ekilde saklamaya yarar ve elektrik kayna kesilse bile zerindeki bilgiler silinmez, ROM bellek ierii kalc olarak saklanr ROM ana eitten olumaktadr.

    3

  • Mikrodenetleyicinin temelleri

    Mask ROM IC ileminin ieriini dzenleyebildiimiz bellek eididir.

    Yeniden yazlmas mmkn deildir. PROM (Programlanabilir ROM) Kullanc tarafndan yazlabilen bellektir. Yeniden yazlmas mmkn deildir EPROM (Silinebilir PROM)

    Kullanc tarafndan tekrar tekrar yazlabilmekte veya silinebilmektedir.

    b) RAM ( Rastgele eriilebilen bellek )

    RAM kullanclarn bellei zgrce okuyup yazabilmesi iin bir IC belleidir. Fakat elektrik kayna kesildiinde btn bilgiler bellekten silinir. Bu nedenle RAM aritmetik ilemlerin sonucunu geici sreler ierisinde bellekte depolama ilemine yarar

    Mask ROM

    retim ileminde yazlmtr, ierikler silinemez.

    PROM

    PROM yazcs ile yazlmtr silinemez.

    UV-EPROM

    PROM yazcs ile yazlmtr ultraviole nlar ile silinebilir.

    ROM

    EEPROM

    PROM yazcs ile yazlmtr, elektrik sinyalleri ile silinebilir.

    Statik RAM

    Kullan basit ve kolaydr ancak pahaldr. RAM Dinamik RAM

    Kullan zordur ancak pahal deildir.

    Tablo 1-1 Bellek eitleri

    4

  • Mikrodenetleyicinin temelleri

    2 PIC mikrodenetleyici (1) PIC in yaps

    PIC Mikrodenetleyici ngilizce ( Peripheral Interface Controller ) kelimesinin baharflerinden olumaktadr. Anlam ise d niteleri denetleyen arabirimdir. Bunun aracl ile eitli alclar ( lamba, role, motor vb. ) kolaylkla kontrol edebiliriz.

    C P U

    ROM

    RAM

    I / O port

    P I C

    ekil 1-4 PIC paketi

    PIC mikrodenetleyici bir entegre eklinde olup I/O giri ve k kontrollerini ok kolay ve hzl bir ekilde yapabilmekteyiz Bu nedenle robot gibi ufak sistemleri kontrol edebiliriz.

    PIC mikrodenetleyici aadaki zelliklere sahiptir. (a) Komut says dier CPU lardan daha azdr. PIC ler RISC( Reduced Instruction Set Computer ) denilen bir sistem mant ile

    retildiklerinden komut saylar azdr ( sedece 35 Adet ) ve basittir. Bunun yansra Z-80 CPU da 158 adet komut says mevcuttur.

    (b) Kk gerilim altnda ilem yapmak mmkndr. PIC ler piyasada bulunan kuru pil olarak tabir ettiimiz bataryalarla alabilmektedir.

    nk alma gerilimleri 2 ila 6 Volt arasndadr. (c) k pininden yksek akm alnabilir.

    PIC in ularna direk olarak LED srebiliriz nk PIC yaklak 20mA k gvenli bir ekilde salayabilir.

    (d) Fiyat olduka ucuzdur. PIC16F84 normal bir PIC mikrodenetleyici olup CPU lardan ok daha ucuza satn

    alabiliriz.

    ekil 1-5 PIC16F84 ve dier PIC ler.

    5

  • Mikrodenetleyicinin temelleri

    (2) PIC eitleri PIC yaklak 3 ayr katagoride inceleyebiliriz. 1) Dk seri 12 Bit kelime boyuna sahip eski kuak PIC lerdir. ( model numaras: 12C5xx,16C5x ) 2) Orta seri 14 Bit kelime boyuna sahip PIC lerdir. Bu seri olduka kullanl ve tercih edilen bir seridir. Analou digitale eviren ve seri porta sahip PIC tir. Aadaki PIC ler bu serinin elemanlardr. ( model numaras:12C6xx,16C55x,16C62x,16C6xx,16C7xx,16F8xx,16C92x ) 3) Yksek son seri 16 Bit kelime boyuna sahip PIClerdir. Yksek performansl olan bu PIC lerin kullanm zordur. ( model numaras:17Cxxx,18Cxxx )

    PIC eitleri smi bilgi biti Hafza kapasitesiHafza tipi A/D I/O port paketi

    PIC16C54 12 0.5 E 12 18P DIP PIC16C56 12 1 E 12 18P DIP PIC16C57 12 2 E 20 28P DIP PIC16C64A 14 2 E 33 40P DIP PIC16C71 14 1 E 4CH 13 18P DIP PIC16C74 14 4 E 8CH 33 40P DIP PIC16F84 14 1 EE 13 18P DIP PIC16F873 14 4 EE 5CH 22 28P DIP PIC16F874 14 4 EE 8CH 33 40P DIP PIC16F877 14 8 EE 8CH 33 40P DIP * Hafza tipi E: EPROM EE:EEPRPM U:UVEPROM

    Tablo 1-2 Orta seri PIC eitleri

    (3) PIC in yaps Genel mikrodenetleyicilerin yaps 'Von Neumann mimarisi ' olarak adlandrlr. Bilgi

    klar birlikte bir hafzadadr ve ALU bir data bus ile hafza ( memories ) arasndadr. ( ekil 1-6 ) Allagelmi mikrodenetleyiciler bu 'Von Neumann mimarisindedir. ( bus: Sinyal hatt bus olarak adlandrlr. rnein 8 bitlik bilgisayar data bus 8 sinyal hattna sahiptir. )

    6

  • Mikrodenetleyicinin temelleri

    peripheral

    circuit

    periph

    circuit

    mai

    memo

    instruction

    decode & control

    register

    A L U

    DATA bus

    LogicALU:Arithmetic

    Unit

    eral

    n

    ry

    ekil 1-6 Von Neumann mimarisi

    PIC Harvard mimarisine sahiptir ve data hafzas ile program hafzas vardr. (ekil 1-7) Data hafzas bilgi yoluna ( bus ), program hafzas ise program yoluna ( bus ) sahiptir. Bu iki yol ( bus ) birbirlerinden tamamen bamszdrlar. yaps basittir ve iletimi hzldr. Program hafzas bamsz olduundan dolay kaplad alanda bamszdr. Ve bu tanmlar birtek kelimeylede ifade edilebilir.

    peripheral

    circuit

    DATA memory

    instruction

    decode & control

    register

    A L U

    Program Memor

    DATA bus Program bus

    y

    ekil 1-7 Harvard mimarisi (4) PIC programnn gelitirilmesi

    PIC programnn gelitirilmesi ekil 1 8 gsterilmitir. 1) Kiisel bilgisayar OS(operating system)( iletim sistemi ): Windows 95,98,Me Specification ( zellikleri ): Pentium 75MHz ve st, paralel port , seri port 2) PIC programlama yazlm (MPLAB - IDE) MPLAB PIC i programlamak iin windows altnda alan bir yardmc yazlmdr. MPLAB IDE (Integrated Development Environment) olarak da adlandrlr. Microchip Technology

    7

  • Mikrodenetleyicinin temelleri

    Co. (United States) firmas tarafndan gelitirilmitir Bu program internetten cretsiz indirilebilir. Web adresi http://www.microchip.com 3) PICe windows da yazdrma program ( Ic prog )

    PIC e program yazdrmak iin zel bir elektronik devreye ihtiya vardr. Bu devreyle PIC e program yazdrma ilemini ic - prog yazlm gerekletirir. Bu program internetten cretsiz indirilebilir. Web adresi http://www.ic-prog.com Program ilk defa altrlacanda baz ayarlar yapmanz gerekmektedir. Bu ayarlar Blm 4 de aklanmtr. 4) PIC yazc ve PIC Eitim seti

    PIC yazcs elektronik bir devre olup PIC e yazlm program ykleme iine yarar. PIC eitim seti ise yazlan programn doru olup olmadn kontrol etmek iin yaplm elektronik bir devredir.

    PIC YAZICIPIC Eitim seti

    MPLAB

    Windows iin PIC yazc

    MPLAB* Kaynak dosya* Derleme* HEX Dosya

    * Program YazmYkleme

    Windows iin PIC yaz c

    ekil 1-8 PIC programnn gelitirilmesi

    8

  • Mikrodenetleyicinin temelleri

    3 Saylarn ifadesi (1) Saylarn tipi

    Microdenetleyiciler binary, decimal ve hexedesimal say sistemlerini kullanrlar. Binary say sistemi mikrodenetleyicilerin anlayabildii bir say kod sistemidir. Desimal say sistemi bize yabanc olmayan bir say sistemidir. Hexedesimal say sistemi ise bizim binary say sistemimizi kolayca anlamamza yardmc olan bir sistemdir. Bunun yansra kullancnn ( programlaycnn ) bu say sistemi arasndaki ilikiyi ok iyi bilmesi gerekir ve bunlar arasnda dntrmeleri kolayca yapabilme bilgisine sahip olmalar gerekmektedir.

    Desimal saylar Binary saylar Hexadecimal saylar 0 0000 0 1 0001 1 2 0010 2 3 0011 3 4 0100 4 5 0101 5 6 0110 6 7 0111 7 8 1000 8 9 1001 9 10 1010 A 11 1011 B 12 1100 C 13 1101 D 14 1110 E 15 1111 F

    Tablo 1-3 Desimal, binary ve hexedesimal karlklar tablosu

    Binary ve decimal say sitemlerini rendikten sonra bunlarn birbirlerine dnm metodlarn renmemiz gerekmektedir.

    9

  • Mikrodenetleyicinin temelleri

    dijital say

    maksimum ksaltma dijital say maksimum ksaltma

    1 2 17 131072 128K 2 4 18 262144 256K 3 8 19 524288 512K 4 16 20 1048576 1M 5 32 21 2097152 2M 6 64 22 4194304 4M 7 128 23 8388608 8M 8 256 24 16777216 16M 9 512 25 33554432 32M

    10 1024 1K 26 67108864 64M 11 2048 2K 27 13217728 128M 12 4096 4K 28 268435456 256M 13 8192 8K 29 536870912 512M 14 16384 16K 30 1073741824 1G 15 32768 32K 31 2147483648 2G 16 65536 64K 32 4294967296 4G

    Tablo 1-4 Digital numara ve onlarn maksimum deerleri (2) Binary dijit nedir?

    0 ve 1 den meydana gelen zel bir say sistemidir. Gerekte desimal say

    sistemlerinde 9 ve 1 toplandnda 10 elde edilir ancak binary say sistemlerinde 1 ve 1 toplandnda 2 olmaz. ( 1 ve 0 ) 10 olur.

    Mikrodenetleyicilerin sinyal seviyeleri yalnzca iki eittir. Ya yksek ( 1 ) yada alak ( 0 )dr. Bu mikrodenetleyici komutlar iin ok uygundur. Fakat mikrodenetleyiciler iin ok kolay ve anlalr olan bu binary say sitemi gerekte insanlar iin ok zor anlalmaktadr.

    Binary say sitemi kolayca hexedesimal say siteminede dntrlebilemektedir. Sonunda B harfi olan tm saylar binary say anlamn tamaktadr. rnein 21 olan desimal says binaride 10101B olarak ifade edilir. 21 = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 10101B

    10

  • Mikrodenetleyicinin temelleri

    (3) Hexedesimal dijit nedir?

    Hexedesimal say sistemi 16 tabanl bir say sistemi olup 0 15 arasnda saylarla ifade edilmektedir. Ancak 10 15 aras rakamla deil; A F gibi harflerle ifade edilir. rnein F ( 15 ) saysna 1 eklediimizde 10B binary saysn elde ederiz.

    8-bit binary sayy 4 er bitlik iki ksma bleriz ve Hexedesimal sayya karlk gelir. Hexedesimal saylar ifade ederken sonuna H (Hexedesimal) harfini ilave ederiz.

    10 = 0AH

    (4) Binary, desimal, hexedesimal saylarn dnmleri 1) DESMALN BNARYE DNTRLMES

    Desimal sayy 2 e bleriz. Kalan yan tarafa yazarz. Buda binary sayy verir. rnein decimal 19 olan sayy binary say sistemine dntrelim. 2 ) 19 2 ) 9 ------ 1 Lowest bit(LSB) En dk bit 2 ) 4 ------ 1 2 ) 2 ------ 0 19 = 10011B

    1 ------------ 0 Highest bit(MSB) En yksek bit

    Desimal say sisteminden hexedesimale dntrme ilemi ayn yolla gerekletirilir.

    2) BNARY SAYILARIN DESMALE DNTRLMES

    Her binary saysnn biti karesi ile arplr. ( 20, 21, 22, 23, ------), ve kan toplam decimal sayy verir. rnein , 1001 binary saysnn decimal sayya dntrlmesi 1 0 0 1 = 1x23 + 0x22 + 0x21 + 1x20 = 8 + 0 + 0 + 1 = 9

    11

  • Mikrodenetleyicinin temelleri

    3) DECMAL SAYININ HEXEDESMALE DNTRLMES Desimal sayy 16 ve 16n nn style bl kalan 16n-1 ile bl tekrar kalan 16n-2 ile bl bu

    ilemi 160 olana kadar tekrarla. rnein 677 in hexedesimale dntrlmesi.

    677 / 162 = 2 Blm : 165 ( 677 / 16*16 = 2.64453125 Tam ksm 2 alnr. 677 2 * 16 * 16 = 165 )

    165 / 161 = 10(0AH) Blm : 5 ( 165 / 16 = 10.3125 Tam ksm 10=A alnr 165 10 * 16 = 5 )

    5 / 160 = 5 ( 5 / 1 = 5 Tam ksm alnr. )

    SONU 677 = 2A5H Desimal say sisteminden binariye dnme metodu da kullanlabilir.

    4) HEXEDESMALN DESMALE DNTRLMES

    Her hexedesimalin says karesi ile arplr ( 160,161,162, ----), kan sonu toplanr buda desimal sayy verir. rnein A4H in decimal sayya dntrlmesi. A4H = 10x161 + 4x160 = 160 + 4 = 164 5) BNARNN HEXEDESMALE DNTRLMES

    Binary saylar her biri 4er bitlik gruplara ayrrz ve bunlar hexedesimale dntrz. sonra bunlar bir dzene koyarz. Bu hexedesimal saydr.

    rnein 101110B nin hexedesimal sayya dntrlmesi. 0010 1110

    00101110B = 2EH 2 E

    6) HEXADESMALN BNARY SAYI SSTEMNE DNTRLMES Her bir Hexedesimal sayy 4 er bitlik binary saylara dntrrz ve bunlar

    bieletirdiimizde Binary karln bulmu oluruz. rnein B2H hexedesimal sayy binarye dntrelim.

    B 2 B2H = 10110010B 1011 0010

    12

  • PIC yazcs ve eitim seti yapmak

    Blm 2 PIC yazcs ve eitim seti yapmak

    PIC Yazcs ve Eitim seti

    13

  • PIC yazcs ve eitim seti yapmak

    PIC mikrodenetleyiciyi greceiz. Mikrodenetleyiciye program yazmay ve yazlan program denemek iin gerekli olan deney setini burada hazrlayacaz.

    1 Elektronik elemanlarn anlatm

    Temel endstriyel elektronik dersinde ana elektronik paralarn zelliklerini rendik. Burada PIC yazc ve deney setini renmi olacaz. (1) Transistr 1) 2SC1815 ( npn transistr ) 2SC1815 npn tipi kk sinyal transistr E : emitter C : kolektr B : beyz

    C

    E

    B

    E CB

    2SC

    1815

    ekil 2-1 2SC1815 2) 2SA1015 ( pnp transistr ) 2SA1015 pnp tipi kk kk sinyal transistr

    E : emitter

    C : Kollektr B : beyz

    B

    C

    E

    E CB

    2SA

    1015

    ekil 2-2 2SA1015

    14

  • PIC yazcs ve eitim seti yapmak (2) LED ( light emitting diode ) ( Ik yayan diyot )

    G kaynanda enerjinin olup olmadn renmek iin ve eitim setinde yazlan programa gore ievini yapp yapmadn kontrol amacyla LED kullanacaz. Grnen n dalga boyu LED( Light Emitting Diode ) 380 760 nm. arasndadr.

    K

    A

    Uzun u anadu gstermektedir. ( + ) LED aadaki zellliklere sahiptir..

    lead frame

    bonding wire

    lens

    LED chip

    a) Uzun mrldr b) Dk g harcarlar c) Sahip olduklar s ok azdr. d) Yksek hzda alma gsterirler e) izimi kolaydr f) Iklandrma kontrol kolaydr.

    ekil 2-3 LEDin yaps Mavi LED 1993 de japonyada bir irket tarafndan gelitirildi. Gnmzde bir ok alanda

    kullanlmaktadr nk 3 ana renge sahiptir. ( krmz, yeil ve mavi. ) ( rnein : dot matrix ekran tam renkli ekrandr. )

    (3) Diyot ( anahtar diyot ) 1S1588 kk bir anahtar diyottur. Dz polarma durumunda 0,6 V. gerilime sahiptir.

    ekil 2-4 Diyot

    15

  • PIC yazcs ve eitim seti yapmak

    (4) Seri reglatr ( Gerilim dzenleyici ) Sabit bir gerilim elde etmek seri reglatr ile ok kolaydr. rnein, eer 7805 seri reglatr

    ekil 2-5 deki gibi kullanlrsa 5V. dzenli ve sabit bir gerilim elde edilmi olur. ayet 7812 de ayn ekilde kullanlacak olursa bu defada 12 volt sabit gerilim elde edilmi olur.

    out 7 8 0 5 in

    G N D

    ekil 2-5 seri reglatr 1 2

    7805

    G ir i k D C 5 V D C 8 V

    3

    PIC programn yazma devresi iin gerekli olan voltaj 12,5 volttur. 12,5 Voltu elde edebilmek iin 7812 seri reglatrn toprak ( GND ) ksmna diyot elde etmemiz yeterli olacaktr. ekil 2-6

    k gerilim 12,5 volt deerindedir ve diyotun her iki ucunda da 0,5 voltluk gerilim olumu olur.

    7 8 1 2 in out

    G N D Gi r i k

    D

    C 1 5 V D C 1 2 . 5 V

    ekil 2-6 12,5 Volt elde edilmesi

    Ularn karlklar Kutup Model numaras

    k akm

    1 2 3

    pozitif 78M serisi 500mA Giri GND k

    78 serisi 1A Giri GND k

    negatif 79M serisi 500mA GND Giri k

    79 serisi 1A GND Giri k

    Tablo 2-1 Seri reglatr

    16

  • PIC yazcs ve eitim seti yapmak

    (5) Kristal osilatr

    Kristal osilatr mikrodenetleyicilere pals reterek almalarn salayan elemandr. 4MHz. lik kristal osilatrler kullanmaktayz.

    PIC e gre en doru kristali sememiz

    gerekmektedir. Eer uygun kristal seersek en doru pals elde etmi oluruz. PIC ler 4 10 20 MHZ gibi hzlara sahiptir ve kristali yksek hzda da sesek PIC in en yksek hzna gre alma salanr.

    ekil 2-7 Kristal osilatr

    (6) Transistor dzeni ( ULN2803 )

    Transistor dzeninde 8 adet darlington transistor kullanlmtr. Diyotlarda bu transistor dzeni iinde bulunmaktadr ve rle veya benzerleri elemanlar kontrol edilebilme zellii vardr. ULN2803 50 Volt ve 500 mA yk kontrol edebilir. Mikrodenetleyici kontrolleri iin transistor dzenei ok kullanldr.

    +

    GNDULN2803

    LEDrle

    ULN2803U L N2803

    ekil 2-8 Transistor dzenei ( ULN2803 )

    17

  • PIC yazcs ve eitim seti yapmak 2 PIC eitim setinin yapl (1) Elektronik devre zerinde deliklerin delinmesi

    Delik delme ilemi her iki devre iinde yaplr. 0.8mm lik matkap ucu kullanlmaldr. ekil 2-9 ve ekil 2-10. de gsterildii gibi de 1mm, 1.5mm, 3mm, and 6mm aplarndada

    deliklerde mevcuttur. 1mm

    JICA 2003

    1mm

    1mm

    1mm

    1mm

    2.5mm

    ekil 2-9 PIC Yazc

    1mm

    3mm

    3mm

    3mm

    3mm

    1mm

    1mm

    ekil 2-10 PIC deney seti

    18

  • PIC yazcs ve eitim seti yapmak

    (2) Alt taban ( effaf ) deliklerinin almas

    Alt taban yaplan elektronik devrenin biraz havada kalmasn salayan ve yerle temasn gerekletiren blmdr. effaf malzeme zerindeki koruma yapkan delikler aldktan sonra kartlmaldr. Btn delikler 3 mm olmaldr.

    200mm

    170mm

    150m

    m

    120m

    mBu deliklerin yerlerini elektronikdevrenize gre iaretleyiniz.

    ekil 2-11 effaf alt taban delikleri (3) Lehimleme yntemi 1) Lehimleme Elektronik devrelerin montajnda lehimleme ok nemli bir aamadr. (a) Havyann ucunu lehimlenecek olan yere tut. ( yaklak 1 saniye )

    (b) Sonra lehimi tut ve lehim erir.

    (c) Daha sonra lehim ve havya ucunu ayn zamanda lehim yaplan yerden uzaklatr. le

    h i m h a a v y h a a v y leh i m ha v y a

    (a) (b) (c)

    ekil 2-12 Lehimleme yntemi

    19

  • PIC yazcs ve eitim seti yapmak 2) Lehimlemeyi kontrol et.

    Y KT

    ekil 2-13 Lehimleme

    3) Kalan fazla kablo balarnn kesilmesi

    Kalan azl na l keserizf a l s '

    kes

    Ucu eip bkmeyiniz

    kes

    ekil 2-14 Kablo fazlalklar nasl kesilir. (4) Elektronik para elemanlarnn yerletirilmesi Diren ve kondansatrler ekilde gsterildii gibi montaj yaplr.

    U p nc u e i b k m e y i i z

    KT Y

    104K

    104K

    1mm

    ekil 2-15 Elektronik para elemanlarnn yerletirilmesi

    20

  • PIC yazcs ve eitim seti yapmak (5) PIC yazcsnn devre diagram

    7812 7805

    12.5V 5.0V

    +5V

    MCLR

    GND

    D3

    GND

    220uF 0.1uF 0.1uF1S1588

    0.1uF 0.1uF

    2.2k

    2.2k

    2.2k

    2.2k

    2SA1015

    2SC1815

    2SC18151S1588

    2200pF

    1k 300

    LED

    74LS244

    74LS244

    D2

    D5

    D0

    D1

    DATA(RB7)

    CLOCK(RB6)

    PIC 14P

    PIC 4P

    PIC 5P

    PIC 13P

    PIC 12P

    D4

    BUSY

    1

    2

    3

    4

    5

    6

    7

    8

    9

    1k

    LED74HC00

    DC15V

    Dsub (9P)male

    ekil 2-16 PIC yazcsnn devresi (7) PIC yazc paralarnn dzenini gsteren ema

    ekil 2-17 Yerleim emas

    21

  • PIC yazcs ve eitim seti yapmak (7) PIC eitim seti devre diyagram

    abC

    de

    fg

    P

    RB0

    RB1

    RB2

    RB3

    RB4

    RB5

    RB6

    RB7

    RA0

    RA1

    RA2

    RA3

    BZ

    a

    b

    Cd

    e

    fg

    P

    OSC1

    OSC2

    MCLR

    22k

    1k

    4

    10k

    1S1588

    4MHz

    22pF

    22pF

    ULN2803 300 X 8 LED X 8

    +5V

    CLOCK

    DATA

    PIC16F84

    +5V

    +

    GNDULN2803

    7segment LEDanode common

    MCLR

    22

    10k X

    GND

    ekil 2-18 PIC eitim seti devresi (8) PIC eitim seti yerleim emas

    ekil 2-19 Yerleim emas

    22

  • PIC yazcs ve eitim seti yapmak (9) Para listesi

    Para ListesiSra No Parann ismi zellii Adedi

    1 Bask devre Yazc ve Eitim seti iin 12 IC soket 14pin 13 IC soket 18pin 34 IC soket 20pin 15 IC 74HC00 16 IC 74LS244 17 PIC microdenetleyici PIC16F84A 18 Transistr dzenleyici ULN2803 19 Reglatr IC 7805 1

    10 Reglatr IC 7812 111 LED krmz 912 LED yeil 213 Transistr 2SA1015 114 Transistr 2SC1815 315 Diyot 1N4148 316 Diren 300 1/4W 917 Diren 2.2k 1/4W 418 Diren 1k 1/4W 319 Diren 10k 1/4W 520 Diren 22 1/4W 121 Diren 22k 1/4W 122 Kondansatr 0.1uF 423 Kondansatr 2200pF 124 Kondansatr 22pF 225 Elektrolitik kondansatr 220uF 16V 126 Anahtar 3P ulu 227 Konnektr ( PC iin ) D sub 25P erkek 128 Kablo konnektr Dsub 25P 129 Konnektr D sub 9P dii 130 Kablo konnektr Dsub 9P 131 Konnektr ( set iin ) D sub 9P erkek 132 Konnektr 5P erkek devre iin 233 Konnektr 5P dii 234 Konnektr 10P erkek devre iin 235 G giri soketi 2P 136 AC adaptr 15V 300mA 137 Kablo 8 li 1.2m 138 Kristal 4MHz 139 Basmal buton 540 Piezoelektrik hoparlr 141 7 segment LED 142 effaf alt taban 100*150 243 Vida M3*30 844 Vida somunu M3 845 Ykselti eleman 20mm 8

    23

  • PIC yazcs ve eitim seti yapmak (10) Balama aparatnn yapm

    TU

    NIK

    15

    TU

    NIK

    15

    20cm

    ekil 2-20 PIC devrelerinin birbirine balanma aparat ekil 2-21 Ak pinleri kapatma aleti 1 2 3 4

    ekil 2-22 Aletin kullanlmas

    ekil 2-23 Ular plastie geir

    24

  • PIC yazcs ve eitim seti yapmak (11) Bilgisayar balant kablosunun yapm

    2

    34

    5

    6

    7

    10

    25

    2 3 4 5

    1 6 7 8 9

    D s u b 2 5 P D sub 9 P

    80 c m

    (D ) i i ( Erkek )

    2 ... 8 ( D0 )

    3 ... 9 ( D1 )

    4 ... 4 ( D2 )

    5 ... 1 ( D3 )

    6 ... 2 ( D4 )

    7 ... 5 ( D5 )

    10 . 3 ( ACK )

    25 . 7 ( GND )

    2-24 Kiisel bilgisayar iin kablo

    25

  • PIC in yaps

    Blm 3 PICin yaps 1 PIC16F84 (1) PIC16F84

    PIC16F84

    RA1RA2

    RA0

    RB7

    RB6

    RB5

    RB4

    RA3

    RB0,INT

    RB1

    RB2

    RB3

    +Vcc

    OSC1/CLOCKIN

    OSC2/CLOCKOUT

    GND

    MCLR

    RA4/T0CLKI

    ekil 3-1 PIC16F84 Her bir ucun aklanmas : OSC1/CLOCKIN : Osilatr girii / External oscillator input OSC2/CLKOUT : Osilatr girii / OSC1 frekansnn deerindeki k clock ucu MCLR ( inv ) : Reset girii RA0 RA3 : Giri k ular RA4/T0CKI : Giri k ucu / TMR0 iin clock puls giri ucu RB0/INT : Giri k ucu / D kesmeler iin giri ucu RB1-RB7 : Giri k ucu GND : G kaynann eksi ( ) ucu Vcc : G kaynann art ( + ) ucu

    Yazlan bir program PICe kayt ederken ise RB6 ucuna clock pulse, RB7 ucuna data

    bilgilerini vermemiz gerekir. Ayrca MCLR ucuna 12,5 Volt, GND ucuna ( - ) eksi, Vcc ucuna da +5 Voltu vermeyi unutmamalyz.

    26

  • PIC in yaps

    PIC16F84 18 ulu 1 Kbyte fla program bellei, 68 bayt RAM bellek, 64 Byte EEPROM bellee sahiptir. PIC16F84 e program elektrik sinyalleri ile kolayca tekrar tekrar yazlabilir veya silinebilir. Ancak ROM bellek olanlarda ise tekrar yazabilmek iin ltraviyole nlara ihtiya vardr. (2) PIC16F84 n yaps

    INDIRECT ADDRINDIRECT ADDR

    OPTION TMR0

    PCLPCL

    STATUSSTATUS

    FSRFSR

    TRISA

    TRISB

    PORTA

    PORTB

    EECON1

    EECON2

    EEDATA

    EEADR

    PCLATH

    INTCON

    PCLATH

    INTCON

    00

    01

    02

    03

    04

    05

    06

    07

    08

    09

    0A

    0B

    0C

    4F

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    8A

    8B

    RAM

    RESET

    INTERRUPT POINT

    PROGRAM AREA

    000

    004

    005

    3FF

    EEPROM(1Kbyte)

    PORTA5bit

    PORTB8bit

    workmemory

    36byte

    EEPROM

    DATAMEMORY

    64byte

    Fetch/Decode

    ALU

    Working resistorW

    program counter

    stack8 lebel

    clock

    reset

    watch dog timer

    Flash Program Bellei

    Bank 1

    ekil 3-2 PIC16F84 n blok diyagram

    PIC kullanmakprogramlagerekletbirbirinde

    RISC ( Reduced Intruction Set Computer ) denilen azaltlm komut sistemini tadr. Bu sistem sayesinde komutlar daha sade ve daha azdr. Bir PIC i mak iin 35 komut kullanlr. PIC de yntem bir komutu genellikle bir clock ile irmesidir. Program bellei ( memory ) ( ROM ) ve data bellei ( memory ) n bamszdr. ( Harward mimarisine gre ) Bu hafza yaps ile her iki hafzada

    27

  • PIC in yaps ayn anda altrlabilmekte ve bylece iletim ok daha hzl olmaktadr. Data belleinin genilii yapya gre deiiklik gsterir. ( Program bellei 14 bit , data bellei 8 bittir.) nk 1 kelimenin makineye tantm 14 bit ile gerekletirilir. rnein MOVLW B '01011111' komutunu makine 11000001011111 olarak tanr. Bunun 6 biti olan 110000 MOVLW komutunu ifade eder, 01011111 ise data blmn tanmlar. (3) Clock dzeni / Komut sresi

    Clock girii (OSC1 den) iten drde blnmtr. Bunlar Q1, Q2, Q3, Q4 olan bu blmler kare dalga eklindedir. Program sayac ( PC ) her Q1 de bir artrlmakta ve komutlar program belleinde ileme sokularak Q4 de sona ermektedir. Komutlar Q1 den Q4 e kadar zlerek ileminin gereklemesi salanr. Clock pulse ve bunun dzeni ekil 3-3 de grlmektedir.

    ( Microchip technology inc. Manual)

    ekil 3-3 Clock / Komut rnei (4) Komut ak / Bilgi iletim kanal

    Komut sreci Instruction Cycle drt Q den olumaktadr. Bunlar (Q1,Q2,Q3 ve Q4). Komutun aktarlmas ve ileyii u ekilde olmaktadr. Devir bir komut srecini stlenirken iletim ve yrtme dier komut srecini stlenmektedir. Bununla birlikte bilgi iletim nedeniyle her bir komut etkin olarak bir srete yrtlr. Eer komut bir program sayacnn deimesine neden olmusa ( rnein GOTO ) komutu kullanlmsa o zaman komutun tamamlanmas iin iki sre gereklidir. (ekil 3-4)

    28

  • PIC in yaps

    Devir sreci her Q1 de deeri bir artan program sayac ( PC ) ile balar. Yrtme srecinde ileyen komut Q1 srecindeki komut kaydna gnderilir. Daha sonra bu komut Q2,Q3,Q4 sreleri boyunca zlr ve ilem gerekletirilir. Veri bellei Q2 boyunca okunur ( Bilgi okumas ) ve Q4 boyunca yazlr ( Yazlacak hedef ) ( Bilgi iletim kanal (Pipeline) : PIC; komutlar uygularken bir sonraki komutu da alr. Onu zp uygulamaya geerken ayn anda bir sonraki komutu alr. Bu ilem srekli devam eder.

    execution execution execution execution

    fetch fetch fetch fetchjum

    p inst

    ructio

    nNo operation

    clock

    execution clock

    fetch

    ekil 3-4 Bilgi iletim kanalnn yaps (5) W yazmac ( register )

    W ( working ) yazmac bilgilerin geici olarak depoland ve bilgilerin aktarlmasnda kullanlan bir ksmdr. Direk olarak ulaamayz. PICte yaplan tm ilemler ve atamalar bunun zerinden yaplmak zorundadr.

    memory

    Wregister

    M1

    M2

    00111010

    00111010

    rnein M1 deki data bilgilerini M2 ye aktarmak istersek once M1 deki bilgileri W yazmacna ( register ) aktarrz daha sonrada geici alanda bulunan ( w registeri ) bu bilgileri M2 ksmna aktarrz. M1 deki bilgiler M2 ye direk olarak aktarlamaz mutlaka W yazmacn kullanmak zorundayz.

    ekil 3-5 W yazmac ( register )

    29

  • PIC in yaps (6) Program bellei ( memory )

    Assembly de kullanlan komutlarla yazlm programn yklendii alandr. Program bellei ( memory ) (ROM). Bu alan PIC16F84 de EEPROM eklindedir. Program yazcs kullanarak ROMa programmz rahatlkla yazabiliriz. nk elektrik dalgasyla yazlp silinebilme zellii vardr. Mikrodenetleyici uygulayaca komutlar ve ilem srasn bunun ilgili adreslerine bakarak uygular. lgili adresler ise PC ( Program Counter ) program saycda saklanr. Bir PIC te ROM bellee program yaklak 1000 defa yazlabilir. ( Program belleinin genilii 14 bittir. PIC16F84 program belleinin 1024 ( 1K ) alan 000 dan 3FF kadar olan adrestedir ve 3FF de 1024 demektir. ( Blm 1 deki Tablo 1-2 de daha detayl bilgi verilmitir. )

    RESET

    INTERRUPT POINT

    PROGRAM AREA

    000

    004

    005

    3FF

    program memory

    ekil 3-6 ROM bellein haritas ( program memory )

    30

  • PIC in yaps 2 Veri bellei ( DATA memory ) (1) Veri bellei ( Ram Bellek )

    Veri bellei iki ksmdan meydana gelmektedir. Bunlarn her birine Bank ad verilir.

    Bank 0 ve Bank 1 dir. Bank 1 dediimiz ilk blm zel fonksiyon ( Special Function Register ) ( SFR ) yazma alandr. Bank 0 ise ikinci blmdr ve buna da genel amal yazma ( General Purpose Register ) ( GPR ) denir.

    GPR alan genel amal RAM n 16 baytndan daha fazlasna olanak salamak amacyla blnmtr. SFR ise zel fonksiyonlar kontrol eden kaytlara aittir. Bunlarn seimleri iin kontrol bitleri gerekmektedir. te bu kontrol bitleri de STATUS yazmacnda bulunmaktadr. ekil 3-7 de veri belleinin harita organizasyonu gstermektedir.

    Veri bellei genel amal kayt ve zel fonksiyon kaydn ieren iki blm vardr. Bank0 semek iin RP0 bitini ( ki bu STATUSun 5. biti oluyor ) temizlemek gerekir. Ayn bitin kurulmas ( set ) ile de BANK1 seilmi olur. Her iki bankn ilk onikisinin yerleimi zel fonksiyon kayd iin ayrlmtr. Kalan ise statik RAM olarak genel amal kaytlar yrtmektedir.

    INDIRECT ADDR INDIRECT ADDR

    OPTIONTMR0

    PCL PCL

    STATUS STATUS

    FSR FSR

    TRISA

    TRISB

    PORTA

    PORTB

    EECON1

    EECON2

    EEDATA

    EEADR

    PCLATH

    INTCON

    PCLATH

    INTCON

    00

    01

    02

    03

    04

    05

    06

    07

    08

    09

    0A

    0B

    0C

    4F

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    8A

    8B

    68byte

    Bank 0 Bank 1

    Work memory

    RP1 RP0bit5bit6bit7

    bit 5 ' 1 '

    bit 5 ' 0 '

    STATUS regi

    GPR

    ster

    ekil 3-7 PIC16F84 n Kayt dosya haritas

    31

  • PIC in yaps 1) Genel amal kayt dosyas

    Btn cihazlar belli bir miktar genel amal kayt alanlarna sahiptirler. Bu PIC 16F84 de 68 bytedr. Her bir GPR 8 bit geniliindedir ve dolayl yada dorudan SFR zerinden eriilmektedir. 2) zel Fonksiyon Kaytlar

    zel fonksiyon kaytlar aygtn ilemini kontrol etmek iin CPU ve zel fonksiyonlar tarafndan kullanlmaktadr. Bu kaytlar statik olan RAM dadr. (2) Yn hafza ( Stack Memory )

    PIC16F84 8 derinliinde ve 13 bit geniliinde yna ( stack ) sahiptir. ( ekil 3-2 ). Bu yn alan program veya bilgi ( data ) yeri deildir ve direk olarak okunamaz veya yazlamazlar. CALL komutu veya kesme ile 13 bitlik ( PC ) program sayc ynn zerine konur bu ileme pushed denir.. Yndaki bu adres alt programlar alp bittikten sonra en sonunda bulunan RETLW , RETFIE komutlar ile yndan atlr bu ilemede popped denir.

    Burada dikkat edilecek i ie en fazla 8 altprogram veya kesme kullanabiliriz. Fazla kullandmz takdirde yn tamas dediimiz ( stack overflow ) hatas belirir.

    (3) Program sayc ( Program counter ) ( Adres 02h , PCLATH Adres 0Ah)

    Program Sayc ( Program Counter ) (PC) 13-bit geniliindedir. Yrtlecek komutun program belleindeki adresini tutar. Bu nedenle kendisi bir gsterge olarak grev yapar. Program saycnn alt 8 bitine PCL dk byte denir PCL okunabilen - yazlabilen bir yazmatr. st 5 bitine ise PCH yksek byte denir ki bu ( PC ) arasndadr ve direk olarak okunup yazlamaz. RAM bellekte H0A adresinde bulunan zel PCLATH ( PC latch high ) yazmacndan okunup yazlabilirler. PCLATHn ierii program saycnn st bitlerine transfer olur ve PC yeni bir deerle yklenmi olur. Bunu ekil 3-8 de grebilirsiniz. CALL, GOTO gibi komutlar PCL ye yazlrlar nk 256 byte dan kktrler. RESET durumunda ise st bitler temizlenir.

    PCH PCL

    ekil 3-8 Program sayc

    078 12

    P C L A T HALU s uo n

    5 8

    Adres 02 de

    Program Sayc

    32

  • PIC in yaps (4) STATUS Yazmac ( Register ) ( Adresi 03h,83h )

    STATUS yazmac ( register ) aritmetik mantk nitesine ( Arithmetic Logic Unit ) ALU sahiptir. RESET durumu ieren veriler ve bank seimi salayan bilgilerde mevcuttur.

    b7 b6 b5 b4 b3 b2 b1 b0 R/W-0 R/W-0 R/W-0 R-1 R-1 R/W-x R/W-x R/W-x

    IRP RP1 RP0 TO PD Z DC C R=Okunabilir bit W=Yazlabilir bit -n=Reset deeri

    lk deer ( enerji verildii andaki deeri ) 0 0 0 1 1 x x x bit7: IRP: Bank seme biti ( Register Bank Select bit ) IRP biti PIC 16F84Alarda kullanlmaz. .IRP sfr olarak kalmaldr. bit 6-5: RP1:RP0: Bank seme biti ( Register Bank Select bit ) 00 = Bank 0(00h-7Fh) 01 = Bank 1(80h-FFh)

    Her bir bank 128 bytedr. PIC16F84A da sadece RP0 kullanlr. RP1 sfr olmaldr.

    bit 4: TO: Zaman am biti ( Time-out bit ) 1= PIC e enerji verildiinde ve CLRWDT ve SLEEP komutu alnca 0 = WDT zamanlaycsnda zaman dolduunda bit 3: PD: Enerji kesilme biti ( Power-down bit ) 1 = PICe enerji verildiinde ve CLRWDT komutu alnca 0 = SLEEP modu alnca bit 2: Z: Zero bit ( Sfr biti ) 1 = Bir aritmetik ilem veya mantksal ilem sonucu 0 ( sfr ) olduunda 0 = Bir aritmetik ilem veya mantksal ilem sonucu 0 ( sfr ) olmadnda. bit 1: DC: Tama ve dn biti ( Digit carry/borrow bit )( ADDWF ve ADDLW

    komutlar iin ) 1 = Alt drt bitin 4. bitinde tama meydana geldiinde 0 = Alt drt bitin 4. bitinde tama meydana gelmediinde bit 0: C: Tama ve dn biti ( Carry/borrow bit )( ADDWF ve ADDLW komutlar

    iin ) 1 = En soldaki 7.bitte tama olduunda 0 = En soldaki 7.bitte tama olmadnda Not: RLF ve RRF komutlar altnda en sol bit veya en sa bitin deeri carry bitine

    yklenir.

    33

  • PIC in yaps 3 I / O port ( input / output )

    I/O portlar sinyalin giri ve klardr. PIC16F84 e ait I/O portlar ekil 3-9 da grlmektedir. Buradan da anlalaca gibi PIC16F84n en fazla ular I/O iin ayrlm olup program kontrol iin kullanlmaktadr.

    A portu 5 Adettir ( RA0,RA1,RA2,RA3,RA4 ) B portu 8 Adettir.( RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7 ) Toplam 13 Adet giri veya k olarak kullanlmak zere

    ular vardr. ekil 3-9 I/O portlar

    PIC16F84

    RA1RA2

    RA0

    RB7

    RB6

    RB5

    RB4

    RA3

    RB0

    RB1

    RB2

    RB3

    RA4

    (1) Giri lemi

    Eer PIC giri ( input ) modunda olursa, FET klar kapatr Giri sinyali tampona doru akar. ( ekil 3-10 )

    VDD

    R

    I / O PIN

    VSS

    input mode > OFF

    input mode > OFF

    PIC

    VSS

    DATA read

    ekil 3-10 Giri ilemi

    34

  • PIC in yaps (2) k ilemi

    PIC in k FET lidir. Eer akm gerilim kaynandan k portuna doru ise buna SNK akm( ekil 3-11 ), I/O pininden GNDye doru ise buna da KAYNAK ( Source ) akm denir. ( ekil 3-12 ) Kaynak akm en fazla 20 mA. iken sink akm ise en fazla 25mA.dir.

    VDDR

    LED

    I / O PIN

    VSS

    ' 0 ' or input mode > OFF

    ' 0 ' > ON

    PIC

    MAX=25mA

    P

    N

    etc

    ekil 3-11 Sink akm

    VDD

    R

    LED etc

    I / O PIN

    ' 1 ' > ON

    ' 1 ' or input mode > OFF

    PIC

    MAX=20m

    P

    N

    A

    ekil 3-12 Kaynak ( source ) akm

    35

  • PIC in yaps 4 Reset Devresi

    (1) Resetleme lemi ( Power on Reset ) ( POR ) MCLR ( Memory Clear ) ucuna dk gerilim ( 0V ) uyguladmzda, PIC16F84 reset

    edilmi olur ve program balangtaki adresine geri dner. MCLR ucu tekrar yksek gerilim 5V olduunda PIC16F84 programn almasna ilk adresten itibaren devam eder. Ksaca MCLR ucu 0V. olduunda program almaz sadece ilk adrese gider. Programn alabilmesi iin MCLR ucunun tekrar 5V. olmas gerekir. 1) VDD ye direk olarak resetleme

    VDD yksek gerilimi bulduunda ( 1.2V 1.7V ) reset almaya balar. PICin resetinden yararlanabilmek iin MCLR ucunu direk olarak VDD ye balaynz. Buna dirente eklenebilir.

    ekil 3-13 VDD ye direk olarak resetleme

    PIC

    MCLR

    VDD

    10K

    2) PIC in dardan resetlenmesi Eer VDD ile resetleme yava oluyor ve bunun hzl gereklemesini istiyorsak d reset

    yapmamz gerekir. VDD gerilimini hzl bir ekilde 0 yapmak iin LED ve kondansatr kullanmamz gerekir. LED kondansatr hzl bir ekilde boaltr ( dearj ) ve ilem hzlanm olur. (C : 1 10 uF)

    PIC

    MCLR

    VDD

    10KD

    C

    ekil 3-14 PIC in dardan resetlenmesi

    36

  • PIC in yaps

    (3) Butonla Reset ekil3-15 de grld gibi MCLR ucunu dk gerilime ulatrmak iin reset butonu

    vardr. Bu buton baslp ekilir ve program ilk adresten itibaren almaya balar.

    PIC

    MCLR

    VDD

    10KD

    CPIC

    MCLR

    VDD

    10K

    buttonSwitch

    buttonSwitch

    ekil 3-15 Butonla Reset

    37

  • PIC in yaps 5 Osilatr zellikleri (1) osilatr modelleri PIC16F84 drt deiik osilatrleme ile alabilir. Bunlar LP : Dk g kristal ile Low Power crystal ( yaklak 40KHz) XT : Kristal / Rezanatr ile Crystal / Resonator (0 10MHz) HS : Yksek hz kristali / Resonatr High Speed Crystal / Resonator (4 10MHz) RC : Diren / Kondansatr ile Resistor / Capacitor (0 4MHz) (2) Kristal / seramik resonator ilemi

    Seramik rezanatr Dk g kristali Kristal osilatr

    ekil 3-16 Kristal eitleri XT, LP veya HS modeller kristal veya seramik rezanatr ile OSC1/CLKIN ve OSC2/CLKOUT ularna balanrlar. Bylece osilatr salanm olur. ( ekil 3-17 )

    OSC1

    OSC2XTAL

    C1

    C2

    PIC

    rezanatr

    OSC2

    OSC1

    PIC

    ekil 3-17

    38

  • PIC in yaps

    Mod Frekans OSC1 / C1 OSC2 / C2 32kHz 68-100pF 68-100pF

    LP 200kHz 15-33pF 15-33pF

    100kHz 100-150pF 100-150pF 2.0MHz 15-33pF 15-33pF XT 4.0MHz 15-33pF 15-33pF 4.0MHz 15-33pF 15-33pF

    HS 10.0MHz 15-33pF 15-33pF

    Tablo 3-1 Kristal osilatr iin Kondansatr seimi

    (3) RC Osilatr Zamann ok hassas olmad durumlarda RC osilatr kullanlarak maliyet drlr.

    RC osilatr frekans gerilim kaynann zelliine, direncin deerine, kondansatrn deerine ve ilem ortamnn scaklna baldr. Buna ek olarak osilatr frekans normal ilem parametrelerine gre sapmalar gsterir. Bu sapma % 20 civarndadr. ekil 3-18 de bu osilatr tipinin PIC16F84 e nasl baland grlmektedir. Diren deeri 4k-ohmun altnda olan osilatr ilemlerinde osilasyon sabit olmayabilir veya tamamen durabilir. ok yksek deerde direnler ise ( yaklak 1M-ohm ), grltye, neme ve szmaya ok hassaslar. Bu nedenle diren deerini 5 k-ohm ve 100k-ohm arasnda kullanlmaldr.

    Her ne kadar osilatr d bir kondansatrle almyor olsa bile biz grlt ve sabitlilii salamak iin 20pF deerinin zerindeki deerde bir kondansatrn kullanlmasn tavsiye ederiz. OSC1

    OSC2

    PIC

    Rext

    Cext

    VDD

    Tavsiye edilen deerler 5k < Diren < 100k Kondansatr > 20pF

    ekil 3-18 RC Osilatr

    39

  • PIC programlamann temelleri

    Blm 4 PIC Programlamnn temeli 1 MPLAB ( MPASM ) nasl Kullanrz ? (1) Basit bir program

    INCLUDEP16F84.INC ;Adresleri belirten dosyay ykle (1) LIST P=16F84 ;16F84 n tantmn yap (2) BSF STATUS,5 ;Bank 1 e ge (3) CLRF TIRSB ;PORTB nin hepsini k yap (4) BCF STATUS,5 ;Bank 0 a ge (5) CLRF PORTB ;PORTB nin hepsini 0 yap (6) BSF PORTB,0 ;PortB nin 0.bitini 1 yap ( LED yak ) (7) DEVAM GOTO DEVAM ;Sonsuz dng ile program sonlandr (8) END (9)

    Bu program eitim setindeki 8 ledden bir tanesini ( ilk led ) yakan dierlerinin snk kalmasn ( sfr olduu iin ) salayan bir programdr. Bu program daha ayrntl inceleyecek olursak, (1) TRISB, PORTB, STATUS gibi deikenlerin adreslerini ierisinde bulundurur. Bunu PIC e ykleme ilemini gerekletirir. ( Ayrntl bilgi sayfa 73 dedir. ) (2) Hangi pic eidinin kullanlacan tanmlar Programn (3) - (6) satrlar arasnda ise PICin portlarnn k veya giri olaca tanmlanr. Bu ilemin nasl olduu sayfa 69 da ayrntl olarak aklanmtr. (6) Belirlenen bir LEDin yanmas salanr. (7) Sonsuz dngye girerek programda baka bir ilem yapmamasn salanr. (8) END komutu ile programn bittiini belirtiriz. (2) Saylarn ifade edilmesi

    Form Format rnek

    Desimal D < digit > . < digit >

    D100 . 100

    Heksadesimal H< hex_digit> 0x

    H 9F 0 x 9F

    Oktal O O67 Binary B B00111011

    ASCII Kod A

    AC C

    Tablo 4-1 MPASM iin saylarn ifade edilmeleri

    40

  • PIC programlamann temelleri (3) Programn temel ifade ekli Etiket Komut Bellete Tanmlama PROGRAMDA DKKAT EDLECEK NOKTALAR 1: Etiket en bata olmaldr.

    ki alt izgi __ ile balamamaldr. Bir alt izgi ve sonrasnda rakam _2 olmamaldr. Assembly komutlar ve kulland kelimeler etiket olamaz. Bir etiket en fazla 32 karakter olmaldr. Etikette byk kk harf ayrm mevcut olup byk ve Trke olmayan harflerin

    kullanlmas tavsiye edilir. 2: Etiket yazlmas gerekmedii zaman komut yazlacanda bir veya daha fazla boluk braklmas gerekmektedir. 3: Aklama yazlacaksa (;) noktal virgl den sonra yazlmaldr. 4: Bir satrda en fazla 200 karakter olmaldr. 5: Her paragraf bir veya daha fazla bolukla ayrlmaldr.

    Etiket Komut Bellete Tanmlama DEVAM

    INCLUDE LIST BSF CLRF BCF CLRF BSF GOTO END

    P16F84.INC P=16F84 STATUS,5 TIRSB STATUS,5 PORTB PORTB,0 DEVAM

    ;Adresleri belirten dosyay ykle ;16F84 n tantmn yap ;Bank 1 e ge ;PORTB nin hepsini k yap ;Bank 0 a ge ;PORTB nin hepsini 0 yap ;PortBnin 0.bitini 1 yap ( LED yak ) ;Sonsuz dng ile program sonlandr

    41

  • PIC programlamann temelleri (4) Program yazmann yntemi

    Editr ile program yazma

    MPASM ile dosyay

    HEX dosya haline

    derleme

    Hata var m ?

    Evet

    Hayr

    Yazlan program PICe transfer edilir ve doruluu kontrol edilir.

    Evet Hata Var m ?

    Hayr

    SON

    Bala

    ekil 4-1 Program yazmann yntemi

    42

  • PIC programlamann temelleri (5) MPLAB nasl kullanlr ?

    1) MPLAB PROGRAMININ BALATILMASI Windowsstart program Microchip MPLAB IDE MPLAB IDE

    MPLAB programn balattmzda aadaki ekran grnr.

    ekil 4-2 MPLAB balama penceresi 2) MPLAB IDE YAZI EDTRNE PROGRAM YAZILMASI

    ekil 4-3 Program girii Programn sonuna END adl komutu mutlaka yazmamz gerekmektedir.

    43

  • PIC programlamann temelleri 3) DOSYANIN SAKLANMASI

    ekil 4-4 Dosyann saklanmas

    Yeni yaplan dosyann hangi klasre ve hangi isimde kayt edilip saklanacana kendin karar vererek Save as type blmnde Assembly Source Files ksmn setiimizde dosya adndan sonra asm yazmamza gerek yoktur. Program otomatik olarak atama yapar. Eski versiyonlarda bu olmadndan dolay dosya adndan sonra nokta koyup mutlaka asm uzantsn da yazmamz gerekir. rnekte dosyamz "PROG1" ad altnda saklanmtr ve bu dosya bizim kaynak dosyamz olmaktadr.

    ekil 4-5 Dosyann ad

    44

  • PIC programlamann temelleri 4) YAZILAN DOSYANIN DERLENMES ( Hex dosya haline getirilmesi ) Program yazlp saklandktan sonra bunun derlenmesi gerekmektedir. Derleme ilemini iki yoldan yapmamz mmkndr. Ksa tu kullanmn tercih edersek ALT + F10 tuuna basmamz yeterlidir. Menlerden yapmak istediimizde ise; Project / Quickbuild ksmn takip etmeliyiz. Program yazlp saklandktan sonra o program ierisinde ufak deiiklikler yapldnda tekrar saklamak iin save etmemize gerek yoktur. Derleme; ilemine balamadan son deiiklikleri otomatik olarak kayt etmektedir.

    ekil 4-6 Assembly nin baarl olma penceresi

    ekil 4-7 Assembly nin baarsz olma penceresi Baarl olmas demek program doru alr anlamna gelmemelidir. Derleme

    esnasnda sadece komut yazlm hatas olup olmad kontrol edilir, mantk hatas kontrol yaplmaz.

    45

  • PIC programlamann temelleri

    Program yazlrken iki tr dosya vardr. Giri dosyalarndan olan kaynak dosyay kendimiz olutururuz. Ykleme dosyasn ise

    hazr olandan kullanrz. ( P16F84.INC gibi.) Bu tr dosyalar MPLAB program yklenirken otomatik olarak gelmektedir. ( Geni bilgi sayfa 73 dedir. )

    kt dosyalar ise derleme sonucunda oluan dosyalardr ve kaynak dosyann bulunduu klasrn ierisindedirler.

    1. GR DOSYALARI

    a. Kaynak dosya ( dosya ad.ASM ) b. Ykleme ( Include ) dosya ( dosya ad.INC )

    2. IKTI DOSYALARI ( Derleme esnasnda assembler tarafndan retilir )

    a. Liste dosyas ( dosya ad.LST ) b. Hata dosyas ( dosya ad.ERR ) c. Sembol ve debug dosyas ( dosya ad.COD ) d. Hex formatnda dosya ( dosya ad.HEX, dosya ad.HXL, dosya ad.HXH )

    LSTE DOSYASI Dosyann hangi yazlm tarafndan retildii, versiyonu, tarih ve saati, sayfa numarasndan sonra;

    birinci kolonda komutlarn hafzadaki adreslerini, ( LOC ) ikinci kolonda set, equ, variable gibi emirlerin ve komutlarn oluturduu 32 bitte hex

    karlklarn, ( OBJECT CODE ) nc kolonda kaynak program ve bunun satr numaralar ve varsa aklamalar

    (LINE SOURCE TEXT) Programda kullanlan etiketler (SYMBOL TABLE) ve adresleri (VALUE) Hafza kullanm haritas (MEMORY USAGE MAP) X Kullanlan ksm - Kullanlmayan ksm gsterir PROG1.ASM rnek programnda kullanlan alan 6 kullanlmayan alan 1018 dir. Hata (Error) says ve Uyar (Warning) says da verilmektedir. Bu uyar ve hatalarn

    nerelerde olduu ise aka komutlarn altlarna yazlmtr.

    46

  • PIC programlamann temelleri

    RNEK PROG1.LST DOSYASI :

    ekil 4-8 PROG1.LST Dosyas

    HATA ( ERROR ) DOSYASI

    MPASM assembler derleme sonunda hata kts olarak OUTPUT penceresinde gsterdii ksm ERR uzantl bir dosyada oluturur. Bu dosya ierisinde; programda hata varsa bunun hangi satrda olduu ve aklamasn buluruz. Hata yok ise bu dosyann ierii botur.

    rnein hata var ise aadaki gibi bir dosya olumutur. Burada hatann bulunduu satr numaras ve ne gibi hata olduu aka grnmektedir.

    HataHata satr no

    ekil 4-9 PROG1.ERR Dosyas LSTE dosyasnda hata olan satrn hemen stnde ne gibi hata olduu aka yazdndan

    dolay hatay bulmak LSTE dosyasnda daha kolaydr.

    47

  • PIC programlamann temelleri HEX FORMATINDA DOSYA

    MPASM assembler derleme sonunda baarl oldu ise kaynak dosya adnda fakat uzants HEX olan bir dosya meydana getirir. Bu dosya bizim PIC e kayt edeceimiz dosyadr. Deiik formatlarda derleme yaplabilmektedir. Bunlar; Intel Hex Format INHX8M .hex 8 bit Intel Split Hex Format INHX8S .hxl .hxh tek ift Intel Hex 32 Format INHX32 .hex 16 bit

    Intel HEX Format ( INHX8M )

    ekil 4-10 PROG1.HEX Dosyas

    Intel HEX Format (INHX8M) aadaki gibidir.. :BBAAAATTHHHH..HHCC BB : ki heksedesimal say digiti ile bir satrdaki data saysn gsterir. AAAA: Drt heksedesimal say digiti ile ilk datann kayt edildii adresi gsterir. TT : Kayt eklidir 00 = Data kayt 01 = Data kayt sonu HH : ki heksedesimal say digiti ile 1 byte datay gsterir. CC : Toplam kodu kontrol eder ( Btn baytlarn toplamnn ikili complementi ) rnek ( PROG1.ASM Program ) 0C 0000 00 831686018312860106140528 71 0C >> 83 16 86 01 83 12 86 01 06 14 05 28 ( data numaralar 12 = 0Ch ) 0000 >> lk adres 0000h. dr. 00 >> Bu satr data kayt satrdr. 83 16 86 01 83 12 86 01 06 14 05 28 >> 83 16(BSF STATUS,5), 86 01(CLRF PORTB) ( Bu hexdesimal say karlklarn PROG1.LST dosyasnda ekil 4 8 de grebilirsiniz. ) 71 >> 0Ch+83h+16h+86h+01h+83h+12h+86h+01h+06h+14h+05h+28h = (2)8Fh (2)8Fh nin ikili complementi >> (1)71h

    48

  • PIC programlamann temelleri 5) EDTR AYARLARI

    Taral blgede ( Gutter ) Mouse sa tua baslr

    Alan yandaki menden Properties seilir

    ekil 4-11 Editr ayarlar penceresinin almas

    ekil 4-12 Editr ayarlar

    Yaz ayarlar iin Text Seiniz

    Satr numaralarn gster

    49

  • PIC programlamann temelleri

    Yaz bykln ve tipini seebiliriz.

    Kod sayfasnn dilini seebiliriz.

    Editrde kullanlan renk ayarlarn deitirebiliriz.

    lk renk deerlerine geri dnmemizi salar.

    ekil 4-13 Yaz ( Text ) ayarlar penceresinin kullanm

    Sekme ( Tab ) tuuna basldnda gitmesi istenen miktar

    Program ilk aldndaki editr sayfa boyutu

    ekil 4-11 de taral blge olarak tanmlanan alan genilik miktar

    ekil 4-14 lmlendirme ( Size ) ayarlar penceresi

    50

  • PIC programlamann temelleri 6) SMULATR KULLANIMI

    Yazlan program elektronik ortamlarda denemek yerine yazlm olarak ta adm adm altrarak kontrol edebiliriz. Bylece mantk hatamz var ise daha kolay bulma imkanmz olur. Bu ileme similasyon denmektedir. Burada bunun nasl yaplacan reneceiz.

    ekil 4-15 Similatr iin Device seimi penceresi Configure / Select Device seiminden sonra alan pencerede kullanacamz pic eidi seilir. Seilen PICe gre programn neleri desteklediini grebiliriz. MPLAB SIM destei varsa

    similatr yapabiliriz anlamna gelmektedir. Daha sonra bunu aktif hale geirebilmek iin Debugger

    / Select Tool mensn takip ederek 3. satrdaki MPLAB SIM i sememiz gerekir.

    ekil 4-16 Similatr aktif hale getirilmesi

    51

  • PIC programlamann temelleri

    Son olarak yazdmz program derlediimizde artk similatr almaya hazr hale

    gelecektir. Derleme ilemi yaplmadan similatr almaz.

    3

    2

    1

    ekil 4-17 Similatr dorulama penceresi Similatrn aktifletiini yukarda grld gibi ekilde anlayabiliriz. Similatr aktif

    olmadnda 3 numaral kutucuk iindekiler grnmez. Similatrn almas esnasnda bir takm deerleri grmemiz gerekmektedir. Bunlardan

    zel fonksiyon registerleri grebilmek iin view / Special Function Registers sememiz yeterli olacaktr.

    ekil 4-18 zel fonksiyon registerlerinin ( SFR ) grntlenmesi

    52

  • PIC programlamann temelleri

    Eer kendi oluturduumuz dosya ieriklerini veya

    zel fonksiyon registerlerinin bir ksmn grmek istediimizde yanda ekilde grld gibi Watch penceresini amamz gerekmektedir.

    ekil 4-19 Watch penceresinin almas

    ekil 4-20 Grntlemek istediimiz dosyalarn seilmesi

    zel Fonksiyon registerlerini buradan seebiliriz.

    Kendi yaptmz ve deiik dosyalar buradan seebiliriz.

    Seim ok tuu ile alan ksmdan yaplmaktadr. Daha sonra sol

    tarafta bulunan Add SFR veya Add Symbol ile bunu grnt penceresine aktarmamz gerekmektedir. Burada gelen grnt deeri hex formatnda olup Value zerinde iken Mouse sa tua basldnda alan pencereden hangi tipte grntleneceini klik yapmamz yeterli olacaktr.

    53

  • PIC programlamann temelleri

    ekil 4-21 Grntleme zelliinin belirlenmesi

    7) BUTON EKLENMES VE KULLANILMASI :

    ekil 4-22 Buton eklenmesi

    Add Row ikonuna bastmzda buton eklemek iin bir blm alr. Daha sonra Pin ksmnn altnda beliren pinlerden bir tanesi seilir. Action ksmnda ise butonun 1 0 veya deitirilebilir olacana karar verilir. Genellikle burada toggle ile deitirilebilen buton seilir. Eer bunu seersek similasyon esnasnda Fire butonuna her klik yapmamzda buton deeri; 1 ( high ) ise 0 ( Low ), 0 ( Low ) ise 1 ( high ) olarak deitirilmi olur. Yaplan bu dzeni istediimizde kullanmak iin saklayabiliriz.

    ekil 4-23 Butonlarn kullanm syon

    alt

    Program satrnda similaesnasnda durma yapmak istiyorsak ( Break ) hangi satrda duracaksa bu satr zerinde Mouse sol tuu iki defa klik yaplrsa sol tarafta

    iareti kacaktr. Run komutu rldnda bu iarete kadar alr ve

    program beklemeye balar. Eer ift klik yapmada bu iaret kmyorsa Editr ayarlarndan ( ekil 4 12 ) iaretlememiz gerekir.

    54

  • PIC programlamann temelleri

    ekil 4-24 alma aras verme 8) SMLATR KONLARININ AIKLANMASI :

    F6

    ekil 4-25 Similatr ( Debug ) ikonlar

    RUN : Similasyon almaya balar, halt tuuna baslana kadar srer ve durdurulduunda

    ALT : Program almasn kesme tuudur. Program olduu yerde durur.

    NMATE : Belirtilen zaman aralklarnda program satr satr otomatik olarak alr. Ne

    TEP INTO : Bu ikonu her klik yapmada programda bir satr altrlm olur.

    TEP OVER : Bu ikonu her klik yapmada programda bir satr altrlm olur. Ancak CALL

    TEP OUT : Eer step into ile adm adm altrlrken alt programn ierisine girilmi ise bu

    ESET : Program reset eder ve tekrar programn en batan balamas iin hazr hale getirir.

    tn bu tular programda Debugger mensnn ierisinde de mevcuttur. Bu menn

    F9 F5 Ksa yol tular F7 F8

    Run Halt Animate Step Into Step Over Step Out Reset

    deerleri yazar. H Akadar srede satr altracamz setting ksmnn Debugger animation ksmndan deitirebiliriz. S Skomutu ile altrlan Altprogramlar gstermez RETURN komutuna kadar otomatik altrr. Program CALL ile arlma satrnn bir altndan devam eder. rnein CALL TIMER dediimizde timer alt programnn nasl altn adm adm gremeyiz. Sikona klik yapmayla alt programdan hemen klr ve ana programda kald yerden devam eder. R

    Bn en altnda bulunan setting ksmndan ise kullanlan osilatr hzn seerek gerek

    zamanda program similasyonu da salanm oluruz.

    55

  • PIC programlamann temelleri (6) MPASMWIN

    er baka bir editr kulla

    MPLAB progr

    adr. ekil 4-26 MPASMWIN bulunduu kalasr

    Yeri ise ykleme esnasnda deiiklik yaplmam ise ekil 4 - 26 deki gibidir. Bu Wind

    MPASM altrldnda

    Enmsak ( rnein >

    Windows Note Pad). Sadece MPASM assembler kullanabiliriz. Gerekte de MPLAB program derleme esnasnda MPASM yi kullanmaktadr.

    Bu yazlm am yklenirken

    bilgisayara aktarlmakt

    ows versiyonu olup DOS versiyonunda alan da vardr. ekil 4 27 deki pencere alm olur. nce Browse ksmndan kaynak dosyay bulunuz. Daha sonra Hex Output ksmndan INHX8M iaretlememiz gerekmektedir. Processor ksmndan ise hangi tr pic kullanyorsak bunu da burada semeliyiz. Son olarak Assemble ikonuna klik yaptmzda program derlenmi olur. Derlenen dosya kaynak dosyamz hangi klasrde ise ayn klasre oluturulur.

    ekil 4-27 MPASMWIN

    56

  • PIC programlamann temelleri 2 PIC yazc setini nasl kullanrz ?

    ) PIC yazcnn ( writer ) kullanlmas

    ) Balants kablosunu PCye balaynz.

    ekil 4-29 PCye balama yntemi

    (1

    ekil4-28 PIC Yazc ve eitim seti

    (2 Desk top makinelerde Note book makinelerde

    57

  • PIC programlamann temelleri (3) IC-PROG PROGRAMININ KULLANILMASI

    ilgisayarda eitli dillerde yazlm programlar derlenerek HEX dosya haline

    devreyi de desteklemektedir. Bu kita

    Bgetirilmektedir. Bu dosyalar da PIC mikrodenetleyiciye yazmamz gerekmektedir. Bunun iin eitli devreler ve yazlmlar mevcuttur. En yaygn olarak kullanlanlardan biri de

    IC-PROG yazlmdr. IC-PROG yazlm ile PIC eidinin byk bir ounluunu programlamamz mmkndr. Bunun yan sra bir ok programlayc ptaki yazc devresi AN589 Programmer donanmna

    gre yaplmtr. Program altrdmzda donanm ksmndan AN589 sememiz gerekmektedir. Bu yazlm kurmamza da gerek yoktur. Herhangi bir yerden kopyalamamz veya internetten indirmemiz yeterli olacaktr. Programn internet adresi www.ic-prog.com dur.

    ININ YAPILMASI mzda ilk defa karmza ngilizce versiyonu alr. lk

    donanm

    1) YAZICI AYARYukardaki ikona ift tklad seimi ise JDM programmerdir. Makinemize bu ayarlar bir defa yapmamz yeterli

    olacaktr. Kapanp aldnda bizim son ayarlarmz gelmektedir. ncelikle yazc tipimize gre donanm ( hardware ) AN589 Programmer e sememiz gerekmektedir. Bunun iin Setting ve Hardware menlerini takip etmemiz, F3 tuuna basmamz veya ana sayfada

    tuuna basmamz yeterli olacaktr. Her yolda ayn meny aar.

    ekil 4-30 AN589 seim penceresi

    etting / Hardware mensnden Programmer iin AN589 sememiz gerekir. Daha sonra O

    SK ile mendeki ilemimiz son bulmaktadr.

    58

  • PIC programlamann temelleri

    2) YAZILIMIN TRKELETRLMES Kullandmz yazlmn Trke

    olab

    trlmesi

    ekil 4-33 Yazlmn Trke olmu durumu

    ilmesi iinde Setting Options mensn takip etmemiz gerekmektedir. Alan Options mensnden Language ksmondan Turkish seilip OK ile kldnda program kendini bir defa ap kapamak suretiyle programmz artk Trke olmutur.

    ekil 4-31 Options ayarlar

    ekil 4-32 Yazlmn Trke hale dn

    59

  • PIC programlamann temelleri

    3) PIC TRNN SELMES

    Bu yazlm ve yazc devremiz ile bir ok PIC eidini rahatlkla program

    zde karm

    sa yol atamasnn yaplmas Tamam ile menden er atanm olur ve

    artk s

    ekil 4-35 PIC eidinin seilmesi

    layabilmekteyiz. Tabi ki her defasnda programlamak istediimiz PIC eidini bulmak zaman almakta ve skc olmaktadr. Bunu iin daha nceden belirleyeceimiz 4 adet PIC eidine CTRL + F1 den CTRL + F4 e kadar ksa yol oluturabilmek mmkndr.

    Bunu gerekletirebilmek iin Ayarlar Seenekler mensn takip ettiimiza aadaki men kmaktadr. Burada Ksayollar mens seilerek hangi ksa yol

    tuuna hangi PIC eidi atanacaksa bunlar seilir.

    ekil 4-34 Kkldnda ksa yol tularna seilen PIC l

    rekli onlar karmza kar. PIC eidi semenin bir baka yolu ise ana mende aadaki ekilde olduu gibi alan pencereden olmaktadr.

    60

  • PIC programlamann temelleri

    4) KULLANILAN LETM SSTEMNE UYUMU SALAMA

    IC-PROG yazlmn kullanmaya balamadan evvel son yapacamz ayar ise kullana

    ekil 4-36 letim sistemi uyumunu ayarlama

    unun iin Ayarlar Seenekler mens takip ederek Kark yazan ksm sememiz

    daha

    ekil 4-37 letim sistemi uyumunu

    camz bilgisayarda kurulu olan yazlma uyum salamak olacaktr. Program eer Windows 95 Windows 98 Windows 98 me gibi yazlm ykl makinelerde kullanacaksak bunun iin ayarlarnda herhangi bir deiiklik yapmamza gerek yoktur. Ancak Windows 2000 - WindowsXP Windows NT gibi yazlm ykl makinelerde kullanacaksak ayarlarn buna uyumlu hale getirmemiz gereklidir.

    Bsonra karmza kan pencerede ise NT/2000/XP kutucuunun iaretli olmas

    gerekmektedir. Bunu iaretleyip Tamam ile pencereyi kapattmzda ayarlarn geerli olabilmesi iin program kendini bir kez ap kapamas gerekmektedir. Tekrar alan programda artk kullandnz yazlm trne uygun hale gelmi olmaktadr.

    ayarlama

    61

  • PIC programlamann temelleri 5) SRKLE BIRAK AYARI

    Kullanm daha kolay hale getirebil

    ekil 4-38 Srkle Brak ayar

    6) DO RULAMA AYARI

    Ic-prog yazlm ile programlama

    ekil 4-39 Dorulama ayar

    mek iin deiik ayarlar da gerekletirebiliriz. Bunlardan HEX uzantl bir dosyay srkleyerek programmzn zerine braktmzda almasn istiyorsak Ayarlar / Seenekler / Srkle Brak ksmna ulap buradaki kutucuu iaretleyip Tamam ile kmamz yeterli olacaktr. Bu ayar bir defa yapmamz yeterli olacaktr.

    gerekletirirken veya PICteki bir bilgiyi silme esnasnda bunun yanllkla yaplabileceini dnenler iin dorulama blmn aktif hale getirmemiz mmkndr. Hangi durumda onaylama istiyorsak bunun kutucuunu iaretlememiz yeterli olacaktr. rnein Aygt programlanyor kutucuu iaretli ise ve biz yazlma programlama komutunu uyguladmzda aadaki soruyu mutlaka sorarak dorulama gerekletirir. Eer iaretli deilse direk programlama ilemini gerekletirir.

    ekil 4-40 Dorulama penceresi

    62

  • PIC programlamann temelleri 7) ANA MENDEK KONLAR VE LEVLER

    Dosya Ama Dosya kayt etme Programlayc Seimi

    Seenekler mensn aar PICteki program okuma PICe program yazma

    PICteki program silme Aygt dorulamas yapar Smartcard sihirbaz

    Yazlan veya okunan programn Assembler grnm

    Yazlan veya okunan programn HEX grnm

    Programlanacak PIC tr

    Osilatr seim penceresi

    Aktif olan Buffer katlar. Bunlardan herhangi birini

    seebiliriz.

    PIC in kimlik numaras seklindedir. Bunu deitirmekte mmkndr.

    Yazlm programa gre bir say retir. Her hangi bir deiiklik yapldnda bu say da deii

    7) KARILATIRMA YAPILMASI ki program arasnda

    fark v

    i

    r. Bylece programda bir deiiklik yapldnda yenisinin alp almadn bu say ile kontrol edebiliriz veya Buffer 2ye yazlan program okutulursa bu say ayn ise yazm kesin olarak doru sonucuna varlr.

    ar ise ve bu farkn nerelerde olduunu anlamak in karlatrlacak iki program

    deiik Bufferlara amamz gerekir. istiyorsak bunu da yazlm ile karlatrabiliriz. Bunun

    63

  • PIC programlamann temelleri

    rnein birini BUFFER 1 e dierini ise BUFFER 2 ye aabiliriz. Daha sonra Tampon

    Karlatr seildikten sonra Buffer 1

    ekil 4-41 Kar trma penceresi

    Eer programda d ekildeki gibi adm adm sterebilmektedir. rnekte 2135 ile 2145 arasndaki fark gstermektedir. Baka deiikliler

    mensnden karlatr seilir.

    aktif olduundan karlatrlacak dier Buffer iaretlenir. Daha sonra Compare ( Karlatr) ikonu seilerek karlatrma yaplr. Her ikisi

    de ayn ise yandaki bilgi mesaj gzkr.

    la

    eiiklik varsa bunu da aadaki golup olmadn anlayabilmek iin ise Next tuuna basmamz yeterli olacaktr.

    ekil 4-42 Farkl programlarn karlatrlmas

    8) YAZIM DORUL

    program yazarken iki eit kontrol yapmaktadr. Birincisi nce ir adresi yazar, sonra onu okur ve dorular bu ilem program yazm bitene kadar gerekleir.

    Hata o

    AMASI

    IC-Prog yazlm PIC e b

    lursa hemen uyar verir. kinci bir seenek ise tmn PIC e yazar ve hepsini okuyup dorulama yapar. Bu iki seenek programn PIC e doru yazlp yazlmadn byk lde bize bildirir. Tabi ki bu ilem bize program yazma esnasnda zaman harcamamza sebep olur ve ilem sresi uzar. Ancak okuyup dorulama yapmasn istemediimizde daha ksa srede ilem gerekleir fakat salkl yazp yazmad kukuludur.

    64

  • PIC programlamann temelleri

    Bu ilemleri yazlmda Ayarlar / Seenekler ksmna girdiimizde karm

    ekil 4-43 Programlama dorulama penceresi

    (4) Bu sonu ifadesi

    ekil 4-44 Sonu ifadesi

    za aadaki gibi kan pencereden ayarlayabiliriz.

    programn

    PB0 LED yanar

    65

  • PIC programlamann temelleri

    Programn aklanmas ) Program Listesi ve ak diyagram

    84.INC ;Adresleri belirten dosyay ykle (1) F84 n tantmn yap (2)

    tini 1 y p ( LED yak ) EVAM dr

    (1 INCLUDEP16F LIST P=16F84 ;16 BSF STATUS,5 ;Bank 1 e ge (3) CLRF TIRSB ;PORTB nin hepsini k yap (4) BCF STATUS,5 ;Bank 0 a ge (5) CLRF PORTB ;PORTB nin hepsini 0 yap (6) BSF PORTB,0 ;PortB nin 0.bi a (7) D GOTO DEVAM ;Sonsuz dng ile program sonlan (8) END (9)

    Ak Diyagram

    INCLUDEP16F84.INC

    LIST P=16F84

    BSF STATUS,5

    CLRF TRISB

    BCF STATUS,5

    CLRF PORTB

    BSF PORTB,0

    GOTO DEVAM

    l 4- gram

    BALA

    Adres le leri yk

    Bank 1 e ge

    PIC seimi

    Port B

    nin tm

    k

    nin hepsi 0

    Bank 0 e ge

    PortB

    LED yak

    Son

    eki 45 Ak diya

    66

  • PIC programlamann temelleri

    ) Yntem artnamesi ( Specification of processor )

    } List opsiyonu

    NHX8M,R=DEC

    ek Varsaym Tanm

    (2

    LIST P=16F84 (1) LIST talimat dilidir. {LIST 1) Format List [,,] rnek >>> LIST P=16F84,F=I 2) Aklama

    Seenb=nnn 8 TAB boluk saysnn tanm c=nnn 132 Bir satrtaki harf n tanm saysnf= HX8M nn tanm IN HEX dosya formatndaki ktfree FIXED Serbest form fixed FIXED Sabit form mm=ON|OFF asnn listeye yazlmas ON|OFF ON Memory haritn=nnn ki satr saysnn tanm 60 Bir sayfadap= None lemci tanm ( Example: P=,16F84 ) r= X > HE Numerik deer tipi ON|OFFSatr deitirme < satr tamas sonucuw=0|1|2 0 Assemblerin mesaj seviye tanm x=ON|OFF ON Makro gelitirilmitir. ON|OFF

    nn mal numa

    n desi ralarla tanmlama eklenmesidir.

    Tablo 4-2 Opsiyonlarn aklanmas

    67

  • PIC programlamann temelleri

    ) Portun kurulumu

    ICi kullanmaya balamadan nce portlarn kurulmas ( I/O belirlenmesi ) gerekmektedir.

    ekil 4- tun k

    ekil 4-47 Bank seimi

    (3 1) Bank seimi P

    46 I/O Por urulumu

    INDIRECT ADDR00

    Bank 0INDIRECT ADDR

    OPTIONTMR0

    PCL PCL

    STATUS STATUS

    FSR FSR

    TRISA

    TRISB

    PORTA

    PORTB

    EECON1

    EECON2

    EEDATA

    EEADR

    PCLATH

    INTCON

    PCLATH

    INTCON

    01

    02

    03

    04

    05

    06

    07

    08

    09

    0A

    0B

    0C

    4F

    A

    8B

    68byte

    Bank 1

    Work memory

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    8

    RP1 RP0bit5bit6bit7

    bit 5=' 1 '

    bit 5= ' 0 '

    STATUS register

    GPR

    (Address 03h)

    BALA

    PORTun kurulumu

    Bank1 seimi

    Bank0 seimi

    SON

    BSF STATUS,RP0 ( BSF H03,5 )

    B Portlarn giri veya k olarak kullanlacaTRISA ve TRIS

    nn karar verildii yerdir.

    ( BSF H03,5 )BSF STATUS,RP0

    68

  • PIC programlamann temelleri

    PICin portlarnn giri/k ( I/O ) belirlendii yazma ( Special Function Register )( zel fonksiyon kayd ) h) olarak adlandrlr.

    ( BSF H03,5 ) imi

    ak kurulumu. )

    BCF STATUS,RP0 ( BCF H03,5 )

    imi

    (rnek 1) PORTB nin hepsi IKI

    F TRISB ( CLRF H86 )

    H00 ; W register

  • PIC programlamann temelleri

    rnek 2) PORTBnin hepsi GR (form 1) MOVLW HFF ; W register

  • PIC programlamann temelleri (rnek 4) PORTAnn heps

    OVLW H1F ; W register

  • PIC programlamann temelleri

    2) BSF PORTB,0 ( BSF

    k ) ltrma 4-1

    Aadaki ekle gre PB

    lt Aadaki ekle gre PB7 deki LEDin yanmasn salaynz.

    ekil 4-53 PORTB >> 0 (LED snk)

    H06,0 )

    ekil 4-54 BIT0 n set (1) hale getirilmesi

    ekil 4-55 PORTB >> 1 ( LED yanA

    2 deki LEDin yanmasn salaynz. A rma 4-2

    LED

    ULN2803

    300

    '1' '0'

    PORTB

    +5V

    PIC16

    F84

    LED

    ULN2803

    300

    '0' '1'

    PORTBPIC16

    F84

    +5V

    H'06'

    3 2 1 0 LSBMSB

    10000000PORTB

    7 6 5 4

    PB0

    LEDON

    PB7 PB2 PB1PB3PB4PB5PB6

    PB0

    LED ON

    PB2P B 7 PB1PB3P B4P B 5 P B 6

    72

  • PIC programlamann temelleri

    4 ki veya daha fazla LED in yaklmas ( MOV komutunun kullanlmas ) rnek 1 Aadaki LED lerin yanmasn salayan programn tasarm. PB0PB2PB7 PB1PB3PB4PB5PB6

    LEDON LEDONLEDON

    ekil 4-56 rnek 1 (1) Program 4-1 Bir ka LED in yaklmas. INCLUDE P16F84.INC ;include dosyasnn kullanm (1) LIST P=16F84 ;16F84 n tantm (2)

    BSF STATUS,RP0 ;bank 1 seimi (3) CLRF PORTB ;PORTBnin tm k (4) BCF STATUS,RP0 ;bank 0 seimi (5) CLRF PORTB ;PORTBnin hepsi 0 (6) MOVLW H54 ;W register (5) Program balangc

    (2) Include dosyas

    INCLUDE P16F84.INC

    16F84 gibi Mikrodenetleyicilerin belleinde bulunan yazmalarn ( registerlerin ) adresleri sabittir. Bu nedenle bunlar her programda yazmak yerine INCLUDE komutunu kullanarak tamamn tek bir komutla tanmlama imkanna kavumu oluruz. ( Dosyann tamam sayfa ........ ) Register adn include dosyasnda kullanabiliriz.

    73

  • PIC programlamann temelleri

    * Sk kullandmz yazma ( registerler ) adlar ve adresleri ; Yazma ( register ) tanmlar

    W EQU H'0000' F EQU H'0001' INDF EQU H'0000' TMR0 EQU H'0001' PCL EQU H'0002' STATUS EQU H'0003' FSR EQU H'0004' PORTA EQU H'0005' PORTB EQU H'0006' OPTION_REG EQU H'0081' TRISA EQU H'0085' TRISB EQU H'0086' ;----- STATUS Bitleri------------------------------------------------------ IRP EQU H'0007' RP1 EQU H'0006' RP0 EQU H'0005' NOT_TO EQU H'0004' NOT_PD EQU H'0003' Z EQU H'0002' DC EQU H'0001' C EQU H'0000'

    (6) >> (8) Programda LED lerin yaklmas

    CLRF PORTB ;PORTB nin tamamnn 0 olmas (6) MOVLW H54 ;W register

  • PIC programlamann temelleri

    Ak diyagram

    PORTB

  • PIC programlamann temelleri

    Altrma 4-2 7 segment LED displayin kullanm

    7segment bilgi x g F e d c b a PORTB 0 1 1 1 0 0 0 1

    a

    b

    d

    e c

    f

    x

    g

    ekil 4-59 7 segment LED displayin kullanm

    Altrma 4-3 PIC ular iin 7 segment display tablosunu doldurunuz.

    7segment x g f e d c b a

    PORTB PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0

    HEX data

    0 1 2 3 4 5 6 7 8 9 A b C d E F 0 1 1 1 0 0 0 1 71h

    76

  • PIC programlamann temelleri

    5 Timer Program (DECFSZ) Bu program bir LEDin ( PB0 daki ) yanp snmesini salar. Bunun yanp snmesini salayabilmek iin zamanlaycya ( timer ) ihtiya vardr. Zamanlayc aadaki ekilde yaplr.

    LED

    LED

    LED

    LED

    PB0

    ON

    ON

    OFF

    OFF

    50ms

    50ms

    50ms

    50ms

    ekil 4-60 LEDin yanp snmesi (1) Zamanlayc ( timer ) program systemclock

    execution clock

    (4MHz)

    (1MHz)

    1 uS

    ekil 4-61 Zaman ( darbe ) pulsleri

    PIC eitim setinde 4 MHzlik kristal osilatr kullandk. Uygulama zaman ise sistem zamannn 1/4 katdr. Bir baka ifadeyle sistem zaman uygulama zamannn drt katdr. 1 clock zaman ( 1 / 1 x 106 = 1 x 10-6 = 1 us).

    PIC de bir komutun uygulanmas da ounlukla bir saykldr. PIC uygulama tablosundan PICin hangi komutu ka saykl srede altn bulabiliriz.

    77

  • PIC programlamann temelleri

    1) Timer program ( yaklak 2ms )

    COUNTER EQU H10 MOVLW D200 ;1CLOCK MOVWF COUNTER ;1CLOCK DLY1 GOTO $+1 ;2CLOCK GOTO $+1 ;2CLOCK GOTO $+1 ;2CLOCK NOP ;1CLOCK DECFSZ COUNTER,1 ;1(2)CLOCK GOTO DLY1 ;2CLOCK

    1 clock = 1 / 4 = 1 us Zamanlayc ( timer ) programn toplam gecikme sresini hesaplayacak olursak ; 1 + 1 + 200 x (2 + 2 + 2 + 1 + 1 + 2) + 1 = 2003 us = 2ms

    DECFSZ COUNTER,1 GOTO DLY1

    Evet

    RETURN

    COUNTER

  • PIC programlamann temelleri

    2) Timer program ( yaklak 50ms ) Eer daha uzun sreli bir zamanlayc yapmak istiyorsak iki tane dngye ihtiya vardr. rnein 50 ms lik bir zamanlayc ( timer ) program yazmak istersek

    COUNT1

  • PIC programlamann temelleri

    ( 50ms program ) COUNT1 EQU H10 COUNT2 EQU H11 MOVLW D25 MOVWF COUNT1 DLY1 MOVLW D200 ;1CLOCK MOVWF COUNT2 ;1CLOCK DLY2 GOTO $+1 ;2CLOCK GOTO $+1 ;2CLOCK

    GOTO $+1 ;2CLOCK NOP ;1CLOCK

    DECFSZ COUNT2,1 ;1(2)CLOCK GOTO DLY2 ;2CLOCK DECFSZ COUNT1,1 ;1(2)CLOCK GOTO DLY1 ;2CLOCK Altrma 4-4 Yukardaki programn harcanan zamann ltfen hesaplaynz.

    80

  • PIC programlamann temelleri

    (2) Program 4-2 ; LED in 50mS. aralklarla yanp snmesini salayan program.

    PORTB yi temizle

    PORTB nin sfrnc