L298 PIC16F628 Geri beslemeli motor kontrol pwm

 Ana Sayfa Forum Web  Hesaplamalar Datasheet Yazarlarımız Yazı Gönder İletişim Dikkat

L298 PIC16F628 Geri beslemeli motor kontrol pwm

l298-pic16f628-geribesleme-pwm-motor-surucu

Devre L298 (köprü bağlantılı motor sürücü) ve pic16f628 mikro denetleyici üzerine kurulu durdur,ani dur,başlat,arttır,bitir,ileri,geri kontrolleri var fren konumunda ki motoru jeneratör durumuna düşmesi durumunda enerjiyi pile tekrar gönderiyor yazılım assembly dili ile hazırlanmış .asm .hex ve proteus isis .DSN dosyaları bulunmakta

Tüm dosyalar l298-pic16f628-geri-besleme-pwm.rar

Geribeslemeli sürücü devre şeması
geri-beslemeli-motor-surucu

ASM Yazılımı

LIST 		P=16F628A
INCLUDE		"P16F628A.INC"
__CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT &_MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF

BELLEK		EQU		H'20'

SAYAC1		EQU		H'21'
SAYAC2		EQU		H'22'

PWM_DEGER	EQU		H'23'
BASLANGIC	EQU		H'24'

		ORG		0
		CLRF		PCLATH
		goto		ANA_PROGRAM

PWM_BASLAT
		MOVLW		D'7'			;PR2 DEGERİ
		BANKSEL		PR2
		MOVWF		PR2
		BANKSEL		CCP1CON
		CLRF		CCPR1L
		MOVLW		D'7'			; TIMER2 000001(11) = 4 + 3 = 7
		BANKSEL		T2CON
		MOVWF		T2CON
		RETURN

PWM_AYARLA
		BANKSEL		PWM_DEGER
		MOVF		PWM_DEGER,W
		ANDLW		D'3'			; CCP1X+CCP1Y
		MOVWF		BELLEK
		SWAPF		BELLEK,W
		ANDLW		H'F0'
		BANKSEL		CCP1CON
		MOVWF		CCP1CON
		IORLW		H'0C'
		MOVWF		CCP1CON
		MOVF		PWM_DEGER, w
		MOVWF		BELLEK
		RRF		BELLEK,F
		RRF		BELLEK,W
		ANDLW		H'3F'
		MOVWF		CCPR1L
		RETURN
PWM_BITIR
		BANKSEL		T2CON
		CLRF		T2CON
		CLRF		CCP1CON
		BANKSEL		PORTB
		BSF		PORTB,3
		RETURN
PIC_AYAR
		BANKSEL		TRISA
		CLRF 		TRISB
		MOVLW		H'FF'
		MOVWF		TRISA
		BANKSEL		PORTB
		CLRF		PORTB
		MOVLW		H'07'
		MOVWF		CMCON
		RETURN
ANA_PROGRAM
		CALL		PIC_AYAR
		MOVLW		D'16'			; PWM DUTY CYCYLE (MAKSİMUM 32)
		BANKSEL		PWM_DEGER
		MOVWF		PWM_DEGER
BUT_BASLAT
		BANKSEL		PORTA
		BSF		BASLANGIC,0
		MOVLW		D'140'
		MOVWF		SAYAC1
		BTFSC		PORTA,0
		GOTO 		BUT_BASLAT
		CALL		PWM_BASLAT
		CALL		PWM_AYARLA
		BANKSEL		PORTA
BUT_YONI
		BTFSS		PORTA,4
		GOTO		BUT_YONG
		BTFSS		PORTB,0		;	PORTB'NİN 1.BİTİ 0 ISE KODLA
		GOTO		BUT_YONI2
		BTFSS		PORTB,1		;	PORTB'NİN 1 VE 2.BİTİ 1 İSE KODLA
		GOTO		BUT_YONG
BUT_YONI2
		BSF		PORTB,0
		BCF		PORTB,1
		CALL		PWM_BITIR
		BANKSEL		SAYAC1
		MOVLW		D'03'
		BTFSS		BASLANGIC,0
		MOVWF		SAYAC1		;	GECIKME AYAR
		BCF		BASLANGIC,0
		CALL		GECIKME
		CALL		PWM_BASLAT
		CALL		PWM_AYARLA
