Работа с часами.
Мы часто сталкиваемся с ситуацией когда нужно вывести таймер. Я не буду расписывать порты, благо это сделано до меня, дам лишь простой пример, как в регистр "A" получить, часы, минуты, секунды. В нашем случае нет разницы, программируете вы на Base conf или Ts conf.
TIME LD A,#80
LD BC,#EFF7
OUT (C),A
LD A,0; если 0 - получаем секунды, если 2 - получаем минуты, если 4 - получаем часы.
CALL READCMOS
RET
REACMOS
LD BC,#DFF7
OUT (C),A
LD B,#BF
IN A,(C)
RET
; Вызвали процедуру TIME, на выходе в регистр А время. В данном примере получим секунды, но можно получить и минуты и часы, меняйте регистра А на входе, где стоит коментарий.
Время выдается в формате BCD, потому переводим его в удобоваримую форму:
LD A,C
AND #F0
RRA
LD B,A
RRA
RRA
ADD A,B
LD L,A
AND 15
ADD A,L
И получаем секунды, минуты и часы в регистре А от 0 до 59
Спасибо
Комментарии
Отправить комментарий