Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
К_Раб_ЦБП.DOC
Скачиваний:
3
Добавлен:
08.09.2019
Размер:
388.61 Кб
Скачать

31

ПРОГРАММИРОВАНИЕ МИКРОКОНТРОЛЛЕРНОЙ СИСТЕМЫ УПРАВЛЕНИЯ

Введение

Целью курсовой работы является разработка и отладка алгоритмов и программ для реализации заданного набора функций микроконтроллерной системы управления некоторым объектом управления (ОУ) , представленной на. рис.1.

Микроконтроллерная система (МКС) принимает множество информационных сигналов {X} об объекте управления от аналоговых и цифровых датчиков (Д), вырабатывает множество управляющих сигналов {Y} в соответствии с законом управления и подает их на исполнительные механизмы (ИМ). Закон управления реализуется в МКС, состоящей из микроконтроллера (МК) – управляющей микроЭВМ и пульта управления (ПУ). МК содержит основные модули , обеспечивающие выполнение и хранение данных и программ управления объектом, а также периферийные модули для подключения датчиков и исполнительных механизмов.

С помощью ПУ оператор получает возможность управлять работой МКС: запускать и останавливать ее, загружать в контроллер значения некоторых устaвок (констант), выводить на индикаторы информацию о состоянии объекта и т.п.

С помощью последовательного канала связи (ПсК) МКС может передавать обработанную информацию персональному компьютеру (ПК) более высокого уровня по запросу от него, обеспечивать интерфейс в мультиконтроллерных системах (локальные сети контроллеров).

В курсовой работе разрабатывается структурная схема МКС, включая устройства ввода с дискретных датчиков (ДД), аналоговых датчиков (АД) , исполнительные механизмы ( ИМ), алгоритмы и программы, обеспечивающие выполнение заданных функций, осуществляется отладка разработанных программ на модели контроллера и выполняется оценка характеристик МКС: время выполнения программ и емкость памяти программ в байтах.

1.Техническое задание на проектирование

1.1. Обобщенный алгоритм функционирования мкс

МКС реализует обобщенный алгоритм сбора и обработки данных с датчиков, представленный на рис 2. Блок 1 выполняет начальную установку системы и загрузку в выходные каналы начальных значений управляющих воздействий и настраивает модули контроллера на выбранные режимы работы.

Блок 2 реализует задачу логического управления: принимает информацию от дискретных датчиков Х1, …, Хn, вычисляет значение булевой функцииY1= f(Х1, …, Хn) в соответствии с заданным выражением и выдает это значение в качестве управляющего сигнала (УС) Y1 по соответствующему выходному каналу контроллера на ИМ.

Блок 3 обеспечивает прием информации от аналоговых датчиков V1, …, Vm, ее преобразование в цифровую форму, вычисление значений управляющих воздействий Y2 и Y3 и выдает их на ИМ ,.

При этом сигналы Y2 и Y3 являются двоичными сигналами, поступающими по выбранным каналам контроллера. При выполнении этой функции оператор задает значения уставок регулируемого параметра с пульта управления (ПУ) контроллера.

Блок 4 обеспечивает циклический режим управления или останов МКС в соответствии с командой, поступающей от оператора. с ПУ.

Кроме того, в системе имеется также двоичный датчик аварийной ситуации INT, поступающий в контроллер в режиме прерывания выполняемой программы. Сигнал прерывания INT от аварийного датчика включает на пульте управления аварийную световую или звуковую сигнализацию путем запуска зуммера.

1.2. Обработка информации, поступающей с дискретных датчиков (х1, …, Хn)

МКС опрашивает двоичные датчики Х1, …, Хn и вычисляет логическую (булеву ) функцию Y1= f(Х1, …, Хn) в соответствии с табл. 1 вариантов заданий. При единичном значении функции МКС вырабатывает в ИМ выходной сигнал Y1 = 1 заданной длительности t1. Это означает, что через t1 после выдачи единичного сигнала Y1 необходимо выработать нулевое значение сигнала Y1. Реализация длительности импульса t1 будет рассмотрена ниже. Номер варианта соответствует порядковому номеру студента в группе и представлены в табл.1.

Реализация логических функций.

