- •Форматы и структура команд микропроцессора к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. Режимы работы таймеров. Организация выдержки времени. Пример.
23. Разработать функциональную схему мп – системы сбора четырех аналоговых сигналов. Составить программу. Тип контроллера выбирает студент.
Тип контролёра: МК1816ВЕ51
МЕТКА |
МНЕМОНИКА |
Коментарии |
|
ORG 1000H |
|
|
EQU STOP,02F3H |
|
|
||
|
MOV DPTR,#8503H |
иНИЦИАЛИЗАЦИЯ параллельного порта |
|
MOV A,#90H |
|
|
MOVX @DPTR,A |
|
|
MOV R0,#00H |
1–ЫЙ аналоговоЙ сигнал |
|
MOV R1,#00H |
Задание ячейки сохранения оцифрованного аналогового сигнала |
|
MOV R2,#15H |
|
|
MOV R3,#04H |
СЧЁТЧИК ПРИЁМА АНАЛОГОВЫХ СИГНАЛОВ |
K1 |
MOV DPTR,#8501H |
Подключение i–го аналогового сигнала |
|
MOV A,R0 |
|
|
MOVX @DPTR,A |
|
|
MOV A,00H |
Приём i–го аналогового сигнала |
|
MOV DPTR,#8300H |
|
|
MOVX @DPTR,A |
|
|
|
|
|
MOV DPTR,#8300H |
|
|
MOV A,01H |
|
|
MOVX@DPTR,A |
|
|
MOV DPTR,#8200H |
|
J2: |
MOVX A,@DPTR |
|
|
JB 0E1H,J2 |
|
|
MOV DPTR,#8000H |
|
|
MOVX A,@DPTR |
|
|
MOV DPL,R1 |
Пересылка оцифрованного аналогового сигнала в соответствующую ячейку памяти |
|
MOV DPH,R2 |
|
|
MOVX @DPTR,A |
|
|
INC R0 |
ИНКРЕМЕНТИРОВАНИЕ СОДЕРЖАНИЯ РЕГИСТРОВ |
|
INC R1 |
|
|
DJNZ R3,K1 |
ПРОВЕРКА. ВСЕЛИ АНАЛОГОВЫЕ СИГНАЛЫ ПОЛУЧЕНЫ. |
|
… |
|
24. Система прерывания микроконтроллера семейства мк51. Вектор прерываний. Прерывание от внешних событий. Пример управления программой кнопки “Пуск” в режиме прерывания.
Напомним, что ОЭВМ 1816ВЕ51 обслуживает два вида источников прерываний:
1. прерывания от внутренних устройств (таймер и последовательный интерфейс);
2. прерывания от внешних устройств (поступают через два входа INT0 и INT1).
При возникновении прерывания от одного из устройств происходит следующая последовательность действий:
• ВЕ51 завершает выполнение текущей команды и устанавливает в "1" флаг запроса прерывания в соответствующем данному источнику прерывания разряде регистра TCON;
• если в регистре разрешения прерываний IE бит, соответствующий данному прерыванию, установлен в "1», это прерывание считается разрешенным и происходит переход на фиксированный адрес памяти команд в соответствии с таблицей 5.
Таблица 5.
Расположение векторов прерывания в ПЗУ УМПК—51.
Источник прерывания
|
Адрес перехода
|
INT0
|
0003Н
|
ТС0
|
000ВН:
|
INT1
|
0013Н
|
ТС1
|
001ВН
|
Последовательный интерфейс
|
0023Н
|
Как видно из таблицы, на каждое прерывание отводится всего 8 байт, поэтому обычно по этим адресам располагают не саму подпрограмму обработки прерывания, а команду перехода на эту подпрограмму, расположенную в другом месте памяти программ. Этот адрес перехода называют иногда вектором прерывания. Таким образом, отработка прерываний в системе на базе ВЕ51 происходит в последовательности, показанной на рис. 15.
Рис. 15. Последовательность отработки прерываний в системе на базе
ВЕ51.
Для того, чтобы дать пользователю возможность располагать подпрограммы обработки прерываний произвольного размера в любом месте памяти команд, в УМПК—51 реализована система векторов переадресации, которую иллюстрирует рис. 16.
Рис. 16. Последовательность отработки прерываний в УМПК—51.
Таким образом, вектором конкретного прерывания является записанная ПЗУ команда перехода на его фиксированный адрес в ОЗУ, а уже по адресу ОЗУ, соответствующему конкретному источнику прерывания, пользователь должен записать команду перехода на подпрограмму обслуживания этого прерывания. Источники прерываний и адреса переходов в ПЗУ и в ОЗУ находятся в соответствии, представленном в таблице 6.
Внешнее прерывание 1 зарезервировано на обслуживание контроллера клавиатуры и дисплея КР580ВВ79, поэтому адрес перехода в ОЗУ по этому прерыванию не указан.
Таблица 6.
Расположение векторов прерываний в ПЗУ и ОЗУ УМПК—51
Источник прерывания
|
Адрес перехода в ПЗУ
|
Адрес перехода в ОЗУ
|
INT0
|
0003Н
|
1750Н
|
ТС0
|
000ВН
|
1753Н
|
INT1
|
0013Н
|
—
|
ТС1
|
001ВН
|
1759Н
|
Последовательный интерфейс
|
0023Н
|
175СН
|
Для выхода из подпрограммы обслуживания прерывания и возвращения в точку выхода из основной программы служит команда RETI.
Эксперименты, иллюстрирующие обслуживание прерываний от внутренних устройств ВЕ51, будут подробно рассмотрены в разделах 6 (таймеры/счетчики) и 7 (последовательный интерфейс). Ниже приведены эксперименты, иллюстрирующие работу ВЕ51 с внешними прерываниями на примере INTO. Запрос на прерывание INTO возникает при нажатии на клавишу 10 УМПК—51, схема подачи прерывания на вход ВЕ51 показана на рис. 17.
Рис. 17. Схема формирования внешнего прерывания INT0 в УMПK-51.
Для полной настройки прерывания необходимо и достаточно выполнить . следующие действия:
• записать в ОЗУ по адресу, куда будет передано управление при возникновении прерывания, команду перехода на подпрограмму обслуживания этого прерывания (см. табл. 6);
• разрешить данное прерывание записью "1" в соответствующий разряд регистра IE;
• установить приоритет прерывания записью в регистр IP;
• установить режим срабатывания по фронту/низкому уровню записью "1"/"0" в разрядIT0 регистра TCON.
Рассмотрим в качестве примера программу, которая при поступлении внешнего прерывания 0 запускает подпрограмму обработки кнопки “пуск” , индицируемое светодиодами этого порта. ПРИМЕЧАНИЕ.
|
|
|
|
|
1003Н:
|
80 FE
|
J1:
|
SJMPJ1
|
Переход на метку J1 (бесконечный цикл)
|
|
|
|
|
Подпрограмма обработки прерывания INT0
|
1100Н:
|
C2A8
|
IT0:
|
CLR 0A8H
|
Сброс бита разрешения внешнего прерывания 0 (кнопка “пуск”)
|
1102Н:
|
Подпрограмма обслуживания кнопки “пуск” |
|||
11ххН:
|
32
|
|
RETI
|
Возврат из подпрограммы |
|
|
|
|
Вектор переадресации на п/п обработки INT0
|
1750Н:
|
02 11 00
|
|
JMP IT0
|
Переход по вектору прерывания
|
После ввода в память этой программы, для программирования прерывания INT0 остается лишь разрешить прерывание записью "1" в младший разряд регистра IE (бит с адресом А8Н), поскольку команда перехода на подпрограмму обработки прерывания в ОЗУ записана при вводе, программы по адресу 1750Н, а все необходимые установки режимов (работа по низкому уровню сигнала, одинаковый приоритет всех прерываний) происходят во время начальной инициализации ВЕ51, в чем, кстати, имеет смысл убедиться.
Программа работает следующим образом: после запуска основной программы включается бесконечный цикл и, таким образом, входит программа в режим ожидания запроса на прерывание. Запрос на прерывание 0 производится нажатием на клавишу I0 , после чего происходит переход на подпрограмму обслуживания прерывания (если младший бит регистра IE установлен в "1", т.е. прерывание от внешнего источника 0 разрешено), вектор которой должен быть записан по адресу 1750Н ОЗУ. В нашем случае по этому адресу записана команда перехода на ячейку 1100Н, где находится подпрограмма, подпрограмма обслуживания кнопки “пуск”.
