Часы реального времени и память CMOS - самостоятельное энергонезависимое устройство на системной плате ПЭВМ - МС 146818 (ф. «Motorola»).
Содержание основных регистров часов реального времени в CMOS
00h секунды
01h секундная тренога (будильник)
02h минуты
03h минутная тренога (будильник)
04h часы
05h часовая тревога (будильник)
06h день недели
07h день месяца
08h месяц
09h год
0Ah регистр статуса часов реального времени
0Bh регистр статуса часов реального времени
0Ch регистр статуса выполнения прерывания IRQ8
0Dh регистр статуса состояния батарейки и памяти
0Ah бит 7=1 идет модификация времени (надо ждать значения 0, чтобы читать)
0Вh бит 6=1 разрешено периодическое прерывание
бит 5=1 разрешено прерывание треноги
бит 4=1 разрешено прерывание конца модификации
бит 1=1 часы считаются до 24,
=0 часы считаются до 12.
бит 0=1 разрешено запоминание времени суток
Особенности использования аппаратного прерывания IRQ8
Часы реального времени вызывают аппаратное (радиальное) прерывание IRQ8 и соответствующее векторное прерывание 70h.
|
|
Программа пользователя может установить вектор этого прерывания на любую процедуру, которую требуется выполнить в определенное время.
Для этого разработано векторное прерывание 1Аh.
Прерывание IRQ8 может появляться по одной из трех причин:
1. Периодическое прерывание происходит через определенные интервалы времени обновления счетчика часов реального времени.
Их периодичность приближенно равна одной миллисекунде.
2. Прерывание тревоги происходит, когда значение трех регистров тревоги совпадает со значениями соответствующих временных регистров.
Тревога устанавливается как смещение относительно текущего момента времени.
Максимальная величина смещения установки тревоги равна 23:59:59.
Вектор прерывания 4АН может указывать на пользовательскую процедуру обработки тревоги.
3. Прерывание конца модификации происходит после каждого обновления значений регистров часов РВ CMOS – 04h.
Примечание: номер причины вызова прерывания указывается в регистре 0Ch. бит 6=1 – периодическое,
бит 5=1 – прерывание тревоги,
бит 4=1 – обновление часов.
Особенности использования прерывания 1Ah.
Функции 0 и 1 прерывания 1АН читают и устанавливают счетчик времени суток.
Функция 2: Чтение времени из часов реального времени AH = 02h.
При возврате: CH = часы в BCD
CL = минуты в BCD
DH = секунды в BCD
Функция 3: Установка времени часов реального времени AH = 03h.
При входе: CH = часы в BCD
CL = минуты в BCD
DH = секунды в BCD
DL = 1 - переход на летнее время, иначе – 0.
Функция 4: Чтение даты из часов реального времени AH = 04h.
При возврате: CH = век в BCD (19 или 20)
CL = год в BCD (с 1980)
|
|
DH = месяц в BCD
DL = день месяца в BCD
Функция 5: Установка даты часов реального времени AH = 05h.
При входе: CH = век в BCD (19 или 20)
CL = год в BCD (с 1980)
DH = месяц в BCD
DL = день месяца в BCD
Функция 6: Установка тревоги для часов реального времени AH = 06h.
При входе: CH = часы смещения в BCD
CL = минуты смещения в BCD
DH = секунды смещения в BCD
Функция 7: Сброс тревоги AH = 07h