PIC Assembly Digital saatin saniye kısmını 2 adet 7 segment displayda gösteren program

Açıklama

  • Deney seti üzerinde bulunan 2 adet ortak katotlu 7-segment display de dijital bir saatin saniye kısmını gerçekleştiren pic assembly programıdır.
  • Not: Her 1 saniyeyi ayarlamak için Timer1 kullanıldı.
  • Display segment bilgilerini yani segmentlerde gösterilcek rakamları, oluşturacağınız look-up tablosunda tutuyoruz.
  • NOT : Ortak katotlu display segmentte yapılmıştır.

 

Şekille gösterim

 

Kod

LIST P=P16F877A
#INCLUDE <P16F877.INC>
__config H'3F31'

SYC0 EQU 0X20
SYC1 EQU 0X21
BIRLER EQU 0X22
ONLAR EQU 0X23
ZAMAN EQU 0X24
ZAMANYEDEK EQU 0X25

ORG 0X00
GOTO PROGRAM
ORG 0X04
GOTO KESME

PROGRAM
BANKSEL TRISB
CLRF TRISB
CLRF TRISA
BANKSEL ADCON1
MOVLW D'6'
MOVWF ADCON1
BANKSEL PORTB
CLRF PORTB
CLRF PORTA
MOVLW D'0'
MOVWF BIRLER
MOVWF ONLAR
MOVLW D'10'
MOVWF ZAMAN
MOVWF ZAMANYEDEK

BANKSEL INTCON
MOVLW H'C0'
MOVWF INTCON
BANKSEL T1CON
MOVLW H'11'
MOVWF T1CON
BANKSEL TMR1H
MOVLW H'3C'
MOVWF TMR1H
MOVLW H'B0'
MOVWF TMR1L
BANKSEL PIE1
BSF PIE1,TMR1IE
GOTO DONGU

DONGU
CALL GOSTER
GOTO DONGU

GOSTER
CALL GECIKME
CALL GECIKME2
BANKSEL PORTA
BSF PORTA,1
BCF PORTA,0
MOVF ONLAR,W
CALL RAKAMLAR
MOVWF PORTB
CALL GECIKME
CALL GECIKME2
BCF PORTA,1
BSF PORTA,0
MOVF BIRLER,W
CALL RAKAMLAR
MOVWF PORTB
RETURN

SIFIRLA
CLRF BIRLER
MOVLW D'5'
SUBWF ONLAR,W
BTFSC STATUS,Z
CLRF ONLAR
BTFSS STATUS,Z
INCF ONLAR
RETFIE

RAKAMLAR
ADDWF PCL,F
RETLW B'10111111'
RETLW B'10000110'
RETLW B'11011011'
RETLW B'11001111'
RETLW B'11100110'
RETLW B'11101101'
RETLW B'11111101'
RETLW B'10000111'
RETLW B'11111111'
RETLW B'11101111'
RETURN

GECIKME
MOVLW D'100'
MOVWF SYC0
MOVWF SYC1
RETURN

GECIKME2
DECFSZ SYC0,F
GOTO GECIKME2
DECFSZ SYC1,F
GOTO GECIKME2
RETURN

KESME
BANKSEL PIR1
BCF PIR1,TMR1IF
BANKSEL TMR1H
MOVLW H'3C'
MOVWF TMR1H
MOVLW H'B0'
MOVWF TMR1L
BANKSEL ZAMAN
DECFSZ ZAMAN,F
RETFIE
MOVF ZAMANYEDEK,W
MOVWF ZAMAN

MOVLW D'9'
SUBWF BIRLER,W
BTFSC STATUS,Z
GOTO SIFIRLA
INCF BIRLER,F
RETFIE

END

Yorumlar

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