DERS 8 PIC 16F84 PROGRAMLAMA
İÇERİK Koşullu dallanma komutları PIC16F84 ile örnek program
KOMUTLAR En kolay komut: Bir saat darbesi süresince hiç bir işlem yapma NOP
KOMUTLAR Şu ana kadar PIC16F84 mikrokontrolörünün işlem kapasitesini oluşturan 35 adet komutun 29 tanesini inceledik. CLRWDT, SLEEP daha sonra incelenecek. Programcılıkta ihtiyaç duyulan hangi işlemler (yani hangi komutlar) henüz incelenmedi?
KOMUTLAR Aritmetik ve Atama işlem komutları Programlamada iki önemli kavramdan bir diğeri ise verilerin işlenmesini sağlayan komutlardır. Bunlar sınıflandırılacak olursa; Aritmetik ve Atama işlem komutları Yükleme İşlemi: Değişken (register) değerini belirleme (=) Aritmetik İşlem: Toplama, Çıkarma Mantıksal İşlem: AND, OR, XOR İçerik Değiştirme İşlemi: Değişken değerini değiştirme içerik temizle, arttır, azalt, eşlenik al Bit İşlemleri: Değişken bitini 0 veya 1 yap Kaydırma İşlemleri: Değişken bitlerini sağa veya sola kaydır Karar verme işlem komutları Koşullu Dallanma: Değişken sıfır–herhangi biti 0/1 ise dallan Diğer işlem komutları Program Akış Komutları: Dallanma Mikrodenetleyici Kontrol Komutları
KOMUTLAR (koşullu dallanma) File register’ın herhangi biti 0 veya 1 ise sıradaki komutu işletme (ATLA) ve diğerine geç. BTFSC sıradaki komut sonraki komut BTFSS sıradaki komut sonraki komut 1 1 E E bit=0 bit=1 H H sıradaki sıradaki sonraki sonraki
KOMUTLAR (koşullu dallanma) File register 1 arttırılıp/azaltıldığında değeri 0 olursa sıradaki komutu işletme (ATLA) ve diğerine geç. arttır azalt INCFSZ sıradaki komut sonraki komut DECFSZ sıradaki komut sonraki komut -/+ -/+ E E arttır, sıfır? azalt, sıfır? H H sıradaki sıradaki sonraki sonraki
KOMUTLAR (koşullu dallanma) File register’ın herhangi biti 0 veya 1 ise yada file register 1 arttırılıp/azaltıldığında değeri 0 olursa sıradaki komutu işletme (ATLA) ve diğerine geç. BTFSC f , b : f ’in b. bit 0 ise bir sonraki komuta geç BTFSS f , b : f ’in b. bit 1 ise bir sonraki komuta geç DECFSZ f , d : i) d=0 ise (f) – 1 W d=1 ise (f) – 1 f ii) azaltma sonuç 0 ise bir sonraki komuta git INCFSZ f , d : i) d=0 ise (f) + 1 W d=1 ise (f) + 1 f ii) arttırma sonuç 0 ise bir sonraki komuta git
PROGRAM 1 B portunun 2. Bitine bağlı bir LED A portunun 0. bitine bağlı bir butona basılınca yakan bir PIC16F84 assembler programı hazırlayalım:
PROGRAM 1 CLRF PORTB BSF STATUS, 5 CLRF TRISB MOVLW b’11111111’ MOVWF TRISA BCF STATUS, 5 test_portA BTFSC PORTA, 0 GOTO test_portA BSF PORTB, 2 dongu GOTO dongu END
MİKROİŞLEMCİ PROGRAMLAMA DERS 8 MİKROİŞLEMCİ PROGRAMLAMA - SON - Kaynak: Mikrodenetleyiciler ve PIC Prog., Orhan ALTINBAŞAK, ISBN 975-883-409-6