;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		
		BSF	STATUS,RP0		; Banka 1
		MOVLW	0x07
		MOVWF	TRISA			; Nastavenie I/O
		MOVLW	0x01
		MOVWF	TRISC
		BCF	STATUS,RP0		; Banka 0
		
		clrf	PORTA
		clrf	PORTC

Program	
		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
				
