Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Команды возврата из под программ





RET – если просто подпрограмма;

RETI – возврат из прерывания.

 

Специальные команды (команды управления процессором)

Разрешение/запрещение прерывания (установка битов регистра IE – Interrupt Enable)

NOP – No Operation – пустая команда (для коротких задержек).

 

Тема 6. Реализация логических функций микроконтроллера

Одним из классов задач, реализуемых микроконтроллерами в АСУ ТП, является задача логического управления. Входные и выходные сигналы – булевы переменные. В общем случае, требуется реализация одной или нескольких логических функций:

 

Пример 1: контроллер для функции охранной сигнализации 4 дверей автомобиля будет иметь вид (нарисовать структуру):

У=Х1 V X2 V Х3 V X4, где Х1-Х4 входные сигналы от контактных датчиков, а У – выходной сигнал , поступающий в ИМ – сигнализация.

Пример 2:управление схемой , описываемой логическим уравнением

У= Х1 ^ Х2 V Х3.

Пример 3: У= /Х1 V Х2*Х3 ( отметить приоритеты логических операций !).

 

Этапы реализации логических функций

 

Пример: У= Х1 ^ Х2 V/ Х3.

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

 

 

ИМ – исполнительный механизм, входные сигналы х1,х2,х3 подключены к порту Р1 (0,1,2 выводы соответственно).

 

2. Построение таблицы истинности для логических функций;

3. Разработка алгоритма реализации;

4. Разработка программы;

5. Трансляция программы для формирования исполняемогообъектного кода.

 

Пусть Log.asm- имя файла логической функции( создан в редакторе блокнот);

ASM51.exe Log.asm -трансляция, (программа–транслятор АSM51.exe)

В результате трансляции получаем два файла:

Log.HEX (16-ричный код программы) .   Log.LST Файл листинга (указаны синтаксические ошибки)

 



Загрузка .HEX файла в симулятор и отладка программы;

6. Оценка результатов:

§ быстродействие;

§ объем программы в байтах;

§ распределение адресного пространства памяти данных и команд.

 

Реализация логической функции с использованием команд условных переходов для функции: У= Х1 ^ х2 v /х3.

 

1.Создание структурной схемы ( см. выше);

2. Построение таблицы истинности; Внимание: входные сигналы Х необходимо размещать в таблице истинности в соответствии с подключением к входному порту контроллера (таблицу истинности заполнить самостоятельно).

 

Х3 Х2 Х1 У
 
 
 
 
 
 
 
 

 

3. Разработка алгоритма реализации функции.

Программа функции .

 

$Mod812

M4: CLR P2.5 ;у=0

JNB P1.0, M1 ;проверка х1

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 формируются значения вычисляемой функции У.

 

Память данных:

 

 

Память данных в симуляторе

 
               
               

 

Комбинации входных сигналов (Х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









Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2019 zdamsam.ru Размещенные материалы защищены законодательством РФ.