PIC Komutları 2
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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"k" literalini oku |
İşlemi yap |
PC'ye yaz |
| İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Sonucu hedefe yaz |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Sonucu hedefe yaz |
Q(2) çevrimi (Q Cycle Activity) : (Eğer sonuç "0" ise)
| Q1 |
Q2 |
Q3 |
Q4 |
| İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
İşlem Yapma |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"k" literalini oku |
İşlemi yap |
Sonucu yaz |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Sonucu yaz |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"f" yazmacını oku |
İşlemi yap |
Hedefe Yaz |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"k" literalini oku |
İşlemi yap |
"W"yazmacına Yaz |
Ö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) :
| Q1 |
Q2 |
Q3 |
Q4 |
| Kod çöz |
"W" yazmacını oku |
İşlemi yap |
Hedefe Yaz |
Örnek : MOVWF
OPTION_REG İşlemden
Önce :
OPTION = 0xFF W = 0x4F
İşlemden Sonra :
OPTION = 0x4F W = 0x4F
Hazırlayan İsmail
Karakaya |