Одной из распространенных функций в контроллерах логического управления является реализация булевых функций. Программная реализация таких функций в контроллере возможна различными способами, ниже будет рассмотрен один из них. Варианты задания приведены в табл.2.1. В соответствии с вариантом задания необходимо составить таблицу истинности заданной функции , подготовить алгоритм и текст программы на одном из языков программирования и выполнить отладку программы. Рассмотрим реализацию заданной логической функции с использованием рекомендуемого в курсовой работе метода.

В реальной системе входные сигналы из датчиков поступают в контроллер через один из входных портов. В курсовой работе при использовании симулятора контроллера используются два варианта формирования входных сигналов.

Первый вариант соответствует моделированию реальной ситуации, для которой любой из наборов входных сигналов загружается с клавиатуры компьютера во входной порт контроллера. Однако, при большом количестве возможных комбинаций входных сигналов это потребует большого времени для набора и выполнения программы для каждой из комбинаций, чтобы выполнить полное тестирование программы.

Второй вариант предусматривает вначале формирование значения всевозможных наборов входных сигналов хранящихся в виде массива данных в резидентной памяти данных контроллера. Значения функций также формируются в отдельном массиве этой же памяти данных.

Рассмотрим реализацию логической функции для первого варианта посредством способа, использующего команды условных переходов. При данном способе вычисление функции выполняется на основе разветвленного алгоритма типа дерева решений. Значения булевых аргументов последовательно анализируются командами условного перехода до тех пор пока не определится значение функции. На рис.3 в качестве примера приведен алгоритм реализации функции с использованием команд условных переходов. Анализируемые входные наборы сигналов Хi должны быть вначале загружены из входного порта в аккумулятор контроллера, а затем анализироваться последовательно, начиная с переменной X1, поступающим в нулевой разряд входного порта (см. алгоритм).

Анализируемые биты должны заноситься в триггер переноса C командой циклического сдвига аккумулятора RRC A (для чего исходный код должен быть предварительно загружен в аккумулятор), а затем анализироваться командами условного перехода JC или JNC. Отметим, что эффективность алгоритма в данном случае может зависеть от порядка проверки переменных с учетом конкретных особенностей реализуемой функции. Программа выполнения данного алгоритма на языке инструкций приведена ниже.

$mod812 ; данная директива подключает файл описания регистров и сигналов

;контроллера

org 100h ; данная директива определяет начальный адрес программы в РПП

mov A,P0 ; ввод сигналов х3,х2,х1 из порта Р0 в аккумулятор МП

rrc A ; сдвиг переменной х1 в флажок переноса «С»

jc m1 ;анализ значения х1, если х1=1, то выполняется переход к метке «m1»

rrc a ;иначе будет переход к следующей команде

jc m2

rrc A

jnc m2

m1: setb P1.0; установка 0 разряда порта Р1 в 1 для формирования сигнала У=1

jmp m3

m2: clr P1.0 ; установка 0 разряда порта Р1 в 0 для формирования сигнала У=0

m3: jmp m3 ; данная команда безусловного перехода имитирует останов

; выполнения программы

end ; директива конца программы для транслятора

Рис. Х Блок-схема алгоритма выполнения логической функции

Рис.3 Блок-схема алгоритма выполнения логической функции

Таблица 1

Номер варианта

Функция y1 = f(x1, …, xn)

1

x1vx2x3vx4

2

x1x2x3

3

_ _ _

x1x2x3x4

4

_

x1x2x3x4

5

x1vx2vx3x4

6

_

x1x2x3

7

x1x2x3

8

_

x1x2x3x4

9

_

x1x2x3x4

10

x1x2x3x4

11

_

x1x2x3

12

_

x1x2x3

13

_ _

x1x2x3

14

_

x1 (x2x3)

15

_ _

x1x2x3x4

16

____

x1x2x3x4

17

_ _

x1x2x1x2

18

_ _

x1x2x3x4

19

_

x1x2x3 x1x4

20

_

x1x2 x2x3x4

21

_ _

x1x2x3x4

22

_

x1\/ x2x3

23

x1x2 \/ x3x4

24

_

x1x2x3x4

25

x1x2 x3 x4