You are on page 1of 54

YILDIZ TEKNK NVERSTES

ELEKTRK - ELEKTRONK FAKLTES BLGSAYAR MHENDSL BLM

Mikroilemciler
2010/2011 Bahar Y.Y. Laboratuar Deney Kitab

stanbul 2011

indekiler Deneyle lgili Genel Bilgiler ve Uyarlar ................................................................................................... 1 2010/2011 Bahar Y.Y. Deney Program................................................................................................... 1 EasyPic6 Deney Setinin Tantm ............................................................................................................. 2 PIC16F887 C Tantm .......................................................................................................................... 11 PIC16F887 Komut Seti zeti ................................................................................................................. 21 mikroC Derleyicisinin Tantm .............................................................................................................. 23 CCS C Derleyicisi Tantm ...................................................................................................................... 24 DENEY 1 : PIC Assembly Uygulamas ..................................................................................................... 26 DENEY 2 : Giri/k ve 4x4 Tu Takm Uygulamas............................................................................. 29 DENEY 3 : PIC16F887 Modlleri ve Kesmeler ....................................................................................... 31 DENEY 4 : Kesme Kullanarak Seri (RS232 ve I2C) Haberleme Uygulamas ........................................... 35 DENEY 5 : GLCD ve Dokunmatik Ekran Uygulamas .............................................................................. 38 Kaynaklar............................................................................................................................................... 39 Ek1 : PIC16F887 Komut Aklamalar .................................................................................................... 40 Ek2 : Proteus ile PIC Simlasyonu ......................................................................................................... 47

Deneyle lgili Genel Bilgiler ve Uyarlar


1) Deney gruplar ve tarihleri nceden duyurulacaktr. 2) Her biri 2 saat srecek olan toplam 5 deney yaptrlacaktr. 3) Deneyler 2er kiilik gruplar halinde yaplacaktr. lk deney ncesinde deney arkadanz belirleyiniz. 4) Deneyler EasyPic6 deney seti zerinde CCS C ve mikroC derleyicileri kullanlarak C dili ve PIC-assembly dili ile yaptrlacaktr. Deneyler iin n alma Proteus simlasyon ortamnda yaplabilir. 5) Deneye gelmeden nce deney kitabnn en son versiyonuna sahip olup olmadnz kontrol edin. Dnem boyunca deneylerde ufak deiiklikler yaplabilir. 6) Deneyden nce Yaplacaklar blmnde istenenler deneyden nce mutlaka yaplmaldr. 7) Deney sonundaki sorular deneyden nce mutlaka yantlandrlmaya allmaldr. 8) Deneyde Yaplacaklarn tamam deneyden nce mutlaka anlayarak okunmal, gerekirse ders notlarndan da yararlanlmaldr. 9) Deney srasnda renciler arasnda bilgi al verii yasaktr. 10) Deneyde yaplacaklardan herhangi biri bittiinde grevliye gsterilip onay alnmaldr. 11) Ynetmelik gereince renci deneylere %80 orannda devam etmek mecburiyetindedir. Devam her deneyde yoklama yaplarak saptanacaktr. 12) rencinin gelmedii deneyden alaca not sfrdr. 13) Mikroilemciler dersi laboratuar iin telafi deneyi yaptrlmayacaktr.

2010/2011 Bahar Y.Y. Deney Program


Deneyler B Blok CAD2 LAB.'da yaplacaktr. lan edilen deney gruplarnn deney saat ve tarihleri aada verilmitir.
Grup A Per. 11:00-13:00 B Per. 16:00-18:00 C Per. 11:00-13:00 D Per. 16:00-18:00 1. Deney 10.03.2011 10.03.2011 17.03.2011 17.03.2011 2. Deney 24.03.2011 24.03.2011 31.03.2011 31.03.2011 3. Deney 07.04.2011 07.04.2011 14.04.2011 14.04.2011 4. Deney 21.04.2011 21.04.2011 28.04.2011 28.04.2011 5. Deney 05.05.2011 05.05.2011 12.05.2011 12.05.2011

EasyPic6 Deney Setinin Tantm


Deneyler srasnda EasyPic6 deney seti kullanlacaktr. EasyPic6 sistemi Microchip PIC mikro denetleyicileri iin gelitirilmi ok fonksiyonlu bir uygulama kartdr. Kart zerinde PIC mikro denetleyicisi ile bir dizi devre elemanlaryla donanm arayz oluturulmutur. Kartn temel birimleri aada listelenmitir:

1) G kayna 2) USB programlama girii 3) On-board USB programlayc ve mikroICD gerek zamanl donanmsal devre ii hata ayklayc (in circuit debugger) 4) Scaklk sensor modl 5) Harici debugger girii 6) USB destekli mikro denetleyiciler iin USB portu 7) Analog dijital evirici giri modl 8) PS/2 konektr 9) Onboard 2x16 karakter lcd 10) Port iin diren balant anahtarlar, 11) Port iin pull-up, pull-down seim atac 12) Giri k balant pinleri 13) DIP8, DIP14, DIP18, DIP20, DIP28 ve DIP40 soketler 14) Dokunmatik ekran kontrolr 15) Port geniletme modl 16) 128x64 grafik LCD konektr 17) Grafik LCD ztlk ayar

4 18) 19) 20) 21) 22) 23) 24) 25) 26) 27) 28) Dokunmatik ekran konektr Menu tu takm 4x4 tu takm Pushbutton anahtarlar Pushbutton basldnda pin giri seviyesi seim atac Koruyucu diren a kapa atac Reset tuu Mikro denetleyici G/ portlarna bal LEDler LCD ztlk ayar Karakter LCD konektr RS232 haberleme modl

Deneylerin yaptrlaca PIC16F887 mikro denetleyicisi iin programlama seviyesi seim ucu, soket seim ve MCLR ucu iin ntanml ata konumlar aadaki ekillerdeki gibidir. Deney srasnda bu ayarlarn doru olduundan emin olunuz.

Deneylerde kullanlacak donanmsal modllerin genel ematik yaplar aada verilmitir.

