		LIST P=16F84A, R=DEC
		INCLUDE<P16F84A.INC>
		__CONFIG _PWRTE_ON & _WDT_OFF & _XT_OSC & _CP_OFF

RAM	EQU		H'0C'		; definice 1. registru pameti pro 16F84A
TMP0	EQU		RAM+3		; registr pro cekaci smycku
TMP1	EQU		RAM+4		; registr pro cekaci smycku
TMP3	EQU		RAM+6		; registr pro ulozeni stavu portu B
TMP4	EQU		RAM+7		; registr pro ulozeni obsahu W

#DEFINE E		PORTB,4		; definice bitu Enable pro obsluhu LCD
#DEFINE RS		PORTB,5		; definice bitu RS pro obsluhu LCD

; inicializace displaye
	CALL CEK20MS		; cekani na pripraveny LCD
	MOVLW B'00110011'	; 4b mod, 2 radky, font 5x8
	CALL ZAPIS
	MOVLW B'00110010'	; 4b mod, 2 radky, font 5x8
	CALL ZAPIS
	MOVLW B'00101000'	; 4b mod, 2 radky, font 5x8
	CALL ZAPIS
	MOVLW B'00000001'	; smaze datovou pamet LCD a nastavi adresu na 1. znak 1. radku
	CALL ZAPIS
	MOVLW B'00001100'	; zapne LCD, vypne kurzor a blikani
	CALL ZAPIS
; konec inicializace displaye


ZAPIS	MOVWF TMP4			; ulozeni W do pomocneho registru TMP4
	MOVF PORTB,W		; ulozeni stavu portu B do registru W
	IORLW B'00001111'	; nahrazeni spodni poloviny jednickami, v horni jsou platna data
	MOVWF TMP3			; ulozeni horni poloviny portu B do TMP3, spodni nahrazena jednickami
	SWAPF TMP4,W		; nacteni puvodniho obsahu W a prohozeni horni a dolni poloviny
	IORLW B'11110000'	; nahrazeni horni poloviny W jednickami, ve spodni jsou platna data
	ANDWF TMP3,W		; slouceni horni a dolni poloviny se zachovanim platnosti obou
	MOVWF PORTB
	BSF E				; zapis dat do LCD
	BCF E
	CALL CEK2MS
	MOVF TMP4,W			; nacteni puvodniho obsahu W
	IORLW B'11110000'	; nahrazeni horni poloviny W jednickami, ve spodni jsou platna data
	ANDWF TMP3,W		; slouceni horni a dolni poloviny se zachovanim platnosti obou
	MOVWF PORTB
	BSF E				; zapis dat do LCD
	BCF E
        CALL CEK2MS
	RETURN

CEK2MS	MOVLW H'36'
        MOVWF TMP1
        MOVLW H'0B'
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
	RETURN

CEK20MS	MOVLW H'20'
        MOVWF TMP1
        MOVLW H'CF'
        MOVWF TMP0
        DECFSZ TMP0,F
        GOTO $-1
        DECFSZ TMP1,F
        GOTO $-5
	RETURN