;PROGRAM-27) TMR0 sayıcısının sinyal kaynağı olarak harici 
;dijital sinyal (RA4/T0CKI ucu) kullanılmasına örnek program. 
;Ayrıca TMR0'ın okunabilme ve sinyal sayıcı olarak kullanılabilme 
;özelliğini de gösterir. Program, PORTA'nın 4. bit'ine bağlı 
;olan butona (RA4) basıldığında PORTB'deki LED'lerde binary 
;olarak artan sayıları gösterir. LED’lerin gösterdiği sayı 31’e 
;ulaştıktan sonra bir daha butona basınca TMR0 saklayıcısını 
;sıfırlar ve saymaya 0'dan itibaren tekrar başlatır.

;===PROG27.ASM====27/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
;-----------------------------------------------------------
	ORG		h'00'	;Program kodlarının başlangıç adresi
	BANKSEL	TRISB		;BANK1'e geç 
	CLRF		TRISB		;PORTB'nin uçlarını çıkış yap
	MOVLW	b'00111000'	; T0CS=1, TOSE=1, PSA=1
	MOVWF	OPTION_REG	; OPTION saklayıcısına yaz.
	BANKSEL	PORTB		;BANK0’a geç
BASLA
	CLRF		PORTB		;PORTB'ye bağlı LED'leri söndür
	CLRF		TMR0			; TMR0 sayıcısını sıfırla
DONGU
	MOVF		TMR0, W		; W ? TMR0
	MOVWF	PORTB		; PORTB ? W
	BTFSC	TMR0, 5		; TMR0 5. bit "0" mı?
	CLRF		TMR0			; Hayır, TMR0'ı sıfırla
	GOTO		DONGU		; Evet, tekrar test et
	END
;-----------------------------------------------------------
