Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

4 Часы реального времени

Все соверменные компьютеры оснащены часами реального времени. Эти часы работают от аккумулятора, поэтому их показания не пропадают при выключении электропитания.

Доступ к часам реального времени из программы возможен либо через ячейки памяти CMOS, либо через специальные функции BIOS (что более предпочтительно с точки зрения независимости программы от особенностей аппаратуры).

Регистры часов реального времени

Использование регистров памяти CMOS часами реального времени приведено ниже.

Регистры счетчиков

В регистрах 0, 2, 4, 6 и 8 хранится текущее значение времени и дата. Регистры с номерами 1, 3, 5, 7 и 9 – это регистры будильника. Вы можете установить будильник, и когда он сработает, произойдет прерывание.

Регистр

Счетчик, который содержится в регистре

0

Секунды

1

Секунды будильника

2

Минуты

3

Минуты будильника

4

Часы

5

Часы будильника

6

День недели (1 - воскресенье)

7

День месяца

8

Номер месяца

9

Последние две цифры текущего года

Регистр состоянияA

Адрес первого регистра состояния – 0Ah. Формат битовых полей представлен ниже:

Биты регистра

Описание

0-3

Переключатель скорости. По умолчанию установлен в 0110

4-6

22-разрядный делитель. По умолчанию установлен в 010

7

Флаг обновления. Значение 0 означает готовность данных для чтения

Регистр состояния b

Адрес второго регистра состояния – 0Bh. Ниже вы найдете формат битовых полей этого регистра:

Биты регистра

Описание

0

Летнее или стандартное время:

1 - летнее время;

0 – стандартное время

1

12 или 24-часовой режим:

0 - 12-часовой режим

1 – 24-часовой режим (установлен по умолчанию)

2

Формат данных:

1 – двоичный;

0 - BCD (установлен по умолчанию)

3

Разрешение прямоугольного сигнала:

1 – включение сигнала, частота которого определяется разрядами 0-3 первого регистра состояния;

0 – сигнал выключен

4

Разрешение прерывания по окончанию изменения данных (по умолчанию сброшен)

5

Разрешение прерывания будильника (по умолчанию сброшен)

6

Разрешение периодических прерываний (по умолчанию сброшен)

7

Запрет счета: 1 – счетчик остановлен;

0 – счетчик запущен

Регистр состояния c

Адрес третьего регистра состояния – 0Сh. Этот регистр доступен только для чтения и содержит биты состояния прерывания.

Регистр состояния d

Адрес четвертого регистра состояния – 0Dh. Если бит 7 этого регистра сброшен, это означает, что разрядился аккумулятор, питающий память CMOS.

Прерывание от часов реального времени

Часы реального времени вырабатывают аппаратное прерывание IRQ8, которому соответствует прерывание с номером 70h. Это прерывание может вырабатываться по трем причинам:

  • прерывание по окончанию изменения данных. Вырабатывается при установленном бите 4 регистра состояния B после каждого обновления регистров часов;

  • прерывание будильника. Вырабатывается при совпадении регистров часов и регистров будильника и при установленном бите 5 регистра состояний B;

  • периодическое прерывание. Вырабатывается с интервалом примерно 1 мс при установленном бите 6 регистра состояний B.

При срабатывании будильника BIOS вырабатывает прерывание INT 4Ah. Программа может подготовить собственный обработчик для этого прерывания.

Соседние файлы в папке несколько программ