									Propeller Clock Base 2.0E

				( 16F628(A), 16F648A illetve 18F87, 16F88 kontrollerrel felptettekhez )


	!!!! Figyelem:  Nem kompatibilis az eddig feltlttt vltozatokkal !!!!



A klnbsg: 
  - Az infra LED -et az RB0 vonalon, a 6. lbon vezrli.

Opci:
  - Az RA0 s az RA1 vonalakon keresztl a PCF8583 tpus I2C buszos RTC-t kezelse.
	Beptse ersen ajnlott, az adatok ramkimaradskor nem vesznek el. 
	(A bzis az RTC beptse nlkl is mkdkpes.)

Bvtsek:

  - A dtum s az id szmtsa a ht napjval kiegsztve.
  - RS232 kommunikci PC soros vonalval (COMx).
  - breszsi funkci:
      - 20/40 egymstl fggetlen idpont kezelse:
	  - az breszts ideje (ra, perc, a ht mely napjain trtnjen) a soros vonalon llthat be.
	  - breszts hangjelzssel, a propeller ra bekapcsolsval.
	  - hangjelzs kikapcsolsa tvirnytval s nyomgombbal.
	  - rel kimenet bekapcsolsa maximum 127 percig.
  - rats egy/ az rnak megfelel szm hangjelzssel, bellthat csendes idszakkal.
  - Az id s az bresztsi adatok trolsa a PCF8583 RTC-ben.
  - Rel kimenet vezrlse a soros vonalon s a tvirnytn keresztl:
 	  - automatikus kikapcsols max. 255 perc mlva.
	  (pl.: 220V-os berendezs kapcsolsra).
  - A propeller ra automatikus kikapcsolsa bellthat idvel.
  - A propeller ra bekapcsolsa nyomgombbal.
  - Kln LED az id adatok megsrlsnek kijelzsre.
  - A szmtott id automatikus frisstse az RTC-bl jflkor (letilthat).
  - A traf PWM vezrlsi paramterek automatikus trolsa az RTC-ben.


Tovbbi bvtsi lehetsg:
  - I2C busz tovbbi bvtsekhez (5V-os):
    pl: LCD kijelz, hanglejtsz (bresztskor s ratskor dallam lejtszsa, szveg bemondsa)
		Analg benemetek kezelse: Hmrsklet, pratartalom mrse, hatrrtk tllps figyelse...
		Tovbbi digitlis be/kimemet kezelse: Nyomgombok, LED-ek kezelse, riaszt funkcik, tbb fogyaszt kapcsolsa...
  - A bzis program kiegszthet I2C buszos LCD kezelsvel - nincs mg megvalstva.
	Ebben az esetben a kt (hrom) nyomgomb segtsgvel a dtum, id, bresztsi adatok
    PC nlkl is bellthatk (lennnek).


Hasznlat:

  - Bekapcsols utn, ha az idt nem sikerlt kiolvasni az RTC-bl,
  		az ra 01-01-01 12:00:00 -tl kezdi az id szmtst (a ht napja 1),
		a hiba LED (RB7) 1 Hz temmel villog az id belltsig.

  - Az dtum, id, bresztsi adatok, a mkdsi paramterek a soros vonalon keresztl llthatk be.
	Az v, hnap, nap, ra, perc s msodperc adatokat a knnyebb olvashatsg rdekben BCD formban kell megadni. 

Felhasznlhat mikrokontrollerek (Csak 20MHz-s verzik):

	16F628, 16F628A, 16F648A		- 20 fggetlen breszsi lehetsg
	16F87, 16F88					- 40 fggetlen breszsi lehetsg


A fordtshoz szksges llomnyok:
 - base.asm      	- a program,
 - key.asm			- Tvirnyt cm s parancskdok lersa
 						Az j funkciknak j parancs szimblumokat tartalmaz.
 						A rgi parancsok is sziblikus nevet kaptak a knnyebb vltoztatsi lehetsgrt.
 						Az egyni ignyekhez t lehet rni a parancsok kdjt.
 
