1- MOVLW Komutu MOVLW k: k sabit değerini W kaydedicisine yükler. Örnek: MOVLW h'03' ; heksadesimal '03' sayısını W kaydedicisine yükler. MOVLW b'00110011' ; binary '00110011' sayısını W kaydedicisine yükler. MOVLW d'255' ; desimal '255' sayısını W kaydedicisine yükler. 2- MOVF Komutu MOVF f, d: f ile belirtilen kaydedicinin içeriğini W kaydedicisine veya f kaydedicisine yükler. Örnek: MOVF PORTA, W ; PORTA kaydedicisinin içeriğini W kaydedicisine yükler. MOVF PORTA, W ;'0' yerine 'W' kullanılması, aynı işlevi yerine getirir. MOVF SAYAC, F ; SAYAC kaydedicisinin içeriğini SAYAC ;kaydedicisine yükler. MOVF SAYAC, W ; W ← SAYAC sayacı W'ya yükler 3- MOVWF Komutu MOVWF f: W kaydedicisinin içeriğini f kaydedicisine yükler. Örnek: MOVLW h'03' ; heksadesimal '03' sayısını W kaydedicisine yükler. MOVWF PORTB ; W kaydedicisindeki '03' bilgisini PORTB ;kaydedicisine yükler. 4- CLRF Komutu CLRF f: f dosya kaydedicisi ile birlikte kullanılan bu komut, ilgili kaydedicinin içeriğindeki tüm bitleri '0' değerine kurar. Örnek: CLRF PORTB ;PORTB'nin içeriğini sıfırlar ve B portunun tüm çıkışları ;'0' olur. CLRF TRISA ;TRISA'nın içeriğini sıfırlar ve PORTA'nın tüm pinleri ;çıkış olarak düzenlenmiş olur. 5- CLRW Komutu W kaydedicisinin içeriğini temizler . 6- COMF Komutu COMF f, d: f kaydedicisi içindeki bitleri ters çevirir. 0'lar 1, 1'ler ise 0 olur. Sonuç W kaydedicisine veya f kaydedicisine yüklenir. Örnek: MOVLW h'0F' ; '0F' sayısını W kaydedicisine yaz. MOVWF SAY ; W kaydedicisindeki '0F' sayısını SAY kaydedicisine yaz. COMF SAY, W ; h'0F' sayısının (binary '00001111') tersini al ve ;W kaydedicisine yaz. W kaydedicisine SAY ;kaydedicisindeki sayının terslenmiş hali ;aktarılmaktadır ve bu sayı da '11110000'dır. COMF SAY, F ; h'0F' sayısının tersini al yine SAY kaydedicisine yaz. ;Bu durumda sonuç SAY kaydedicisine yazılmıştır. 7- DECF Komutu DECF f, d: f kaydedicisindeki değeri '1' eksiltilir. Eğer sayı h'00' ise '1' eksiltildiğinde h'FF' olur. İşlemin sonucu, d=0 ise W kaydedicisine, d=1 ise f kaydedicisine yazılır. Örnek: MOVLW h'FF' ; h'FF' sayısını W kaydedicisine yükler. MOVWF PORTB ; W kaydedicisindeki h'FF' sayısını PORTB'ye yükler. DEVAM ;GOTO komutu ile program akışının yönleneceği etiket. DECF PORTB, F ; PORTB'deki sayıyı '1' azalt. GOTO DEVAM ; DEVAM etiketine git. Bu örnekte PIC'in enerjisi kesilinceye kadar PORTB'deki sayı sürekli olarak '1' azalmaktadır. Sayı '00' olduğunda yeniden 'FF' ile devam etmektedir. 8- INCF Komutu INCF f, d: f kaydedicisindeki değeri '1' artırır. Eğer sayı h'FF' ise '1' artırıldığında h'00' olur. İşlemin sonucu, d - w ise W kaydedicisine, d - F ise file kaydedicisine yazılır. Örnek: MOVLW h'00' ; h'00' sayısını W kaydedicisine yükle. MOVWF SAYAC ; W kaydedicisindeki h'00' sayısını SAYAC'a yükle. DEVAM ;GOTO komutu ile program akışının yönleneceği etiket. INCF SAYAC, F ; SAYAC'daki sayıyı '1' artır. BTFSS SAYAC,7 ; SAYAC kaydedicisinin 7. biti 1 ise atla. GOTO DEVAM ; DEVAM etiketine git. Bu örnekte SAYAC kaydedicisine '00' değeri yüklenmektedir. SAYAC kaydedicisindeki sayı '1' artırılmakta, 7. bit 0 olduğu sürece artırma işlemine devam edilmektedir. 7. bit '1' olduğunda (desimal 128) program bu döngüden çıkıp akışına devam etmektedir. 9- BCF Komutu BCF f, d: f kaydedicisinin d. bitini '0' yapar. Örnek: MOVLW b'11111111' ; W kaydedicisine b'11111111' sayısını yükler. MOVWF PORTB ; W kaydedicisindeki sayı PORTB'ye aktarılır. BCF PORTB,0 ; PORTB'nin 0. biti '0' olur. BCF PORTB,7 ; PORTB'nin 7. biti '0' olur. BCF STATUS,5 ; STATUS'ün 5. biti '0' olur (BANK0'a geç). Bu örnekte PORTB'nin son durumu '01111110' olur. 10- BSF Komutu BSF f, d: f kaydedicisinin d. bitini '1' yapar. Örnek: MOVLW b'00000000' ; W kaydedicisine b'00000000' sayısını yükler. MOVWF PORTB ; W kaydedicisindeki sayı PORTB'ye aktarılır. BSF PORTB,3 ; PORTB'nin 3. biti '1' olur. BSF PORTB,4 ; PORTB'nin 4. biti '1' olur. BSF STATUS,5 ; STATUS'ün 5. biti '1' olur (BANK1'e geç). Bu örnekte PORTB'nin son durumu '00011000' olur. 11- RLF Komutu RLF f, d: f kaydedicisi içindeki sayıyı bir pozisyon sola kaydırır. Kaydediciden taşarak Taşma bayrağına yazılan bit LSB'ye (0. bit) verilir. d=0 ise sonuç W kaydedicisine, d=1 ise sonuç f kaydedicisine yazılır. Örnek: MOVLW b'01100101' ; W kaydedicisine b'01100101' sayısını yükler. MOVWF PORTB ; W kaydedicisindeki sayı PORTB'ye aktarılır. RLF PORTB,1 ; PORTB'nin bitleri birer sola kaydırılır. ;PORTB'deki son değer '11001010' olur. RLF PORTB,1 ; PORTB'nin bitleri birer sola kaydırılır. ;PORTB'deki son değer '10010101' olur. Sola kaydırma işleminde 7. bit Taşma biti olarak Durum Kaydedicisindeki yeri olan 0. bite yazılmaktadır. Taşma biti Durum Kaydedicisinden alınarak ilgili kaydedicinin 0. biti olarak yazılır. 12- RRF Komutu RRF f, d: f kaydedicisi içindeki sayıyı bir pozisyon sağa kaydırır. Kaydediciden taşarak Taşma bayrağına yazılan bit MSB'ye (7. bit) verilir. d=0 ise sonuç W kaydedicisine, d=1 ise sonuç f kaydedicisine yazılır. Örnek: MOVLW b'00100101' ; W kaydedicisine b'00100101' sayısını yükler. MOVWF PORTB ; W kaydedicisindeki sayı PORTB'ye aktarılır. RRF PORTB,1 ; PORTB'nin bitleri birer sağa kaydırılır. ;PORTB'deki son değer '10010010' olur. RRF PORTB,1 ; PORTB'nin bitleri birer sağa kaydırılır. ;PORTB'deki son değer '01001001' olur. Sağa kaydırma işleminde 0. bit Taşma biti olarak Durum Kaydedicisindeki 0. bite yazılmaktadır. Taşma biti Durum Kaydedicisinden alınarak ilgili kaydedicinin 7. biti olarak yazılır. 13- SWAPF Komutu SWAPF f, d: f kaydedicisinin ilk dört bit ile son dört bitinin yerlerini değiştirir. Örnek: MOVLW b'00001111' ; W kaydedicisine b'00001111' sayısını yükler. MOVWF PORTB ; W kaydedicisindeki sayı PORTB'ye aktarılır. SWAPF PORTB,1 ; PORTB'nin ilk dört biti ile son dört bitini yer ;değiştir. PORTB'nin son değeri '11110000' ;olur. 14- GOTO Komutu GOTO k: Programın akışını k etiketi ile belirtilen adrese dallandırır. Örnek: BASLA ; programın GOTO ile dallanabileceği k etiketi. MOVLW D'10' ; 10 sayısını W kaydedicisine yükler. MOVWF PORTA ; W kaydedicisindeki sayıyı PORTA'ya yükler. GOTO BASLA ; program BASLA etiketinden devam eder. Bu örnek program parçasında koşulsuz GOTO komutu kullanılmıştır. Bunun sonucu olarak sonsuz bir döngü sağlanmış olur. 15- CALL Komutu CALL k: k etiketi olan alt program çalıştırılır ve alt program sona erdiğinde CALL komutundan sonraki satırdan program çalışmaya devam eder. Örnek: CALL GECIKME ; GECIKME etiketli alt programı çalıştır. RLF PORTB,1 ; PORTB bitlerini birer sola kaydır. CALL GECIKME ; GECIKME etiketli alt programı çalıştır. 16- RETURN Komutu RETURN : Alt program komutlarının en sonuna yazılan bu komut, CALL ile çağırılan alt programdan dönüşü sağlar ve program akışı kaldığı yerden devam eder. Örnek: GECIKME ; GECIKME alt programı. MOVLW H'FF' ; 'FF' sayısını W kaydedicisine yükler. MOVWF SAY ; W kaydedicisindeki sayıyı SAY'a yükler. DONGU ; Alt programdaki DONGU etiketi. DECFSZ SAY,1 ; SAY Kaydedicisindeki değeri bir azalt. GOTO DONGU ; SAY'daki değer '0' değilse GONDU'ye git. RETURN ; GECIKME alt programının sonu. 17- RETLW Komutu RETLW k: Programın akışını alt programdan ana programa döndürürken W kaydedicisine k sabitini yükler. Örnek: RETLW H'0F' ; Alt program sonu, W kaydedicisine '0F' yükler.

Paylaşmııın İçin tşkler arkadaşım Kayıtlı

18- RETFIE Komutu RETFIE: Programın akışını kesme alt programından ana programa döndürür. Örnek: DURDUR BCF INTCON, T0IF ; T0IF bayrağı '0' olur. CLRF PORTB ; PORTB'nin tüm bitleri '0' yapılır. MOVLW H'00' ; W kaydedicisine '00' sayısını yükler. MOVWF TMR0 ; Sayıcı Kaydedicisine '00' yüklenir. RETFIE ; Kesme alt programı sonu 19- BTFSC Komutu BTFSC f, b: f kaydedicisinin b. bitini test eder. Bu bit '0' ise bir satır atlar; '0' değilse, program sonraki satırdan devam eder. Örnek: SOR ; SOR etiketi. BTFSC PORTA,1 ; PORTA'nın 1. biti '0' mı? GOTO SOR ; PORTA'nın 1. biti '0' değil. SOR'a gider. BSF PORTB,1 ; PORTB'nin 1. bitini '1' yapar. GOTO DEVAM ; DEVAM etiketine yönelir. PIC16F84 devresinde PORTA'nın 1. bitine bir buton bağlandığı düşünülürse, örnek programa göre butona basılma durumu kontrol edilecektir. Butona basıldığında PORTB'nin 1. biti '1' seviyesine getirilecek ve program akışı DEVAM etiketine geçecektir. 20- BTFSS Komutu BTFSS f, b: f kaydedicisinin b. bitini test eder. Bu bit '1' ise bir satır atlar; '1' değilse, program sonraki satırdan devam eder. Örnek: SENSOR1 ; SENSOR1 etiketi. BTFSS PORTA,1 ; PORTA'nın 1. biti '1' mi? GOTO DUR ; PORTA'nın 1. biti '1' değil. DUR'a gider. GOTO DEVAM ; PORTB'nin 1. biti '1', DEVAM'a gider. 21- DECFSZ Komutu DECFSZ f, d: f kaydedicisindeki sayıdan '1' çıkarır ve sonuç '0' ise bir satır atlar. Örnek: TEKRAR ; TEKRAR etiketi. DECFSZ SAYAC, F ; SAYAC kaydedicisindeki sayıdan '1' çıkarır. GOTO TEKRAR ; SAYAC '0' değilse TEKRAR etiketine gider. BSF PORTB,1 ; SAYAC '0' ise PORTB'nin 1. bitini '1' yapar. 22- INCFSZ Komutu INCFSZ f, d: f kaydedicisindeki sayıya '1' ekler. Sonuç W kaydedicisine veya f kaydedicisine yazılır. Sonuç '0' ise bir satır atlar. Örnek: TEKRAR ; TEKRAR etiketi. INCFSZ SAYAC, F ; SAYAC kaydedicisindeki sayıya '1' ekler. GOTO TEKRAR ; SAYAC '0' değilse TEKRAR etiketine gider. BCF PORTB,3 ; SAYAC '0' ise PORTB'nin 3. biti '0' olur. 23- CLRWDT Komutu CLRWDT: WDT zamanlayıcısının değerini '0' yapar. Frekans bölme sayısını '0' yapar. Durum Kaydedicisindeki 3. ve 4. bitleri "1" yapar. Örnek: MOVLW B'10100000' ; TMR0 sayıcısını hazırlar. MOVWF INTCON ; INTCON kaydedicisine '10100000' yazılır. CLRWDT ; WDT kaydedicisi '0' yapılır. 24- SLEEP Komutu SLEEP: Mikrodenetleyiciyi uyuma moduna geçirir. Mikrodenetleyici 'Reset', 'WDT zamanlayıcısı' veya 'TOCKI' girişlerinden birisine bilgi gelmesi durumunda uyuma modundan çıkar. 25- ANDLW Komutu ANDLW k: W kaydedicisindeki sayı ile k sayısına 'VE' işlemini uygular ve sonucu W kaydedicisine yazar. İstenilen bitlerin '0' yapılması da denmektedir. Bu işleme maskeleme adı verilmektedir. Örnek: MOVLW B'00110011' ; '00110011' sayısını W kaydedicisine yükler. ANDLW B'11011101' ; '00110011' AND '11011101' işlemi. MOVWF PORTB ; '00010001' sonucunu PORTB'ye yükler. 26- ANDWF Komutu ANDWF f, d: W kaydedicisindeki sayı ile f kaydedicisindeki sayıya 'VE' işlemini uygular. Sonucu W kaydedicisine veya f kaydedicisine yazar. Örnek: MOVLW B'01110111' ; '01110111' sayısını W kaydedicisine yükler. MOVWF DURUM ; '01110111' sayısı DURUM'a yüklenir. MOVLW B'11101110' ; '11101110' sayısını W kaydedicisine yükler. ANDWF DURUM, w ; '11101110' AND '01110111' işlemi yapılır. MOVWF PORTB ; '01100110' sonucunu PORTB'ye yükler. 27- IORLW Komutu IORLW k: W kaydedicisindeki sayı ile k sayısına 'VEYA' işlemini uygular ve sonucu W kaydedicisine yazar. İstenilen bitlerin '1' yapılması için kullanılır. Örnek: MOVLW B'00110011' ; '00110011' sayısını W kaydedicisine yükler. IORLW B'11001100' ; '00110011' OR '11001100' işlemi. MOVWF PORTB ; '11111111' sonucunu PORTB'ye yükler. 28- IORWF Komutu IORWF f, d: W kaydedicisindeki sayı ile f kaydedicisindeki sayıya 'VEYA' işlemini uygular. Sonucu W kaydedicisine veya f kaydedicisine yazar. Örnek: MOVLW B'01010101' ; '01010101' sayısını W kaydedicisine yükler. MOVWF DURUM ; '01010101' sayısı DURUM'a yüklenir. MOVLW B'00001111' ; '00001111' sayısını W kaydedicisine yükler. IORWF DURUM, w ; '00001111' OR '01010101' işlemi yapılır. MOVWF PORTB ; '01011111' sonucunu PORTB'ye yükler. 29- XORLW Komutu XORLW k: W kaydedicisindeki sayı ile k sayısına 'ÖZEL VEYA' işlemini uygular ve sonucu W kaydedicisine yazar. 'XOR' işleminde '0'lar '1', '1'ler '0' olur. Örnek: MOVLW B'11111111' ; '11111111' sayısını W kaydedicisine yükler. XORLW B'11001100' ; '11111111' XOR '11001100' işlemi yapılır. MOVWF PORTB ; '00110011' sonucunu PORTB'ye yükler. 30- XORWF Komutu XORWF f, d: W kaydedicisindeki sayı ile f kaydedicisindeki sayıya 'ÖZEL VEYA' işlemini uygular. Sonucu W kaydedicisine veya f kaydedicisine yazar. Örnek: MOVLW B'01010101' ; '01010101' sayısını W kaydedicisine yükler. MOVWF DURUM ; '01010101' sayısı DURUM'a yüklenir. MOVLW B'11111111' ; '11111111' sayısını W kaydedicisine yükler. XORWF DURUM, W ; '11111111' XOR '01010101' işlemi yapılır. MOVWF PORTB ; '10101010' sonucunu PORTB'ye yükler. 31- ADDLW Komutu ADDLW k: W kaydedicisindeki sayı ile k sayısı toplanır ve sonuç W kaydedicisine yazılır. Örnek: MOVLW B'00010001' ; '00010001' sayısını W kaydedicisine yükler. ADDLW B'00010011' ; '00010001' + '00010011' işlemi yapılır. MOVWF PORTB ; '00010100' sonucunu PORTB'ye yükler. 32- ADDWF Komutu ADDWF f, d: W kaydedicisindeki sayı ile f kaydedicisindeki sayı toplanır. Sonuç W kaydedicisine veya f kaydedicisine yazılır. Örnek: MOVLW B'00001111' ; '00001111' sayısını W kaydedicisine yükler. MOVWF DURUM ; '00001111' sayısı DURUM'a yüklenir. MOVLW B'00001111' ; '00001111' sayısını W kaydedicisine yükler. ADDWF DURUM, W ; '00001111' + '00001111' işlemi yapılır. MOVWF PORTB ; '00011110' sonucunu PORTB'ye yükler. 33- SUBLW Komutu SUBLW k: w dan k sabiti çıkarılır ve sonuç W kaydedicisine yazılır. Örnek: MOVLW B'00000001' ; '00000001' sayısını W kaydedicisine yükler. SUBLW B'11111111' ; '11111111' - '00000001' işlemi yapılır. MOVWF PORTB ; '11111110' sonucunu PORTB'ye yükler. 34- SUBWF Komutu SUBWF f, d: f kaydedicisindeki sayıdan W kaydedicisindeki sayı çıkarılır. Sonuç W kaydedicisine veya f kaydedicisine yazılır. Örnek: MOVLW B'11111111' ; '11111111' sayısını W kaydedicisine yükler. MOVWF DURUM ; '11111111' sayısı DURUM'a yüklenir. MOVLW B'00001111' ; '00001111' sayısını W kaydedicisine yükler. SUBWF DURUM, W ; '11111111' - '00001111' işlemi yapılır. MOVWF PORTB ; '11110000' sonucunu PORTB'ye yükler. 35- NOP Komutu NOP: Bir komut işleme süresince hiçbir işlem yapılmadan, mikrodenetleyicinin meşgul edilmesi sağlanır. Zaman geciktirme işlemlerinde döngü içerisinde kullanılarak mikrodenetleyicinin meşgul olması sağlanır. alıntı...