- •Программирование микроконтроллерной системы управления Введение
- •1.Техническое задание на проектирование
- •1.1. Обобщенный алгоритм функционирования мкс
- •1.2. Обработка информации, поступающей с дискретных датчиков (х1, …, Хn)
- •Реализация логических функций.
- •(Вариант 1 )
- •Выполнение логических функций ( вариант 2)
- •1.3. Обработка информации, поступающей с аналоговых датчиков (v1, …,Vm)
- •1.4. Управление пуском–остановом электродвигателя
- •1.5.Управление технологическим параметром в заданных пределах
- •1.6.Обработка запроса прерывания
- •2. Результаты курсовой работы
- •3. Приложение. Описание симулятора adSim812
- •Литература
1.2. Обработка информации, поступающей с дискретных датчиков (х1, …, Хn)
МКС опрашивает двоичные датчики Х1, …, Хn и вычисляет логическую (булеву ) функцию Y1= f(Х1, …, Хn) в соответствии с табл. 1 вариантов заданий. При единичном значении функции МКС вырабатывает в ИМ выходной сигнал Y1 = 1 заданной длительности t1. Это означает, что через t1 после выдачи единичного сигнала Y1 необходимо выработать нулевое значение сигнала Y1. Реализация длительности импульса t1 будет рассмотрена ниже. Номер варианта соответствует порядковому номеру студента в группе и представлены в табл.1.
&
Реализация логических функций.
Одной из распространенных функций в контроллерах логического управления является реализация булевых функций. Программная реализация таких функций в контроллере возможна различными способами, ниже будет рассмотрен один из них. В соответствии с вариантом задания необходимо составить таблицу истинности заданной функции, подготовить алгоритм и текст программы на одном из языков программирования и выполнить отладку программы. Рассмотрим реализацию заданной логической функции с использованием рекомендуемого в курсовой работе метода.
В реальной системе входные сигналы из датчиков поступают в контроллер через один из входных портов. В курсовой работе при использовании симулятора контроллера используются два варианта формирования входных сигналов.
Пример реализация логической функции У= Х1 & Х2 V/ Х3
(Вариант 1 )
Примечание: (& -функция «И» ; / - «Инверсия» )
1.Разработка структурной схемы подключения входных и выходных сигналов к портам контроллера для заданной функции приведена на рисунке:
2. Разработка таблицы истинности для заданной функции и алгоритм ее реализации, представленный на рисунке для рассматриваемого примера.
Таблица истинности
Х3 |
Х2 |
Х1 |
У |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
3.Разработка алгоритма выполнения функции. Алгоритм представлен на рисунке ниже.
Рис. Алгоритм реализации логической функции
4.Реализация функции у= х1&х2 V /х3.
$Mod812
M4: CLR P2.5 ;у=0
JNB P1.0, M1
JNB P1.1, M1
M2: SETB P1.3 ; y =1
JMP M4
M1: JNB P1.2, M2
JMP M4
END
Выполнение логических функций ( вариант 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
Примечание: В пояснительной записке сравнить два варианта выполнения логической функции .