Upload
masood-totakhel
View
154
Download
1
Embed Size (px)
DESCRIPTION
PIC
Citation preview
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