PIC Assembly Decoder ile 0-1000 arası sayıları gösterme

Açıklama

  • Decoder ile 0-1000 arası sayıları artan bir şekilde led'de gösterme işlemini yapan uygulamadır.
  • PORB ve PORTD'nin bütün pinleri çıkış yaptık.
  • PORTD'ye verdiğimiz sayı, decoder sayesinde direk ikilik tabanda sayıyı onluk tabana dönüştürme işlemini yapmaktadır.
  • PORTB ise led seçme pinleridir.

 

Şekille gösterim

pic-0-1000-arasi-saydirma

 

Kod

    LIST P=16F877A
    #INCLUDE <P16F877A.INC>
    __config _CP_OFF &_WDT_OFF &_HS_OSC &_PWRTE_OFF &_LVP_OFF
SAY0 EQU 0X21
SAY1 EQU 0X22
SAY2 EQU 0X23
BIRLER EQU 0X24
ONLAR EQU 0X25
YUZLER EQU 0X26
BINLER EQU 0X27
TEMP1 EQU 0X28
TEMP2 EQU 0X29
TEMP3 EQU 0X30
TEMP4 EQU 0X31


ORG 0X00
GOTO MAIN
ORG 0X04
GOTO MAIN


MAIN
BANKSEL TRISB
CLRF TRISB
CLRF TRISD
BANKSEL PORTB
CLRF PORTB
CLRF PORTD
CLRF BIRLER
CLRF ONLAR
CLRF YUZLER
CLRF BINLER
GOTO LOOP


LOOP
MOVLW .10
MOVWF TEMP1
LOOP2
MOVLW .10
MOVWF TEMP2
LOOP3
MOVLW .10
MOVWF TEMP3
LOOP4
MOVLW .10
MOVWF TEMP4
LOOP5
CALL GOSTER
CALL BEKLE
INCF BIRLER,F
DECFSZ TEMP4,F
GOTO LOOP5
CLRF BIRLER
INCF ONLAR,F
DECFSZ TEMP3,F
GOTO LOOP4
CLRF ONLAR
INCF YUZLER,F
DECFSZ TEMP2,F
GOTO LOOP2
CLRF YUZLER
INCF BINLER,F
DECFSZ TEMP1,F
GOTO LOOP
CLRF BINLER
GOTO LOOP

GOSTER
BANKSEL PORTB
MOVLW B'11110111'
MOVWF PORTB
MOVF BIRLER,W
MOVWF PORTD
CALL BEKLE
MOVLW B'11111011'
MOVWF PORTB
MOVF ONLAR,W
MOVWF PORTD
CALL BEKLE
MOVLW B'11111101'
MOVWF PORTB
MOVF YUZLER,W
MOVWF PORTD
CALL BEKLE
MOVLW B'11111110'
MOVWF PORTB
MOVF BINLER,W
MOVWF PORTD
CALL BEKLE
RETURN


BEKLE
MOVLW .50
MOVWF SAY0
BEKLE1
MOVLW .50
MOVWF SAY1
BEKLE2
MOVLW .50
MOVWF SAY2
BEKLE3
DECFSZ SAY2,F
GOTO BEKLE3
DECFSZ SAY1,F
GOTO BEKLE2
DECFSZ SAY0,F
GOTO BEKLE1
RETURN



END

Yorumlar

Bu gönderi için yorum yapılmadı.