Intel 1976 da 8031/51 ailesini piyasaya srd!nde dnyann en
popler mikroi"lemcisi olmu"tu. Bu i"lemci dnya zerinde 12 den fazla firma tarafndan (#ntel, Phillips, Dallas, Siemens, Oki, Temic, Harris,...) milyonlarca adet retildi. 8 bit tabanl olan 64Kbyte a kadar adresleme yapabilen, 32 adet I/O portuna sahip bu i"lemciler kendi endustri standartn olu"turdu. 8031 ailesinin en nemli dejavantaj ise Eprom programlamann zorluklar , al"mas iin harici entegrelere ihtiya duymas idi. Geri 8051 de bu sorun yok ama onda da 8031 e gre fiyat dejavantaj var. Bu makalede RISC mimarisi ile retilen ve 8031 ailesine gre daha stn zelliklere sahip olan (Fiyat,Programlayclar,Derleyiciler,Kaynak yeterlili!i,...) Microchip in PIC serisi mikroi"lemcilerinden en popleri olan 16C84/16F84 tantlacaktr.
PIC16F84 Microcontroller: Genel zellikler Sadece 35 komut ile programlama 13 adet giri"/k" portu al"ma hz DC-10 MHz 8 bit data 1Kx14 EEPROM Program Hafzas 64 Byte EEPROM Data Hafzas Direkt/Dolayl Adresleyebilme 4 adet Kesme Fonksiyonu. (PB0,TMR0,RB Change,EEPROM Write) 1 milyondan fazla yazma silme Kolay ve ucuz programlayabilme Herbir pinden 25 mA e kadar akm verebilme 8 bit programlanabilir Timer A"agda microcontroller in pin diagram verilmi"ltir.
!ekil-1 : 16C84 Pin Diagram
16F84 13 adet giri" k" portu bulunmaktadr. Bunlardan 8 bitlik olanna PortB,5 bitlik olanna da PortA denir. PortA nn 4 numaral pini open kollektr olup giri" k" yapmak iin bir diren ile +5 e ekmek gerekmektedir. Di!er portlardan hibir ek elemana ihtiya duymadan giri"/k" yaplabilir. Microcontrollerin mimarisi "ekil-2 de verilmi"tir.
!ekil-2 : Mimari
Microcontroller programlamadan nce Register haritasn bilmemiz gerekmektedir. PIC mimarisinde genelde tm i"lemler W (work) register zerinden yaplr. Program yazmadan nce hangi porttan giri" hangi portttan k" yaplaca!nn belirlenip bunun microcontroller e anlatlmas gerekmektedir. Bu da TrisA ve TrisB register larna degerler atayarak olur. $ekil-3 de 16F84 n register haritas grlmektedir.
!ekil-3: Register Haritas
$ekil-3 e dikkat edilirse Bank0 ve Bank1 olarak 2 blme vardr. Bank1 de bilmemiz gereken en nemli registerlar Option,TrisA ve TrisB dir.Bank0 da ise Status,PortA,PortB ,TMR0 ve Intcon dur. Bu register larn bit-bit aklamas ise "ekil-4 de verilmi"tir.
!ekil-4 : zel Register larn aklamalar.
$imdi bu register lar ksa ksa aklayalm.
PORTA: 5 adet giri"/k" pini vardr. PORTB: 8 adet giri"/k" pini vardr. TRISA: PortA dan giri"mi yoksa k"m yaplaca!n belirleyen register dir. #lgili gzelere 1 yklenirse Giri", 0 yklenirse k" yaplr. rnek olarak
MOVLW b00000011 MOVWF TRISA
Bu komut satrlar ile PortA nn 0,1 nolu pinleri Giri", 2,3,4 nolu pinleri ise k" olarak tanmlanm" olur.
TRISB: TrisA ile ayn.
STATUS:
Bit7:IPR 0: Bank0-1 1: Bank2-3 Bit6-5:RP0-RP1 00:Bank0 01:Bank1 10:Bank2 11:Bank3 Bit4:TO Sre A"m Biti 0:WDT sre a"m i"lemi yapm""a 1:CRWDT yada SLEEP yaplm""a Bit3:PD G Kesme Biti 0:SLEEP den sonra 1:CLRWDT dan sonra Bit2:Z 0:Yaplan aritmetik i"lemin sonucu sfrdan farkl ise 1: Yaplan aritmetik i"lemin sonucu sfr ise Bit1:DC 1: 8 bitin D"k anlaml ilk 4 bitinden ta"ma olursa 0: Ta"ma olazsa (ADD komutlar ile de!i"ir) Bit0:C 1:8 bitten ta"ma olursa 0:Ta"ma olmazsa(ADD komutlar ile de!i"ir)
OPTION:
Bit7:RBPU 0: PortB Pull-Up disable 1: PortB Pull-Up enable Bit6:INTEDG 0:PB0 d"en kenarda interrupt kabul eder. 1:PB0 ykselen kenarda interrupt kabul eder. Bit5:T0CS 0:T0CKI den gelen darbeler Clock kabul edilir 1:Clock kaynag XTAL in rettigi dahili darbeler olur. Bit4:T0SE (T0CS=1 ise) 0:T0CKI den gelen darbeler ykselen kenarda clock u arttrr. 1: T0CKI den gelen darbeler d"en kenarda clock u arttrr. Bit3:PSA 0:Prescaler TMR0 iin ayarl 1:Prescaler WDT iin ayarl Bit2,1,0: Prescaler set etme PS2,PS1,PS0 TMR0 WDT 000 1:2 1:1 001 1:4 1:2 010 1:8 1:4 011 1:16 1:8 100 1:32 1:16 101 1:64 1:32 110 1:128 1:64 111 1:256 1:128
Bu kadar bilgiden sonra artk sizde microcontroller inizi Programlayabilirsiniz. rnek devreler iin rnekler sayfasn grebilirsiniz. Sorularnz iin bana mail gnderiniz.
Iyi al"malar dile!i ile....
Oktay Sirrik
Web : http://www.turkengineers.com e-mail : oktay@turkengineers.com