PIC Assembly PWM ile led ışık şiddeti ve dc motor hızının ayarlanması

Açıklama

  • RC2 ve RC1 pinlerinden elde edeceğiniz PWM sinyallerini kullanarak bir DC motorun hız ayarını ve bir led in ışık şiddetini değiştiren uygulamayı gerçekleştiriniz.
  • Not: PWM sinyallerin görev periyotlarını birbirinden bağımsız olarak butonlar kullanarak değiştirebilecek şekilde tasarlayınız. PWM frekansını makul bir değer aralığında olacak şekilde kendiniz belirleyiniz.
  • Not: Ürettiğiniz PWM sinyallerinin frekansını ve görev periyotunu osiloskop üzerinden hesaplayarak doğrulayınız. Deney esnasında osiloskop kullanamayanlar ve gerekli hesaplamaları yapamayanlar, deneyden başarısız sayılacaktır. 

 

Şekille gösterim

pic pwm led ve motor hızı ayarlama

 

Kod

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

SAYI1 EQU 0X20
SAYI2 EQU 0X21

ORG 0X00
GOTO PROGRAM

PROGRAM
BANKSEL ADCON1
MOVLW D'6'
MOVWF ADCON1
BANKSEL TRISA
MOVLW D'255'
MOVWF TRISA
CLRF TRISC
CLRF TRISB
BANKSEL PORTA
CLRF PORTA
CLRF PORTB
BANKSEL T2CON
MOVLW D'4'
MOVWF T2CON
BANKSEL PR2
MOVLW D'199'
MOVWF PR2
BANKSEL CCPR1L
MOVLW D'10'
MOVWF CCPR1L
BANKSEL CCPR2L
MOVLW D'10'
MOVWF CCPR2L
BANKSEL CCP1CON
MOVLW H'0C'
MOVWF CCP1CON
BANKSEL CCP2CON
MOVLW H'0C'
MOVWF CCP2CON
GOTO DONGU

DONGU
CALL GECIKME
BTFSC PORTA,0
GOTO ARTTIR1
BTFSC PORTA,1
GOTO AZALT1
BTFSC PORTA,2
GOTO ARTTIR2
BTFSC PORTA,3
GOTO AZALT2
GOTO DONGU

ARTTIR1
MOVLW D'100'
SUBWF CCPR1L,W
BTFSC STATUS,Z
GOTO DONGU
MOVLW D'10'
ADDWF CCPR1L,F
GOTO DONGU

AZALT1
MOVLW D'0'
SUBWF CCPR1L,W
BTFSC STATUS,Z
GOTO DONGU
MOVLW D'10'
SUBWF CCPR1L,F
GOTO DONGU

ARTTIR2
MOVLW D'200'
SUBWF CCPR2L,W
BTFSC STATUS,Z
GOTO DONGU
MOVLW D'10'
ADDWF CCPR2L,F
GOTO DONGU

AZALT2
MOVLW D'0'
SUBWF CCPR2L,W
BTFSC STATUS,Z
GOTO DONGU
MOVLW D'10'
SUBWF CCPR2L,F
GOTO DONGU

GECIKME
MOVLW D'255'
MOVWF SAYI1
DON1
MOVLW D'255'
MOVWF SAYI2
DON2
DECFSZ SAYI2,F
GOTO DON2
DECFSZ SAYI1,F
GOTO DON1
RETURN

END