PIC mikrodenetleyicilerde kullanılan Assembly (ASM) komutları, donanımı doğrudan kontrol etmemizi sağlar. Bu bölümde, temel komutların ötesine geçerek daha detaylı ve pratik kullanım senaryolarını inceleyeceğiz.
MOVLW 0x05
MOVWF SAYAC
DONGU:
DECFSZ SAYAC,1
GOTO DONGU
Bu kod, SAYAC değeri sıfırlanana kadar döngü oluşturur.
PIC Komut Seti Hakkında Kısa Bilgi
PIC mikrodenetleyiciler RISC mimarisi kullanır ve sınırlı sayıda komut ile yüksek verimlilik sağlar. Bu sayede öğrenmesi kolay ve hızlıdır.Gelişmiş PIC Komut Grupları
1. Veri İşleme Komutları
- INCF f,d → Register değerini 1 artırır
- DECF f,d → Register değerini 1 azaltır
- CLRF f → Register’ı sıfırlar
- SWAPF f,d → Register içindeki nibbleri yer değiştirir
2. Bit Seviyesi Komutlar
- BSF f,b → Belirtilen biti 1 yapar
- BCF f,b → Belirtilen biti 0 yapar
- BTFSC f,b → Bit 0 ise sonraki komutu atlar
- BTFSS f,b → Bit 1 ise sonraki komutu atlar
3. Karar ve Atlama Komutları
- DECFSZ f,d → 1 azaltır, sonuç 0 ise sonraki komutu atlar
- INCFSZ f,d → 1 artırır, sonuç 0 ise sonraki komutu atlar
- GOTO label → Belirtilen adrese gider
- CALL label → Alt programa gider
4. Mantıksal İşlemler
- ANDLW k → W ile sabiti AND yapar
- IORLW k → W ile sabiti OR yapar
- XORLW k → W ile sabiti XOR yapar
Örnek Kullanım
MOVLW 0x05
MOVWF SAYAC
DONGU:
DECFSZ SAYAC,1
GOTO DONGU
Bu kod, SAYAC değeri sıfırlanana kadar döngü oluşturur.
Önemli Register’lar
- W (Working Register) → Ana işlem register’ı
- STATUS → Sonuç bayraklarını tutar
- PORTA / PORTB → Giriş / çıkış pinleri
Dikkat Edilmesi Gerekenler
- Bank switching (RP0, RP1 bitleri) unutulmamalı
- Delay döngülerinde komut süreleri hesaplanmalı
- Stack taşması (CALL kullanımı) kontrol edilmeli
Sonuç
PIC Assembly komutlarını iyi öğrenmek, mikrodenetleyici programlamada büyük avantaj sağlar. Özellikle zamanlama hassasiyeti gereken projelerde ASM kullanımı çok önemlidir.
Son düzenleme: