5.Eğitim E205 PIC16F628 ve PIC16F877 Hakkında Genel Bilgi IF THEN ELSE ENDIF HIGH-LOW GOTO-END- PAUSE Komutları Tanıtımı ve Kullanımı PIC16F628: PIC16F628 18 pine sahiptir.bu pinlerin 16 sı giriş / çıkış olarak kullanılabilir.belleği FLASH EPROM dur.pic16f628 günümüzde sıkça kullanılan denetleyicilerdendir. PIC16F84 den sonra en sık tercih edilen kontrolör olmuştur. PIC16F84 e göre daha geniş yazılıp silinebilir belleğe sahiptir ve daha hızlı çalışmaktadır.bunların haricinde bir de dahili osilatöre sahiptir.normalde picin çalışması için osilatör devresi kurulması gerekir fakat yazılan programda bir komutla PIC16F628 içerisindeki dahili osilatör kullanılarak osilatör pinleri giriş çıkış olarak kullanılabilir ve osilatör devresi yapmaya gerek kalmaz.aşağıdaki tabloda PIC16F628 in hangi pininin hangi konfigürasyon özelliğine sahip olduğu belirtilmiştir.
Aşağıdaki tabloda özellikleri belirtilmiştir. PIC16F877: PIC16F877 40 pinli bir mikrodenetleyicidir.robotik uygulamalarda PIC16F628 den sonra en sık kullanılan denetleyici türüdür.belleği PIC16F628 de olduğu gibi FLASH EPROM dur. PIC16F628 e göre daha fazla konfigürasyon özelliğine sahiptir.aşağıdaki tabloda hangi pinin ne işe yaradığı belirtilmiştir. PİN ADI PİN NO: BUFFER TİPİ AÇIKLAMALAR OSC1/CLKIN 13 I /CMOS (3) Osilatör clock girişi (kristal veya harici kaynak) OSC2/CLKOUT 14 O 0 Osilatör kristal çıkış ucu MCLR/Vpp 1 I/P Resetleme girişi / Programlama anında programlama RA0/AN0 RA1/AN1 RA2/AN2/V REF RA3 RA4/T0CK1 RA5/SS/AN4 2 3 4 5 6 7 gerilimi girişi (Mikrodenetleyicinin resetlenmesi için bu pin lojik 0 yapılmalıdır.) PORTA iki yönlü giriş/çıkış portudur. Bu pin (istenirse) TMR0 için bir clock girişi olabilir. SSP Slave seçme pini veya analog giriş/çıkış olabilir. PORTB iki yönlü giriş/çıkış portudur.giriş konumunda RB0/INT RB1 33 34 / (1) iken dahili pull-up devresi aktifleşebilir. Dış kesme girişi olarak seçilebilir. RB2 35 RB3/PGM 36 Düşük akımla programlamada da kullanılabilir. RB4 37 Kesme girişi olarak seçilebilir. RB5 38 Kesme girişi olarak seçilebilir. RB6/PGC 39 / (2) Kesme girişi olarak seçilebilir.seri programlamada
RB7/PGD 40 / (2) clock pinidir. Kesme girişi olarak seçilebilir. Seri programlamada data (veri) pinidir. PORTC iki yönlü giriş/çıkış portudur. RC0T1OS0/T1CK1 RC1/T1OS1/CCP2 15 16 Timer1 osc. çıkışı veya saat girişi olarak kullanılabilir. Timer1 osc. giriş veya Capture2 giriş/compare2 çıkışı/pwm2 çıkışı olarak kullanılabilir. RC2/CCP1 17 Timer1 osc. giriş veya Capture1 giriş/compare1 çıkışı/pwm1 çıkışı olarak kullanılabilir. RC3/SCK/SCL 18 SPI ve I 2 modunda, seri saat giriş/çıkışında kullanılır. RC4/SD1/SDA 23 SPA modda SPI giriş verisi veya I 2 C modda için RC5/SDO 24 SPA modda SPI çıkış verisi için seçilebilir. RC6/TX/CK 25 USART asenkron gönderme ya da senkron saat için RC7/RX/DT 26 USART asenkron alma ya da senkron veri için PORTC iki yönlü giriş/çıkış portudur. RD0/PSP0 19 / (1) PSP 0. biti olarak kullanılabilir. RD1/PSP1 20 / (1) PSP 1. biti olarak kullanılabilir. RD2/PSP2 21 / (1) PSP 2. biti olarak kullanılabilir. RD3/PSP3 22 / (1) PSP 3. biti olarak kullanılabilir. RD4/PSP4 27 / (1) PSP 4. biti olarak kullanılabilir. RD5/PSP5 28 / (1) PSP 5. biti olarak kullanılabilir. RD6/PSP6 29 / (1) PSP 6. biti olarak kullanılabilir. RD7/PSP7 30 / (1) PSP 7. biti olarak kullanılabilir. PORTA iki yönlü giriş/çıkış portudur. RE0/RD/AN5 8 / (3) RE1/WR/AN6 9 / (3) RE2/CS/AN7 10 / (3) NC - - Bu pinler içerde kontrol edilmiyor, bağlı değil. V SS 8 P - Ground (toprak) uç V DD 19 P - Pozitif kaynak ucu I: Input (Giriş) O: Output (Çıkış) : Input/Output (Giriş/Çıkış) : Giriş -: Kullanılmıyor : Schimitt Trigger giriş olarak çalışır.
Aşağıdaki tabloda bellek yapısı ve konfigürasyon yapısı gösterilmiştir. INPUT OUTPUT KOMUTLARI : INPUT belirtilen pini giriş yapmak için kullanılır. OUTPUT belirtilen pini çıkış yapmak için kullanılır. INPUT PORTB.0 burada portb.0 giriş yapılmıştır. OUTPUT PORTB.1 burada portb.1 çıkış yapılmıştır. HIGH LOW KOMUTLARI : HIGH - Yüksek / Lojik 1 ( 5 volt ) LOW - Düşük / Lojik 0 ( 0 volt ) HIGH PORTB.0 - Burada portb.0 pini Lojik 1 yapıldı LOW PORTB.1 - Burada portb.1 pini Lojik 0 yapıldı.
IF THEN ELSE ENDIF KOMUTLARI : IF Eğer THEN İse IF PORTB.0=1 THEN HIGH PORTB.1 ELSE LOW PORTB.1 ENDIF Eğer Portb.0=1 ise Portb.1 i high yap. PORTB.0=1 değilse Portb.1=0 yap Döngüyü sonlandır. GOTO END PAUSE KOMUTLARI : GOTO Belirtilen etikede gönderir. END - Programı sonlandırır. PAUSE Mikro saniye cinsinden bekleme yaratır. BASLA : HIGH PORTB.1 HIGH PORTB.0 PAUSE 1000 LOW PORTB.0 LOW PORTB.1 GOTO BASLA END Etiket ismi PORTB.1 Lojik 1 yapıldı. PORTB.0 Lojik 1 yapıldı. 1000 mikrosaniye ( 1 sn ) bekle PORTB.0 Lojik 0 yapıldı. PORTB.1 Lojik 0 yapıldı. BASLA etiketine git. Programı sonlandır. Onur İlyas YAVUZ Uşak Üniversitesi Robot Kulübü Başkanı www.usakrobotkulubu.org onuryavuz@electrobotic.org