PIC16F84A maticova klavesnice

nene to tam je schvalne ze by to zaplo vsechny nebo vyplo vsechny…

	LIST P=16F684A, R=DEC
	INCLUDE<P16F84A.INC>

	__CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_OFF & _XT_OSC

;- Proměnné ----------------------------------------------------
c1      EQU     h'12'              ;proměnné pro cykly
c2      EQU     h'13'
PA		equ		h'14'
PB		EQU		h'15'
	
		org 	0

		BSF     STATUS,RP0
		movlw 	b'00101111'	; portb(0) vstup 
		movwf 	TRISB 		
		clrf 	TRISA 		; porta jako výstupy 
		BCF     STATUS,RP0
	
		CLRF	PORTA
		CLRF    PORTB
		CLRF	PA

keyboard 
				
        BSF     PORTB,7            ; testovani 1 a posledniho sloupce   
	BTFSC   PORTB,5            ; tlačítko 1
        BSF	  PORTA,3 
        BTFSC   PORTB,1            ; tlačitko 6
        BCF	  PORTA,3 
        BTFSC   PORTB,2            ; tlacitko F
        CALL	zapni
        BTFSC   PORTB,3            ; tlačítko S
        CALL	vypni
	BCF	PORTB,7

CALL cekej
		
        BSF      PORTB,6           ; testovani 2 a 4 sloupecek  
	BTFSC    PORTB,5           ; tlačítko 2
        BSF	 PA,4
        BTFSC    PORTB,1           ; tlačitko 7
        BCF	 PA,4 
        BTFSC    PORTB,2           ; tlacitko 4
        BSF	 PORTA,1
        BTFSC    PORTB,3           ; tlačítko 9
        BCF	 PORTA,1
        BCF      PORTB,6 	
	
CALL cekej
	
    	BSF      PORTB,4            ; testovani 3 a 5 sloupecek  
	BTFSC    PORTB,5            ; tlačítko 3
        BSF	 PORTA,2
        BTFSC    PORTB,1            ; tlačitko 8
        BCF	 PORTA,2
        BTFSC    PORTB,2            ; tlacitko 5
        BSF	 PORTA,0
        BTFSC    PORTB,3            ; tlačítko 0
        BCF	 PORTA,0
        BCF      PORTB,4
	
CALL cekej

		BTFSC PA,4
		GOTO hihi
		BCF PORTA,4
		GOTO hoho

hihi 	BSF	PORTA,4
hoho 	GOTO    keyboard


;- podprogramy -------------------------------------------------
zapni	MOVLW   b'11111111'
		MOVWF   PORTA
		BSF		PA,4
		RETURN
 
vypni	BCF PA,4
		CLRF PORTA
		RETURN
 	
cekej    MOVLW    50                 
         MOVWF    c2                
wait2    MOVLW    100
         MOVWF    c1
wait1    DECFSZ   c1,1
         GOTO     wait1
         DECFSZ   c2,1
         GOTO     wait2
         RETURN                  
	END

Tak jsem to sesmolil takhle… neni to dokonaly ale uz to trochu funguje, pouzil jsem tam jeste registr, ale jakmile zapnu RA4 a macknu na jine tlacitko na zapnuti jineho vystupu tak mi ledka na RA4 blika (podle toho jak mam nastaveny to zpozdeni) a kdyz macknu 1 (PORTB,5) tak blika ledka strasne rychle ze sotva svítí. Pri ostatnich sviti hodne a blika pri tlacitku 1 nesviti skoro vubec. Nenapada vas neco? [/code]