;Program: zapojenie maticovej klávesnice a vyhodnocovanie stlačeného tlačítka na LEDke (počet bliknutí)
;X1- RA5
;X2- RA4
;X3- RA3
;Y1- RA0
;Y2- RA1
;Y3- RA2
;Y4- RC0
;Použitá klávesnica:ECO 12 150 06


#include <p16F690.inc>
    __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)

Delay1	equ	20h
Delay2	equ	21h
CISLO	equ	22h

org 0


GOTO Start



PODPROGRAM	clrf	Delay1			; Čakať
			clrf	Delay2
Delay:		INCFSZ	Delay1,1
			GOTO	Delay
			INCFSZ	Delay2,1
			GOTO	Delay
			RETURN


Start:		
		
			MOVLW	0
			BSF		STATUS,RP0		; Banka 1
			MOVLW	0x07
			MOVWF	TRISA			; Nastavenie I/O
			MOVLW	0x01
			MOVWF	TRISC
			BCF		STATUS,RP0		; Banka 0


Program:	clrf	PORTA
			clrf	PORTC
			MOVLW	0

			

			BSF		PORTA,5
			BTFSC	PORTA,0
			MOVLW	1
			BTFSC	PORTA,1
			MOVLW	4
			BTFSC	PORTA,2
			MOVLW	7
			BTFSC	PORTC,0
			MOVLW	10
			BCF		PORTA,5

			BSF		PORTA,4
			BTFSC	PORTA,0
			MOVLW	2
			BTFSC	PORTA,1
			MOVLW	5
			BTFSC	PORTA,2
			MOVLW	8
			BTFSC	PORTC,0
			MOVLW	10
			BCF		PORTA,4

			BSF		PORTA,3
			BTFSC	PORTA,0
			MOVLW	3
			BTFSC	PORTA,1
			MOVLW	6
			BTFSC	PORTA,2
			MOVLW	9
			BTFSC	PORTC,0
			MOVLW	10
			BCF		PORTA,3

			MOVWF	CISLO
	

Zero:	
			BTFSC	CISLO,0
			GOTO	Blik
			BTFSC	CISLO,1
			GOTO	Blik
			BTFSC	CISLO,2
			GOTO	Blik
			BTFSC	CISLO,3
			GOTO	Blik
			GOTO	Program	

Blik:		BSF		PORTC,1
			CALL	PODPROGRAM
			BCF		PORTC,1
			CALL	PODPROGRAM
			DECFSZ	CISLO,1
			GOTO	Blik
			GOTO	Program
			end
				
