- •Принцип проектирования микропроцессорного блока.
- •Программная модель микропроцессора Intel 8085.
- •Система команд микропроцессора
- •Особенности программирования на ассемблере.
- •Шина адреса.
- •Шина управления.
- •Особенности мп к1812вм85(intel 80185).
- •Организация микропроцессорного блока на базе микропроцессора к1810 вм86/88 (Intel 8086/88 ) Основные методы повышения производительности микропроцессоров:
- •Основные характеристики микропроцессоров:
- •Средства реализации пошагового режима.
- •Особенности организации вм88.
- •Процессорный блок на базе 8086 / 8088
- •Особенности проектирования блоков памяти в микропроцессорных устройствах.
- •Статическая память 537 ру n зу
- •Периферийные бис микропроцессорных комплектов. Обобщенная структура программируемой бис.
- •Программируемый параллельный адаптер кр580 вв55
- •Программируемый таймер кр580ви53 / ви54
- •Программируемый адаптер последовательного интерфейса кр580вв51.
- •Структурная организация программируемого адаптера последовательного интерфейса кр580вв51.
- •Программное обеспечение программируемого адаптера последовательного интерфейса кр580вв51.
- •Программируемый контроллер прерываний кр580вн59,вн59а; intel8259, 59а
- •Структура программы инициализации пкп
- •Особенности организации 1810вн59а (i8259а).
- •Микроконтроллер к1816 ве51/31(intel 8051)
- •Структура резидентной памяти данных (рпд).
- •Система команд.
- •Структура команд orl( дизъюнкция), xrl (сумма по модулю 2) аналогична предыдущей.
- •Параллельные порты.
- •Счетчик/Таймер
- •Последовательный порт
- •Подсистема прерываний
- •Особые режимы работы
Программируемый таймер кр580ви53 / ви54
Программируемый таймер (ПТ) является программно управляемой БИС, предназначенной для формирования и преобразования частотно-временных сигналов. Таймер может использоваться в качестве делителя частоты, формирователя временных задержек импульсного сигнала, формирователя временного интервала заданной длительности, счетчика импульсов, преобразователя временного интервала, частоты, периода в двоичный или двоично-десятичный коды.
Структура программируемого таймера представлена на рис. 4.1.
Рис. 4.1. Структура программируемого таймера.
Функциональный блок ПТ состоит из трех шестнадцатиразрядных вычитающих счетчиков, каждый из которых может быть настроен независимо на требуемый режим работы. Управление работой счетчиков осуществляется сигналами базовой опорной частоты, поступающей на вход CLK, и входом разрешения G, необходимые сигналы которого определяются особенностями выбранного режима. Выходной сигнал OUT устанавливает свое значение в зависимости от режима работы в момент равенства содержимого счетчика нулю. Взаимодействие с МПУ выполняется аналогично ППА. Условное графическое изображение ВИ53 представлено на рис. 4.2.
Настройка счетчика на требуемый режим работы заключается в записи управляющего слова и соответствующего коэффициента, определяющего параметры выбранного режима. Формат управляющего слова представлен на рис. 4.3, а адреса программно- доступных регистров отражает табл. 2.
Таблица 2.
-
Номер счетчика
А1
А0
СЧ0
0
0
СЧ1
0
1
СЧ2
1
0
РУС
1
1
В управляющем слове кодируются адрес счетчика, для которого оно предназначено, порядок записи коэффициентов и особенности считывания содержимого счетчика, режим работы, организация счетчика.
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
СЧ0 |
0 |
0 |
|
|
|
|
0 |
Двоичный |
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
СЧ1 |
0 |
1 |
|
|
|
|
1 |
Дв.-дес. |
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
СЧ2 |
1 |
0 |
|
|
|
|
Вид счета |
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
ЗАПР. ВИ53 |
1 |
1 |
|
|
|
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Адрес счетчика |
|
|
|
|
|
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||
Чт.на лету |
0 |
0 |
|
0 |
0 |
0 |
Режим 0 |
|
|
|
|
|
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||
Только мл.б. |
0 |
1 |
|
0 |
0 |
1 |
Режим 1 |
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Только ст.б. |
1 |
0 |
|
0 |
1 |
0 |
Режим 2 |
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Снач. мл., затем ст. б. |
1 |
1 |
|
1 |
1 |
0 |
|
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
0 |
1 |
1 |
Режим 3 |
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Способ записи/чтения
|
1 |
1 |
1 |
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Счетчика |
|
1 |
0 |
0 |
Режим 4 |
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
1 |
0 |
1 |
Режим 5 |
|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
Режимы работы |
|
|
|
Рис. 4.3. Слово режима программируемого таймера.
Программа инициализации счетчика имеет вид:
MVI A,УС
OUT РУС
MVI A, Км
OUT СЧn
MVI A, Кс
OUT СЧn,
где УС - значение управляющего слова,
РУС - адрес регистра УС,
Км, Кс - значения младшего и старшего байтов для шестнадцатиразрядного коэффициента,
СЧn - адрес программируемого счетчика.
Режим 0 используется для формирования программируемой задержки. После записи управляющего слова выход OUT сбрасывается в ноль. Управление началом формирования задержки может быть программным или аппаратным.
При программном запуске на вход G подается единичный уровень. Отсчет времени начинается после записи старшего байта коэффициента, характеризующего величину задержки. В момент, когда содержимое счетчика станет равным нулю, на выходе устанавливается единичное значение.
При аппаратном запуске в процессе инициализации на вход G подается нулевой уровень. Отсчет задержки начинается в момент появления на входе G единичного уровня. Если в процессе счета G=0, то счет приостанавливается, а после установления G=1 он продолжается с прерванного кода. Величина задержки t=k*Tclk, где k - значение коэффициента, Tclk - период сигнала на входе CLK. Для повторного запуска необходимо перезагрузить коэффициент.
Ввод младшего байта счет останавливает, а старшего - возобновляет.
Режим 0 применяется при организации системных таймеров, для формирования запросов прерывания. Временная диаграмма режима 0 представлена на рис. 4.4,а.
Режим 1 реализует программируемый одновибратор, длительность отрицательного импульса на выходе OUT которого t=k*Tclk. После записи УС на выходе OUT устанавливается единичный уровень. Формирование отрицательного импульса начинается после прихода фронта сигнала на вход G по первому срезу сигнала на входе CLK, а заканчивается в момент равенства содержимого счетчика нулю. Режим перезапускаемый, т. е. повторная запись коэффициента не требуется. Если в процессе формирования импульса произошла загрузка нового k, то длительность текущего импульса не изменяется. Новое значение длительности будет установлено после повторного запуска одновибратора. Работу таймера в режиме 1 иллюстрирует рис. 4.4,б.
Режим 2 используется для деления частоты, поступающей на вход CLK. При G=1 частота на выходе OUT F=Fclk/k. Продолжительность высокого уровня выходного сигнала (k-1)*Tclk, а низкого - Tclk.
При программном запуске (G=1) начало работы задается как в режиме 0, но в отличие от него режим перезапускаемый. Если G=0, то счет останавливается, а на выходе OUT формируется высокий уровень выходного сигнала.
При аппаратном запуске на входе G задается нулевой уровень и производится инициализация. Делитель частоты начинает работу при G = 1. Этот режим наиболее часто используется при организации счетчиков импульсов. На этапе инициализации задается k=0FFFFH, на вход CLK подаются импульсы, число которых необходимо определить, а на вход G - сигнал разрешения счета. Временная диаграмма режима 2 представлена на рис. 4.4,в.
Режим 3 в отличие от второго формирует на выходе при четном k меандр. При нечетном k длительность единичного уровня (k+1)/2, а нулевого - (k-1)/2. Значение k=3 считается недопустимым.
В режимах 4,5 формируется отрицательный одиночный импульс длительностью Тclk, задержка которого относительно момента запуска определяется t=k*Tclk.Режим 4 реализует программную задержку импульса аналогично режиму 0, а режим 5 - аппаратную аналогично режиму 1.
Рис. 4.4. Временные диаграммы таймера КР580ВИ53
Контроль за текущим состоянием счетчиков может выполняться в режимах полного останова счетчика или в процессе его работы.
В первом случае предполагается анализ состояния сигналов G или OUT, прекращение работы счетчика путем формирования Cl=0 или G=0, а затем чтение содержимого счетчика в соответствии с заданным режимом. Если коэффициент пересчета задан в виде двухбайтового числа, то программа считывания данных будет иметь вид:
IN СЧn ;Чтение младшего байта
CMA
MOV C,A
IN СЧn ;Чтение старшего байта
CMA
MOV B,A
В регистровой паре ВС будет находиться значение счетчика СЧn. Чтение счетчика "на лету" без его останова выполняется с помощью дополнительного управляющего слова, в котором D5D4=00, а остальные разряды могут принимать произвольные значения.
Например, для СЧ1
MVI A, 0100xxxxB
OUT РУС
По этим командам текущее значение счетчика записывается во внутренний буфер, из которого оно может быть считано аналогично предыдущему. При этом счетчик не останавливает свою работу.
Анализ сигналов G или OUT может выполняться в программном режиме или по прерыванию.
ВИ54 в отличии от ВИ53 обладает повышенной тактовой частотой (до 8МГц) и расширенными функциональными возможностями. Он выполнен по КМОП-технологии. Структура одного канала приведена на рис. 4.5.
Рис. 4.5. Структура канала ВИ54:
БР – буферный регистр; СЧ - счетчик
РК – регистр констант; РС – регистр состояния
РУ – регистр управления; БУ - блок управления
Команда RBC – чтение состояния канала, которая позволяет прочитать в любой момент времени слово состояния канала, а также выполнить “защелку” одного или нескольких каналов.
Формат команды:
D7 D6 D5 D4 D3 D2 D1 D0
1 1 0
“1” - включить канал
“0” - читать состояние канала, указанного в D1-D3
“0” – защелкнуть канал, указанный в D1-D3
При одновременном защелкивании различных состояний счетчиков чтение выполняется следующим образом.
В начале по адресу требуемого счетчика читается регистр состояния, а затем обычным путем содержимое регистра-защелки:
In CR0 ;чтение регистра состояния
In CR0 ;чтение младшего байта
In CR0 ;чтение старшего байта
Команда загрузки в РУС такая же, как и в управляющем слове (отличие – «11» в старших разрядах).
D4,D5 = 00 – разрешение операции, 11- запрещение.
Возможно одновременное выполнение операций. Код 11001110 одновременно защелкивает/перезаписывает состояния счета всех каналов и состояния каналов. Эта команда эквивалентна трем командам CLC. Новое «защелкивание» возможно только после полного считывания буферного регистра.
Слово состояния позволяет проконтролировать правильность загрузки УС, проверить состояние счетчика и приход импульсов на вход G в режимах 1 и 5.
Формат слова состояния канала имеет вид:
из РУС
OUT FN RW1 RW0 M2 M1 M0 BCN
Сост. Порядок Режим Счет
выхода загрузки
OUT констант
FN – флаг обновления регистра констант. Он особенно важен в режимах 1 и 5, т. к. позволяет проконтролировать приход запускающего фронта на вход G (по фронту происходит запись информации из буфера констант в счетчик). FN устанавливается в «1» при записи управляющего слова, при записи констант в регистр констант. Сбрасывается в «0» при перезаписи в счетчик. Разряды 0-5 повторяют содержимое управляющего слова и позволяют проконтролировать правильность его загрузки.