Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабник

.pdf
Скачиваний:
14
Добавлен:
31.03.2015
Размер:
656.87 Кб
Скачать

Канал 1 используется как генератор для схемы регенерации памяти. BIOS программирует его в режиме 2 с однобайтным значением счетчика (только младший байт), начальное значение N = 18. Такой счетчик обеспечивает интервал чуть больший T1=18/1.193182~15мкс.

Канал 2 таймера используется для генерации звука. Сигнал GATE управляется битом 0 управляющего регистра 61h. Выход OUT2 соединен с динамиком. Соединение/разъединение с динамиком управляется битом 1 порта 61h. Канал 2 может использоваться для целей отсчета времени в автоматизированной системе. Его можно программировать в любом режиме. Для контроля выхода OUT можно проверять бит 5 управляющего регистра 61h

(Рис. 3.3.).

3.5. Программная реализация методики управления таймером

Рассмотрим реализацию методики управления ПИТ в среде программирования Borland-PASCAL.

Инициализация 2 канала таймера для генерации импульсов с частотой F2~10000 Гц в режиме 3 (генератор меандра):

-Вычисление константы пересчета:

N:= 1193182 div 10000; {~119} должна быть объявлена как тип byte.

-Сброс в 0 сигнала на входе GATE2, выход OUT2 отключаем от динамика через управляющий регистр с адресом 61h:

Port [$61] := Port [$61] and not 3;

-Установка режима работы 2 канала:

Port [$43] := $B6; {10 11 011 0}.

Фактически установится частота Fout = 1193182 / 119 =10026.74 Гц.

-Запись во входной регистр счетчика константы пересчета:

Port [$42] := N;

-Установка разрешающего потенциала на входе GATE2=1:

Port [$61] := Port [$61] or 1;

-Канал начинает генерацию импульсов типа меандр на выходе OUT2.

Чтение текущего содержимого счетного элемента 2 канала таймера.

1. Чтение без остановки счета (не всегда корректное).

Считываются последовательно младший, затем старший байты счетного элемента в переменную Count:

Count := Port [$42]; Count := (Port [$42] shl 8) + Count;

2. Чтение с приостановкой работы канала:

-Сброс в 0 сигнала GATE 2-го канала: Port [$61] := Port [$61] and not 1;

-Чтение младшего, затем старшего байтов регистра счетчика (см. п. 1).

-Разрешение работы канала – установка на входе GATE второго канала разрешающего потенциала: Port [$61] := Port [$61] or 1;

33

3.

Чтение по команде "Защелка"

-

Защелкивание содержимого 2 канала ПИТ: Port [$43] := $80;

-Чтение младшего, затем старшего байтов регистра счетчика (см. п. 1).

Чтение состояния 2 канала таймера:

- Запись в регистр управляющего байта кода команды – защелкнуть содержимое статусного регистра в выходном регистре состояния и содержимое счетного элемента в выходном регистре счетчика 2 канала:

Port [$43]:= $C8;

-Чтение содержимое выходного регистра состояния 2 канала:

Status2 := Port [$42];

-Чтение младшего, затем старшего байт регистра счетчика в переменную Count (см. п. 1).

Определение начала очередного периода сигнала во 2-м канале таймера.

Выход OUT2 соединен с битом 5 регистра с адресом 61h. Состояние выхода в течение одного полупериода периода =1, другого - 0.

Необходимо найти переход 0/1 выхода OUT2, который определяет начало очередного периода, т.е. момент, в который может начинаться новое измерение или выводиться управляющее воздействие:

-Проверка завершения 1-го полупериода генератора:

While (Port [$61] AND $20) <> 0 do;

-Проверка завершения 2-го полупериода генератора:

While (Port [$61] AND $20) = 0 do;

Выход из цикла While указывает на начало очередного периода таймера.

3.6.Задание и порядок выполнения лабораторной работы

1.Ознакомиться с принципами работы программируемого интервального таймера Intel 8254, техническими характеристиками и методикой его программирования, обеспечивающими управление работой системы в реальном времени.

2.Разработать библиотеку процедур для управления таймером ЭВМ семейства IBM, включающую процедуры:

а) Инициализация 2-го канала (установка режима работы канала таймера и загрузка константы пересчета).

