- •Введение
- •1. Структура курса, отчетность.
- •2.Литература: Конспект лекций ( Электронное пособие)
- •Краткая история развития микропроцессорных систем
- •Архитектурные признаки контроллеров
- •Тема 1. Базовая структура микроконтроллерной (мк) системы управления
- •Тема 2. Модель микроконтроллера
- •Режимы обмена информацией
- •Тема 3. Структура базового мк
- •Тема 4. Организация и функционирование базового цпу
- •Устройство управления и синхронизации
- •Тема 5. Языки программирования контроллера
- •Основные группы команд контроллера
- •2. Команды арифметических операций.
- •3. Команды логических операций
- •4. Команды передачи управления
- •Этапы реализации логических функций
- •Реализация логических функций ( вариант 2)
- •Управление пуском – остановом электродвигателя
- •Тема 7. Управление параметром в заданных пределах
- •Алгоритм управления температурой
- •Тема 8. Формирование временных интервалов таймером
- •Тема 9. Обработка прерываний в контроллере
- •Настройка контроллеров прерывания
- •Тема 9. Последовательный интерфейс в мк
- •Принцип организации последовательного адаптера
- •Тема 10. Организация параллельного интерфейса
- •Основные характеристики адаптера
- •Структурная схема параллельного периферийного адаптера
- •Программирование адаптера
- •Тема 11. Аналого-цифровые и цифро-аналоговые преобразователи
- •Тема 12 .Разработка и отладка программ в симуляторе adsim812
- •Симулятор adSim812
Реализация логических функций ( вариант 2)
Второй вариант предусматривает вначале формирование значений всевозможных наборов входных сигналов хранящихся в виде массива данных в резидентной памяти данных контроллера. Значения функций также формируются в отдельном массиве этой же памяти данных. Таким образом, во внутренней памяти данных контроллера необходимо выделить буфер наборов входных сигналов х1,х2,….хn и буфер выходных сигналов y. Автоматическое построение таблицы истинности выполняется самим контроллером. Пусть в некоторой области памяти данных , например с ячейки 20H , формируется таблица истинности, а с ячкйки 30 формируются значения вычисляемой функции У.
Память данных:
Память данных в симуляторе
|
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
0 |
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
2 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
3 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
Комбинации входных сигналов (Х3,Х2,Х1) хранятся, начиная с 20 ячейки РПД;
Выходные сигналы У формируются в РПД, начиная с 30 ячейки.
Пример: у = х1 х2 V /х3
R0 – регистр адреса памяти данных (входные Х), R0 = 20H
R1 - регистр адреса памяти данных (выходных Y), R1 = 30H
R2 – Cч. количества комбинаций переменных Х, R2 = 08H
;Программа
$Mod812
; начальная установка регистров
START: MOV R0, #20H
MOV R2, #08H
; формирование массива таблицы истинности
CLR A
M1: MOV @R0, A
INC A
INC R0
DJNZ R2, M1
; установка регистров
MOV R0, #20H
MOV R1, #30H
MOV R2, #08H
M5: MOV A, @R0 ; Ввод {X}
; вычисление функции У=Х1Х2 V /Х3
JNB acc.0, M3
JNB acc.1, M3
M2: MOV A, #01H ; y =1
JMP M4
M3: JNB acc.2, M2
MOV A, #00H ; y=0
M4: MOV @R1, A ; вывод y в память данных
; формирование адресов R0, R1
INC R0
INC R1
DJNZ R2, M5
JMP $ ; останов программы
END
Управление пуском – остановом электродвигателя
На рис. показана упрощенная схема подключения датчиков к МКС управления, контроля напряжения силовой сети и выдачи сигнала для включения или выключения двигателя.
Датчик напряжения (Дн) выполнен на оптронном транзисторе, что обеспечивает гальваническую развязку между силовой цепью и цепями управления на вводе сигналов . Для гальванической развязки и для усиления сигнала управления двигателем на выходе используется контактор К (катушка и силовые контакты) .
Для проверки и отладки программы на модели будем предполагать, что кнопка «Пуск» имитируется разрядом Р1.0 порта контроллера, кнопка останова «Ост» имитируется разрядом Р1.1 , датчик наличия напряжения сети имитируется разрядом Р1.2, а сигнал управления на включение электродвигателя формируется через порт Р2.5. Алгоритм работы пускателя электродвигателя представлен на рис.8.
Рис . Структурная схема МКС управления пуском двигателя
Если напряжение в сети отсутствует (Дн=0), то двигатель останавливается, а если напряжение есть (Дн=1), то проверяется состояние управляющих кнопок «Ост» и «Пуск». Кнопка «Ост» имеет более высокий приоритет и поэтому проверяется раньше. Если кнопка «Ост» нажата («Ост»=1) , то двигатель останавливается, иначе переходим к проверке кнопки «Пуск». Если кнопка «Пуск» нажата («Пуск=1» , то двигатель включается , иначе состояние двига
теля не изменяется.
Для подключения датчиков будем использовать порт Р1, а для двигателя – порт Р2 . Таблица истинности, отражающая алгоритм управления двигателем, имеет следующий вид:
Дн (Р1.2) |
Ост (Р1.1) |
Пуск (Р1.0) |
Дв (Р2.5) |
0 |
х |
х |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
Для подключения датчиков будем использовать порт Р1, а для двигателя – порт Р2 . Таблица истинности, отражающая алгоритм управления двигателем, имеет следующий вид:
Дн (Р1.2) |
Ост (Р1.1) |
Пуск (Р1.0) |
Дв (Р2.5) |
0 |
х |
х |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
В таблице символ «х» отражает, что при значении Дн =0 значение кнопок «Пуск» и «Ост» не имеет значения. Подключение датчика Дн , кнопок Пуск, Ост, а также двигателя Дв к портам контроллера показаны в таблице истинности.
Текст программы имеет следующий вид :
$mod812
M1: CLR P2.5
М2: JNB P1.2 , M1; проверка датчика напряжения
JB P1.1 , M1 ; проверка кнопки останов
JNB P1.0 , M1; проверка кнопки пуск
SETB P2.5 ; пуск двигателя
JMP M2
END
Время выполнения: 11 мкс.
Размер программы: 18 Байт