Koračna ura prikazuje čas v urah, minutah in sekundah. Prikazovanje časa je kombinirano s štirimi mesti na sedemsegmentnem zaslonu in kazalcem na koračnem motorju. Na zaslonu so prikazane ure in minute, s kazalcem pa so prikazane sekunde.

Koračni motor je priključen na razširitveni vhod mikrokrmilniškega sistema, tipkovnica in zaslon pa na vhoda A in B paralelnega vmesnika.

Kadar želimo nastaviti uro pritisnemo tipko [ESC]. Po pritisku bo šla ura v nastavitveni način. S tipko [5] povečujemo ure, s tipko [6] povečujemo minute, s tipkama [+] in [-] pomikamo kazalec v urini oz. v nasprotno urini smeri. Sekund se ne da nastavljati in se vedno postvijo na 00 kadar pridemo v nastavitveni način. Tako maramo sekundni kazalaec vedno postaviti na 12. Ko smo nastavili uro, počakamo da prava ura (ura po kateri nastavljamo) ujame našo uro in pritisnemo tipko [ESC]. Po pritisku tipke bo ura v navadnem načinu. To vidimo tako, da utripa pika med urami in minutami.

Tipka

Funkcija

[ESC] nastavitveni način
[5] nastavljanje ure
[6] nastavljanje minut
[+] pomikanje kazalca naprej
[-] pomikanje kazalca nazaj
[SHIFT] testni način

Ob pritisku tipke [SHIFT] bo šla ura v testni način. Na zaslonu se bodo izbrisale ure in minute. Ustavil se bo tudi kazalec. Po še enem pritisku tipke [SHIFT] se bo zopet prikazal pravi čas in kazalec bo ujel prave sekunde. Ta način je le prikaz, da ura deluje v realnem času.

V zaključku pa še o neki posebnosti tega projekta. Uporabljali smo koračni motor, ki ima 200 korakov na obrat. Za uro pa smo potrebovali 60 korakov na obrat. To smo rešili tako, da smo času ene sekunde priredili ustrezno število korakov motorja. Uporabljen sistem je bil trije koraki, trije koraki, štirje koraki, nakar se to ponavlja. Na ta način smo 60 sekundam priredili 200 motornih korakov. Če se bo kdaj uporabil motor z drugačnim številom korakov na obrat, bo potrebno spremeniti subrutino KORAK.

Alternativa ki bi lahko bila nadgradnja tega projekta poleg prikaza sekund tudi prikaz ur in minut. Potrebna sta le še dva dodatna koračna motorja in pa ustrezna predelava programa. Pa naj to ostane kot izziv naslednjim.

Celoten program se nahaja v datotekihc11-ura.zip. Spodaj je narejen kratek opis subrutin.

STMDRV:

To je gonilnik koračnega motorja, ki bere iz baferja STMB-STME. Prebrana vrednost je lahko "1" ali "0" in pomeni premik v eno ali drugo smer. Če pa je bil bafer prazen potem se ne zgodi nič. V urniku je vkljucen enkrat.

STMPCW:

Je rutina, ki vpisuje v bafer STMB-STME. V bafer vpiše "1", če je seveda v baferju se kaj prostora.

STMPCC:

Enako kot zgornja le da vpisuje "0".

T2SEG:

Je rutina ki nam pretvori število v sedem segmentni zapis, da to število lahko zapišemo na zaslon.

KORAK:

Je rutina ki posredno z vpisovanjem v bafer STMB-STME pomika koračni motor po sekundah. Uporablja dve spremenljivki: STMK ki na pove koliko korakov naredimo v sekundi (0=>3, 1=>3, 2=>4) ter TIMSS kar pa so sekunde ki jih kaže koračni motor. TIMSS se primerja s TIMS in če TIMSS ni enak TIMS potem naredimo premik koračnega motorja za eno sekundo in povecamo TIMSS za 1.

Opis strojne opreme je v paketu korura.zip. Tam je tudi shematični načrt in načrt tiskanega vezja za gonilnik koračnega motorja.

Pavel Kralj pavel.kralj@email.si
Miran Šturm sturm@email.si
Jernej Švigelj gj.svigelj@siol.net