Simülasyonda Problem Yaşayan Başkaları da Var Mı?

R.K.

Üye
Katılım
5 Haz 2008
Mesajlar
10
Puanları
1
Yaş
44
Hepinize kolay gelsin arkaşlar. MPLAB ile hazırladığım kodlarımı Proteus'da simüle edemiyorum veya bir yanlışlık yapıyorum. Çünkü sonucu programa göre hatalı alıyorum. İşin ilginç tarafı ise tek butona basarak çalıştırdığım iş yaptırdığım programlarda sorun yok. Amacıma gelince şöyle özetleyeyim. PORTA çıkış, PORTB giriş olarak tanımlı. PORTB'nın ilk üç portunda butonlar bağlı. RB0, RB1 ve RB2 basılı ise programın istediğimi yapmasını istiyorum. Bunun içinde byte karşılaştırma yapıyorum. W'ye h'07' sayısını yükleyip bunu PORTA ile XORWF işlemine sokuyorum. Bölümün başındaki "PİC ÖĞRENİYORUM" kitabında da bahsettiği gibi byte karşılaştırma için XORWF komutu kullanılıyor. Fakat bir türlü bu komutla işlem yapamadım. Yani karşılaştırılan bytelar aynı ise STATUS,2 "1" olması lazım. Kodlar aşağıda. Bilen arkaşların bir inceleyip yorumlarını bekliyorum. Bu arada byte karşılaştırma için önerecekleri bir yöntem varsa yazarlarsa sevinirim.

Kod:
			LIST	P=16F84
		INCLUDE	"P16F84.INC"
		ORG		h'00'
		GOTO	BASLA
		CLRF	PORTA
BASLA	BSF		STATUS,5
		CLRF	TRISA
		MOVLW	h'FF'
		MOVWF	TRISB
		BCF		STATUS,5
		CLRF	PORTA
		CLRW
BUT_KONT
		BTFSS	PORTB,1
		GOTO	BUT_KONT
		MOVLW	h'07'
		ANDWF	PORTB,W
		BTFSS	STATUS,2
		GOTO	BUT_KONT
		MOVLW	h'FF'
		MOVWF	PORTA
DUR		
		GOTO	DUR		
		END
 
Pardon arkadaşlar en son ANDWF ile denemiştim o kalmış orda. ANDWF yerine XORWF olacak. Proteus kullanan başka arkdaşlarda deneyip sonucu bizimle paylaşırsa sevinirim.
 
butonlara basıldığında portlara ne görüyor, vdd mi gnd mi? Ayrıca butonlara basılmadığında portların durumu nedir?
 
Butonlara basılmıyorken bir direnç ile GND'ye bağlı butonlar. Butona basıldığında Vdd oluyor. ORda sorun yok arkadaşlar. Çünkü butona basılmasıyla başka işlemler yapmak istediğimde sorunsuz yapıyorum. Ama şu XORWF komutunda ise takıldım. PORTB ile bir register içeriğini XORWF yaptığımda aynı olmalarına rağmen STATUS,2 hiç 1 olmuyor :(((
 
protesus da topraklama ile ilgili sorun yaşıyorum...örneğin transistör üzrinden toprağa akım gitmiyo...butonları aktif kullanamıyorum programda yerine koysamda..böle bi problemle karşılaşan varmı..arkadaşım sana gelince kodlamalarda aralara boşluk bırakırsan belki faydalı olabilir..bilmiyorum birleşik veya ayrı yazılmasının etkisi varmı ama bide öyle dene..ben ayrı yazıorum çalışıyo...programdada bi ayrı register kullansan ..örneğin say gibi...movf say,w ve xorwf h'07' desen deişebilir sonuç...karşılaştırma sağlam çalışıyo
 

Forum istatistikleri

Konular
129,515
Mesajlar
927,519
Kullanıcılar
452,094
Son üye
fatihis0

Çevrimiçi üyeler

Geri
Üst