PIC Assembly Ayarlı direnç ile joystick uygulaması

Açıklama

  • Joystick çalışma mantığına uyarak, ayarlı direnç ile joystick'in X yönündeki okuduğumuz analoğ değerini onluk tabanda ledlerde gösteren uygulamadır.
  • Joystick ilk orta durumdayken 2.5 voltaj üretir buda 8 bit analog çeviride karşılığı 127 denk gelir ama biz ortada 0 istediğimiz için birkaç işlem yapmak zorundayız.
  • NOT : 2.5V'da 127 değerini 5V çıkardğımızda 255 değerini istiyoruz ve 2.5V'da 127 değerini 0V'dada 255 değerini istiyoruz. ( MAX: 5V )

 

Şekille gösterim

pic-joystick-uygulamasi

 

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
OKUNAN EQU 0X24
BIRLER EQU 0X25
ONLAR EQU 0X26
YUZLER EQU 0X27
BINLER EQU 0X28
OKUNAN2 EQU 0X29
SS EQU 0X30

ORG 0X00
GOTO MAIN
ORG 0X04
GOTO MAIN


MAIN
BANKSEL TRISA
MOVLW .255
MOVWF TRISA
CLRF PORTB
CLRF PORTD
BANKSEL PORTA
CLRF PORTA
CLRF PORTB
CLRF PORTD
CLRF BIRLER
CLRF ONLAR
CLRF YUZLER
CLRF BINLER
CLRF OKUNAN
CLRF OKUNAN2
MOVLW .127
MOVWF SS

BANKSEL ADCON1
CLRF ADCON1

BANKSEL ADCON0
MOVLW B'00000001'
MOVWF ADCON0

GOTO LOOP



LOOP
CALL ADCOKU
CLRF BIRLER
CLRF ONLAR
CLRF YUZLER
CLRF BINLER
CALL YONTESPIT
CALL BASAMAKBUL
CALL GOSTER
CALL BEKLE
GOTO LOOP


YONTESPIT
MOVLW .127
SUBWF OKUNAN,W
BTFSC STATUS,Z
GOTO ESITLIK
BTFSC STATUS,C
GOTO YUKARI
GOTO ASAGI


ESITLIK
CLRF OKUNAN
RETURN

ASAGI
MOVFW OKUNAN
SUBWF SS,W
MOVWF OKUNAN
RLF OKUNAN
RETURN

YUKARI
MOVLW .128
SUBWF OKUNAN,F
RLF OKUNAN
RETURN


BASAMAKBUL
BCF STATUS,C
BCF STATUS,Z
BANKSEL YUZLER
INCF YUZLER,F
MOVLW .100
SUBWF OKUNAN,F
BTFSC STATUS,C
GOTO BASAMAKBUL
DECF YUZLER,F
MOVLW .100
ADDWF OKUNAN,W
MOVWF OKUNAN2
GOTO BASAMAKBUL2


BASAMAKBUL2
BCF STATUS,C
BCF STATUS,Z
BANKSEL ONLAR
INCF ONLAR
MOVLW .10
SUBWF OKUNAN2,F
BTFSC STATUS,C
GOTO BASAMAKBUL2
DECF ONLAR,F
MOVLW .10
ADDWF OKUNAN2,W
MOVWF BIRLER
RETURN


ADCOKU
BANKSEL ADCON0
BSF ADCON0,GO
ADCOKU2
BTFSC ADCON0,GO
GOTO ADCOKU2
BANKSEL ADRESH
MOVF ADRESH,W
BANKSEL OKUNAN
MOVWF OKUNAN
RETURN



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ı.