б) Загрузка константы пересчета во 2-й канал без изменения режима работы канала.

в) Чтение текущего содержимого счетного элемента СЕ 2 канала с приостановкой работы канала на время выполнения операции чтения.

г) Чтение текущего содержимого счетного элемента СЕ выбранного канала без приостановки счета.

д) Чтение состояния выбранного канала ПИТ.

34

е) Определение начала очередного периода 2-го канала ПИТ для режима 3 с автозагрузкой (генератор меандра).

Все подпрограммы должны быть оформлены в виде модуля для обеспечения возможности их многократного использования.

3.Выполнить чтение статусных регистров каждого из каналов ПИТ, определить текущий режим работы каналов.

4.Выполнить инициализацию 2 канала ПИТ для работы в режиме 0 с максимальным значением константы пересчета и двоичным форматом счета.

5.В цикле последовательно 10 раз, выполнить чтение счетного элемента СЕ второго канала таймера:

а) с приостановкой работы канала на время выполнения операции чтения, б) без приостановки работы канала: последовательно, старший и младший байты, в смежные моменты времени (1); командой "Защелка" (2); командой "Чтение состояния" (3).

Определите интервалы времени между двумя соседними считываниями, максимальное и минимальное значения интервалов, отдельно для каждого вида чтения счетного элемента.

6.Выполнить вновь инициализацию 2 канала ПИТ: установить: режим 3 работы канала (генератор меандра), период сигнала на выходе OUT2 указанный в таблице 2.1 в зависимости от варианта задания.

7.Разработать алгоритм и программу:

а) ввода в реальном времени массива данных из модуля АЦП (канал мультиплексора указывается из таблицы 2.1) в ОЗУ ЭВМ 100 мгновенных значений сигнала с интервалом дискретизации сигнала, установленным в предыдущем пункте,

б) преобразования кодов АЦП в значения напряжения Uxкв по окончании ввода всего массива, а также определения оценок математического ожидания, дисперсии и размаха входного сигнала Ux,

в) вывода массива исходных данных и результатов расчета на экран терминала и сохранения их на диске.

8.С учетом интервала дискретизации входного сигнала построить

график зависимости Uxкв (t). По графику определите частоту входного сигнала и его амплитудное значение.

9.Представьте отчет о результатах работы, листинги программ и экспериментальные данные.

3.7.Контрольные вопросы.

1.Какой объем адресного пространства занимают регистры ПИТ в области адресов ввода-вывода ЭВМ? Какие адреса и сигналы управления обменом использует процессор при чтении-записи регистров ПИТ? Какие регистры канала ПИТ доступны для чтения или записи процессору?

35

2.Объясните назначение регистров одного канала таймера и возможные операции ЦП с указанными регистрами.

3.На какие режимы работы может быть запрограммирован каждый канал таймера, каково назначение каждого из режимов? Какие режимы работы каналов ПИТ используются в ЭВМ IBM PC?

4.Каковы общие требования должны выполняться при инициализации таймера? Определите формат управляющего слова и значение константы пересчета при программировании i-го канала ПИТ в режим работы с автозагрузкой, для генерации импульсов частотой f (конкретные параметры задаются преподавателем).

5.Какие имеются способы для чтения текущего содержимого счетного элемента ПИТ, каковы их отличия и возможности реализации для различных каналов таймера?

6.Напишите последовательность команд чтения содержимого счетного элемента с остановкой счета и без приостановки счета для выбранного преподавателем канала таймера.

7.Объясните порядок чтения состояния выбранного

(преподавателем) канала ПИТ. Какая информация может быть считана из выходного регистра состояния канала, из выходного регистра счетчика?

Библиографический список

1.Вегнер В.А., Крутяков А.Ю., Серегин В.В., Сидоров В.А. Спесивцев А.В. Аппаратура персональных компьютеров и ее программирование. IBM PC/XT/AT и PS/2 – М: Радио и связь, 1995. 224 с.

2.Фролов А.В., Фролов Г.В. Аппаратное обеспечение IBM PC: В 2-х ч. Ч2. М.: "ДИАЛОГ-МИФИ", 1992. 208с. (Библиотека системного программиста; Т.2).

36