Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по МПС.doc
Скачиваний:
25
Добавлен:
26.11.2019
Размер:
3.25 Mб
Скачать

2.7. Организация ввода/вывода омэвм

Для связи МК 48 с объектом управления, для ввода и вывода информации используются 27 линий. Эти линии сгруппированы в три порта по 8 линий в каждом и могут быть использованы для ввода/вывода через двунаправленные линии. Еще 3 линии:

INT – вход запроса прерывания от внешнего источника;

Т0 – ввод тестируемого сигнала от двоичного датчика объекта управления: кроме того по команде ENT 0 CLK по этой линии может выдаваться сигнал синхронизации;

Т1 – ввод тестируемого сигнала или в качестве счетчика событий (STRT CNT).

Специальная схемотехника портов Р1 и Р2, которая получила название квазидвунаправленной, позволяет выполнить ввод, вывод или ввод/вывод.

При выводе данных они фиксируются в буфере (в регистре порта, состоящем из 8-ми Д-триггеров). При вводе данные не фиксируются и байт данных должен удерживаться на ШД до окончания операции чтения.

Каждая линия порта 1,2 на выходе подключена через R=50кОМ к источнику +5В и при запертых триггерах Т1 и Т2 на выходе обеспечивается напряжение логической 1 и ток достаточной (порядка 100мкА) для нормального функционирования ТТЛ – нагрузки.

Высокое входное сопротивление позволяет использовать линию в качестве входной.

Режим вывода

При записи 1 в Д-триггер одновременно с переключением Д-триггера открывается клапан, который на 0,5 мкс включает транзистор Т1 с сопротивлением канала 5кОм, что увеличивает импульс тока, ускоряющего процесс перезаряда паразитной емкости в нагрузке. При записи 0 открывается Т2 и через сопротивление R 300 Ом соединяет нагрузку с общей шиной.

Режим ввода

Для ввода данных все разряды порта должны быть установлены в 1, в противном случае вход шунтирован R 300 Ом.

Сигнал RST автоматически записывает во все линии портов 1 и 2 сигнал 1.

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

Данные, выведенные через порт 1,2 могут логически умножаться и складываться

ORL P1, #data

ANL P1, #data,

c непосредственно заданными операндами.

В системе команд МК есть команды, которые позволяют выполнить запись нулей и единиц в любой разряд или группу разрядов порта, но так как в этих командах маска задается непосредственным операндом, то необходимо знать распределение сбрасываемых и устанавливаемых линий на этапе разработки прикладной программы. В этом случае, если маска вычисляется программой и заранее неизвестна, в ОЗУ необходимо иметь копию состояния порта вывода. Необходимость этой процедуры вызвана тем, что в МК отсутствует возможность выполнить операцию чтение значения портов Р1 и Р2 для определения прежнего состояния порта вывода.

Младшие 4 бита порта Р2 могут быть использованы для расширения МК системы по вводу/выводу через младшие 4 бита порта Р2 по специальным командам обращения возможен доступ к 4 внешним четырехбитным портам ввода/вывода P4 P7.

Порт 0

Представляет из себя двунаправленный буфер с 3-мя состояниями и предназначен для побайтного ввода/вывода или ввода/вывода информации. Если порт BUS используется для двунаправленных передач при обращении к ВПД, то обмен информацией через него выполняется по командам MOVX. При выводе байта генерируется стробирующий сигнал WR, а выводимый байт фиксируется в буферном регистре. При вводе байта генерируется стробирующий сигнал RD, но вводимый байт в буферном регистре не фиксируется. В отсутствие передач порт BUS по своим выходам находится в высокоимпедансном состоянии.

Вводимые и выводимые через порт BUS байты можно маскировать с помощью команд ORL и ANL, что позволяет выделять и обрабатывать в байте отдельный бит или группу бит.

Вывод – OUTL

Ввод – INS

Ввод/вывод – MOVX

По команде OUTL байт фиксируется в буферном регистре порта BUS, а команда MOVX уничтожает содержимое буферного регистра порта BUS (команда INS не уничтожает содержимое буферного регистра порта).

Через порт 0 выводится 8 младших разрядов адреса, сопровождаемые сигналом ALE.

2.8. Счетчик – таймер

Внутренний 8-ми – битный двоичный суммирующий счетчик может быть использован для формирования временных задержек и для подсчета внешних событий по входу Т1.

Работа счетчика в обоих режимах одинакова; изменяются источники сигналов. Таймер-счетчик состоит из:

- делителя на 32,

- собственного 8-ми – разрядного суммирующего счетчика,

- флага переполнения TF.

В режиме таймера на вход Т/С подается частота , где

- частота внешнего кварцевого резонатора;

480 = 32(предварительный делитель таймера) * 15(внутренняя схема делителя фаз цикла).

(так как 8 разрядов)

при =6МГц

80мкс 12,5кГц =

Для изменения min и max задаваемых интервалов можно использовать Т/С в режиме счетчика от генератора внешней частоты или накопления результатов переполнения Т/С.

В режиме счетчика событий

внутренний счетчик увеличивает свое состояние каждый раз, когда сигнал на входе Т1 переходит из состояния 1 в 0. минимально возможное время между двумя входными сигналами равно 7,5 мкс (3 машинных цикла при использовании резонатора 6МГц). Минимальная длительность единичного сигнала на входе Т1 составляет 0,5 мкс.

Запуск таймер – счетчика

Осуществляется командами: STRT T или STRT CNT

Остановка

STOP TCNT

Предустановка

MOV T, A

Чтение состояния Т/С

MOV A, T

Переполнение Т/С пролех. При переходе от FF 00.

При этом:

  1. формируется сигнал запроса прерываний при прг. разрешении кот. происходит переход к ячейке 0007h.

Разрешение прерываний (программное)

EN TCNT I

Запрещение

DIS TCNT I

  1. независимо от сигнала запроса прерывания устанавливается триггер прерывания Т/С, который анализируется командой перехода JTF; после выполнения команды она сбрасывает триггер прерывания.