5 RS232 haberleme modl iin donanmsal olarak seri haberlemeyi destekleyen RC6 ve RC7 pinlerinin seilmesi gerekmektedir. SW7nin 8 numarl anahtar ile SW8in 8 numaral anahtar on konumuna getirilmelidir. CTS ve RTS anahtarlar ise kullanlmayacaktr. Deney seti ile bilgisayar arasnda seri kablo ile balant kurulacaktr. Bilgisayar tarafnda Hyperterminal veya benzeri bir program uygun baudrate ve gerekli ayarlar ile kullanlarak haberleme salanacaktr.

DS1820 entegresi 1-wire olarak isimlendirilen haberleme protokln kullanan, 9bit znrlkte, saysal bir scaklk sensrdr. DS1820yi kullanabilmek zere deney setinde scaklk sensr konnektr kullanlr. Mikro denetleyicide 1-wire haberlemeyi salamak zere kullanlacak u J11 atac ile seilir. Scaklk sensr iin deney seti ematii aadaki gibidir.

6 Analog saysal dnm uygulamas iin kullanlmak zere set zerinde bir adet potansiyometre bulunmaktadr.

Analog deer J15 atacnn uygun yerletirilmesi ile mikro denetleyicinin RA0, RA1, RA2, RA3, RA4 ularndan birine iletilir. Analog saysal dnm yardmc kart iin ematik aadaki gibidir.

Set zerinde k amal olarak kullanlmak zere herbir G/ ucuna bir adet LED baldr. LEDler port baznda SW9un ilgili anahtar ile alp kapatlabilir. LEDlerin anot ucu mikro denetleyici tarafna bal olduundan LEDin yaklabilmesi iin ilgili uca lojik 1 verilmesi gerekmektedir.

Set zerinde giri amal olarak kullanlmak zere herbir G/ ucuna bir adet pushbuttonlar baldr. J2, J17 atalar ve SW1-SW5 anahtarlarnn konumlandrlmasna gre butona basldnda lojik 1 brakldnda lojik 0, butona basldnda lojik 0 brakldnda lojik 1 eklinde iki farkl konfigrasyon salanabilir. J17 ile butona basldnda mikro denetleyici ucunda oluacak deer seilirken SW1-SW5 on konumunda iken J2 atac ile tu brakldnda mikro denetleyici ucunda oluacak deer belirlenir. PortBnin bir ucuna ilikin pushbutton ayarlanmas aadaki ekillerde gsterilmitir.

Set zerinde pushbuttonlardan farkl olarak iki ayr tu takm salanmtr. Men tu takmnn konfigrasyonu pushbuttonlar gibi yaplmaktadr (RA0-RA5). 4x4 tu takm ise klasik tu takm konfigrasyonundadr. RD4-RD7 tu takmn srmek iin, RD0-RD3 tu takmn okumak iin kullanlr. J4 pull-down konumunda, SW4 ilk 4 anahtar on konumunda olmaldr.

(4x4 tu takm sembolik)

2x16 karakter LCD modlnn donanmsal balantlar 4 bitlik alma moduna gre yaplmtr. LCD arka SW6nn 8 numaral anahtar ile almakta, kontrast potansiyometresi (P4) ile netlik ayar yaplabilmektedir. Karakter LCD iin data ve kontrol ular mikro denetleyicinin PortB ular ile salanr. 2x16 karakter LCD modl iin ematik aada verimitir.

10 128x64 grafik LCD arkaplan SW6nn 8 numaral anahtarnn on konumuna getirilmesi ile alr. Kontrast ayar iin P3 potansiyometresi kullanlr. Grafik LCD iin data mikro denetleyici PortB ular ile, kontrol ise PortD ular salanr. 128x64 grafik LCD iin donanmsal balant aadaki ekilde verilmitir.

Dokunmatik ekran paneli GLCD modlne yaptrlarak kullanlr. Yatayda ve dikeyde okunan iki farkl analog deer ile panel zerinde dokunulan nokta iin koordinat ADC dnm ile elde edilir.

11

PIC16F887 C Tantm
PIC16F887 mikro denetleyicisi RISC mimarisine sahip 8 bitlik bir denetleyicidir. 35 komuta sahiptir ve dallanma (branch) komutlar hari tek evrimlik komutlara sahiptir. PIC16F887 toplam 8192 word kapasiteli program belleine, 368 byte SRAM veri belleine ve 256 byte EEPROM veri belleine sahiptir. 35 G/ pinine, 10 adet 10 bitlik A/D kanalna, 1 adet gelimi CCP modlne, 1 adet CCP modlne, 1 adet Enhanced Universal Synchronous Asynchronous Receiver Transmitter modlne, 1 adet Master Synchronous Serial Port modlne, 2 adet karlatrma modlne, 1 adet 8 bitlik ve 2 adet 16 bitlik Timer modlne sahiptir. PIC16F887ye ait u tanmlar aadaki ekilde verilmitir. Bir uca ilikin farkl grevler SRAM veri belleindeki zel amal yazmalar (SFR) ile kontrol edilir.

12 PIC16F887 mikrodenetleyicisi iin u tanm ve grevleri aada verilmitir. Aadaki tablo incelendiinde rnein 3 numaral pin uygun ayarlamalar ile ya RA1 dijital giri k ucu ya da AN1 analog giri ucu olarak kullanlabilir. Port ayar yazmalarnn reset sonras varsaylan deerleri gerei analog giri olarak ayarlanabilin tm ular reset sonrasnda analog giri olarak ayarldr. Bu sebeple 3 numaral pini dijital giri k amal olarak kullanabilmek iin istenen port ilk durumlandrmalar yazlmsal olarak yaplmaldr.

13 PIC16F887ye ilikin iyap, aada verilmitir. Program bellei adres yolu, SRAM veri bellei adres yolu, program bellei veri yolu, SRAM veri bellei veri yolu ile EEPROM adresleme ve veri ular ekil zerinde iaretlenmitir. PIC16F887de akmlatr ve genel amal yazma olarak W yazmac (working register) kullanlr.

14 PIC16F887ye ilikin program bellei organizasyonu aadaki eklide verilmitir. ekilde ayrca program belleinde reset ve kesme vektr adresleri de iaretlenmitir. Sistem ilk balatldnda veya reset devresi ile reset durumu oluturulduunda PC ye 0x0000 adres deeri yklenir. Benzer ekilde bir kesme durumunda PCye 0x0004 adresi yklenir.

