15 Ekim 2010 Cuma

PIC Assembly komut seti 1

PIC Komutları

        PIC meraklılarını uzunca bir süre beklettim. Yoğun bir çalışma temposunun ardından (henüz bitmemiş olsa da) bir şeyler hazırlamak için vakit bulabildim.
        Artık pic programlamaya hazırlanacağız. Pic programlamak için assembly, basic, C dilleri geliştirilmiştir. Biz ücretsiz olması nedeniyle pic assembly dili üzerinde duracağız ve MPLab yazılım geliştirme ortamını tanıyacağız. Daha önce de belirttiğimiz gibi PIC ailesinden PIC16F84 mikro denetleyicisinin 35 adet assembly komutu vardır. Şimdi bu komutlara, biraz detaylı olarak göz atalım.


ADDLW Literal ile W'yu topla
Yazılış : ADDLW k
İşleçler: 0 £ k £ 255
İşlem: (W) + k → (W)
Etkilenen Yazmaçlar : C, DC, Z
Kodlama : 11 111x kkkk kkkk
Tanım : W yazmacının içeriği sekiz bitlik k literali ile toplanır, sonuc W yazmacına yerleştirilir.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"k" literalini okuİşlemi yapW'ye yaz

Örnek :     ADDLW 0x15
                İşlemden önce W = 0x10
                İşlemden sonra W = 0x25


ADDWF W ve f'i Topla
Yazılış : ADDWF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (W) + (f) → (destination)
Etkilenen Yazmaçlar : C, DC, Z
Kodlama : 00 0111 dfff ffff
Tanım : W yazmacının içeriğiyle "f" yazmacının içeriğini topla. 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) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuİşlemi yapSanucu hedefe yaz

Örnek :     ADDWF FSR, 0
                İşlemden önce W = 0x17 FSR = 0xC2
                İşlemden sonra W =0xD9 FSR = 0xC2


ANDLW Literal ile W'yi mantıksal VE
Yazılış : ANDLW k
İşleçler: 0 £ k £ 255
İşlem: (W) .AND. (k) → (W)
Etkilenen Yazmaçlar : Z
Kodlama : 11 1001 kkkk kkkk
Tanım : W yazmacı ile sekiz bitlik "k" literaline VE işlemi uygulanır. Sonuç W'ye yazılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"k" literalini okuİşlemi yapW'ye yaz

Örnek :     ANDLW 0x5F
                İşlemden önce W =0xA3
                İşlemden sonra W = 0x03


ANDWF W ile "f"'e mantıksal VE işlemi uygula
Yazılış : ANDWF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (W) .AND. (f) → (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 0101 dfff ffff
Tanım : W yazmacı ile "f" yazmacına VE 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) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuİşlemi yapSonucu yaz

Örnek :     ANDWF FSR, 1
                İşlemden önce W = 0x17, FSR = 0xC2
                İşlemden sonra W = 0x17, FSR = 0x02


BCF f'in bir bitini sil (sıfırla)
Yazılış : BCF f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: 0 → (f[b])
Etkilenen Yazmaçlar : yok
Kodlama : 01 00bb bfff ffff
Tanım : "f" yazmacının "b" biti sıfırlanır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuİşlemi yap"f" yazmacına yaz

Örnek :     BCF FLAG_REG, 7
                İşlemden önce FLAG_REG = 0xC7
                İşlemden sonra FLAG_REG = 0x47


BSF f'in bir bitini kur (1 yap)
Yazılış : BSF f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: 1 -rarr; (f[b])
Etkilenen Yazmaçlar : Yok
Kodlama : 01 01bb bfff ffff
Tanım : "f" yazmacının "b" biti 1 yapılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuİşlemi yap"f" yazmacına yaz

Örnek :     BSF FLAG_REG, 7
                İşlemden önce FLAG_REG = 0x0A
                İşlemden sonra FLAG_REG = 0x8A


BTFSC "f" yazmacının "b" bitini kontrol et, 0 ise atla
Yazılış : BTFSC f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: eğer (f[b]) = 0 ise bir sonraki komutu atla
Etkilenen Yazmaçlar : Yok
Kodlama : 01 10bb bfff ffff
Tanım : Eğer "f" yazmacının "b" biti 1 ise sıradaki komut işletilir, 0 ise bir sonraki komut atlanır ve yerine NOP işletilir ve 2 çevrimli komut olur.
Word: 1
Saat Çevrimi (Cycle) : 1 (2)
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuİşlemi yapİşlem yapılmaz

Eğer atlama yapılmışsa 2. çevrimde ;
Q1Q2Q3Q4
İşlem yapılmazİşlem yapılmazİşlem yapılmazİşlem yapılmaz




BTFSS "f" yazmacının "b" bitini kontrol et, 1 ise atla
Yazılış : BTFSS f,b
İşleçler: 0 £ f £ 127, 0 £ b £ 7
İşlem: eğer (f[b]) = 1 ise bir sonraki komutu atla
Etkilenen Yazmaçlar : Yok
Kodlama : 01 11bb bfff ffff
Tanım : Eğer "f" yazmacının "b" biti 0 ise sıradaki komut işletilir, 1 ise bir sonraki komut atlanır ve yerine NOP işletilir ve 2 çevrimli komut olur.
Word: 1
Saat Çevrimi (Cycle) : 1 (2)
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuİşlemi yapİşlem yapılmaz

Eğer atlama yapılmışsa 2. çevrimde ;
Q1Q2Q3Q4
İşlem yapılmazİşlem yapılmazİşlem yapılmazİşlem yapılmaz




