step motor sürücü proğramı yardım

Başlatan relakss, 19 Mayıs 2008, 21:51:40

relakss

arkadaşlar belkide çok soru soruyorumdur. Kusura bakmayın şimdiki sorunum aşağıdaki proğramdaki adım tablosundaki en son değeride alındıktan sonra tekrar sıfırdan başlamasını istiyorum yani butona bastıkça motorun durmadan dönmesini istiyorum yardımcı olursanız sevinirim... ; ile başlayan satırları ekledim bu iş için ekledim ama işe yaramadı.
   LIST P=16F628
   INCLUDE "P16F628.INC"

__CONFIG   _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _BODEN_ON & _LVP_OFF



SAYAC1   EQU   h'AC'
SAYAC2   EQU   h'AD'
ADIM   EQU   h'AE'

   ORG H'00'
   CLRF PORTB
   BSF   STATUS,   5
   MOVLW   h'FF'
   MOVWF   TRISA
   CLRF   TRISB
   BCF   STATUS,   5
   MOVLW   H'07'
   MOVWF   CMCON
;SIFIRLA   
   MOVLW   h'FF'
   MOVWF   ADIM

BASLA
   
   BTFSC   PORTA,   1
   GOTO   BASLA
;   MOVF   PORTB,   w
;   XORLW   b'00000101'
;   BTFSC   STATUS,   2
;   GOTO   SIFIRLA
   INCF   ADIM,   F
   MOVF   ADIM,   W
   ANDLW   b'00001111'
   CALL   ADIMTBL   
   ANDLW   b'00000111'
   MOVWF   PORTB
   CALL   GECIKME
   GOTO   BASLA

ADIMTBL
   ADDWF   PCL,   F
   RETLW   b'0001'
   RETLW   b'1001'
   RETLW   b'1000'
   RETLW   b'1010'
   RETLW   b'0010'
   RETLW   b'0110'
   RETLW   b'0100'
   RETLW   b'0101'
GECIKME
   MOVLW   h'FF'
   MOVWF   SAYAC1
DONGU1
   MOVLW   h'FF'
   MOVWF   SAYAC2
DONGU2
   DECFSZ   SAYAC2,F
   GOTO   DONGU2
   DECFSZ   SAYAC1,   F
   GOTO   DONGU1
   RETURN
   END

elmaalma

LIST P=16F628 
#INCLUDE "P16F628.INC" 

	__CONFIG _MCLRE_OFF & _CP_OFF & _WDT_OFF & _INTRC_OSC_NOCLKOUT & _PWRTE_ON & _BODEN_ON & _LVP_OFF 
	CBLOCK   0x20 
		SAYAC1		; 
		SAYAC2		; 
 		ADIM		;
		ADIM_SAYACI	;
	ENDC

	ORG 		H'00' 
	CLRF		PORTB 
	BSF		STATUS, 5 
	MOVLW		h'FF' 
	MOVWF		TRISA 
	CLRF		TRISB 
	BCF		STATUS, 5 
	MOVLW		H'07' 
	MOVWF		CMCON 
SIFIRLA 
	movlw		0X08			;
	movwf		ADIM_SAYACI		;
	MOVLW		h'FF' 
	MOVWF		ADIM 
BASLA 
	BTFSC PORTA, 1 
	GOTO BASLA 
	INCF ADIM, F 
	MOVF ADIM, W 
	ANDLW b'00001111' 
	CALL ADIMTBL 
	ANDLW b'00000111' 
	MOVWF PORTB 
	CALL GECIKME 
	decfsz		ADIM_SAYACI,F	;
	goto		BASLA 			;
	goto		SIFIRLA 		; 
ADIMTBL 
	ADDWF PCL, F 
	RETLW b'0001' 
	RETLW b'1001' 
	RETLW b'1000' 
	RETLW b'1010' 
	RETLW b'0010' 
	RETLW b'0110' 
	RETLW b'0100' 
	RETLW b'0101' 
GECIKME 
	MOVLW h'FF' 
	MOVWF SAYAC1 
DONGU1 
	MOVLW h'FF' 
	MOVWF SAYAC2 
DONGU2 
	DECFSZ SAYAC2,F 
	GOTO DONGU2 
	DECFSZ SAYAC1, F 
	GOTO DONGU1 
	RETURN 
	END

avignon

SAYAC1 EQU h'AC' 
SAYAC2 EQU h'AD' 
ADIM EQU h'AE' 

ORG H'00' 
CLRF PORTB 
BSF STATUS, 5 
MOVLW h'FF' 
MOVWF TRISA 
CLRF TRISB 
BCF STATUS, 5 
MOVLW H'07' 
MOVWF CMCON 
;SIFIRLA 
MOVLW h'FF' 
MOVWF ADIM 

BASLA 

BTFSC PORTA, 1 
GOTO BASLA 
MOVF PORTB, w 
XORLW b'00000101' 
BTFSC STATUS, 2 
GOTO SIFIRLA 
INCF ADIM, F 
MOVF ADIM, W 
ANDLW b'00001111' 
CALL ADIMTBL 
ANDLW b'00000111' 
MOVWF PORTB 
CALL GECIKME 
MOVF ADIM,W
SUBLW H'07'
BTFSS STATUS,2
GOTO BASLA 
CLRF ADIM
GOTO BASLA
ADIMTBL 
ADDWF PCL, F 
RETLW b'0001' 
RETLW b'1001' 
RETLW b'1000' 
RETLW b'1010' 
RETLW b'0010' 
RETLW b'0110' 
RETLW b'0100' 
RETLW b'0101' 
GECIKME 
MOVLW h'FF' 
MOVWF SAYAC1 
DONGU1 
MOVLW h'FF' 
MOVWF SAYAC2 
DONGU2 
DECFSZ SAYAC2,F 
GOTO DONGU2 
DECFSZ SAYAC1, F 
GOTO DONGU1 
RETURN 
END


bu programı Orhan Altınbaşak'ın kitabından almışsın heralde yada çok benziyor. Adım değişkenini W'a atıp bunuda 7'den çıkarısan sonuç 0 olduğunda status'un zero bayrağı kurulur. Bu yüzden 7 sayısını şeçtik.

relakss

arkadaşalar çok sağolun evet orhan altınbaşağın kitabından yararlandım