PC deeri PCL ve PCLATH yazmalar ile oluturulur. PC deerinin elde edilmesine ilikin ekil aada verilmitir.

15 SRAM veri belleine ilikin organizasyon aada verilmitir. Bu yap ierisinde evre birimlerin ayar ve kontrolleri iin zel amal yazmalar (special function registers)ve kullancya sunulmu genel amal yazma (general purpose registers) blgeleri bulunmaktadr.

16 SRAM blgesinde yerletirilmi nemli SFR yazmalarna ilikin bit tanmlar ve reset deerleri aadaki tablo ile verilmitir.
Addr 03h 05h 06h 07h 08h 09h 0Bh 17h 1Fh 85h 86h 87h 88h 89h 10Ch 10Dh 188h 189h 18Ch sim STATUS PORTA PORTB PORTC PORTD PORTE INTCON CCP1CON ADCON0 TRISA TRISB TRISC TRISD TRISE EEDAT EEADR ANSEL ANSELH EECON1 Bit 7 IRP RA7 RB7 RC7 RD7 GIE P1M1 ADCS1 TRISA7 TRISB7 TRISC7 TRISD7 EEDAT7 EEADR7 ANS7 EEPGD Bit 6 RP1 RA6 RB6 RC6 RD6 PEIE P1M0 ADCS0 TRISA6 TRISB6 TRISC6 TRISD6 EEDAT6 EEADR6 ANS6 Bit 5 RP0 RA5 RB5 RC5 RD5 T0IE DC1B1 CHS3 TRISA5 TRISB5 TRISC5 TRISD5 EEDAT5 EEADR5 ANS5 ANS13 Bit 4 TO RA4 RB4 RC4 RD4 INTE DC1B0 CHS2 TRISA4 TRISB4 TRISC4 TRISD4 EEDAT4 EEADR4 ANS4 ANS12 Bit 3 PD RA3 RB3 RC3 RD3 RE3 RBIE CCP1M3 CHS1 TRISA3 TRISB3 TRISC3 TRISD3 TRISE3 EEDAT3 EEADR3 ANS3 ANS11 WRERR Bit 2 Z RA2 RB2 RC2 RD2 RE2 T0IF CCP1M2 CHS0 TRISA2 TRISB2 TRISC2 TRISD2 TRISE2 EEDAT2 EEADR2 ANS2 ANS10 WREN Bit 1 DC RA1 RB1 RC1 RD1 RE1 INTF CCP1M1 GO/DONE TRISA1 TRISB1 TRISC1 TRISD1 TRISE1 EEDAT1 EEADR1 ANS1 ANS9 WR Bit 0 C RA0 RB0 RC0 RD0 RE0 RBIF CCP1M0 ADON TRISA0 TRISB0 TRISC0 TRISD0 TRISE0 EEDAT0 EEADR0 ANS0 ANS8 RD Reset Deeri 0001 1xxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx ---xxxx 0000 000x 0000 0000 0000 0000 1111 1111 1111 1111 1111 1111 1111 1111 ---1111 0000 0000 0000 0000 1111 1111 --11 1111 x--- x000

= fonksiyon atanmam blgeler, x = belirsiz SRAM veri belleinin adreslenmesine ilikin modlar dorudan adresleme ve dolayl adresleme olarak aada verilmitir. Dorudan adresleme: 9 bitlik ram adresinin 7 biti instructiondan 2 biti ise STATUS<6:5> yazmacndan gelir.

17 //STATUS 0x03 olarak tanmlanm ise BSF STATUS, 6 BSF STATUS, 5 MOVLW 0xFF MOVWF 0x0C //EECON1 SFR yazmacna 0xFF yazld //STATUS 0x03 olarak tanmlanm ise BSF STATUS, 6 BCF STATUS, 5 MOVLW 0xFF MOVWF 0x0C //EEDAT SFR yazmacna 0xFF yazld

Dolayl Adresleme:9 bitlik adresin 8 biti FSR yazmacndan bir biti ise STATUS<7> yazmacndan gelir.

BCF STATUS, 7 MOVLW 0x20 MOVWF FSR NEXT : CLRF INDF //dolayl adreslemede INDF yazmacnda yazl olan bellek gzne eriilir INCF FSR BTFSS FSR,4 GOTO NEXT //0x20 -0x2F adresleri arasndaki SRAM veri belleini siler

Yukarda geen adresleme desteklenmektedir.

modlarndan

farkl

olarak

Relative

Addressing

modu

da

18 Yaptrlacak deneylerde kullanlacak PIC16F887 modllerine ilikin gerekli SFR yazmalar ve modllere ilikin ematik yap aada verilmitir. EUSART modlne ilikin yap aada verilmitir.

19 Anolog dijital evrim modlne ait yap aada verilmitir.

Capture / Compare / PWM modlne ait yap aada verilmitir.

20

MSSP modl iin I2C fonksiyonuna ait yaps aada verilmitir:

21

PIC16F887 Komut Seti zeti


Status Affected LSb

Mnemonic, Operands

14-Bit Opcode Description Cycles MSb BYTE-ORIENTED FILE REGISTER OPERATIONS

Notes

ADDWF ANDWF CLRF CLRW COMF DECF DECFSZ INCF INCFSZ IORWF MOVF MOVWF NOP RLF RRF SUBWF SWAPF XORWF

f, d f, d f f, d f, d f, d f, d f, d f, d f, d f f, d f, d f, d f, d f, d

Add W and f AND W with f Clear f Clear W Complement f Decrement f Decrement f, Skip if 0 Increment f Increment f, Skip if 0 Inclusive OR W with f Move f Move W to f No Operation Rotate Left f through Carry Rotate Right f through Carry Subtract W from f Swap nibbles in f Exclusive OR W with f

1 1 1 1 1 1 1(2) 1 1(2) 1 1 1 1 1 1 1 1 1

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

0111 0101 0001 0001 1001 0011 1011 1010 1111 0100 1000 0000 0000 1101 1100 0010 1110 0110

dfff dfff lfff 0xxx dfff dfff dfff dfff dfff dfff dfff lfff 0xx0 dfff dfff dfff dfff dfff

ffff ffff ffff xxxx ffff ffff ffff ffff ffff ffff ffff ffff 0000 ffff ffff ffff ffff ffff

