PIC Assembly Timer1 kullarak 1 saniye aralıklarla 0'dan 255 kadar arttırıp 2'lik tabanda PORTB'ye çıktı olarak gösteren program

Açıklama

  • PortB’ye bağlı ledler ile 0-FF arası sayan PIC Assembly programıdır.
  • Timer1 kesmesi kullanılarak başlangıçta ledlerin artış süresi 1sn olacak şekilde programlanacaktır. RA0’a bağlı butona her basıldığında bu süre 100msn artacak, RA1’e bağlı butona her basıldığında ise bu süre 100msn azalacak şekilde ayarlanacaktır.
  • Not : Ledlerin artış süresi 500msn ile 1.5sn sınırları içerisinde kalacak ve bu süre 500msn olduğunda azaltma butonuna, 1.5sn olduğunda da arttırma butonuna basıldığında sabit kalacak değiştirilmeyecektir.

 

Şekille gösterim

pic timer1 sayici yapımı ve segment display gösterme

 

Kod

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


YEDEK EQU 0X20
KACKEZ EQU 0X21
SAYAC1 EQU 0X22
SAYAC2 EQU 0X23

ORG 0X00
GOTO PROGRAM
ORG 0X04
GOTO KESME


PROGRAM
BANKSEL TRISB
CLRF TRISB
MOVLW H'FF'
MOVWF TRISA
MOVLW H'06'
MOVWF ADCON1
BANKSEL PORTB
CLRF PORTB
CLRF PORTA

BANKSEL TMR1H
MOVLW B'00111100'  ;H'3C'
MOVWF TMR1H
MOVLW B'10110000'  ;H'B0'
MOVWF TMR1L

BANKSEL INTCON
MOVLW H'C0'
MOVWF INTCON
BANKSEL PIE1
BSF PIE1,TMR1IE
BANKSEL T1CON
MOVLW H'11'
MOVWF T1CON

BANKSEL KACKEZ
MOVLW D'10'
MOVWF KACKEZ
MOVWF YEDEK

DONGU
BCF STATUS,Z
BTFSC PORTA,0
GOTO ARTTIR
BTFSC PORTA,1
GOTO AZALT
GOTO DONGU
 


ARTTIR
MOVLW D'15'
SUBWF YEDEK,W
BTFSC STATUS,Z
GOTO DONGU
INCF YEDEK,F
CALL GECIKME
CALL GECIKME2
CALL GECIKME
CALL GECIKME2
GOTO DONGU
 
AZALT
MOVLW D'5'
SUBWF YEDEK,W
BTFSC STATUS,Z
GOTO DONGU
DECF YEDEK,F
CALL GECIKME
CALL GECIKME2
CALL GECIKME
CALL GECIKME2
GOTO DONGU
 
 
 
GECIKME
MOVLW D'255'
MOVWF SAYAC1
MOVWF SAYAC2
RETURN
 

GECIKME2
DECFSZ SAYAC1,F
GOTO GECIKME2
DECFSZ SAYAC2,F
GOTO GECIKME2
RETURN





KESME
BANKSEL PIR1
BCF PIR1,TMR1IF
BANKSEL TMR1H
MOVLW B'00111100'
MOVWF TMR1H
MOVLW B'10110000'
MOVWF TMR1L

BANKSEL KACKEZ
DECFSZ KACKEZ,F
RETFIE

MOVF YEDEK,W
MOVWF KACKEZ
INCF PORTB
RETFIE


END

Yorumlar

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