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

9. Мікросхема таймера і її організація. Канали мікросхеми таймера і їх призначення. (Проілюструвати фрагментами програми).

IBM PC содержит 8253(8254) микросхему , кот. генерирует сигналы практически для всех подсетей. Эта микросхема содержит кварцевый генератор импульсов(1,193 МГц). С кв. генератором соединено 3 линии (канала), каждая из которых содержит два 16тиразрядных регистра , через которые идет сопряжение с подсистемой компьютера .

0-рег.задвижка;

1-рег.счетчика(служит для пересчета сигналов кварцевого генератора).

Имеется 4 порта вв/выв с такими адресами:

1) 40h – канал 0 - отвечает за формирование часов времени суток и обслуживание операций ;

2) 41h – канал 1 – для регистрации операций памяти компа через DMA (Direct Memory Access);

3) 42h - канал 2 – функционирование динамика ;

4) 43h – управляющий регистр.

Формат порта 43h:

1-номер канала:00-0;01-1;10-2;11-чтение сост.канала

2-способ загрузки:01-младшую;10-старшую;11-за 2 раза(сначала мл., затем ст.)

3-режим динамика:011;110 ;101.При программировании динамика нужно использовать порт 61h.

Пример:

In AL,43h

Mov AL,10110110b

Out 43h,AL

Здесь In - копирует данные из порта источника в порт приемника; Out – записывает данные в порт;4-система счисления ;0 - 46х; 1 – BCD – десятичное число в двоичном формате.

Фрагмент пр-мы, илллюстр. инициализацию портов:

MOV AL, 1011011b

OUT 43h, AL

MOV AX, 3A56h

MOV AL, 56h

OUT 42h, AL

MOV AL, AH

OUT 42h, AL

10. Шлях проходження ‘тиків’ у комірку пам'яті 46Сh. Програмування годин часу доби.

Ячейка памяти 46Сh – здесь хранятся часы времени суток, поступает информация от микросхемы таймера.

Таймер связан с генератором линейных импульсов, который дает сигналы. Регистр-задвижка по умолчанию содержит число 65536 (это число программируется). Контроллер аппаратных прерываний подает сигнал МП. Система делит 1196 (частоту генератора) на это число и получает число раз в сек. (18,2). 18,2 раза в сек МП обращается к вектору прерываний 8h. Далее 8h – к прерыванию 1Сh. 1Сh выполняет единственную команду IRET (Interrupt Return – возврат из прерывания) В ячейку памяти 0040:6Сh поступают сигналы, которые наз. «тики».

Чтение часов времени суток осуществляется функцией 00h прерывания INT 1Аh. Эта функция возвращает значение ячейки 46Сh в регистр DХ – младшая часть (сек), в СХ – старшая часть.

Пример макроса для организации временных задержек:

Timer46Ch macro Sleep

PUSH BX, CX

MOV AH, 00h

INT 1Ah

ADD DX, 18*Sleep

MOV BX, DX Repeat:

INT 1Ah, DX CMP DX, BX

JNE Repeat POP CX, BX endm

Для работы со временем используют прерывания 8h, 1ch, ячейку памяти 0040:006c.С частотой 18.2 Гц CPU приостанавливает работу всех систем компьютера. Каждый раз микропроцессор обращается к вектору прер. 8h, далее к прер. 1ch и выполняет обработчики прерываний. По умолчанию обрабатывается заглушка IRET.

Обработчик прерывания 8h

int 1ch

mov al, 20h; код разрешения сброса регистра обслуживания запроса контроллера аппаратных прерываний.

out 20h,al;

IRET

При загрузке в ячейку 46ch поступает реальное время. Использование прерывания 1сh позволяет не мешать системному времени выполнятся, и в то же время менять временные задержки тех программ, которые будут размещены в этом обработчике.

Чтение часов времени суток.

Осуществляется функцией 00h прерывания 1Ah. Эта функция возвращает значение ячейки 0040:006ch в регистры cx – старшая часть, dx – младшая часть.

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