C, DC, Z Z Z Z Z Z Z Z Z

1, 2 1, 2 2 1, 2 1, 2 1, 2, 3 1, 2 1, 2, 3 1, 2 1, 2

C C C, DC, Z Z

1, 2 1, 2 1, 2 1, 2 1, 2

BIT-ORIENTED FILE REGISTER OPERATIONS BCF BSF BTFSC BTFSS f, b f, b f, b f, b Bit Clear f Bit Set f Bit Test f, Skip if Clear Bit Test f, Skip if Set 1 1 1 (2) 1 (2) 01 01 01 01 00bb 01bb 10bb 11bb bfff bfff bfff bfff ffff ffff ffff ffff 1, 2 1, 2 3 3

LITERAL AND CONTROL OPERATIONS ADDLW ANDLW CALL CLRWDT GOTO IORLW MOVLW RETFIE RETLW RETURN SLEEP SUBLW XORLW k k k k k k k k k Add literal and W AND literal with W Call Subroutine Clear Watchdog Timer Go to address Inclusive OR literal with W Move literal to W Return from interrupt Return with literal in W Return from Subroutine Go into Standby mode Subtract W from literal Exclusive OR literal with W 1 1 21 2 1 1 2 2 21 1 1 11 11 10 00 10 11 11 00 11 00 00 11 11 111x 1001 0kkk 0000 1kkk 1000 00xx 0000 01xx 0000 0000 110x 1010 kkkk kkkk kkkk 0110 kkkk kkkk kkkk 0000 kkkk 0000 0110 kkkk kkkk kkkk kkkk kkkk 0100 kkkk kkkk kkkk 1001 kkkk 1000 0011 kkkk kkkk TO, PD C, DC, Z Z Z C, DC, Z Z TO, PD

1: When an I/O register is modified as a function of itself (e.g., MOVF GPIO, 1), the value used will be that value present on the pins themselves. For example, if the data latch is 1 for a pin configured as input and is driven low by an external device, the data will be written back with a 0. 2: If this instruction is executed on the TMR0 register (and where applicable, d = 1), the prescaler will be cleared if assigned to the Timer0 module. 3: If the Program Counter (PC) is modified, or a conditional test is true, the instruction requires two cycles. The second cycle is executed as a NOP.

22

Field
f W b k x

Description Register file address (0x00 to 0x7F) Working register (accumulator) Bit address within an 8-bit file register Literal field, constant data or label Dont care location (= 0 or 1). The assembler will generate code with x = 0. It is the recommended form of use for compatibility with all Microchip software tools. Destination select; d = 0: store result in W, d = 1: store result in file register f. Default is d = 1. Program Counter Time-out bit Carry bit Digit carry bit Zero bit Power-down bit

PC TO C DC Z PD

23

mikroC Derleyicisinin Tantm


mikroC PIC mikrodenetleyicileri iin bir C derleyicisidir. Bir proje oluturmak ve mikro denetleyiciye yklemek iin aadaki admlar izlenir: 1) 2) 3) 4) 5) 6) 7) 8) mikroC program altrlarak microC IDE alr Project > New Project yolu ile yeni proje penceresi alr Proje ismi, yolu girildikten sonra Device mensnden PIC16F887 seilir Clock deeri olarak 8.000.000 deeri girilir Device Flags ksmnda Default dmesi tklanr Derleyicinin oluturduu .c dosyasna ilgili kod yazlr Project > Build yolu ile proje derlenir Tools > me Programmer yolu ile derlenen hex dosyas mikro denetleyiciye aktarlr

mikroC derleyicisi ile PIC assembly komutlar kullanlmak istendiinde asm blou kullanlmaldr.
unsigned myvar; void main() { myvar=0; asm { MOVLW 10 MOVLW test_main_global_myvar_1 } }

mikroC derleyicisi zerinde uygulama gelitirilecek mikro denetleyiciye zel veya genel uygulama ktphanelerine sahiptir. Bu ktphanelerin aklamalarna mikroC IDE zerinden Help > Help mensnden Contents tab ierisindeki mikroC Libraries yolu ile eriilebilir.

mikroC derleyicisi ile derleme ilemi sonucunda oluan .lst uzantl dosya incelenerek c kodlarna karlk retilen PIC assembly komutlar grlebilir.

24

CCS C Derleyicisi Tantm


CCS C PIC mikro denetleyiciler iin bir C derleyicisidir. Bir proje oluturmak ve mikro denetleyiciye yklemek iin aadaki admlar izlenir: 1) 2) 3) 4) 5) 6) 7) 8) 9) 10) 11) 12) 13) 14) 15) PIC C Compiler altrlarak CCS C IDE alr Project tabndan Project Wizard seilir Projenin kaydedilecei yol belirtilir PIC Wizard penceresinde General bal Options sekmesinde Device olarak PIC16F887 seilir Oscilator Frequency olarak 8.000.000 deeri girilir Fuses ksmnda High Speed Osc (>4mhz) seilir Enable MSCLR seenei iaretlenir OK tuu ile ayarlar onaylanr Derleyicinin oluturduu .c dosyasna ilgili kod yazlr IDE penceresinde Compile sekmesi altnda Compile butonu tklanarak proje derlenir Mikroelektronika mikroProg Suite For PIC program altrlr MCU Family ksmnda PIC16F seilir Device ksmnda PIC16F887 seilir File > Load Hex yolu ile derlenen hex dosyas programa yklenir Write butonu ile hex kod mikro denetleyiciye yklenir

