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