; Elektronicka kostka nejen pro hru Clovece nezlob se
;
; http://panda.unas.cz/elektronika/pic_clovece.htm
;
; Na RA0 je proti plusu tlacitko START a na portu B jsou LED.
; Po stisku tlacitka START se rozsviti vsechny LED
; a procesor "micha" jednotliva cisla.
; Po uvolneni se aktualni hodnota zapise na PORT B.
;
; Zdenek Novotny			http://panda.unas.cz


	LIST P=16F84, R=DEC	; typ procesoru a numericka dekadicka soustava
	INCLUDE<P16F84.INC>	; vzorovy soubor s prikazy pro prekladac (je soucasti prekladace ASM/HEX)

				; Vsechny zde pouzivane registry maji jiz sve oznaceni
				; a neni je treba zde nastavovat. Napr.: PORTA, PORTB, STATUS ...
	__config _RC_OSC & _PWRTE_ON & _WDT_OFF & _CP_OFF


	BSF	STATUS,RP0	; vyber v registrech BANKU 1
	MOVLW	B'00000001'	; do W zapis tuto hodnotu
	MOVWF	TRISA		; hodnotu z W zapis do TRISA a tim nastav prvni vyvod na IN
	CLRF	TRISB		; do TRISB zapis same 0 a tim cely PORTB nastav jako OUT
	BCF	STATUS,5	; vyber zpet BANKU 0
	MOVLW	B'00001000'	; toto cislo uloz do W
	MOVWF	PORTB		; W do PORTB

START	BTFSS	PORTA,0		; ceka na stisk tlacitka START na vyvodu RA0
	GOTO	START		; pokud je stisknuto, tento prikaz se preskoci jinak zpet
	MOVLW	B'00001111'	; binarni cislo do W
	MOVWF	PORTB		; W do PORTB - rozsviti se vsechny LED

MICH	MOVLW	B'00001000'	; do W hodnotu pro prvni cislo
	BTFSS	PORTA,0		; je-li jeste stisknuto tlacitko, nasledujici radek se vynecha
	GOTO	ZOBRAZ		; presun na ZOBRAZ

	MOVLW	B'00000100'	; a znova pro dalsi cislo
	BTFSS	PORTA,0
	GOTO	ZOBRAZ

	MOVLW	B'00001100'
	BTFSS	PORTA,0
	GOTO	ZOBRAZ

	MOVLW	B'00000101'
	BTFSS	PORTA,0
	GOTO	ZOBRAZ

	MOVLW	B'00001101'
	BTFSS	PORTA,0
	GOTO	ZOBRAZ

	MOVLW	B'00000111'
	BTFSS	PORTA,0
	GOTO	ZOBRAZ
	GOTO	MICH		; a znovu michat

ZOBRAZ	MOVWF	PORTB		; hodnotu z W zapis na PORTB
	GOTO	START		; presun na START

	END