25 CCS C derleyicisi ile PIC assembly komutlar kullanlmak istendiinde asm blou kullanlmaldr.
void asm_function(){ #asm BCF 3,6 BCF 3,5 MOVLW 0x11 MOVWF 0x20 BCF 3,6 BSF 3,5 MOVLW 0x33 MOVWF 0x20 #endasm }

CCS C derleyicisinin uygulama ktphanelerinin aklamalarna help mensnden

eriilebilir.

CCS C derleyicisi ile derleme ilemi sonucunda oluan .lst uzantl dosya incelenerek c kodlarna karlk retilen PIC assembly komutlar grlebilir.

26

DENEY 1 : PIC Assembly Uygulamas


Deneyden nce Yaplacaklar PIC16F887 iin program bellei word bykl nedir? PIC16F887 iin program bellek boyutu toplam 114688 bit olduuna gre ka adet program bellei word deeri adreslenebilir? Program bellei adres yolu genilii nedir? PIC16F887 iin SRAM bellei word bykl nedir? PIC16F887 iin SRAM bellei boyutu toplam 4096 bit olduuna gre ka adet SRAM bellei word deeri adreslenebilir? SRAM bellei adres yolu genilii nedir? PIC16F887 iin EEPROM veri bellei adres yolu ve veri yolu genilikleri nedir? (EEPROM veri bellei boyutu toplam 2048 bit) Deneyde kullanlacak SFR yazmalarn inceleyiniz. (Daha detayl bilgi iin 16F887 kataloguna baknz) Deney in nemli Yazmalar: STATUS REGISTER ALU biriminin aritmetik durumunu, reset durumunu ve bank sein bitlerini ierir. b7 IRP Bit7 b6 b5 b4 b3 b2 b1 RP1 RP0 Z DC/ Dolayl adresleme bank seim biti 0 = bank0 ve bank1 1 = bank2 ve bank3 Dorudan adresleme bank seim bitleri 00 = bank0 01 = bank1 10 = bank2 11 = bank3 sfr bayra 0 = aritmetik veya lojik ilem sonucu 0 deil 1 = aritmetik veya lojik ilem sonucu 0 toplama basamak eldesi (dk anlaml 4. bitten elde olutu), karma eldesi toplama eldesi (en yksek anlaml bitten elde olutu), karma basamak eldesi b0 C/

Bit<6:5>

Bit2

Bit1 Bit0

27 ANSEL ve ANSELH REGISTER A ve E portlar iin analog-dijital i/o seim bitleri. (ANSEL) b7 ANS7 Bit<7:0> b6 b5 b4 b3 b2 b1 ANS6 ANS5 ANS4 ANS3 ANS2 ANS1 Analog seim bitleri; AN0-AN7 ular iin dijital I/O veya analog seim ucu 1 = Analog giri 0 = Dijital I/O b0 ANS0

B portu iin analog-dijital i/o seim bitleri. (ANSELH) b7 Bit<5:0> b5 b4 b3 b2 b1 ANS13 ANS12 ANS11 ANS10 ANS9 Analog seim bitleri; AN0-AN7 ular iin dijital I/O veya analog seim ucu 1 = Analog giri 0 = Dijital I/O b6 b0 ANS8

Analog veya dijital i/o olarak ayarlanabilecek ular ve karlk gelen dijital i/o ve analog u tanmlar aadaki gibidir. Analog giri olarak ayarlanabilir tm ular reset varsaylan deerleri gerei analog giri ayarl olarak ilk deer alrlar. lgili ular dijital i/o iin kullanlacaksa istenen ilk deerler yazlmsal olarak verilmelidir. EECON1 : EEPROM CONTROL REGISTER b7 EEPGD Bit7 b6 b5 b4 b3 WRERR b2 WREN b1 WR b0 RD

Bit3

Bit2

Bit1

Bit0

Program/Data EEPROM seim biti 0 = Veri belleine eriim 1 = program belleine eriim EEPROM hata bayra 0 = Yama ilemi kesildi 1 = Yazma ilemi baarl EEPROM yazma izin biti 0 = Veri EEPROMa yazmay engelle 1 = Yazma evrimini aktif yap Yazma kontrol biti 0 = EEPROMa yazma evrimi baar ile tamamland 1 = Yazma evrimini balat Okuma kontrol biti 0 = Okuma balatlmasn 1 = Okuma evrimini balat

EEADR : EEPROM ADDRESS REGISTER b7 b6 b5 b4 b3 b2 EEADR7 EEADR6 EEADR5 EEADR4 EEADR3 EEADR2 Bit<7:0> EEPROM okuma yazma ilemlerinde adres tutan yazma b1 EEADR1 b0 EEADR0

28 EEDAT : EEPROM DATA REGISTER b7 b6 b5 b4 b3 b2 EEDAT7 EEDAT6 EEDAT5 EEDAT4 EEDAT3 EEDAT2 Bit<7:0> EEPROM okuma yazma ilemlerinde veri tutan yazma Deney Srasnda Yaplacaklar 1) PIC16F887nin SRAM veri bellei blgesinde bank0 ofset 0x20 adresi ile bank1 ofset 0x20 adreslerindeki deerleri toplayarak bank3 ofset 0x20 adresine yazan program PIC assembly komutlar ile oluturunuz. 2) PIC16F887nin SRAM veri bellei blgesinde bank3 ofset 0x20 adresindeki deer 0x7F'ten bykse bank1 ofset 0x20 adresine 0x3E yazan, kkse bank1 ofset 0x20 adresine 0x3C yazan, 0x7F'e eitse bank1 ofset 0x20 adresine 0x3D yazan program PIC assembly komutlar ile oluturunuz. 3) PIC16F887nin SRAM veri bellei blgesinde bank2 ofset 0x20 ile ofset 0x3F adres aralna 0xFB deeri yazan program PIC assembly komutlar ile oluturunuz. (Dolayl adresleme kullannz) 4) PIC16F887nin SRAM veri bellei blgesinde bank2 ofset 0x20 ile ofset 0x3F adres araln srasyla 0x01ten 0x20ye deerleri yazan program PIC assembly komutlar ile oluturunuz. (Dolayl adresleme kullannz) 5) PIC16F887nin EEPROM veri bellei blgesindeki ilk 3 wordu (0x00, 0x01, 0x02 adreslerindeki) okuyup SRAM veri bellei blgesinde bank3 ofset 0x20 adresinden itibaren yazan program PIC assembly komutlar ile oluturunuz. 6) PIC16F887, 8 bitlik iaretsiz saylar zerinden ilem yapmaktadr. Gerekli kontrolleri belirleyip uygulayarak; SRAM veri bellei blgesinde bank3 ofset 0x20 adresindeki 2ye tmleyen deer ile bank2 ofset 0x20 adreslerindeki 2ye tmleyen deeri toplayarak ilem sonucunu bank1 ofset 0x20 adresine yazan program PIC assembly komutlar ile oluturunuz. Deney Sonu Sorular PIC16F887 mikro denetleyicisinin EEPROM ve SRAM veri bellekleri hangi amala kullanlr? Az sayda komuta sahip olan ve bu komutlarn ounu ksa evrim srelerinde tamamlayacak ekilde oluturulmu ilemci mimarilerine verilen isim nedir? Veri bellei ile program belleinin ayr olduu ilemci mimarilerine verilen isim nedir? Veri bellei ile program belleinin ayr olmasnn avantaj ve dezavantajlar nelerdir? b1 EEDAT1 b0 EEDAT0

