Федеральное агентство по образованию Российской Федерации
Государственное образовательное учреждение высшего профессионального образования
Санкт-Петербургский
Государственный Технологический Университет Растительных Полимеров
Тема работы:
Разработка микроконтроллерной системы управления
Выполнил: Егоров. Е.А.
Проверил: Петров Г.А.
Содержание
Введение
. Обобщенный алгоритм функционирования МКС
.1 Обработка информации поступающей с дискретных датчиков
.2 Управление пуском/остановом электродвигателя
.3 Управление технологическим параметром в заданных пределах
.4 Обработка информации поступающей с аналоговых датчиков
.5 Обработка запроса прерывания
Заключение
Введение
Целью курсовой работы является разработка и отладка алгоритмов и программ
для реализации заданного набора функций микроконтроллерной системы управления
некоторым объектом управления (ОУ) , представленной на. рис.1.
Микроконтроллерная система (МКС) принимает множество информационных сигналов {X} об объекте управления от аналоговых и цифровых датчиков (Д), вырабатывает множество управляющих сигналов {Y} в соответствии с законом управления и подает их на исполнительные механизмы (ИМ). Закон управления реализуется в МКС, состоящей из микроконтроллера (МК) - управляющей микроЭВМ и пульта управления (ПУ). МК содержит основные модули, обеспечивающие выполнение и хранение данных и программ управления объектом, а также периферийные модули для подключения датчиков и исполнительных механизмов.
С помощью ПУ оператор получает возможность управлять работой МКС: запускать и останавливать ее, загружать в контроллер значения некоторых устaвок (констант), выводить на индикаторы информацию о состоянии объекта и т.п. С помощью последовательного канала связи (ПсК) МКС может передавать обработанную информацию персональному компьютеру (ПК) более высокого уровня по запросу от него, обеспечивать интерфейс в мультиконтроллерных системах (локальные сети контроллеров).
В работе разрабатывается структурная схема МКС, включая устройства ввода
с дискретных датчиков (ДД), аналоговых датчиков (АД) , исполнительные механизмы
(ИМ), алгоритмы и программы, обеспечивающие выполнение заданных функций,
осуществляется отладка разработанных программ на модели контроллера и
выполняется оценка характеристик МКС: время выполнения программ и емкость
памяти программ в байтах.
1. Обобщенный алгоритм функционирования МКС
МКС реализует алгоритм, представленный на рис.2, сбор и обработку данных с датчиков. Блок 1 выполняет начальную установку системы и загрузку в выходные каналы начальных значений управляющих воздействий и настраивает модули контроллера на выбранные режимы работы.
Блок 2 реализует задачу логического управления: принимает информацию от
дискретных датчиков Х1, …, Хn, вычисляет значение булевой функцииY1= f(Х1, …,
Хn) в соответствии с заданным выражением и выдает это значение в качестве
управляющего сигнала (УС) Y1 по соответствующему выходному каналу контроллера
на ИМ.
Блок 3 обеспечивает прием информации от аналоговых датчиков V1, …, Vm, ее преобразование в цифровую форму, вычисление значений управляющих воздействий Y2 и Y3 и выдает их на ИМ, .При этом сигналы Y2 и Y3 являются двоичными сигналами, поступающими по выбранным каналам контроллера. При выполнении этой функции оператор задает значения уставок регулируемого параметра с пульта управления (ПУ) контроллера.
Блок 4 обеспечивает циклический режим управления или останов МКС в соответствии с командой, поступающей от оператора. с ПУ.
Кроме того, в системе имеется также двоичный датчик аварийной ситуации
INT, поступающий в контроллер в режиме прерывания выполняемой программы. Сигнал
прерывания INT от аварийного датчика включает на пульте управления аварийную
световую или звуковую сигнализацию путем запуска зуммера.
.1 Обработка информации, поступающей с дискретных датчиков
МКС опрашивает двоичные датчики Х1, Х2, Х3 и Х4 и вычисляет логическую (булеву ) функцию Y1= f(Х1, Х2, Х3, Х4) в соответствии с заданием. При единичном значении функции МКС вырабатывает в ИМ выходной сигнал Y1 = 1.
Задание (Вариант № 1 ):
Разработка структурной схемы подключения входных и выходных сигналов к
контроллеру для заданной функции:
Рис.3. Структурная схема входных и выходных сигналов к контролеру
· Построение таблицы истинности:
|
Х1 |
Х2 |
Х3 |
Х4 |
Y1 |
|
0 |
0 |
0 |
0 |
0 |
|
0 |
0 |
0 |
1 |
0 |
|
0 |
0 |
1 |
0 |
0 |
|
0 |
0 |
1 |
1 |
1 |
|
0 |
1 |
0 |
0 |
0 |
|
0 |
1 |
0 |
1 |
|
|
0 |
1 |
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
1 |
0 |
|
1 |
0 |
1 |
0 |
0 |
|
1 |
0 |
1 |
1 |
1 |
|
1 |
1 |
0 |
0 |
1 |
|
1 |
1 |
0 |
1 |
1 |
|
1 |
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
1 |
Разработка алгоритма реализации:
Рис.4. Алгоритм реализации логической функции
Разработка программы:
Программа функции
$Mod812
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
END
· Модель симулятора
Рис.5. Модель симулятора
Максимальное время реализации одного цикла: 12мкс
Занимаемая память: байт
.2 Управление пуском-остановом электродвигателя
На рис 6. показана упрощенная схема подключения кнопок к МКС для управления, контроля напряжения силовой сети и выдачи сигнала для включения или выключения двигателя.
Для проверки и отладки программы на модели будем предполагать, что кнопка
«Пуск» имитируется разрядом D1 выбранного порта контроллера , кнопка останова -
«Ост» имитируется разрядом D0 , датчик наличия напряжения сети имитируется разрядом
D2, а сигнал управления на включение электродвигателя отображается светодиодом
разряда D3. Алгоритм работы пускателя электродвигателя представим в
описательной форме и в виде блок-схемы, а программу на ассемблере требуется
разработать и отладить.
Если напряжение в силовой сети отсутствует (Дн=0), то двигатель останавливается. Если напряжение есть(Дн=1), то проверяется состояние управляющих кнопок «Ост» и «Пуск». Кнопка «Ост» имеет более высокий приоритет и поэтому проверяется раньше.
микроконтроллерный
дискретный сигнал датчик
Если кнопка «Ост» нажата («Ост»=1) , то двигатель останавливается, иначе переходим к проверке кнопки «Пуск».
Если кнопка «Пуск» нажата («Пуск=1» , то двигатель включается. Иначе состояние двигателя не изменяется. Пуск двигателя имитируется установкой разряда D3. Блок -схема алгоритма приведена на рис.7.
· Разработка структурной схемы подключения входных и выходных
сигналов к контроллеру для заданной функции:
Рис.8. Структурная схема входных и выходных сигналов к контролеру
· Построение таблицы истинности:
|
Дн (Р1.1) |
Ост (Р1.2) |
Пуск (Р1.3) |
Дв (Р2.1) |
|
0 |
- |
- |
0 |
|
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
0 |
|
1 |
1 |
1 |
0 |
· Разработка алгоритма реализации:
Рис.9. Алгоритм реализации логической функции
Разработка программы.
$mod812
M1:CLR P2.1
M2:JNB P1.1 , M1; проверка датчика напряжения
JB P1.2 , M1 ; проверка кнопки останов
JNB P1.3 , M1; проверка кнопки пуск
SETB P2.1 ; пуск двигателя
JMP M2
END
Модель симулятора.
Рис.10. Модель симулятора (пуск/останов двигателя)
Максимальное время реализации одного цикла: 7 мкс
Занимаемая память: байт
.3 Управление технологическим параметром в заданных пределах
Необходимо обеспечить поддержание значения параметра, например,
температуры окружающей среды в заданных пределах Тmin - Тmax. Значения Tmin и
Tmax при моделировании хранятся в ячейках памяти данных контроллера или в
регистрах ЦПУ и их значения определяются студентом при моделировании
самостоятельно, как и значения текущих значений температуры с датчиков
(загружаются параметры температур при моделировании в симулятор контроллера с
клавиатуры персонального компьютера).
Вариант 1
|
Номер варианта |
Количество датчиков температур «m» |
Поиск мин. или макс. значения температуры |
Место хранения исходных температур |
|
1 |
2 |
мин |
Регистры |
Обработка данных заключается в следующем. Введенные с датчиков m значений параметров (m выбирается по таблице) запоминаются в ячейках области ввода памяти данных и регистрах контроллера ( область памяти и регистры выбираются самостоятельно).
Далее требуется вычислить среднее значение температуры:
ср.=∑Ti/m ,
где m - количество температур Ti. После определения Tср необходимо ее сравнить с Tmin и Tmax и сформировать на линиях выбранного выходного порта контроллера соответствующие УС, например Y4 или Y5, поступающие в ИМ «Охладитель среды» или «Нагреватель среды» соответственно, подключенные к данным линиям выходного порта. Также требуется в индикатор, подключенный к выходному порту, вывести среднее значение Тср текущей температуры, минимальное или максимальное в соответствии с вариантом .
Алгоритм сравнения температур приведен на рис.11
Рис.11. Алгоритм сравнения температур.
Рис. 12. Структурная схема подключения входных и выходных сигналов к
контролеру
Карта памяти:
40H - 41H - значения Ti- значение максимума (Тмакс=8)- значение минимума ( Тмин=2)- среднее значение- минимальная температура
Разработка программы:$Mod812
R0,#40H ;Начальный адрес в ПД значений Тi(i=1-2)R1,#02H ; Счетчик числа TiR3,#8H ; Значение TmaxR4,#02H ; Значение Tmin
MOV B,#02H ; Количество TiAP2.3
CLR P2.4
; Вычисление суммы Ti и Тср
M1:ADD A,@R0 ; складываем аккумулятор с косвенной адресом R0
INC R0 ; инкремент адресаR1,M1; декремент если не 0 то переход в м1 иначе след шаг.AB ; Нахождение значения Тср
; Сравнение температурR5, A ; Сохраняем результат Тср в регистре R5A, R4 ; Сравнение значения Тср со значением Тmin
JC M2 ; анализ значения Тср, если Тср<Tmin, то осуществляется ;переход к метке М2, иначе выполняется следующая команда
MOV A,R5 ; записываем в аккумулятор значение ТсрA,R3 ; Сравнение значения Тср со значением Тmax
JNC M4 ; анализ значения Тср, если Тср >Tmax, то осуществляется
;переход к метке М4, иначе выполняется следующая команда
JMP M3 ;переход к м3
M2:SETB P2.3 ; у=1; включить нагреватель
JMP M3 ; переход к м3
M4:SETB P2.4 ; у=1; включить охладитель
; Поиск минимума температуры:MOV R0, #40H ;Начальный адрес в ПД значений Тi(i=1-2)
MOV R1, #02H; Счетчик числа Ti
MOV A, @R0 ; записываем в аккумулятор первую T1. :INC R0 ; инкремент адреса
MOV R6, A ; сохраняем результат T1 в R6
SUBB A, @R0 ; сравниваем T1с T2
JNC M7 ; анализ значения , если T1<T2, то осуществляется переход ;к метке М7, иначе выполняется следующая команда
MOV A,R6 ; записываем в аккумулятор
JMP M10
M7:MOV A,@ R0 ; записываем в аккумулятор T2.
M10:DJNZ R1,M9
MOV P3 , R6; вывод минимума на P3
M11:JMP M11
END
· Модель симулятора
Рис.13.модель симулятора (пределы T)
Максимальное время реализации одного цикла: 54 мкс
Занимаемая память: байт
.4 Обработка информации, поступающей с аналоговых датчиков (V1, …,Vm)
Сигналы с аналоговых датчиков V1 и V2 преобразуются в АЦП в 8-разрядные
коды.
Рис.14. Алгоритм обработки аналоговых сигналов
Данные коды представляют целые числа без знака и поступают на обработку в МП контроллера. Величина K - 8-разрядный код, поступающий в контроллер с клавиатуры пульта управления (уставка).
Полученное значение функции Nv = f(Nv1, Nv2, K) сравнивается с константой
Q, хранящейся в РПД и в зависимости от результатов сравнения (рис. 14) МКС
вырабатывает двоичные управляющие воздействия y2 или y3 длительностью t2 или t3
соответственно(см . рис 15).
Рис. 15.обработка аналоговых сигналов.
Задание (Вариант № 1)
Функция Nu = f(Nu1+Nu2+, K):
Время t2: 20 мкс
Время t3: 20 мкс
Разработка алгоритма реализации:
Рис16. Алгоритм обработки аналоговых сигналов
Текст программы:
$MOD812
MOV R0,10H; ввод сигнала Nu1 из памяти
MOV R1,11H; ввод сигнала Nu2 из памяти
MOV R2, P3; ввод К
MOV R3, 13H; ввод константы Q
CLR P1.0 ; обнулить выход Р1.0
CLR P1.1; обнулить выход Р1.1
MOV A,R0; записать в аккумулятор значение Nu1
ADD A,R1; прибавить Nu1+Nu2
MOV R4, A; сохранение результата (Nu1+Nu2) из аккумулятора в R4