PIC Komutları 2

guclusat

Tanınmış Üye
Süper Moderatör
GOTO Koşulsuz Dallanma
Yazılış : GOTO k
İşleçler: 0 £ k £ 2047
İşlem: k ® PC<10:0> PCLATH<4:3> ® PC<12:11> d Î [0,1]
Etkilenen Yazmaçlar : YOK
Kodlama : 10 1kkk kkkk kkkk
Tanım : GOTO koşulsuz dallanma komutudur. İlk 11 bit PC<10:0>' ye yüklenir. Yüksek bitler PCLATH<4:3>' yüklenir. GOTO iki çevrimlik komuttur.
Word: 1
Saat Çevrimi (Cycle) : 2
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"k" literalini oku[/TD]
[TD]İşlemi yap[/TD]
[TD]PC'ye yaz[/TD]
[/TR]
[TR]
[TD]İşlem Yapma[/TD]
[TD]İşlem Yapma[/TD]
[TD]İşlem Yapma[/TD]
[TD]İşlem Yapma[/TD]
[/TR]
[/TABLE]


Örnek : GOTO adres
İşlemden önce PC =
İşlemden sonra PC = adres




INCF f'yi bir artır
Yazılış : INCF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) + 1 ® (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 1010 dfff ffff
Tanım : "f" yazmacının içeriğini 1 artır. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"f" yazmacını oku[/TD]
[TD]İşlemi yap[/TD]
[TD]Sonucu hedefe yaz[/TD]
[/TR]
[/TABLE]

Örnek : INCF CNT, 1
İşlemden önce CNT = 0xFF, Z = 0
İşlemden sonra CNT = 0x00, Z = 1




INCFSZ f'yi bir artır, sonuç 0 ise atla.
Yazılış : INCFSZ f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) + 1 ® (destination)
Etkilenen Yazmaçlar : Yok
Kodlama : 00 1111 dfff ffff
Tanım : "f" yazmacının içeriğini eğer sonuç 0 değilse 1 artır, yoksa komutu atla. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1 (2 Eğer atlama yapılırsa)
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"f" yazmacını oku[/TD]
[TD]İşlemi yap[/TD]
[TD]Sonucu hedefe yaz[/TD]
[/TR]
[/TABLE]

Q(2) çevrimi (Q Cycle Activity) : (Eğer sonuç "0" ise)

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]İşlem Yapma[/TD]
[TD]İşlem Yapma[/TD]
[TD]İşlem Yapma[/TD]
[TD]İşlem Yapma[/TD]
[/TR]
[/TABLE]

Örnek : INCF CNT, 1
İşlemden önce CNT = 0xFF, Z = 0
İşlemden sonra CNT = 0x00, Z = 1




IORLW W ile "k"' ile mantıksal VEYA işlemi uygula
Yazılış : IORLW k
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (W) .OR. (f) ® (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 0100 dfff ffff
Tanım : W yazmacı ile "f" yazmacına VEYA işlemi uygula. Sonucu W 'ye yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"k" literalini oku[/TD]
[TD]İşlemi yap[/TD]
[TD]Sonucu yaz[/TD]
[/TR]
[/TABLE]

Örnek : IORLW 0x35
İşlemden önce W = 0x9A, Z = 0
İşlemden sonra W = 0xBF, Z = 1




IORWF W ile "f"' ile mantıksal VEYA işlemi uygula
Yazılış : IORWF f,d
İşleçler: 0 £ k £ 255
İşlem: (W) .OR. k ® (W)
Etkilenen Yazmaçlar : Z
Kodlama : 11 1000 kkkk kkkk
Tanım : W yazmacı ile "k" literaline VEYA işlemi uygula. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına yaz.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"f" yazmacını oku[/TD]
[TD]İşlemi yap[/TD]
[TD]Sonucu yaz[/TD]
[/TR]
[/TABLE]

Örnek : IORWF 0x35,0
İşlemden önce W = 0x9A, Z = 0
İşlemden sonra W = 0xBF, Z = 1




MOVF "f" yazmacını içeriğini taşı
Yazılış : MOVF f,d
İşleçler: 0 £ f £ 127, d Î [0,1] < BR > İşlem: (f) ® (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 1000 dfff ffff
Tanım : "f" yazmacının içeriğini hedefe taşı.Hedef "d"'ye bağlıdır. Eğer "d" 0 ise sonucu W 'ye, 1 ise "f" yazmacına taşır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"f" yazmacını oku[/TD]
[TD]İşlemi yap[/TD]
[TD]Hedefe Yaz[/TD]
[/TR]
[/TABLE]

Örnek : MOVF FSR, 0
İşlemden sonra W = FSR'deki değer, Z = 1




MOVLW "k" literalini W'ya taşı
Yazılış : MOVLW k
İşleçler: 0 £ k £ 255
İşlem: k ® W
Etkilenen Yazmaçlar : Yok
Kodlama : 11 00xx kkkk kkkk
Tanım : Sekiz bitlik "k" literali "W" yazmacına yüklenir.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"k" literalini oku[/TD]
[TD]İşlemi yap[/TD]
[TD]"W"yazmacına Yaz[/TD]
[/TR]
[/TABLE]

Örnek : MOVLW 0x5A
İşlemden Sonra W = 0x5A




MOVWF W yazmacının içeriğini "f"e taşı
Yazılış : MOVWF f
İşleçler: 0 £ f £ 127 < BR > İşlem: (W) ® (f)
Etkilenen Yazmaçlar : Yok
Kodlama : 00 0000 1fff ffff
Tanım : "W" yazmacının içeriğini "W" yazmacına taşı.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :

[TABLE="width: 426, align: center"]
[TR]
[TD]Q1[/TD]
[TD]Q2[/TD]
[TD]Q3[/TD]
[TD]Q4[/TD]
[/TR]
[TR]
[TD]Kod çöz[/TD]
[TD]"W" yazmacını oku[/TD]
[TD]İşlemi yap[/TD]
[TD]Hedefe Yaz[/TD]
[/TR]
[/TABLE]

Örnek : MOVWF OPTION_REG
İşlemden Önce :
OPTION = 0xFF W = 0x4F
İşlemden Sonra :
OPTION = 0x4F W = 0x4F
 
Geri
Yukarı