29

DENEY 2 : Giri/k ve 4x4 Tu Takm Uygulamas


Deneyden nce Yaplacaklar Giri uygulamalarnda dme/buton/anahtar kullanmnda debounce kavramn aklayn. Yazlmsal olarak debounce uygulamas iin bir yntem belirtin ve aklayn. 4x4 tu tarama mantn aratrn. (4x4 keypad) Deneyde kullanlacak SFR yazmalarn inceleyiniz. (Daha detayl bilgi iin 16F887 kataloguna baknz) Deney in nemli Yazmalar: PORTx : PORTx REGISTER (x : A, B, C ve D, E iin geerli) b7 Rx7 Bit<7:0> b6 b5 Rx6 Rx5 PORTx G/ ucu 0 = Port ucuna lojik 0 yaz 1 = Port ucuna lojik 1 yaz b4 Rx4 b3 Rx3 b2 Rx2 b1 Rx1 b0 Rx0

TRISx : PORTx TRISTATE CONTROL REGISTER (x : A, B, C ve D, E iin geerli) b7 TRISx7 Bit<7:0> b6 b5 b4 TRISx6 TRISx5 TRISx4 PORTx tristate kontrol bitleri 0 = Ucu k olarak ayarla 1 = Ucu giri olarak ayarla b3 TRISx3 b2 TRISx2 b1 TRISx1 b0 TRISx0

Deney Srasnda Yaplacaklar: 1) PIC16f887 mikro denetleyicisi ile PORTDyi kullanarak kayan k uygulamas gerekletirin. Bu amala PORTDyi k ynl ayarlayn. Grnrl arttrabilmek iin LEDler yakldktan sonra bo dng ile bekleme fonksiyonu kullann. (LED kullanm ile ilgili anahtar ve ata ayarlarn inceleyin) 2) PIC16F887 mikro denetleyicisinde PORTB<0> ve PORTB<1> ularn pushbutton ile kullanacak ekilde ayarlaynz, PORTD iin LED anahtarn ak konumuna getiriniz. PIC assembly ile PORTBnin dk anlaml 2 bitini giri, PORTDyi k olarak ayarlaynz. RB0 pushbutonuna basldnda PORTD deerini 1 arttran, RB1 pushbutonuna basldnda PORTD deerini 1 azaltan program PIC assembly komutlar ile yaznz. (Pushbutton kullanm ile ilgili anahtar ve ata ayarlarn inceleyin) 3) PIC16F887 mikro denetleyicisinde PORTC<0> ve PORTC<1> ularn pushbutton ile kullanacak ekilde ayarlaynz, PORTB iin LED anahtarn ak konumuna getiriniz. PIC assembly ile PORTCnin dk anlaml 2 bitini giri, PORTByi k olarak ayarlaynz. PORTBye k olarak 0x80 deerini gnderin. RC0 pushbutonuna basldnda PORTB deerinin 1/2sini, RC1 pushbutonuna basldnda PORTB deerinin 2 katn k olarak LEDlerde gsteren program PIC assembly komutlar ile yaznz. (Pushbutton kullanm ile ilgili anahtar ve ata ayarlarn inceleyin)

30 4) 4x4 tu tarama modln kullanarak baslan tu deerini PORTCye bal LEDlerde gsteren program PIC assembly komutlar ile gerekleyin. (4x4 tu tarama modl ematiini inceleyin) Deney Sonu Sorular Mikro denetleyicinin d dnya ile iletiimi neden portlar aracl ile yaplrken veri/adres yollar ile yaplmaz? 0-9 arasndaki rakamlar gsterebilmek iin ortak katotlu ve ortak anotlu 7 paral gstergeye hangi deerler gnderilmelidir, aadaki tabloyu tamamlayn.

Ortak Anotlu e d c b a

Ortak Katotlu e d c b a

0 1 0 0 0 0 1 1 0 2 3 4 5 6 7 1 1 1 1 0 0 0 8 9

31

DENEY 3 : PIC16F887 Modlleri ve Kesmeler


Deneyden nce Yaplacaklar: PIC16F887 mikrodenetleyicisi iin PORTB, Timer 1, ADC ve CCP2 modllerinin yapsn ve ilgili yazmalarn inceleyin. Bu modllerin kullanm alanlarn ve amalarn aratrn. Kesme kavramn aratrn. PIC16F887 iin farkl kesme kaynaklarn inceleyerek listeleyin. D kesme (INT RB0 ile ilgili), Timer 1 kesmesi, ADC kesmesi, CCP2 kesmesi ile ilgili yazma ve bitleri grevlerini aklayarak listeleyin. Deney 1.b kkndaki kodu tamamlayp derledikten sonra oluan .lst uzantl dosyay inceleyerek kesme alt programna gei mekanizmasn, hangi kesmenin olutuunun nasl belirlendiini ve kesme alt programndan dnn nasl gerekletiini pic assembly seviyesinde aklayn. Deney 3 CCS C derleyicisi ve C dili kullanlarak gerekletirilecektir. Aada bu derleyici iin eitli modllere ait ktphaneler verilmitir, inceleyin. CCS ADC Ktphanesi SET_ADC_CHANNEL( ) SETUP_ADC_PORTS( ) SETUP_ADC(mode ) mode- Analog to digital mode. The valid options vary depending on the device. See the devices .h file for all options. Some typical options include: ADC_OFF ADC_CLOCK_INTERNAL ADC_CLOCK_DIV_32

READ_ADC( ) ADC_DONE #device ADC=x CCS CCP Ktphanesi SET_PWM1_DUTY( ) SETUP_CCP1(mode) mode is a constant. Valid constants are in the devices .h file and are as follows: Disable the CCP: CCP_OFF Set CCP to PWM mode: CCP_PWM Enable Pulse Width Modulator SET_PWM2_DUTY( ) SETUP_CCP2( )

