MOV R2, A; записать в аккумулятор значение К
ADD A, R4 ; Nu1+Nu2+К
MOV R5, A; сохранить результат( Nu1+Nu2+К) из аккумулятора в R5
SUBB A, R3 ;сравнить полученное значение с константой.
JC M1 ; если А>=R3 переход к следующей команде, иначе к М1
SETB P1.1;формирование длительности сигнала У2
DJNZ R6,$; вернуться на один и проверить на 0. Если нет то след шаг
CLR P1.1; обнулить выход Р1.1
JMP M2
M1:SETB P1.0;формирование длительности сигнала У3
MOV R6,20H; длительность сигнала 20 мкс
DJNZ R6,$ ; вернуться на один и проверить на 0. Если нет то след шаг.
CLR P1.0 ; обнулить выход Р1.0
M2:JMP M2
Рис.16.Модель симулятора ( функция)
Время выполнения: 89 мкс.
Размер: Байт
.5 Обработка запроса прерывания
Данное задание предусматривает обработку внешнего запроса прерывания, поступающего в контроллер. Контроллер выполняет логическую функцию в соответствии с первым заданием.
В курсовой работе требуется организовать обработку одного внешнего запроса от некоторого аварийного датчика, подключенного ко входу обработки прерывания контроллера INT0 (одна из линий порта P3).
Прерывание от сигнала аварийного датчика должно обеспечить включение устройства аварийной сигнализации, подключенного к выбранному порту. Также необходимо вывести на индикацию выбранного порта текущего набора входных сигналов заданной логической функции (первое задание курсовой работы).
Построить структуру контроллерной системы самостоятельно, программа должна содержать основную программу и программу обработки запроса прерывания, размещенных в памяти программ.
При поступлении запроса прерываний контроллер прерывания формирует в ЦПУ сигнал прерывания INT. После получения сигнала прерывания INT ЦПУ завершает выполнение текущей команды прерываемой программы и формирует сигнал подтверждения INTA. После получения INTA КП формирует команду вызова подпрограммы Call ADRi. Подпрограммы обработки прерывания обязательно завершаются командой RETI, в соответствии с которой в программный счетчик из стека загружается адрес ранее сохраненный командой CALL, сохраненной в стеке, для возврата в прерванную программу. Команда RET также возвращает управление прерванной программе, но не снимает при этом блокировку прерываний.
Далее приведём текст программы с использованием обработки прерываний.
Рис. Структура обработки прерывания
· Разработка программы:
$Mod812
ORG 00H
JMP 09H
ORG 03H
JMP 40H
ORG 09H
MOV IE, #8fh
MOV IP, #03H
MOV tcon, #01h
M3:CLR P2.5 ;у=0
JB P1.0,M1;проверка х1
JB P1.1,M1;проверка х2:SETB P2.5; y =1
JMP M3; вернуться в начало
M1:JB P1.2, M3 ;проверка х3
JB P1.3, M3 ; проверка х4 M2
ORG 40h
SETB P3.1
MOV A, P1
MOV P2, A
RETI
END
Рис.17.Модель симулятора ( функция)
Время выполнения: 23 мкс.
Размер: Байт
В данной работе были разработаны МКС обработки дискретных, аналоговых сигналов, поддержания параметра в определенных пределах и рассмотрена обработка прерываний.
При выполнении работы выполнены:
· структурная схема МКС;
· блок-схемы алгоритмов и программы реализации заданных функций на языке Ассемблер;
· для каждой программы представить модель симулятора со всеми окнами;
· карта распределения адресных пространств памяти программ и данных контроллера
· дана оценка основных характеристик МКС:
а) максимального времени реализации одного цикла управления (от пуска системы до окончания однократной реализации заданного алгоритма ) Время реализации определяется симулятором микроконтроллера автоматически при выполнении программы.
б) емкости памяти данных и памяти программ (в байтах), необходимые для реализации разработанных программ.