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