Odpocet casu
Jiri Recek
j_recek
Středa Březen 17 11:42:01 CET 2004
> > Jsem zacatecnikem v programovani 51.Chtel bych realizovat
> > minutky, tzn nastavit cas, minuty:sekundy a po spusteni
> > odpocitavat ubehnuty cas do 0. Dynamicke zobrazovani na
> > 4-mistnem LED displeji, blikani dvojic cisel pro nastavovani
> > mam vyreseno. Nevim jak resit odpocitavani casu?
> > Diky za radu, eventuelne komentovanou rutinu.
>
> Jedno z reseni by bylo, ze by se ty minuty:sekundy prevedly z BCD kodu
> na binarni cislo (CISLO), odecetla se 1 (dec CISLO) a zpet by se
> prevedly na BCD cislo ve tvaru minuty:sekundy.
> Je to ponekud komplikovane reseni, pri pricitani by to bylo
> jednodussi, ale me zadne jine nyni nenapada. Toto reseni jsem pouzil,
> kdyz jsem potreboval pricitat nebo odecitat nejakou konstantu od
> promenne a funguje to. Mozna ze bych, pokud bude zajem, nejakou
> rutinu mohl najit.
> Ota Kehar
>
Odecitat BCD? v 51? takto:
MOV A,sec
ADD A,#99H ; 99 v BCD je jako -1
DA A ; korekce BCD
MOV sec,A
MOV A,min
ADDC A,#99H
DA A ; zase korekce BCD
MOV A,min
; a jeste korekce formatu vterin 0..59
MOV A,sec
ADD A,#0A6H ; 0A6H + 059H = 0FFH
JNC skok
MOV sec,#59H ; prepise se, pokud pretece soucet.
skok:
; a je to odecteny.
Jirka
Další informace o konferenci Hw-list