
- •Форматы и структура команд микропроцессора к580.
- •Способы адресации микропроцессора к580. Примеры ассемблерных команд Способы адресации:
- •Способы выбора адресов зу и портов ввода вывода микропроцессорной системы на базе к580.
- •Способы обмена информацией мп с зу и устройствами ввода-вывода. Сравнительная оценка способов обмена.
- •Разобрать фрагмент программы обмена информации мп с внешними устройствами. Тип микропроцессора определяет студент. Дать структурную схему.
- •Проектирование вычислительных систем на базе мпк кр580 (проектирование цп, схемы подключения зу и внешних устройств).
- •3)Устройства ввода/вывода
- •Разобрать фрагмент программы с использованием асинхронно-программного обмена информацией. Тип микропроцессора определяет студент. Дать структурную схему.
- •Методы преобразования десятичных чисел в двоичный, восьмеричный и шестнадцатеричный код.
- •Методы преобразования двоичных, восьмеричных и шестнадцатеричных чисел в десятичные.
- •Пример организации дешифрации адресов внешних устройств и микросхем памяти. Понятие о раздельной и совместной картах адресации.
- •15. Разработать мпс пуска асинхронного двигателя с фазным ротором в две ступени в функции скорости. Датчик скорости аналоговый.
- •16. Методы адресации микроконтроллера 1816ве51. Примеры ассемблерных команд.
- •17. Составить фрагмент программы считывания информации с ацп для контроллера 1816ве51 (Адреса: пуск - 8300н, готов – 8200н, выход данных – 8000н).
- •18. Составить подпрограмму «бегущего огня» на микроконтроллере 1816ве51. Дать структурную схему. Выдержка времени аппаратная.
- •19. Составить подпрограмму потетрадного свечения светодиодов схемы, построенной на мк1816ве51. Дать структурную схему мп - схемы.
- •23. Разработать функциональную схему мп – системы сбора четырех аналоговых сигналов. Составить программу. Тип контроллера выбирает студент.
- •24. Система прерывания микроконтроллера семейства мк51. Вектор прерываний. Прерывание от внешних событий. Пример управления программой кнопки “Пуск” в режиме прерывания.
- •25. Система таймеров мк семейства мк-51. Режимы работы таймеров. Организация выдержки времени. Пример.
25. Система таймеров мк семейства мк-51. Режимы работы таймеров. Организация выдержки времени. Пример.
В
архитектуру микроЭВМ МК51 включены два
идентичных шестнадцатиразрядных таймера
/ счетчика Т/С0 и Т/С1, каждый из которых
может быть использован либо в качестве
таймера, либо в качестве счетчика внешних
событий. При работе в качестве таймера
содержимое Т/С инкрементируется в каждом
машинном цикле, т.е. через каждые 12
периодов резонатора. При работе в
качестве счетчика содержимое Т/С
инкрементируется под воздействием
перехода из 1 в 0 внешнего входного
сигнала, подаваемого на соответствующий
(Т0, Т1) вывод МК51. Опрос значения внешнего
входного сигнала выполняется в момент
времени S5P2 каждого машинного цикла.
Содержимое счетчика будет увеличено
на 1 в том случае, если в предыдущем цикле
был считан входной сигнал высокого
уровня (1), а в следующем - сигнал низкого
уровня (0). Новое (инкрементированное)
значение счетчика будет сформировано
в момент S3P1 в цикле, следующего за тем,
в котором был обнаружен переход из 1 в
0. Так как на распознавание перехода
требуется два машинных цикла, то
максимальная частота подсчета входных
сигналов равна 1/24 частоты резонатора.
В состав каждого счетчика входят два
восьмиразрядных РСФ: ТН (старший байт)
и ТL (младший). Каждый счетчик может быть
запрограммирован для работы в одном из
четырех режимов. Для формирования
режимов работы таймеров используется
побитно недоступный регистр TMOD из РСФ,
а для оперативного управления его
работой - побитно адресуемый регистр
TCON. Один из четырех режимов Т/С формируется
двоичной комбинацией битов М1,М0:
В
режимах 0 и 1
таймеры / счетчики конфигурируются в
соответствии с рис. 10.1 Работа таймеров
/ счетчиков в режимах 0 и 1 идентична за
исключением того, что в режиме 0 TL0 (TL1)
работает в режиме пятиразрядного
счетчика (в целях совместимости с
предшествующим поколением микропроцессоров
семейства MCS 48), а в режиме 1 - восьмиразрядного.
Для использования таймеров / счетчиков в качестве счетчиков внешних событий бит С/Т0 (С/Т1) = TMOD.2 (TMOD.6) должен быть установлен в единицу, при этом вход счетчика TL0 (TL1) подключается к внешнему выводу микроЭВМ Т0 (Т1). Для использования в качестве таймеров этот бит должен быть сброшен в 0, при этом на вход TL0 (TL1) от задающего генератора подаются импульсы с периодом машинного цикла. Работа таймера / счетчика может быть в любой момент остановлена программно сбросом бита TR0 = TCON.4 (TR1 = TCON.6). Если бит TR0 (TR1) установлен в единицу, а бит GT0 = TMOD.3 ( GT1 = TMOD.7) сброшен в 0, то таймер / счетчик работает непрерывно. Если же биты TR0 (TR1) и GT0 (GT1) установлены в единичное значение, то работа таймера / счетчика останавливается при подаче потенциала логического нуля на вход INT0 (INT1); таким образом может быть либо реализовано внешнее управление таймером / счетчиком событий, либо обеспечено торможение работы таймера на время воздействия внешних прерываний. В режиме 2 таймеры / счетчики работают с автоперезагрузкой в соответствии с конфигурацией регистров TH и TL, показанной на рис. 10.2; конфигурация остальных цепей при этом идентична рис.10.1. В этом режиме для счета используется только один восьмиразрядный регистр - счетчик TL0 (TL1), который в момент перехода из состояния FFH в состояние 00H загружается содержимым регистра TH0 (TH1). Режим 2 используется, как правило, для организации циклических процессов с фиксированным значением времени цикла. Так, например, если запрограммировать Т/С0 как таймер в режиме 2, например, последовательностью команд: MOV TMOD, # 00000010В SETB TR0 ; занести в регистр ТН0 значение 131 MOV TH0, #131 MOV TL0, #131 и разрешить прерывания, SETB ET0 SETB EA то прерывающая подпрограмма, ассоциированная с прерыванием от таймера / счетчика Т/С0, при частоте задающего генератора 12 МГц будет выполнятся периодически с интервалом 125 микросекунд, т.к. период машинного цикла при fт = 12 МГц Тц = 12 / fт = 1 мкс; а период повторения Тповт = ( 256 - 131 ) * Тц = 125 мкс. В режиме 3 реально работает только таймер / счетчик Т/С0; установка режима 3 таймера / счетчика Т/С1 приводит к его останову с сохранением содержимого TH1 и TL1.
Рисунок 10.3
При установке в режим 3 таймера / счетчика Т/С0 цепи обоих устройств принимают конфигурацию в соответствии с рис. 10.3 Таймер / счетчик Т/С0 разделяется на два устройства, лишая таймер/ счетчик Т/С1 цепи управления по TR1 и возможности формировать запрос на прерывание. TH0 и TL0 функционируют в этом режиме как два независимых восьмибитных устройства, одно из которых (TH0) может использоваться только в качестве таймера, а другое (TL0) - и в качестве таймера и в качестве счетчика внешних событий с управлением, аналогичным режимам 0, 1 и 2. При установке Т/С0 в режим 3 таймер / счетчик Т/С1 может использоваться в любых приложениях, не требующих формирования запроса на прерывание. Одним из таких приложений является управление скоростью работы последовательного порта . Т/С1 при установке Т/С0 в режим 3 может быть включен в любой из режимов 0, 1 или 2, однако потеря цепи управления по биту TR1 при этом лишает Т/С1 возможности гарантированного останова по этой цепи. Между тем для гарантированного останова Т/С1 может быть установлен в режим 3. Поскольку регистр TMOD, определяющий режимы работы таймеров / счетчиков побитно недоступен, останов Т/С1 может быть осуществлен по команде ORL TMOD, #00110000B
Пример выдержки времени.
Потетрадное свечение диодов.(см.Вопрос №19)
Метка |
Команды на языке ассемблера |
Коментарий |
|
ORG 1000H |
|
|
EQU STOP,02F3H |
|
|
||
|
MOV 089H,#02H |
Инициальзация таймера 0 |
|
MOV 0A8H,#82H |
|
|
MOV 8AH,#05H |
|
|
MOV 8CH,#05H |
|
|
MOV 90H,# FFH |
FFH->P1 |
|
|
00001111->A |
|
MOV A,#0FH |
|
|
MOV R6,#40H |
Запись в регистры числа определяющего ВРЕМЕННую выдержку. |
|
MOV R7,#1FH |
|
|
MOV 2EH,R6 |
|
|
MOV 2FH,R7 |
|
|
MOV 90H,#00H |
Отключение питания индикаторов |
|
SETB 08CH |
Включение таймера |
J00: |
SJMP J00 |
Бесконечный цикл |
|
||
J9: |
DJNZ 2EH,J10 |
Выдержка времени |
|
DJNZ 2FH,J10 |
|
|
RL A, RL A, RL A, RL A |
Сдвиг влево содержимого аккумулятора |
|
MOV 90H,A |
Высвечивание содержимого аккумулятора |
|
MOV 2EH,R6 |
Восстановление содержимого ячеек , для последующей выдержки времени |
|
MOV 2FH,R7 |
|
J10: |
RETI |
Выход из подпрограммы прерывания |
|
ORG 1753H |
Вектор прерывания по таймеру 0 |
|
LJMP J9 |
Переход на подпрограмму прерывания |