;-------------------------------;
;	 DS Termostat v2	;
;-------------------------------;
;  1 a 15 teplotnch senzor	;
;	    DS18B20		;
;  extern/parazitn napjen	;
;-------------------------------;
;      rozsah -55 a +125C	;
;-------------------------------;
;	rozlien 0,1C		;
;   v psmu -9,9 a +99,9C	;
;   (okrajov rozlien 1C)	;
;-------------------------------;
;	   3 vstupy		;
; topen, chlazen, ERR senzor	;
;-------------------------------;
;)S(2012.02	  slovak@post.cz;
;-------------------------------;
;
;LED displej 3 msta, spolen anody.
;
;Tlatka, TlS(lev), TlM(stedn), TlP(prav).
;
;Animace: (po startu, resetu)
;Automatick pepnn teplot, nadpis(1,5s), teplota(5s).
;Jakkoliv tlatko ukon animaci, nsleduje run prochzen.
;
;Run prochzen menu:
;TlM/TlP Vbr poloky nahoru/dolu. Dren tlatka - rychl prochzen po nadpisech.
;TlS	 Nadpis prv zobrazovan hodnoty. Dren tlatka (2s) - nastaven mez, nebo pepnout z teploty na Animaci.
;
;Menu:
;[C1.]  nadpis - teplota 1.idla	(TlM skok na posledn poloku)
;[Hi.1.] nadpis - hodnota horn meze
;[Lo.1.] nadpis - hodnota doln meze
;  .
;  .
;  .
;[CF.]  nadpis - teplota 15.idla
;[Hi.F.] nadpis - hodnota horn meze
;[Lo.F.] nadpis - hodnota doln meze	(TlP skok na prvn poloku)
;Poet poloek menu se automaticky uprav podle potu vyhledanch DS senzor.
;sla senzor 10 a 15 jsou zobrazena v HEX tvaru.
;
;Chyba pi ten teploty: (Animace/Prochzen)
;[Er.x.] x=slo vadnho senzoru.
;
;Nastaven: (rozsah mez -55 a +125C krok 0,1 v okrajovm psmu krok 1)
;Vybrat poadovanou mez (TlP/TlM).
;TlS	 Dret (2s) hodnota zane blikat.
;TlP/TlM Upravit +/- (dren tlatka zrychl pitn/odetn).
;TlS	 Uloit hodnotu, nvrat k prochzen.
;
;Termostat:
;Kad senzor m sv nastaviteln meze, [Hi.x.] horn, [Lo.x.] doln.
;Horn mez mnus doln mez = hystereze.
;
;Vstup B4, topen:
;B4 = 1	 kdy alespo jedna teplota =< doln mez
;B4 = 0  kdy vechny teploty => horn meze
;
;Vstup A1, chlazen:
;A1 = 1  kdy alespo jedna teplota => horn mez
;A1 = 0  kdy vechny teploty =< doln meze
;
;vstup A3, ERROR senzor:
;A3 = 1 kdy nkter idlo m poruchu
;A3 = 0 kdy vechna (nalezen) idla pracuj
;
;Hledn DS obvod na 1-Wire sbrnici:
;Vybrat nkterou teplotu (TlP/TlM).
;TlS+TlM Start vyhledvn.
;[0.dS]	nalezenmu obvodu je piazeno slo 1 a 15 (0=dn senzor).
;Sriov kdy (prvnch 8 bit) DS obvod se ukldaj do EEPROM, od nejmenho po nejvt.
;Chyba pi vyhledvn:
;[E.00] nebyl nalezen dn DS obvod, vyhledvn se opakuje, blik [E.00].
;[E.02]	dva nebo nkolik DS obvod se stejnm kdem, vyhledvn se opakuje, blik [E.02]. Postupn odebrat obvody.
;Vyhledvn spustit jenom pi odebrn, pidn, vmna vadnho senzoru a po prvnm zapnut novho termostatu.
;
;Mikroprocesor PIC 16F88
;RB7 Katoda f
;RB6 Katoda a
;RB5 Anoda A1 (znak vlevo)
;RB4 vstup Topen
;RB3 vstup/vstup sbrnice 1-Wire
;RB2 Katoda e, TlS
;RB1 Katoda d, TlM (-)
;RB0 Katoda T, TlP (+)
;
;RA7 Anoda A3 (znak vpravo)
;RA6 Anoda A2 (znak stedn)
;RA5 vstup (nevyuito)
;RA4 Katoda g
;RA3 vstup ERROR senzor
;RA2 Katoda c
;RA1 vstup Chlazen
;RA0 Katoda b
;
;Napjen senzor DS18B20, extern/parazitn, oba zpsoby lze kombinovat
;Extern, 3 vodie, GND/1-wire/+5V
;/"""|-----3 +5V
;|DS |-----2 1-wire
;\___|-----1 GND
;
;Parazitn, 2 vodie, GND/1-wire
;/"""|-----3 GND
;|DS |-----2 1-wire
;\___|-----1 GND
;(poslen sbrnice pi CONVERT)
;
;--------------------------------

 LIST P=16F88, R=DEC, MM=ON	;Direktivy pekladae
 include<p16f88.inc>		;Definice nzv registr

;Nastaven konfigurace procesoru:
 __CONFIG _CONFIG1,_CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_ON & _MCLR_OFF & _PWRTE_ON & _WDT_ON & _INTRC_IO
 __CONFIG _CONFIG2,_IESO_OFF & _FCMEN_OFF
