Klávesnice

Z MAM wiki

Přejít na: navigace, hledání

[editovat] druhá verze

	
;	ovládání klávesnice
	
	.EQU DDRC = $07
	.EQU PORTC = $08
	.EQU PINC = $09	
	
	.EQU DDRD = $0A
	.EQU PORTD = $0B
	.EQU PIND = $0C
	

	.EQU LED = 1; PC1
	.EQU CA = 2;
	.EQU CB = 3;
	.EQU CC = 4;
	.EQU CD = 5;

	.EQU RA = 0;
	.EQU RB = 1;
	.EQU RC = 2;
	.EQU RD = 3;
	
	; set input/output
	; key OUT	
	CBI DDRC, CA;
	CBI DDRC, CB;
	CBI DDRC, CC;
	CBI DDRC, CD;
	; key IN
	SBI DDRD, RA;
	SBI DDRD, RB;
	SBI DDRD, RC;
	SBI DDRD, RD; 

TURNDOWN:
	; set rows into 0	
	CBI PORTC, RA;
	CBI PORTC, RB;
	CBI PORTC, RC;
	CBI PORTC, RD;
	; set cols into 0
	CBI PORTD, CA;
	CBI PORTD, CB;
	CBI PORTD, CC;
	CBI PORTD, CD;

CHECKROWS:
	SBI PORTC, RA
	CALL CHECKCOLS
	CBI PORTC, RA
	; posledni radek - znovu
	CALL CHECKROWS;

CHECKCOLS:

	SBIC PIND, CA
	RJMP CLICK
	SBIC PIND, CB
	RJMP CLICK
	SBIC PIND, CC
	RJMP CLICK
	SBIC PIND, CD
	RJMP CLICK
	RET; RJMP CHECKROWS ; vratit se do CheckRows

CLICK:
	CALL SUNSHINE
	RJMP CHECKROWS ; vratit se do CheckCols (pro ostatni klavesy)



	
SUNSHINE :
	SBI PORTC, LED;
	RET

[editovat] první verze

	
;	ovládání klávesnice
	
	.EQU DDRC = $07
	.EQU PORTC = $08
	.EQU PINC = $09	
	
	.EQU DDRD = $0A
	.EQU PORTD = $0B
	.EQU PIND = $0C
	

	.EQU LED = 1; PC1
	.EQU CA = 2;
	.EQU CB = 3;
	.EQU CC = 4;
	.EQU CD = 5;

	.EQU RA = 0;
	.EQU RB = 1;
	.EQU RC = 2;
	.EQU RD = 3;
	
	; set input/output
	; key OUT	
	SBI DDRC, CA;
	SBI DDRC, CB;
	SBI DDRC, CC;
	SBI DDRC, CD;
	; key IN
	CBI DDRD, RA;
	CBI DDRD, RB;
	CBI DDRD, RC;
	CBI DDRD, RD; 

TURNDOWN:
	; set rows into 1	
	SBI PORTC, RA;
	SBI PORTC, RB;
	SBI PORTC, RC;
	SBI PORTC, RD;
	; set cols into 0
	CBI PORTD, CA;
	CBI PORTD, CB;
	CBI PORTD, CC;
	CBI PORTD, CD;

	RJMP CHECKCOLS;

CHECKROWS:
	SBIS PIND, CA;
	RJMP CLICK

	SBIS PIND, CB;
	RJMP CLICK

	SBIS PIND, CC;
	RJMP CLICK

	SBIS PIND, CD;
	RJMP CLICK
	RJMP CHECKROWS

CHECKCOLS:
	CBI PORTC, RA;
	RJMP CHECKROWS;
	SBI PORTC, RA;	

	CBI PORTC, RB;
	RJMP CHECKROWS;
	SBI PORTC, RA;	

	CBI PORTC, RC;
	RJMP CHECKROWS;
	SBI PORTC, RC;	

	CBI PORTC, RD;
	RJMP CHECKROWS;
	SBI PORTC, RD;	

CLICK:
	
	SBIS PINC, RA;
	RET
	SBIS PIND, CA;
	RET
	RJMP SUNSHINE
	RET
	
SUNSHINE :
	SBI PORTC, LED;
	RET

Osobní nástroje