32 CCS Timer Ktphanesi SET_TIMER0( ) SETUP_TIMER_0( ) mode may be one or two of the constants defined in the devices .h file. RTCC_INTERNAL, RTCC_EXT_L_TO_H or RTCC_EXT_H_TO_L RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16, RTCC_DIV_32, RTCC_DIV_64, RTCC_DIV_128, RTCC_DIV_256 One constant may be used from each group or'ed together with the | operator SET_TIMER1( ) SETUP_TIMER_1(mode) mode values may be: T1_DISABLED, T1_INTERNAL, T1_EXTERNAL, T1_EXTERNAL_SYNC T1_CLK_OUT T1_DIV_BY_1, T1_DIV_BY_2, T1_DIV_BY_4, T1_DIV_BY_8 constants from different groups may be or'ed together with | SET_TIMER2( ) SETUP_TIMER_2(mode, period, postscale ) mode may be one of:

T2_DISABLED, T2_DIV_BY_1, T2_DIV_BY_4, T2_DIV_BY_16

period is a int 0-255 that determines when the clock value is reset, postscale is a number 1-16 that determines how many timer overflows before an interrupt: (1 means once, 2 means twice, and so on). CCS I/O Ktphanesi SET_TRIS_A( ) SET_TRIS_B( ) SET_TRIS_C( ) SET_TRIS_D( ) INPUT_A( ) INPUT_B( ) INPUT_C( ) INPUT_D( ) OUTPUT_A( ) OUTPUT_B( ) OUTPUT_C( ) OUTPUT_D( ) OUTPUT_TOGGLE( ) CCS Delay Ktphanesi DELAY_MS( ) DELAY_US( )

33 Deney Srasnda Yaplacaklar Deney srasnda kullanlacak mikro denetleyici ularnn gerekli ekilde ayarlandndan emin olun (analog giri veya dijital i/o). 1) PIC 16F887 iin 2 farkl fonksiyonun zaman paylaml olarak 1snde bir (1. snde 1. fonksiyon, 2. snde 2. fonksiyon, 3. snde tekrar 1. fonksiyon ...) arlmas istenmektedir. Bu ilemi a. Kesme kullanmadan delay fonksiyonlar ile b. Timer 1 modl, Timer 1 kesmesi ve gerekli kontrolleri kullanarak gerekletirin. Fonksiyon 1 PORTA deerini 1 arttrsn, fonksiyon 2 PORTB deerini 2 arttrsn. Timer 1 iin kontrol oluturulurken aadaki blok diyagramdan faydalanlabilir:
Tama FFFF 0000 geiinde Genel amal yazma

fosc
Xtal

1/4

Prescalar (1,2,4,8)

Timer1H

Timer1L

sre

2) Analog gerilim deerlerinin AN0 analog kanalndan okunarak B potundaki LEDlerde dijital evrim karlklarnn gsterilmesi istenmektedir. Bu ilemi ADC modl kullanmyla a. GO/ bitini dng ierisinde adc_done() fonksiyonu ile kontrol ederek b. ADC kesmesi kullanarak gerekletirin. ADC ayarlar iin aadaki admlar izlediinizden emin olun: AN0 ucunu analog dijital evrim iin kullanacak ekilde ayarlayn Analog kanal seimini 0 olarak yapn AN0 ucunu giri olarak ayarlayn A/D dnmn 8 bitlik znrlkle yapacak ayar yapn 3) PWM iareti servo motor srme, DC motor hz kontrol ve benzeri pekok kontrol uygulamasnda kullanlmaktadr. Sabit darbe genilik oranna sahip bir PWM iaretini a. Delay fonksiyonlar kullanarak b. CCP2 modln kullanarak gerekleyiniz. PWM etkisini DC motor modl hz deiimi ile inceleyin. CCP2 modl ayarlar iin aadaki admlar izlediinizden emin olun: CCP2CON yazmacna PWM iin uygun kontrol deerini yazn CCP2 modl PWM iin Timer2 kullandndan Timer2 periyodu (PR2) dolaysyla PWM periyodu iin uygun deerleri yazn CCP2 ucunu k olarak ayarlayn CCPR2L<7:0>:CCP2CON<5:4> ile 10 bitlik PWM duty deerini yazn 4) CCP2 modl ile donanmsal olarak retilen PWM iaretinin darbe genilik orannn AN0 analog kanalna bal potansiyometre ile ayarlanabilmesi iin gerekli program oluturun. Oluturacanz programda CCP2 modl ve ADC kesmesi kullanlmaldr. CCP2 ve ADC modllerinin birlikte kullanlmas ile elde edilen sonucu DC motor modl hz deiimi ile inceleyin.

34 Deney srasnda gerekli PWM periyot, duty ve znrlk hesaplar aada verilmitir:

[( (

)] ) [ (

( ( )]

) )

Darbe genilii en fazla PWM periyodu kadar olabilecei iin duty deeri olarak yazlabilecek anlaml en byk deer DarbeGenilii=PWMPeriyot alnarak hesaplanabilir. deeri mikro denetleyicinin alma periyodudur. Deneylerde 8 MHzlik alma frekans kullanlmaktadr.

Deney Sonu Sorular Donanmsal modllerin (CCP, Timer gibi) gerekli ayarlar yapldktan sonra almalar srasnda komut yrtlmesine etkileri nedir? Soruyu 5 saniyede bir RA0 pinine bal LEDi toogle eden bir program parasn Timer modl ile ve yazlmsal gecikme ile yaptnz durumda karlatrarak aklayn. Aada verilen analog iaret iin 3 bitlik znrlkte 1 saniye periyot ile rnekleyin. Sonucu aadaki grafikte izin.

35

DENEY 4 : Kesme Kullanarak Seri (RS232 ve I2C) Haberleme Uygulamas


