Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Автоматизация окрасочной камеры. Организация подпрограммСодержание книги
Поиск на нашем сайте
Цель работы: разработка и исследование подпрограмм выдержки времени. Автоматизация работы окрасочной камеры
8.1 Теоретические сведения
Подпрограммы применяют в тех случаях, когда в нескольких местах алгоритма требуется выполнить идентичные действия с разными данными. Отсчет времени можно организовать с помощью подпрограмм со счетчиками, что и реализовано в алгоритме, показанном на рисунке 8.1. Часто программу разбивают на подпрограммы, чтобы упростить её чтение. Рассмотрим сначала работу внутреннего цикла подпрограммы Timer. Сначала счетчику внутреннего цикла Sch_in задаем какое-то значение N. Затем значение счетчика Sch_in уменьшается на 1 и проверяется: не стало ли оно нулевым. Если значение счетчика не равно нулю, то выполняется инструкция перехода GOTO M_in, повторяющая цикл. Если счетчик обнулился, программа выходит из цикла. Длительность задержки времени определяется начальной величиной счетчика Sch_in и временем выполнения инструкций подпрограммы в МК. Поскольку микропроцессор работает с высокой частотой, то часто приходится создавать внешний цикл со счетчиком Sch_out для увеличения времени задержки. Его работа аналогична. Сначала задаем значение Sch_out=W. На каждый цикл уменьшения Sch_out на единицу, внутренний цикл сработает N раз. Время задержки будет определяться произведением Sch_out×Sch_in и частой работы генератора МК. Подпрограммы пишут после инструкции GOTO$ основной программы. Подпрограмма всегда начинается с имени, которое должно быть написано без пробела. Заканчивается подпрограмма инструкцией возврата в основную программу RETURN. Подпрограмма из основной программы вызываетсяпо имениинструкцией CALL ИМЯ, например CALL Timer. Значение аккумулятора W является аргументом для подпрограммы Timer, определяющим длительность её работы. После завершения ее работы управление передается в главную программу на следующую инструкцию после инструкции CALL Timer.
Задание на проектирование.
Создать программу для автоматизации окрасочной камеры, описанной в лабораторной работе 2, выполняющую следующую работу: - при подаче питания включить световую сигнализацию на пульт оператора L2 и звуковую предупреждающую сигнализацию S1 на 2 секунды; - включить двигатель краскораспылителя D1 на 3 секунды, а также двигатель вентилятора D2 и лампочку L1; - выключить краскораспылитель D1, вентилятор D2 и лампочка L1 должны работать еще 2 секунды; - выключить D2 и L1 на 1 секунду для замены заготовки в камере; - повторить процесс окрашивания новой заготовки, начиная с включения предупреждающей звуковой сигнализации S1. Временная диаграмма работы камеры показана на рисунке 8.2.
Рисунок 8.2 – Временная диаграмма работы окрасочной камеры
Программа 8.1. include<p16F877.inc> Sch_in EQU H'22'; счетчик внутреннего цикла задержки. Sch_out EQU H'24'; счетчик внешнего цикла задержки. Sch3 EQU H'23'; счетчик третьего цикла задержки. ; Инструкции настройки МК опущены. ; Рабочая часть программы MOVLW B'10000000' MOVWF PORTC; включаем сигнализацию L2 на пульт оператора. Sled_det BSF PORTC, 0; включаем звуковую сигнализацию S1. MOVLW d’40’; аргумент W задает время таймера. При отладке d’2’. CALL Timer MOVLW B'10001110' MOVWF PORTC; выключаем S1, включаем D1, D2 и L1. MOVLW d’60’; задаем время окраски. CALL Timer BCF PORTC, 2; выключаем D1, продолжают работать D2, L1 и L2. MOVLW d’40’; задаем время работы D2 и L1. CALL Timer MOVLW B'10000000' MOVWF PORTC; окраска закончена, но сигнализация L2 работает. MOVLW d’20’; задаем время для замены заготовки. CALL Timer GOTO Sled_det; на метку Sled_det для повторения окраски. GOTO $; разделитель основной программы и подпрограмм. Timer; подпрограмма Timer. Применено два вложенных цикла. MOVWF Sch3; значение W является аргументом для таймера. M3 MOVLW D'150' MOVWF Sch_out; устанавливаем значение внешнего счетчика. M_out; метка внешнего счетчика. MOVLW D’255'; MOVWF Sch_in; устанавливаем значение внутреннего счетчика. M_in; метка внутреннего счетчика. DECF Sch_in, F; уменьшаем значение счетчика Sch_in на 1. BTFSS STATUS, Z; если счетчик Sch_in обнулился, пропускаем GOTO. GOTO M_in; срабатывает только при Z=0. DECF Sch_out, F; уменьшаем значение счетчика Sch_out на 1. BTFSS STATUS, Z; если счётчик обнулился, пропускаем GOTO. GOTO M_out; инструкция срабатывает только при Z=0. DECF Sch3, F; уменьшаем значение счетчика Sch3 на 1, BTFSS STATUS, Z; если оно равно нулю (Z=1), пропускаем GOTO. GOTO M3; срабатывает только при Z=0. RETURN; конец подпрограммы Timer. END; конец текста всей программы.
8.3 Выполнение задания
Разработайте программу, включающую и выключающую оборудование на заданное время, согласно варианту задания из таблицы 8.1.
Т а б л и ц а 8.1 – Варианты заданий
Отладка программы. Оставьте только первый вызов подпрограммы Timer, установив аргумент W=2. Остальные вызовы выключите, напечатав перед инструкцией Call символ «;». Установите значения для счетчиков Sch_in и Sch_out равные 2. Введите разработанную программу в микроконтроллер. Создайте окно наблюдения. После отладки программы в пошаговом режиме, установите первоначальные значения аргумента W, счетчиков Sch_in и Sch_out и запустите ее в автоматическом режиме. Рассчитайте W для заданного времени работы оборудования по варианту методом пропорций. Для уточнения времени задержки можно добавить в циклы дополнительные бесполезные инструкции, например, NOP. Результаты занесите в таблицу 8.2. Продемонстрируйте работу программы преподавателю.
Т а б л и ц а 8.2– Результаты настройки циклов задержки
Внимание! Обязательно сохраните программу в моих документах, поскольку в следующих лабораторных работах программа будет продолжена.
8.4 Контрольные вопросы
1. Почему создан третий цикл в подпрограмме Timer? 2. Почему в счетчики циклов записаны указанные значения? 3. Назначение подпрограмм. 4. Цикл, вложенный цикл. 5. Что такое машинный цикл? 6. Сколько машинных циклов требуется для выполнения команд в подпрограмме Timer? 7. Почему в Timer выбраны указанные значения Sch_in и Sch_out? 8. Как вызывается подпрограмма на выполнение? 9. Опишите работу инструкции DECF Sch_out, F. 10. Приведите формулу для расчета времени задержки. 11. Как разделяются главная программа и подпрограммы? 12. Какими операторами начинается и заканчивается подпрограмма? 13. Как выполняется отладка подпрограммы Timer? 14. Что является аргументом для подпрограммы Timer? Программирование клавиатуры
Цель работы: обучение созданию программ с вводом данных с помощью клавиатуры. Закрепление навыков организации условных переходов и инициализации портов.
Теоретические сведения
Клавиатура используется в реальных программах для ввода данных, инструкций, изменения алгоритма вычислений. В лабораторной работе с клавиатуры будем подавать сигнал ’1’ в PORTD, без применения дополнительного источника питания. Сигнал будет обработан микропроцессором и в PORTC будет выведен результат работы программы. Изучите принципиальную схему подключения пленочной клавиатуры к микроконтроллеру (см. рисунок 9.1). Использование такой схемы подключения продиктовано тем, что все кнопки подключаются к одному регистру PORTD, имеющему восемь бит. На рисунке 9.1 приведена, в качестве примера, монтажная схема подключения кнопки с цифрой «1» к PORTD. Разряды RD7, RD6, RD5, RD4 предназначены для подачи сигнала «1». Остальные для приема сигнала. В разряде RD0 по заводской схеме всегда записана «1». Одна клемма кнопки «1» подключена к выводу RD7, вторая подключена к выводу RD3.
Задание на проектирование
Создайте программу автоматизации окрасочной камеры по заданию лабораторной работы №8. Предусмотреть запуск и останов камеры кнопками по месту и с пульта оператора. Дребезг контактов клавиатуры убирается включением подпрограммы Timer. Кнопка Stop в данной программе находится в подпрограмме Timer. Выключение оборудования кнопкой здесь возможно, потому что при выполнении данной программы, МК практически все время находится во внутреннем цикле подпрограммы Timer. При других алгоритмах такой вариант выключения невозможен, необходимо предусмотреть прерывание.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-01-25; просмотров: 249; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.138.178.162 (0.006 с.) |