Assembly Dili ile PIC16F877A Programlama

2
3108
Bu başlık altında yapmayı planladığımız Microchip firmasının mikro denetleyecilerinden olan PİC16F877A denetleyecisine Assembly dili yardımı ile program gömmek olacak .

İlk örneğimizde basit olarak butonlarla kontrol edilen 8 bitlik ileri ve geri sayacı yapacağız. Bu örnek için B Assembly Assemblortunun en değersiz ilk iki bitini Butonlar aracılığı ile ileri ve geri sayım yapmak için kullanacağız . D Portunun tamamını ise çıkış olarak kull anıp buto na her tıkladığımızda oluşan değişiklikliği LED’ ler yardımı ile burada göreceğiz .

Şimdi Programı yazmaya başla yalım .

#INCLUDE < P16F877A.INC >

SAYAC                  EQU       0X20      ; SAYAC ve SAYAC1 program içimde yapacağımız gecilmeler için  kullanıyoruz.

SAYAC1                 EQU       0X21

  ORG                    0X00

  GOTO                   AYARLAR   ; Program başladığında goto komutu ile Ayarlar başlığına gider

;ISLEM ve GERI kısmında PORTB’nin 0 ve 1. bitlerine güç gelip gelmediği kontrol edilir.

; Bunuda Buttonlar aracılığı ile sağlarız.

ISLEM

                BTFSS              PORTB,0

                GOTO               GERI1

                GOTO                ILERI

GERI1

                BTFSS         PORTB,1

                GOTO            ISLEM

                GOTO           GERI

; ILERI ve GERI bölümlerinde butona basıldığında yapılacak işlemler tanımlanır.

ILERI

               INCF                      PORTD,F   ; INCF komutu ile PORTD’deki değeri bir artırır yeni ;değeri tekrar
               CALL                      GECIKME  ; PORTD ye yazdıktan sonra GECIKME sınıfına ;dallanırız.

                 GOTO                   ISLEM  
GERI

                 DECF                     PORTD,F   ; DECF komutu ile de PORTD’deki değeri bir azaltıp ;yani değer

                 CALL                      GECIKME  ; tekrardan PORTD’ye yazılık GECIKMEYE dallanılır

                 GOTO                   ISLEM    ; pic’in genel ayarları bu bölümde yapılır. Kısacası ; hangi port giriş hangi port çıkış

; olduğuna AYAR LAR bölümünde karar veri lir.

AYARLAR

                BANKSEL             TRISB

                CLRF                      TRISB

                MOVLW              0X03

                MOVWF              TRISB

                CLRF                      TRISD

                BANKSEL             PORTB

                MOVLW              0X01

                MOVWF              PORTD

                GOTO                   ISLEM      ; Program içinde gerçekleşecek gecikmelerle ilgili alt procedur .

GECIKME

                MOVLW              D’256′

                MOVWF              SAYAC

DON1

MOVLW              D’256′

                MOVWF              SAYAC1

DON2

                DECFSZ                 SAYAC1,F

                GOTO                   DON2

                DECFSZ                 SAYAC,F

                GOTO                   DON2

                RETURN
END

Şimdide bu kod parçasına uygun olarak Proteus programında çizimini gerçekleştirelim . Bunun için 8 adet Led ve 2 adet Button olması yeterlidir .

Assembly Dili ile PIC16F877A Programlama proteus çizimi
Assembly Dili ile PIC16F877A Programlama proteus çizimi
Yazan : Muhammed Akbaş  

Fırat Üniversitesi , Bilgisayar Mühendisliği

2 YORUMLAR

Yazı hakkında düşüncelerinizi ve sorularınızı yazabilirsiniz...

This site uses Akismet to reduce spam. Learn how your comment data is processed.