BUT_YONG
		BANKSEL		PORTA
		BTFSC		PORTA,4
		GOTO		BUT_DUR
		BTFSC		PORTB,0		;	PORTB'NİN 1.BİTİ 1 ISE KODLA
		GOTO		BUT_YONG2
		BTFSC		PORTB,1		;	PORTB'NİN 1 VE 2.BİTİ 0 İSE KODLA
		GOTO		BUT_DUR
BUT_YONG2
		BCF		PORTB,0
		BSF		PORTB,1
		CALL		PWM_BITIR
		BANKSEL		SAYAC1
		MOVLW		D'03'
		BTFSS		BASLANGIC,0
		MOVWF		SAYAC1		;	GECIKME AYAR
		BCF		BASLANGIC,0
		CALL		GECIKME
		CALL		PWM_BASLAT
		CALL		PWM_AYARLA
BUT_DUR
		BANKSEL		PORTA
		BTFSC		PORTA,1
		GOTO		BUT_ANIDUR
		BCF		PORTB,0
		BCF		PORTB,1
		CALL		PWM_BITIR
		GOTO		BUT_BASLAT
BUT_ANIDUR
		BTFSC		PORTA,6
		GOTO		BUT_ARTIR
		BSF		PORTB,0
		BSF		PORTB,1
		CALL		PWM_BITIR
		GOTO		BUT_BASLAT
BUT_ARTIR
		BTFSC		PORTA,2
		GOTO		BUT_AZALT
		MOVLW		H'1F'			;PWM COZUNURLUK LOG((PR2 + 1)*(4)) / LOG(2)
		BCF		STATUS,C
		SUBWF		PWM_DEGER,W
		BTFSS		STATUS,C
		INCF		PWM_DEGER,f
		MOVLW		D'10'
		MOVWF		SAYAC1
		CALL		GECIKME
		CALL		PWM_AYARLA
BUT_ARTIR2	BTFSS		PORTA,2
		GOTO		BUT_ARTIR2
BUT_AZALT
		BTFSC		PORTA,3
		GOTO		BUT_YONI
		MOVF		PWM_DEGER
		SUBLW		D'0'
		BTFSS		STATUS,C
		DECF		PWM_DEGER,f
		MOVLW		D'10'
		MOVWF		SAYAC1
		CALL		GECIKME
		CALL		PWM_AYARLA
BUT_AZALT2	BTFSS		PORTA,3
		GOTO		BUT_AZALT2
		GOTO		BUT_YONI
GECIKME
		MOVLW		D'80'
		MOVWF		SAYAC2
GECIKME2
		DECFSZ		SAYAC2,F
		GOTO		GECIKME2
		DECFSZ		SAYAC1,F
		GOTO		GECIKME
		RETURN

		END

Yazar: gevv Tarih: 4/04/2009 Etiketler: , , , , Sayfayı yazdırRedditFacebookTwitterDel.icio.usStumbleupon

direnc-net

Yorumlar

  1. Güngör ASLAN
    5/04/2009 - 23:15

    Teşekkürler…

  2. serkan
    25/04/2009 - 10:18

    teşekkürler arkadaş

  3. 5/05/2009 - 21:40

    teşekkürler çok işime yaradı

  4. akrepkralphp
    25/11/2009 - 21:33

    arkadaşlar devreyi çaşlıştırabilen var mı ? Simülasyonda hata mı var acaba ?! Starta basıp başlatınca CPU error diye hata verior

  5. Yasin Ergene
    16/12/2009 - 15:46

    Geri beslemeden kasıt motor devrinin korunmasıdır?
    Eğer öyle ise herhangi bir alıcı sensör devrede görünmüyor…
    Nasıl yapılıyor geri besleme bu devrede.

  1. Geri izleme yok


320volt.com Türkiye`de bilişim ve elektronik ile ilgilenen Türkiye nin gelişmesini sağlayacak güzel insanlarımıza hizmet etmek gelişimlerine katkıda bulunmak için kurulmuştur. Tüm içerikten üye olmadan faydalanabilir, makale ve projelerinizi paylaşabilirsiniz. 320v RSS - Alt yapı WordPress