;PROGRAM-13) COMF komutunun çalışmasına örnek program. PortB’deki 
;LED’leri dönüşümlü olarak ilk önce ilk dört bit’indeki, 
;sonra da son dört bit’indeki LED’leri yakar.

;===PROG13.ASM====16/05/2005===========================
	LIST	P=16F628A
	INCLUDE	"P16F628A.INC"
	__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _BODEN_OFF & _LVP_OFF & _DATA_CP_OFF & _CP_OFF
;----------------------------------------------------------
SAYAC1	EQU	H'20'		;SAYAC1 saklayıcısının adresi
SAYAC2	EQU	H'21'		;SAYAC2 saklayıcısının adresi
	CLRF	PORTB		;PortB'yi sıfırla
	BANKSEL 	TRISB		;BANK1'e geç
	CLRF	TRISB		;PortB'nin tüm uçları çıkış
	BANKSEL 	PORTB		;BANK0'a geç
BASLA
	MOVLW	h'0F'		;b’00001111’ sayısını W’ye yükle
	MOVWF	PORTB		;W saklayıcısını PortB’ye yükle
TERSLE
	COMF	PORTB, F		;PortB'deki veriyi tersle
	CALL	GECIKME		;Gecikme yap
	GOTO	TERSLE	
GECIKME					;Gecikme alt programı
	MOVLW	h'FF'
	MOVWF	SAYAC1
DONGU1
	MOVLW	h'FF'
	MOVWF	SAYAC2
DONGU2
	DECFSZ	SAYAC2, F
	GOTO	DONGU2
	DECFSZ	SAYAC1, F
	GOTO	DONGU1
	RETURN
	END
;-------------------------------------------------------