Megjegyzs:

	- A hangjelzs kimenetre oszcilltort tartalmaz csipog kthet.
	- A hangjelzs fnyjelzssel is kiegszithet a csipogval prhuzamosan kttt LED segtsgvel.
	- A bekapcsolt rel kimenet kijelezhet a relvel prhuzamosan kttt LED segtsgvel.
	- A hangjelzs nyomgomb bemenet egybb ramkrk (taps, rkiabls rzkel aktv alacsony) kimenett is tudja fogadni.

tletek:

	- Hosszabb idej rel bekapcsolst rhetnk el, ha a kikapcsolsi id alatt jabb relt bekapcsol bresztst lltunk be.
	- Amennyiben az breszts belltsakor 0 perces rel bekapcsolst lltunk be, a rel az bresztkor kikapcsol.
	- Tbb letr bellts bresztst is meg lehet adni azonos idpontra, ellenttes vezrls megadsakor a magasabb sorszm
       ltal elrt vezrls lesz rvnyes.


========================================================================================================================

Parancs lers

 	- A parancsok mindig kisbets parancskddal kezddnek, a vlaszok a parancsnak megfelel nagybetvel.
	- A paramcsok vgn kocsivissza(0x0a), soremels(0x0d) karakterek kldhetk.
	- A vlaszok  vgn kocsivissza(0x0a), soremels(0x0d) karaktereket kld a program.
	- A parancsok s a vlaszok paramterei az olvashatsg rdekben ASCII karakterek (egy paramter kt karakter).
		A hexadecimlis paramterek megadsakor kis betket hasznljunk, a vlaszokban is kis betk szerepelnek.
		(A parancskdok s a paramterek gy jl elklnlnek.)
	- A dtum, az id paramtereket, az breszsi paramter sorszmt BCD formban kell megadni, a vlasz is BCD formtum.  
		(A knnyebb olvashatsg rdekben)
	- az ' karakterek csak a parancsok, vlaszok kezdetnek, vgnek jelzsre szolglnak
		 - nem kell elkldeni, nem rszei a vlaszoknak.
	- a '<' s '>' kz rt szveg egy paramter kt karakterrel megadva.

	- A tovbbi parancsok a fejlesztsre fenntartva, csak az itt felsoroltakat hasznljuk.



	Parancsok s paramtereik								; Vlasz s paramterei

	- infra RC5 parancs informcii
		(RC5 parancs vtelnek hatsra)					; A<a_parancs_cm_informcija:hex><a_parancs_parancskd_informcija:hex>

	- RC5 parancs vgrehajtsa 
		a<a_parancs_cm_informcija:hex><a_parancs_parancskd_informcija:hex>; A<a_parancs_cm_informcija:hex><a_parancs_parancskd_informcija:hex>

		Plda:  Standby parancs
		'a1d0c'												; Vlasz 'A1d0c'

		Megjegyzs: 	a cm csak 5 bites (0x00...0x1F).
						a parancskd 7. bitje az gynevezett Toggle bit.
		

	- Dtum belltsa
		b<v:bcd><hnap:bcd><nap:bcd><ht_napja:bcd>		; B<v:bcd><hnap:bcd><nap:bcd><ht_napja:bcd>

		ahol		v=00..99, hnap=01..12, nap=01..(28,29,30,31) a hnapnak megfelelen

		Plda:	2009.pr.20. vasrnap belltsa
		 'b09042007'										; Vlasz 'B09042007'

	!! Figyelem: Hibs dtum vagy id megadsa esetn az RTC idszmtsa lellhat !!

	- Msodperc trlse
		c													; C<ra:bcd><perc:bcd><msodperc:bcd>
		ahol		ra=00..23, perc=00..59, msodperc=00..59


		Plda: 'c'											; Vlasz 'C073000'


	- Dtum lekrdezse
		d													; D<v:bcd><hnap:bcd><nap:bcd><ht_napja:bcd>

		ahol		v=00..99, hnap=01..12, nap=01..(28,29,30,31) a hnapnak megfelelen

		Plda:	'd'											; Vlasz 'B09042007'


	- zemmd belltsa
		g<zemmd:hex>										; G<zemmd:hex>
	
		ahol		zemmd - 	7. bit : Automatikus frissts engedlyezse 	(jflkor az id kiolvassa az RTC-bl)
								4. bit : rats mdja                          (Ha 1, akkor annyi hangjelzs ahny ra van, ha 0, akkor csak 1)
								3. bit : rats engedlyezse
								2. bit : Mly alvs engedlyezse 				(Alvsi mdban nem tpllja a traft)
								1. bit : Felleds fut llapotban				(Tp bekapcsolsa utn aktv llapot)
								0. bit : Automatikus kikapcsols engedlyezse	(A propeller automatius kikapcsolsa)

		Plda: 'g01'										; Vlasz 'G01'

	- zemmd lekrdezse
		h													; H<zemmd:hex>

		ahol		zemmd - 	7. bit : Automatikus frissts engedlyezse 	(jflkor az id kiolvassa az RTC-bl)
								4. bit : rats mdja                          (Ha 1, akkor annyi hangjelzs ahny ra van, ha 0, akkor csak 1)
								3. bit : rats engedlyezse
								2. bit : Mly alvs engedlyezse 				(Alvsi mdban nem tpllja a traft)
								1. bit : Felleds fut llapotban				(Tp bekapcsolsa utn aktv llapot)
								0. bit : Automatikus kikapcsols engedlyezse	(A propeller automatius kikapcsolsa)

		Plda: 'h'											; Vlasz 'H01'


	- Automatikus kikapcsols idejnek belltsa
		i<aki_magas:hex><aki_alacsony:hex>					; I<aki_magas:hex><aki_alacsony:hex>

		ahol		aki_magas   = a kikapcsolsi id magas    helyirtk bjtja
					aki_alacsony= a kikapcsolsi id alacsony helyirtk bjtja

				A kikapcsolsi id msodpercben rtend.

		Plda:	'i0e10'										; Vlasz 'I0e10'

	- Automatikus kikapcsols idejnek lekrdezse
		j													; J<aki_magas:hex><aki_alacsony:hex>

		ahol		aki_magas   = a kikapcsolsi id magas    helyirtk bjtja
					aki_alacsony= a kikapcsolsi id alacsony helyirtk bjtja

				A kikapcsolsi id msodpercben rtend.

		Plda:	'j'											; Vlasz 'J0e10'

	- bresztsi idpont belltsa
		k<index:bcd><nap_info:hex><ra:bcd><perc:bcd><tpus:hex> ; K<index:bcd><nap_info:hex><ra:bcd><perc:bcd><tpus:hex>

		ahol		index	= a belltand breszts sorszma (16F628(A) s 16F648A esetn 0..19, 16F87 s 16F88 esetn 00..39)
					nap_info -	7. bit : engedlyezs
								6. bit : engedlyezs a ht 7. napjn
								5. bit : engedlyezs a ht 6. napjn
								4. bit : engedlyezs a ht 5. napjn
								3. bit : engedlyezs a ht 4. napjn
								2. bit : engedlyezs a ht 3. napjn
								1. bit : engedlyezs a ht 2. napjn
								0. bit : engedlyezs a ht 1. napjn

					ra		= a belltand idpont ra adata - 32 megadsa esetn az ra egyezst nem figyeli a program
					perc	= a belltand idpont perc adata
					tpus	 -	7. bit : 1 - hangjelzs s a propeller bekapcsolsa
									6 bit : propeller bekapcsolsa
									5 bit : propeller kikapcsolsa
									4 bit : hangjelzs engedlyezse

								7. bit : 0 - rel kimenet bekapcsolsa
									6..0 bit : a rel kimenet bekapcsolsi ideje percben


		Plda:
			breszts hangjelzssel minden nap 7:50 -re
			'k01ff075010'								; Vlasz 'K01ff075010'

			breszts hangjelzssel s propeller bekapcsolssal minden nap 7:50 -re
			'k01ff075050'								; Vlasz 'K01ff075050'

			Rel bekapcsols minden nap 7:50-kor 64 percre
 			'k01ff0750C0'								; Vlasz 'K01ff0750c0'

		Megjegyzs: Amennyiben a rel bekapcsolsi ideje alatt jabb rel kimenetet llt breszts trtnik,
					a visszamarad bekapcsolsi id az jabb bresztsben megadott id lesz. 

	- bresztsi idpont lekrdezse
		l<index:bcd>									; L<index:bcd><nap_info:hex><ra:bcd><perc:bcd><tpus:hex>

		ahol		index	= a belltand breszts sorszma (16F628(A) s 16F648A esetn 0..19, 16F87 s 16F88 esetn 00..39)
					nap_info -	7. bit : engedlyezs
								6. bit : engedlyezs a ht 7. napjn
								5. bit : engedlyezs a ht 6. napjn
								4. bit : engedlyezs a ht 5. napjn
								3. bit : engedlyezs a ht 4. napjn
								2. bit : engedlyezs a ht 3. napjn
								1. bit : engedlyezs a ht 2. napjn
								0. bit : engedlyezs a ht 1. napjn

					ra		= a belltand idpont ra adata - 32 megadsa esetn az ra egyezst nem figyeli a program
					perc	= a belltand idpont perc adata
					tpus	 -	7. bit : 1 - hangjelzs s a propeller bekapcsolsa
									6 bit : propeller bekapcsolsa
									5 bit : propeller kikapcsolsa
									4 bit : hangjelzs engedlyezse

								7. bit : 0 - rel kimenet bekapcsolsa
									6..0 bit : a rel kimenet bekapcsolsi ideje, 0 rtk kikapcsolst jelent

		Plda:
			'l01'										; Vlasz 'L01ff075010'
			breszts hangjelzssel minden nap 7:50 -re


	- PWM paramterek belltsa
		m<pulzus_fut:hex><peridus_fut:hex><pulzus_alv:hex><peridus_alv:hex> ; M<pulzus_fut:hex><peridus_fut:hex><pulzus_alv:hex><peridus_alv:hex><CCPR1L:hex><PR2:hex>

		ahol
					pulzus_fut		= a fut llapothoz tartoz pulzus szlessg
					peridus_fut	= a fut llapothoz tartoz peridus
					pulzus_alv		= a alv llapothoz tartoz pulzus szlessg
					peridus_alv	= a alv llapothoz tartoz peridus
					CCPR1L          = az aktulis pulzus szlessg
					PR2             = az aktulis peridus

		Plda: 'm283d0c3d'								; Vlasz 'M283d0c3d0c3d'

	!!!!  Figyelem: A PWM adatok mdostsa a traf vezrlsnek finom belltsra szolglnak.

		  -------------------------------------------------------------------------------------
		  Hibs bellts a tekercs	nemkvnatos felmelegedshez, tz keletkezshez vezethet.
		  -------------------------------------------------------------------------------------

		  - Nem clszer a pulzus hosszat a peridus rtk kb. 80%-nl nagyobbra megadni.
		  - Mindenkpen rossz, ha a pulzus hossza elri vagy meghaladja a peridus rtkt:
			  ezekben az esetekben a tekercsen llandan ram folyik, nem szaggatja meg a PWM kimenet !!!!


	- PWM paramterek lekrdezse
		n												; M<pulzus_fut:hex><peridus_fut:hex><pulzus_alv:hex><peridus_alv:hex><CCPR1L:hex><PR2:hex>

		ahol
					pulzus_fut		= a fut llapothoz tartoz pulzus szlessg
					peridus_fut	= a fut llapothoz tartoz peridus
					pulzus_alv		= a alv llapothoz tartoz pulzus szlessg
					peridus_alv	= a alv llapothoz tartoz peridus
					CCPR1L          = az aktulis pulzus szlessg
					PR2             = az aktulis peridus

		Plda: 'n'										; Vlasz 'M283d0c3d0c3d'


	- Kezelhet bresztsi idpontok szmnak lekrdezse
		o												; O<idpontok_szma:bcd><ra_RC5_cme:hex>

		ahol
					idpontok szma	= a kezelhet idpontok szma (16F628(A) s 16F648A esetn 20, 16F87 s 16F88 esetn 40)
					ra_RC5_cme    = az ra RC5 infra kommunikcis cme


		Plda:	'o'										; Vlasz 'O201d'

	- Bejelentkez szveg
		p												; Propeller clock

		Plda:	'p'										; Vlasz 'Propeller clock'

	- rats idparamtereinek lekrdezse
		q<kezd_ra:bcd><vge_ra:bcd>					; Q<kezd_ra:bcd><vge_ra:bcd>

		ahol
					kezd_ra: az ratsek ezen ra eltt nem szlalnak meg
					vge_ra : az ratsek ezen ra utn  nem szlalnak meg

		Plda: 'q0820'									; Vlasz 'Q0820'

	- rats idparamtereinek lekrdezse
		r												; R<kezd_ra:bcd><vge_ra:bcd>

		ahol
					kezd_ra: az ratsek ezen ra eltt nem szlalnak meg
					vge_ra : az ratsek ezen ra utn  nem szlalnak meg


		Plda: 'r'										; Vlasz 'R0820'

	- Id belltsa
		s<ra:bcd><perc:bcd><msodperc:bcd>				; S<ra:bcd><perc:bcd><msodperc:bcd>


		ahol		ra=00..23, perc=00..59, msodperc=00..59


		Plda: 07:30:05 's073005'						; Vlasz 'S073005'


	!! Figyelem: Hibs dtum vagy id megadsa esetn az RTC idszmtsa lellhat !!


	- Id lekrdezse
		t												; T<ra:bcd><perc:bcd><msodperc:bcd>


		ahol		ra=00..23, perc=00..59, msodperc=00..59


		Plda: 't'										; Vlasz 'S073005'


	- Programverzi lekrdezse
		v												; V<Vn>.<Vk>

		ahol
					Vn	= nagy verziszm
					Vk	= kis  verziszm

		Plda:	'v'										; Vlasz 'V2.0d'


	- Propeller kapcsolsa / llapot lekrdezs
		w<parancskd:hex>								; W<llapotkd:hex><id_magas:hex><id_alacsony:hex>

		ahol
					parancskd: 0x00 - propeller kikapcsols
								0x01 - propeller bekapcsols
								0x80 - propeller lekrdezse

					llapotkd - 7. bit: idadatok nem rvnyesek
							   - 6. bit: Mly alvs zemmd, a traf nincs gerjesztve

							   - 3. bit: index LED bekapcsolva
							   - 2. bit: traf zemi gerjesztst kap
							   - 1. bit: alvsi zemmd
							   - 0. bit: kszenlti zemmd
	
					id_magas   = a mg htralv id magas    helyirtk bjtja
					id_alacsony= a mg htralv id alacsony helyirtk bjtja

		Plda:	'w01'									; Vlasz 'W010e10'
							

	- Rel kimenet belltsa
		x<llapot:bcd><tartam:hex>						; X<llapot:bcd><tartam:hex>

		ahol
					llapot	- 0. bit: 1 - bekapcsols
					llapot	- 0. bit: 0 - kikapcsols
					tartam	= a bekapcsols idtartama percben

	- Rel kimenet lekrdezse
		y												; Y<llapot:bcd><tartam:hex>

		ahol
					llapot	- 0. bit: 1 - bekapcsols
					llapot	- 0. bit: 0 - kikapcsols
					tartam	= a mg htralv bekapcsols idtartam percben



Elhatrolds: (Nagyon apr betkkel szedve...)
--------------

A programokat (a bellt programot s a pic programjt) mindenki a sajt felelssgre hasznlja.
Az esetleges krokrt (kimaradt vagy nem a kell idben trtnt bresztsrt, a PWM adatok hibs
belltsa miatt meggett tekercsekrt, a rel kimenetre kttt berendezsben esetlegesen bekvetkez
maradand vltozsokrt) a programok szerzje nem vllal felelssget.

