pic16f84 bit kaydırma problemi

Başlatan gevv, 21 Mart 2008, 11:40:39

gevv

programlamaya yeni başlayan bir arkadaşımın sorusudur :) foruma üye oldu fakat bir türlü aktivasyon mail gelmedi mecbur iş bana düştü :)

Sorunu

Alıntı Yappic 16f84 de porta  da ki biti kaydırdıktan sonra portb deki biti kaydırmasını istiyorum.
ama portanın 0. bitindeki bilgi portanın 4. bitine geldiginde kalıyor ve başka işlem yapmıyor
yardımcı olursanız sevinirim

LIST	P=16F84
	INCLUDE	"P16F84.INC"
SAYAC1	EQU	h'0C'
SAYAC2	EQU	h'0D'
	CLRF	PORTB
	BCF		STATUS,0
	BSF		STATUS,5
	MOVLW	h'00'
	MOVWF	TRISA
	CLRF	PORTB
	BCF	STATUS,5
START
	BSF	PORTA,0
TEST1
	CALL	GECIKME
	RLF	PORTA,F
	BTFSS	STATUS,0
	GOTO	TEST1
TEST2
	BSF	PORTB,0
TEST3
	CALL	GECIKME
	RLF	PORTB,F
	BTFSS	STATUS,0
	GOTO	TEST3
	GOTO	START

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

LIST P=16F84
INCLUDE "P16F84.INC"
SAYAC1 EQU H'20'
SAYAC2 EQU H'21'
CLRF PORTB
BANKSEL TRISB
CLRF TRISB
BANKSEL TRISA
CLRF TRISA
MOVLW B'00000001'
MOVWF PORTB
BASLA
	CALL GECIKME
	RLF PORTB,F
	BTFSS STATUS,0
	GOTO BASLA
PORT_A
	BCF STATUS,0
	MOVLW H'01'
	MOVWF PORTA
BASLA2	
	CALL GECIKME
	RLF PORTA,F
	BTFSS STATUS,0
	GOTO BASLA2
GECIKME
	MOVLW H'FF'
	MOVWF SAYAC1
DONGU
	MOVLW H'FF'
	MOVWF SAYAC2
DONGU1
	DECFSZ SAYAC2,F
	GOTO DONGU1
	DECFSZ SAYAC1,F
	GOTO DONGU
RETURN
END

Bu programı dene olması lazım olmazsa devresini ve hex dosyasını sana gönderirim

erdocan

malesef gönderdiğiniz kod olmadı hatta daha beter oldu
porta nın 0. biti yanıyor ve öyle kalıyor

XX_CİHAN_XX

LIST	P=16F84
	INCLUDE	"P16F84.INC"
	__CONFIG	_WDT_OFF & _XT_OSC & _PWRTE_OFF
SAYAC1   EQU   H'0C'
SAYAC2   EQU   H'0D'
SAYAC3   EQU   H'0E'
	ORG		0x00
	CLRF   PORTB 
	CLRF   PORTA
	BSF		STATUS,5
	CLRF	TRISA
	CLRF	TRISB
BASLA
	MOVLW	.1
	MOVWF	STATUS
	RLF		PORTA,F
	BCF		STATUS,C
	CALL	GECIKME
	BTFSS	PORTA,4	
	GOTO	$-4
	CLRF	PORTA	
	BSF		STATUS,C
	RLF		PORTB,F
	BCF		STATUS,C
	CALL	GECIKME
	BTFSS	PORTB,7
	GOTO	$-4
	CLRF	PORTB
	GOTO	BASLA
GECIKME
	MOVLW	0x02
	MOVWF	SAYAC1
L1
	MOVLW	0xFF
	MOVWF	SAYAC2
L2
	MOVLW	0xFF
	MOVWF	SAYAC3
L3
	DECFSZ	SAYAC3,F
	GOTO	L3
	DECFSZ	SAYAC2,F
	GOTO	L2
	DECFSZ	SAYAC1,F
	GOTO	L1
	RETURN
	END


İsiste denedim çalışıyor.
Porta,4 pinini eğer led yakıcaksan 1k gibi bir direnç ile vcc ye çek ledin artı ucunu direncsi olarak direk porta,4 e bağla.Bu pini direnc ile vcc ye çekmezsen bu pinden + çıkış alamazsın dolayısıyla oraya bağlı ledi yakamazsın...
Bu arada yönetici arkadaşlara duyurulur verdiğim kodları code tagına alamadım bir problem var...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

erdocan

teşekkürler cihan abi çalıştı  

birde az önceki cevabımı büyük harflerle bilerek yazmadım ilk defa forum kullanıyorum :) gevv abim sağolsun yavaş yavaş öğretiyor