![]() |
| | Konu Araçları |
| | #1 |
| | DERS - 9 Pic Programlama Ders - 9 Daha önce birkaç komutun kullanimini ögrenmistik Simdi tüm komutlari sira ile ögrenmeye çalisalim Komutlari daha önce çesitli siniflamalara tabi tutmustuk, komutlari bu siniflamalar dogrultusunda teorik olarak ögrenmektense, programlar yazarak pratik ögrenmeyi tercih ettik CLRF : f ile yani bir file register ile kullanilan bu komut register içerigini sifirlar CLRF PORTB ;Port b içerigini sifirlar ve b çikislari low olur CLRF TRISA ;Tris a içerigini sifirlar ve portA kapilari çikis olur MOVF : f ile kullanilan bu komut file register içerigini write veya file registere yükler MOVF SAYAC , W ; Sayac içerigini write registere yükler W=0 F = 1 olarak da kullanilabilir F ve bit ile kullanilan 4 adet komut vardir bunlar : BCF : ‘ bit clear file ‘ file register ilgili bitini 0 ( low ) yapar BSF : ‘ bit set file ‘ file register ilgili bitini 1 (high) BTFSC : ‘bit test file skip if clear’ bu komut file register ilgili bitini test eder ve sayet 0 ise bir satir atlayarak sonraki satir komutuna gider BTFSS : ‘ bit test file skip if set’ bu komut file register ilgili bitini test eder ve sayet 1 ise bir satir atlayarak sonraki satir komutuna gider BCF STATUS, 5 ; Bank 0 a geç BSF STATUS, 5 ; Bank 1 e geç Burada 5 yerine RP0 da kullanilabilir Keza 6 yerine RP1 kullanilabilir; çünkü 5 ve 6 Bitlerin adi RP0 ve RP1 dir bunlar inc dosyasinda tanimlanmistir BCF STATUS,RP0 ; Bank 0 a geç BSF STATUS,RP0 ; Bank 1 e geç BTFSC PORTA,2 ; Porta nin 2 biti ni kontrol ederek bak,0 ise bir satir atla BTFSS STATUS,Z ;Status registerin 2 Bitini kontrol ( Z ) et sayet 1 ise bir satir atla Buraya kadar gördüklerimizi bir program yazarak deneyelim,deneme devresinde kullanacasimiz pic in RA2 –1 nolu bacak- kapisini 10 K direnç ile + 5 V a baglayip,bir butonla topraklayalim RB4 – 10 nolu bacak- 1K direnç ile led baglayalim ;Deneme program ;TA2FR ;Bu program ile 16F84 1 bacakta bagli olan butona basinca 10 bacakta ;bagli olan led yanar LIST P=16F84 INCLUDE "16F84 INC" __CONFIG _CP_OFF &_WDT_OFF &_XT_OSC &_PWRTE_OFF CLRF PORTB ;Port b çikislari low (sönük) SF STATUS,5 ;Bank 1'e geç CLRF TRISB ;Port B yi çikis pozisyonuna getir MOVLW H'FF' ;Write registere FF yükle MOVWF TRISA ;Port a kapilarini giris yap BCF STATUS,RP0 ;Bank 0 'a gel GERI BTFSC PORTA,2 ;Porta nin 2 bitini test et 0 ise atla GOTO GERI ;0 degil 1 ise geri etiketine dön BSF PORTB,4 ;Port b nin 4 bitini 1 yap(high) END F, D ile kullan 4 adet komutu görelim : INCF : ‘Increment File’ Bir file register ‘ e atanmis bir sayiyi bir arttirarak ,file veya write registere yazar MOVLW D’0’ MOVWF SAYAC INCF SAYAC,F INCFSZ : ‘Increment file skip if zero’ file registerdeki sayiya bir ilave edip sonuc 0 ise bir satir atlar ve alt komuta geçer INCFSZ SAYAC,F GOTO TEKRAR BSF PORTA,0 Burada sayaç 0 dan basliyorsa 255 den sonra 0 a gelir ve bir satir atlar ilk komut gerçeklesir DECF : ‘ Decrement File’ Bir file registere atanmis bir sayiyi bir azaltarak,file veya write registere yazar MOVLW D’255’ MOVWF SAYAC DECF SAYAC,F DECFSZ : ‘Decrement file skip if zero’ file registerdeki sayidan bir çikarir ve sonuç 0 ise bir satir atlar DECFSZ SAYAC,F GOTO TEKRAR BSF PORTA,1 Bu komutlarin oldugu bir program yazalim ![]()
|
| |
| Sponsored Links |
| İstediğini Bulamadıysanız Üye Olmadan
BURAYA Tıklayarak Sorunuzu Düzgün Bir Başlık ile Yazabilirsiniz. |
![]() |
| |