Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Belenko_final.doc
Скачиваний:
1
Добавлен:
28.10.2018
Размер:
221.18 Кб
Скачать

7. Виведення на екран системного часу з Cmos-мікросхеми.

Вся временная информация в CMOS хранится в формате BCD чисел. BCD – это числа десятичной системы 0..9, но записанные в двоичном формате. Бывают упакованными или распакованными. Но и тот и другой формат должен содержать каждую цифру в четырех битах. Упакованный формат – это когда в одном байте можно поместить числа от 0 то 99. Каждая цифра должна занимать свой полубайт. Распакованный формат – когда в каждом байте от 0 до 9.

Вывод на экран системного времени из CMOS-микросхемы осуществляется через функцию 2h прерывания 1Аh.

mov AH,2h int 1Ah

Рез: СH-часы;СL-минуты;DH-секунды.

Пример:

DataSeg Segment PUBLIC ‘data’

Rez db ‘Time Courant:’

Time db 0,0,’:’,0,0, ’:’,0,0,13,10,’$’

CodeSeg Segment

Public

TimerCmos PROC

push ax bx cx dx

T: mov AH, 02h

Int 1Ah

Mov AL, CH

TimerBCD Time, 0

Mov AL,CL

TimerBCD Time, 3

Mov AL,DH

TimerBCD Time, 6

Mov AH,09h

Mov DX,offset Rez

Int 21h

clrScr 0

Jmp T

Stop

Pop dx cx bx ax

Ret

TimerCmos Endp

MyMacro.mac

TimeBCD Macro Addr offs

Push CX AX

AND AL, 0Fh

Add AL, 30h

Mov Addr+offs+1, AL

POP AX

Mov CL,4

Shr AL, CL

AND AL, 0Fh

Add AL, 48

Mov Addr+offs+0,AL

POP CX

Endp

Прерывание 1Ah позваляет также вывести текущий день месяц и год через ф-ю 4h

mov AH,4h int 1Ah

Результат: DL-день недели;DH-месяц; СL- год;СH- век,CF=0 (ошибка).

С помощью функции 03h можно установить время Cmos –микросхемы.

mov AH,03h mov СH,час mov СL,минуты

mov DH,секунды mov DL,1 int 1Ah

8. Переривання 1Ah і його використання.

Прерывание – готовая подпрограмма, которая умеет что-либо делать. Прерывания по содержанию делятся на аппаратные (генерируются внешними устройствами) и внутренние (не обращаются к контроллеру ап. пр-я, не генерируются событиями).

Прерывание 1Ah - это служебное (системное) прерывание.

Следует иметь ввиду, что временные значения хранятся в BCD-формате (числа десятичной системы в двоичном формате).

1Аh позволяет прочесть текущую дату из Cmos -микросхемы через соответствующую функцию 4h.

mov AH,4h

int 1Ah

Результат: DL-день недели;DH-месяц; СL-век;СH-год,CF=0 (ошибка).

Вывод на экран системного времени из КМОП-микросхемы осуществляется через функцию 2h прерывания 1Аh.

mov AH,2h

int 1Ah

Рез: СH-часы;СL-минуты;DH-секунды.

С помощью функции 03h можно установить время Cmos –микросхемы.

mov AH,03h

mov СH,час

mov СL,минуты

mov DH,секунды

mov DL,1

int 1Ah

Также с помощью 1Аh можно установить «будильник»:записать в микросхему часов значение календарного времени , когда часы должны выдать сигнал . Для этого используется функция №6.

Обработчик прерываний 1Аh выводит текущее время в определенное место экрана. Обработчик активируется . Выводимое значение каждую секунду обновляется.

Функция прерывания 1Аh применяется для работы с каналом №0.

00h-чтение содержимого счетчика таймера.

01h-изменение содержимого.

Прерывание 1Ah позволяет работать со всеми временными подсистемами.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]