3334 МИКРОПРОЦЕССОРНЫЕ СИСТЕМЫ СБОРА И ОБРАБОТКИ ДАННЫХ - Страница 8

Лабораторная работа № 8

 

Контроллер для управления технологическим процессом

изготовления изделий из полимерной плёнки

 

Введение

 


Технология изготовления изделий из полимерной термопластичной плёнки заключается в следующем. Плёнка размещается над металлической формой. Затем включается первый пневмоцилиндр, опускающий колпак с нагревателем, и выключается второй пневмоцилиндр, который удерживал колпак в исходном положении. При опускании колпака на рабочий стол плёнка прижимается к краям колпака усилием работающего пневмоцилиндра. Таким образом плёнка прижимается краями колпака к форме. При этом над плёнкой на фиксированном расстоянии располагается нагреватель. При срабатывании концевого выключателя, в который упирается край колпака, включается нагреватель на время Tнагр. Через промежуток времени Тосн после включения нагревателя включается вакуумный насос, выкачивающий воздух из пространства между формой и плёнкой. В результате размягчённая плёнка втягивается в форму.  Вакуумный насос работает время Тдоп до выключения нагревателя и время Твыд после выключения нагревателя и выключается. При выключении насоса на время Твыдува включается наддув воздуха (выдув) для отделения изделия от формы, выключается первый пневмоцилиндр и включается второй, поднимающий колпак с нагревателем. Поднимающийся колпак упирается в упор и удерживается в таком положении работающим вторым пневмоцилиндром. После подъёма колпака  изделие извлекается из формы. На этом рабочий цикл заканчивается.

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

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


уровня логического нуля – к выключению.

В аппарате используются два устройства с механическими контактами, во время замыкания которых возникает явление, называемое дребезгом. Это явление заключается в том, что при замыкании контактов происходит отскок их друг от друга, что приводит к переходному процессу. Переходный процесс состоит в том, что перед окончательным замыканием контакты несколько раз размыкаются и замыкаются. При этом сигнал с контактов может быть прочитан микроконтроллером как случайная последовательность нулей и единиц. Подавить это явление можно схемотехническими средствами, но чаще это делается программным путём [2].

Наибольшее распространение получили два программных способа ожидания установившегося значения:  1) подсчёт заданного числа совпадающих значений сигнала; 2) временная задержка. Суть первого способа состоит  в многократном считывании сигнала с контакта. Подсчёт удачных опросов (т.е. опросов, обнаруживших, что контакт устойчиво замкнут) ведётся программным счётчиком. Если в серии удачных опросов встречается неудачный, то подсчёт начинается сначала. Контакт считается устойчиво замкнутым (дребезг устранён), если последовало N удачных опросов. Число N подбирается экспериментально для каждого типа используемых датчиков и лежит в пределах от 5 до 50.

Устранение последствий дребезга контакта путём введения временной задержки заключается в следующем. Программа, обнаружив замыкание контакта, запрещает опрос состояния этого контакта на время, заведомо большее длительности переходного процесса. Временная задержка (в пределах 1 – 10 мс) подбирается экспериментально для каждого типа датчиков.

В данной работе рекомендуется устранение влияния дребезга производить путём введения временной задержки. Поскольку временная задержка в программе используется неоднократно, то для её реализации удобно использовать макрокоманду, называемую также макросом. Макрокоманда, прежде чем быть использованной, должна быть определена с помощью макроопределения. Макроопределение представляет собой набор предложений,  включающих имя макрокоманды, директиву начала макрокоманды MACRO, последовательность команд на языке ассемблер и директиву конца макрокоманды ENDM. В процессе ассемблирования имя макрокоманды будет заменено последовательностью команд, определённых ранее в макроопределении. Имя макрокоманды располагается в поле метки. Количество макрокоманд в программе не ограничивается. В качестве примера приведём макроопределение макрокоманды задержки на 4 машинных цикла:

delay_4: macro

nop

nop

nop

nop

endm

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

 

Задание

 

Разработать программу управления технологическим процессом изготовления изделий из полимерной плёнки в соответствии с циклом, описанным выше. В программе предусмотреть счёт числа пусков, измерение времени между пусками, аварийную остановку процесса при нажатии кнопки "Стоп".

 

Контрольные вопросы

 

1. Что представляет собой макрокоманда и в каких случаях целесообразно её применение?

  1. Для чего необходимо макроопределение?

3. Какие  существуют варианты программного устранения влияния дребезга контактов?

4. Какие возможны варианты программного задания временных интервалов?

 

 

 

Лабораторная работа № 9

 

Программирование микроконтроллера на языке высокого уровня

 

Введение

 

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

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

Язык Си следует выбрать в том случае, если необходимо производить сложные вычисления, например операции над 16-, 32-разрядными числами, числами с плавающей точкой. Существенно проще использовать Си также для операций с многомерными массивами, строками данных, структурами. Если к программе не пред'является жестких требований по об'ему и быстродействию, то Си чаще всего предпочтительнее ассемблера.

Очень часто наиболее подходящей является смешанная модель, где критичные к быстродействию части программы написаны на ассемблере, тогда как вычислительные процедуры реализованы на Си. Заметим, что почти все современные компиляторы допускают также вставку ассемблерных инструкций прямо в исходный текст Си-программ. Сравнительная характеристика ассемблера и языка высокого уровня (в качестве примера взят язык Си), с точки зрения применения  при  программировании  микроконтроллера  приведена, в табл 1.

 

Ассемблер

Си

Полное управление ресурсами

Ограниченное управление ресурсами

Компактный  и "быстрый" код в малых приложениях

Большой и "медленный" код в малых приложениях

Малоэффективный код в больших приложениях

Эффективный код в больших приложениях

"Малочитабельный" код

Структурный код

Трудоёмкая последующая

модификация

Простая последующая модификация

Непереносимый на другие платформы код

Переносимый на другие платформы код

 

В данной лабораторной работе рассматривается симулятор PDS-51 московской фирмы "Фитон", который позволяет отлаживать программы для микроконтроллеров семейства MCS-51 различных фирм c использованием компиляторов ассемблера и Си. Симулятор работает в среде операционной системы Windows. Его особенностью является возможность моделирования работы внешних по отношению к микроконтроллеру устройств (например, индикаторов, аналого-цифровых преобразователей), работающих под управлением микроконтроллера.  Программа обладает системой помощи на русском языке.

Цель данной работы заключается в программировании микроконтроллера на языке Си.  Для этого важно знать ограничения, накладываемые архитектурой MCS51, чтобы избегать использования неэкономных конструкций языка Си. Предпочтительно использовать наиболее короткий тип данных. Необходимо помнить, что "char" и "bit" - единственные типы данных, поддерживаемые архитектурой MCS51 непосредственно. Объекты без знака ("unsigned") обычно более эффективны, чем знаковые, т.к. MCS51 не имеет средств для поддержки знаковых объектов. Если задаче требуется внешняя память данных (XDATA), желательно использовать модели compact или medium, но не large. Внимательное использование атрибута класса памяти позволяет увеличить скорость выполнения программы и уменьшить размер её кода.