18 Ekim 2018, 19:46:00

Haberler:

Eposta uyarılarını yanıtlamayınız ( ! ) https://bit.ly/2J7yi0d


Assembly Dili ile PIC16F877A Uygulamaları

Başlatan nuhaltinkaynak, 07 Ekim 2018, 20:10:23

nuhaltinkaynak

Assembly kodlamaya yeni başlayanlar için pekiştirme mahiyetinde led, 7 seven segment display vs üzerinde çalışmalar yapmaya olanak sağlayan örnekleri bu başlık altında paylaşabiliriz. Yararı olur umarım.
İlk örneğimiz çarpma işleminin sonucunu PORTB'ye bağlı ledlerde göstermek
Deger1(4) sayısı ile Deger(3) sayısını çarpıp sonucu B portunda gösteren uygulama;
Kod Seç
#include <P16F877A.INC>
Deger1 EQU 0X21   ;Değişkenlerimizi hexa 20. adresten itibirane yazıyoruz.
Deger2 EQU 0X22
   ORG 0x00
SETUP 
   BSF STATUS
RP0     ;BANK1'e geçildi. Aynı işlemi BANKSEL TRISB komutuyla da yapılabilir.
   CLRF TRISB              ;TRISB nin tüm uçları 0 yapıldı. Yani PORTB çıkış olarak ayarlandı.
   BCF STATUS, RP0    ;BANK0'
a geçildiBANKSEL PORTB ile de yapılabilir.
   
CLRF PORTB
   MOVLW 0x04         
;W kaydedicisine 4 sayısını atıldı.
   
MOVWF Deger1     ;W'deki sayı Deger1'e atıldı.
   
MOVLW 0x03
   MOVWF Deger2
   CLRW             
;W'yi sıfırlıyoruz çünkü sonucu W'de saklayacaz ve lede yansıtacaz.
MAIN
   ADDWF Deger1
,W  ;W ile Deger1'i topla sonucu W'ye yaz.
   
DECFSZ Deger2,F   ;Deger2'yi bir azaltır, 0 ise bir satırı işlemeden geçer, değilse devam eder.
   GOTO MAIN
   MOVWF PORTB
END

nuhaltinkaynak

07 Ekim 2018, 23:04:13 #1 Son düzenlenme: 07 Ekim 2018, 23:06:33 nuhaltinkaynak Sebep: Yanlış yazmışım
Karaşimşek uygulaması(Yanan ışığın sol köşeye gidip geri gelmesi ve bunu sonsuz kere tekrarlaması)

Kod Seç

#include <P16F877A.INC>
Sayac1 EQU 0X21
Sayac2 EQU 0X22
   ORG 0x00
SETUP
   BANKSEL TRISB
   MOVLW 
B'00000000'
   
MOVWF TRISB
   BANKSEL PORTB
   CLRF PORTB
   MOVLW 0x01
   MOVWF PORTB
SOLA
   CALL GECIKME
   RLF PORTB
   BTFSS PORTB
,7
   
GOTO SOLA
   
GOTO SAGA
SAGA
   CALL GECIKME
   RRF PORTB
   BTFSS PORTB
,0
   
GOTO SAGA
   
GOTO SOLA
GECIKME
   MOVLW 0X80
   MOVLW Sayac1
TEKRAR1
   MOVLW 0XFF
   MOVWF Sayac2
TEKRAR2
   DECFSZ Sayac2
   
GOTO TEKRAR2
   DECFSZ Sayac1
   
GOTO TEKRAR1
   
RETURN
END