Реализация циклов с помощью микроконтроллера 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Реализация циклов с помощью микроконтроллера



· Операторы сравнения

x == y (x равно y);

x!= y (x не равно y);

x < y (x меньше чем y);

x > y (x больше чем y);

x <= y (x меньше или равно y);

x >= y (x больше или равно y);

· Оператор if

Оператор if используется вместе с операторами сравнения и проверяет, достигнута ли истинность условия, которое задает пользователь. Если условие достигнуто (выражение в скобках истинно), то начинается выполнение подпрограммы, указанной в «теле» цикла. В противном случае программа просто пропускает все, что к нему относится, и переходит к выполнению дальнейших операций.

Пример использования:

if (условие)

{

// Тело программы (выполняемые действия)

}

· Оператор if..else

Конструкция if..else предоставляет больший контроль над процессом выполнения кода, чем базовый оператор if, позволяя осуществлять несколько проверок, объединенных вместе.

Пример использования:

if (условие)

{

// Тело программы (выполняемые действия)

}

else

{

// Тело программы (выполняемые действия)

}

· Оператор while

While будет вычислять в цикле непрерывно и бесконечно до тех пор, пока выражение в круглых скобках (см. ниже), не станет равно логическому ЛОЖНО. Значение проверяемой переменной должно изменяться, иначе выход из цикла while никогда не будет достигнут.

Пример использования:

while (выражение)

{

// Тело программы (выполняемые действия)

}

· Оператор for

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

Пример использования:

for (initialization; condition; increment)

{

// Тело программы (выполняемые действия)

}

Инициализация (Initialization) выполняется самой первой и один раз. Каждый раз в цикле проверяется условие (condition), если оно верно, выполняется блок операторов и приращение (increment), затем условие проверяется вновь. Когда логическое значение условия становится ложным, цикл завершается.

Для закрепления данного материала составим программу, формирующую одно управляющее воздействие.

Задача № 1

Составить программу, для реализации на МК функцию трех переменных: .

Данная программа, позволяет зажигать светодиод в зависимости от значений логических переменных: х1, х2, х3 (это могут быть 0 и 1). Значения данных переменных, подаются на соответствующие входы микроконтроллера (P1_4, P1_5, P2_0). Для вывода информации, будем использовать контакт P1_6, связанный со светодиодом.

В цикле void loop, происходит не только считывание сигналов с вводов, но и преобразование этих сигналов в соответствии с представленной логической функцией U. Это сложная функция, в которой задействованы конъюнкция, дизъюнкция и инверсия.

Далее приводятся условия для выполнения цикла в зависимости от поступающих значений переменных. Условие if, говорит о том, что если на выходе функция U равна логической единице (true), то светодиод будет гореть постоянно. И так будет продолжаться, пока значение функции U не станет отличным от единицы (станет равной логическому нулю). Тогда условие else заставит светодиод мигать. Такой цикл будет выполняться до бесконечности, пока подаются сигналы на соответствующие входы. Реализация задачи № 1 с помощью среды Energia представлена на рисунке 4.1.

Рисунок 4.1 - Программное решение задачи № 1

Задача № 2

Составим программу для реализации на микроконтроллере четырех управляющих воздействий:

Реализация задачи № 2 с помощью среды Energia представлена на рисунках 4.2 и 4.2' (продолжение).

 

Рисунок 4.2 - Программное решение задачи № 2

Рисунок 4.2' (продолжение) - Программное решение задачи № 2

 

Данная программа отличается от предыдущей (рисунок 4.1) наличием четырех управляющих логических функций вместо одной. 

В зависимости от значений переменных, как-то: х 1, х 2, х 3, подаваемых на микроконтроллер, каждая функция будет выдавать определенные управляющие сигналы (это могут быть 0 и 1). И в соответствии с этим светодиоды, подключенные к определенным выходным контактам, могут гореть, либо не гореть.

Задача № 3

Реализация одного управляющего воздействия с помощью цикла if.. else, if.. else if.. else. Для создания программы воспользуемся данными из таблицы 4.1. Реализация задачи № 3 с помощью среды Energia представлена на рисунках 4.3 и 4.3' (продолжение).

Таблица 4.1 - Таблица управляющих воздействий

х 3 х 2 х 1 U
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 1
1 1 1 0

 

Рисунок 4.3 - Программное решение задачи № 3

Рисунок 4.3' (продолжение) - Программное решение задачи № 3

В данной программе используется только одно управляющее воздействие, которое зависит от значений логических переменных, таких как х 1, х 2, х 3. Кроме того, необходимо учесть выполнение того или иного условия, в зависимости от комбинации входных переменных, подаваемых на микроконтроллер. В том случае, если значения переменных совпадают с одним из восьми указанных условий, светодиод может загореться, при условии, что он имеет высокий уровень (HIGH), и не загореться, если условие имеет низкий уровень (LOW). Такой подход позволяет использовать таблицу значений логических переменных для определения комбинации управляющего воздействия.

Данный цикл будет выполняться до бесконечности, пока подаются необходимые сигналы на соответствующие входы.

 

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

Кроме того, в лаборатории имеется описание аппаратуры стендов и правила пользования контроллером, необходимые для проверки работоспособности разработанной СЛУ.

 



Поделиться:


Последнее изменение этой страницы: 2022-01-22; просмотров: 28; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.119.139.50 (0.009 с.)