Deneyden nce Yaplacaklar: RS232 ve I2C haberleme protokolleri iin anlaml elektriksel seviyeleri alc ve verici taraflar iin aratrn. (rnein RS 232deverici taraf lojik 0 elektriksel olarak -5:-15 aral kabul edilir.) RS232 ve I2C haberleme protokolleri iin gerekli minimum balant says ve u tanmlarn aratrn. Aada verilen RS232 haberleme protokol rnek veri erevesi iin format tanmlarn aratrn: baud hz, veri biti says, elik cinsi, durdurma biti says katr. D1 veri iin LSB mi yoksa MSB midir? 104s D1 Bota Start Data Parity Stop Bota

I2C haberleme protokol iin bala, dur, masterslave ynl haberleme, slavemaster ynl haberleme koullar aada verilmitir inceleyin:

RS232 ve I2C haberlemesi ile ilgili 16F887 SFR yazmalarn inceleyin. 8583 RTC entegresi katalog bilgilerini inceleyin.

36 Deney Srasnda Yaplacaklar: 1) Yazlmsal olarak (bitbanging) yntemiyle EasyPic6dan PCye bir byte karakter (A karakteri) gnderen program kodlayn. 2) RS232 arayz ile donanmsal seri haberleme kesmesi kullanarak aada verilen seri haberleme arayzn ve ilemleri gerekletirecek program oluturun. Seri veri gnderme ve seri veri alma kesmelerinin hangi durumlarda olutuunu inceleyin. CCS C derleyicisi iin seri haberleme kesmesi kullanm iin kullanlabilecek kod ablonu aada verilmitir.
#include "main.h" #INT_RDA void rda_isr(){ //RS232 seri veri alma kesmesi olutuunda bu fonksiyon arlr } #INT_TBE void tbe_isr(){ //RS232 seri veri gnderme kesmesi olutuunda bu fonksiyon arlr } void main(){ enable_interrupts(GLOBAL);//kesmeleri a enable_interrupts(INT_RDA);//RS232 seri veri alma kesmesini a enable_interrupts(INT_TBE);//RS232 seri veri gnderme kesmesini a }

Bilgisayar tarafndaki arayz:

Bilgisayar tarafndaki arayz Easypic6in seri olarak gnderdii veri ile oluturulmaktadr, deney kapsamnda bilgisayar tarafnda girilen komuta gre EasyPic6 tarafnda istenen ilemin gerekletirilmesi istenmektedir. 3) Easypic6 zerindeki denetleyici I2C master olacak ekilde programlanarak Real Time Clock uygulama kart zerinden okuma yaplmas ve elde edilen tarih ve saat deerlerinin karakter LCDde gsterilmesi istenmektedir.

37 a. 8583 RTC entegresi zerine gncel saat ve tarih deerini i2c masterdan slavee veri yazma mant ile oluturun. b. 8583 RTC entegresinden saat ve tarih okuyarak karakter lcdde bu deerleri gsterin. 4) I2C arayznden okunan saat ve tarih deerlerini RS232 arayznden PCye gnderen program oluturun. 5) RS232 arayz ile RTC ayarlama ve RTC okuma ilemlerini gerekletirin.

38

DENEY 5 : GLCD ve Dokunmatik Ekran Uygulamas


1) GLCD ktphanesini kullanarak EasyPic6 A/D giri modlndeki potansiyometreyi 1 saniye aralklarla okuyarak deerlerin GLCD zerinde izdirilmesi ilemlerini yerine getiren program oluturunuz. 2) 1-wire protokol ile DS1820 scaklk sensr deerlerini okuyarak 1 saniye aralklarla scaklk bilgisini GLCDde izdirilmesi ilemlerini yerine getiren program oluturun. 3) Dokunmatik ekran ktphanesi kullanarak 4 tulu bir arayz tasarlaynz. Her tu iin bir fonksiyon/grev tanmlayn.

39

Kaynaklar
16F887 katalog bilgisi : http://ww1.microchip.com/downloads/en/DeviceDoc/41291E.pdf EasyPic6 kullanma klavuzu: http://www.mikroe.com/eng/downloads/get/311/easypic6_manual_v100.pdf mikroProg kullanma klavuzu : http://www.mikroe.com/eng/downloads/get/1265/mikroprog_manual_v100.pd0f 8583 RTC katalog bilgisi : http://www.datasheetcatalog.org/datasheet/philips/PCF8583_5.pdf

40

Ek1 : PIC16F887 Komut Aklamalar

41

42

43

44

45

46

47

Ek2 : Proteus ile PIC Simlasyonu


Proteusta ISIS program devre simlasyonu iin, ARES program ise bask devre hazrlamak iin kullanlr. Proteus ISIS ile PIC simlasyonu yapabilmek iin aadaki admlar izlenmelidir. ISIS program altrldktan sonra, sras ile iaretlenen dmeler tklanarak aygt seim penceresi alr.

Aygt seim penceresinde keywords kutusuna dorudan kullanlacak aygt ad yazlarak veya category penceresinden balk seilerek istenen aygt aranr. Arama sonular results penceresinde listelenir. stenen Aygt seilerek OK dmesine baslarak aygt program aygt penceresine eklenir.

48 Program aygtlar penceresinden PIC16F887 aygt seilerek deney ortamna eklenir.

Deney ortamnda aygta ilikin ayarlamalar yapmak zere aygt zellikleri mensne aygt zerinde iken sa Mouse tuu ile alan menden girilir.

49 Aygt zelliklerinde Processor Clock Frequency 8MHz olarak ayarlanmaldr.

Program File olarak derlediiniz koda ilikin .cof uzantl dosyann yolunu gstermelisiniz. .cof uzantl dosyann bulunduu klasrde .c, .h vb. kaynak kodlarn olduundan emin olun.

50

Aygt zellikleri mensn OK ile getikten sonra debug ilemini pause dmesi dmesine baslmas ile kod penceresi ve deikenler penceresi alr.

ile balatlr. Pause

51 PIC16F887 zerinde iken sa Mouse tuu ile PIC CPU mensnden yazmalar, veri bellei, program bellei, EPROM veri bellei, stack, kaynak kod ve deikenler pencereleri alabilir.

52 Kaynak kod penceresinde yer alan run, step over, step into, step out, run to cursor ve toogle breakpoint dmeleri ile debug ilemi gerekletirilir. Kaynak kod zerinde breakpoint eklenebilir. Aada kaynak kodda iaretli satra kadar adm adm altrma sonucu veri belleinde deien ierik grlmektedir.

You might also like