BU KODUN NE YAPMASI GEREK? (başlangıç seviyesi bir sorun)

Başlatan jadle, 20 Şubat 2006, 20:07:01

jadle

LIST	P=16F84A
	INCLUDE	"P16F84A.INC"
SAYAC1	EQU	h'0C'
SAYAC2	EQU	h'0D'
	CLRF	PORTB
	BCF	STATUS, 0
	BSF	STATUS, 5
	CLRF	TRISB
	BCF	STATUS, 5

	MOVLW	h'01'
	MOVWF	PORTB
TEKRAR1
	CALL	GECIKME
	RLF	PORTB,  F
	BTFSS	PORTB,	7
	GOTO	TEKRAR1
TEKRAR2
	CALL GECIKME
	RRF	PORTB,	F
	BTFSS	PORTB,	0
	GOTO TEKRAR2	
DONGU
	GOTO DONGU
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 kodun ne yapması gerek?
Portb'ye bağlı 8 tane ledin sağa sola doğru gidip gelmesi için yazdım bu kodu ancak;

ledler soldan sağa doğru sorunsuz bir şekilde yanıyor. Sağdan geldiği vakit ise 4. ledden 1. lede atlıyor. (1.2.3.4.5.6.7.8.7.6.5.4.1.2.3... şeklinde..)

Sizce bunun nedeni ne olabilir.. Ben kaldım öylece

mesmert

jadle arkadaşım senin yazdığın programda herhangi bir sorun yok ben isisde simüle ettim gayet normal çalışıyor ama ledler 1 kere mahsus sağa ve sola kayar ondan sonra bütün ledler söner taki program reset alana kadar ben aşağıya programda bazı değişikliler yaptım bunu bir dene istersen kolay gelsin
LIST P=16F84,
	__FUSES _CP_OFF&_PWRTE_OFF&_WDT_OFF&_XT_OSC
		 INCLUDE "P16F84.INC"
         ERRORLEVEL   -302    ;HATA KOMUTU


SAYAC1   EQU   h'0C' 
SAYAC2   EQU   h'0D' 

   
   	
   	BSF   	STATUS, 5 
  	CLRF   	TRISB 
   	BCF   	STATUS, 5 

	CLRF   	PORTB 
	BCF		STATUS,C
	CLRF	SAYAC1
	CLRF	SAYAC2

   	MOVLW   h'01' 
  	MOVWF   PORTB 
	
TEKRAR1 
   CALL   	GECIKME 
   RLF   	PORTB,1
   BTFSS   	STATUS,C 
   GOTO   	TEKRAR1 
TEKRAR2 
   CALL 	GECIKME 
   RRF   	PORTB,1
   BTFSS   	STATUS,C 
   GOTO 	TEKRAR2 
DONGU 
   GOTO 	TEKRAR1		;YENI ISLEM ICIN TEKRAR BASA GIT
 
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


LUTFEN CODE TAGINI KULLANALIM ! [/size]

mesmert

jadle arkadaşın gönderdiğin Ö.M. mesaja istinaden; isis programı ve türkçe kullanımı için forumda proteus kısmına bakarsan orda yeterli miktarda bilgi ve programın kendisi var program birkere mahsus olarak çalıştırmak için aşağıdaki kodu değiştirmen olacaktır.

DONGU
  GOTO    TEKRAR1      ;YENI ISLEM ICIN TEKRAR BASA GIT (goto tekrar 1 yerine goto dongü yazman yeterli olacaktır)




kolay gelsin