CALL Altrutin çağır
Yazılış : CALL k
İşleçler: 0 £ k £ 2047
İşlem: (PC)+ 1 → TOS, k → PC<10:0>, (PCLATH<4:3>) ® PC<12:11>
Etkilenen Yazmaçlar : Yok
Kodlama : 10 0kkk kkkk kkkk
Tanım : Bir altrutin çağırır. Önce dönüş adresi (PC+1) yığın (stack) hafızaya kaydedilir. 11 bitlik adres PC<10:0>'a yüklenir. PC'nin üst bitleri PCLATCH'den yüklenir. CALL 2 çevrimlik bir komuttur.
Word: 1
Saat Çevrimi (Cycle) : 2
Q çevrimi (Q Cycle Activity) :
1. çevrim;
Q1Q2Q3Q4
Kod çöz"k" literalini oku
PC'yi yığına kaydet
Veriyi işlePC'ye yaz

2. çevrim;
Q1Q2Q3Q4
İşlem yapılmazİşlem yapılmazİşlem yapılmazİşlem yapılmaz




CLRF f'in içeriğini temizle (0 yap)
Yazılış : CLRF f
İşleçler: 0 £ f £ 127
İşlem: 00h → (f), 1 → Z
Etkilenen Yazmaçlar : Z
Kodlama : 00 0001 1fff ffff
Tanım : "f" yazmacının içeriği temizlenir(0) ve "Z" biti kurulur(1).
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuVeriyi işle"f" yazmacına yaz

Örnek :     CLRWDT
                İşlemden önce WDT counter = ?
                İşlemden sonra WDT counter = 0x00,
                                        WDT prescaler= 0, TO =1, PD =1


COMF "f" in tümleyenini al
Yazılış : COMF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) → (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 1001 dfff ffff
Tanım : "f" yazmacının içeriğinin tümleyeni alınır. Eğer d 0 ise, sonuc "w", 1 ise "f" yazmacına yazılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuVeriyi işleHedefe yaz

Örnek :     COMF REG1,0
                İşlemden önce REG1 = 0x13
                İşlemden sonra REG1 = 0x13


DECF "f" yazmacının içeriğini 1 azalt
Yazılış : DECF f,d
İşleçler: 0 £ f £ 127, d Î [0,1]
İşlem: (f) - 1 → (destination)
Etkilenen Yazmaçlar : Z
Kodlama : 00 0011 dfff ffff
Tanım : "f" yazmacının içeriğini bir(1) azalt. Eğer d 0 ise, sonuc "w", 1 ise "f" yazmacına yazılır.
Word: 1
Saat Çevrimi (Cycle) : 1
Q çevrimi (Q Cycle Activity) :
Q1Q2Q3Q4
Kod çöz"f" yazmacını okuVeriyi işleHedefe yaz

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


Hazırlayan İsmail Karakaya

Hiç yorum yok:

Yorum Gönder

İzleyiciler

LED DİRENÇ HESAPLAMA

All LEDs require current limiting, without a current limiting mechanism the LED will usually burn out in under a second. Adding a simple resistor is the easiest way to limit the current. Use the calculator below to find out the value of resistor you require.

For example if you are wanting to power one of our_blank">red LEDs in an automotive application you would see that the typical forward voltage is 2.0 Volts and the maximum continuous forward current is 30mA. Therefore you would enter 14.5, 2.0 and 30 into the Single LED calculation box. After calculating you get 470ohm 1 watt as the result. Here is a that allows you to enter a resistor value and generate the corresponding color code.

Note: For automotive applications use the actual system voltage, not 12 Volts. Most 12 Volt system actually operate at around 14.5 Volts.

Supply Voltage
VOLTS
Voltage Drop Across LED
VOLTS
Desired LED Current
MILLIAMPS



Calculated Limiting Resistor
OHMS
Nearest higher rated 10% resistor

Calculated Resistor Wattage
WATTS
Safe pick is a resistor with
power rating of (common values are .25W, .5W, and 1W)
WATTS

LEDs in series

Several leds in series with one resistor
Supply Voltage
VOLTS
Voltage Drop Across LED
VOLTS
Desired LED Current
MILLIAMPS
How many LEDs connected




Calculated Limiting Resistor
OHMS
Nearest higher rated 10% resistor

Calculated Resistor Wattage
WATTS
Safe pick is a resistor with
power rating of (common values are .25W, .5W, and 1W)
WATTS
LM317 UYGULAMA DEVRELERİ HESAPLAMASI

 




Çıkış Voltajı
R1 resistor

R2 resistor

R1 resistor
R2 resistor

Çıkış Voltajı


Lm317 uygulama devreleri ve detayli bilgiye Buradan ulasabilirsiniz

LM555 - ASTABLE OSCILLATOR CALCULATOR

LM555 - ASTABLE OSCILLATOR CALCULATOR
Value Of R1 Ohms Value Of R2 Ohms
Value Of C1 Microfarads
Output Time HIGH SECONDS Output Time LOW SECONDS Output Period HIGH + LOW SECONDS Output Frequency HERTZ Output Duty Cycle PERCENT
Resistor values are in Ohms (1K = 1000) - Capacitor values are in Microfarads (1uF = 1)

NOTE: The leakage currents of electrolytic capacitors will affect the actual output results of the timers. To compensate for leakage it is often better to use a higher value capacitor and lower value resistances in the timer circuits.

LM555 Astable Oscillator Circuit Diagram


LM555 - ASTABLE CAPACITOR CALCULATOR

The next calculator can find the capacitance needed for a particular output frequency if the values of R1 and R2 are known.

Value Of R1 Ohms Value Of R2 Ohms
Frequency Desired Hertz
Capacitance uF
s

VOLT AMPER OHM ve WATT HESAPLAMA

Current:
kA (kiloamps) A (amps) mA (milliamps) µA (microamps)
Voltage:
kV (kilovolts) V (volts) mV (millivolts) µV (microvolts)