Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Задание на проектирование.




 

Создать программу для автоматизации окрасочной камеры, описанной в лабораторной работе 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.1.

 

 

Т а б л и ц а 8.1 – Варианты заданий

Вариант Биты подключения S1, D1, D2 L1, L2. Время работы, сек Вариант Биты подключения S1, D1, D2 L1, L2. Время работы, сек
S1 D1 D2 S1 D1 D2
  1, 2, 3, 4, 5         6, 7, 0, 1, 2      
  2, 3, 4, 5, 6         7, 0, 1, 2, 3      
  3, 4, 5, 6, 7         0,1,2,3, 4      
  4, 5, 6, 7, 0         1, 3, 5, 7, 0      
  5, 6, 7, 0, 1         2, 4, 6, 0, 1      

Отладка программы. Оставьте только первый вызов подпрограммы Timer, установив аргумент W=2. Остальные вызовы выключите, напечатав перед инструкцией Call символ «;». Установите значения для счетчиков Sch_in и Sch_out равные 2. Введите разработанную программу в микроконтроллер. Создайте окно наблюдения. После отладки программы в пошаговом режиме, установите первоначальные значения аргумента W, счетчиков Sch_in и Sch_out и запустите ее в автоматическом режиме. Рассчитайте W для заданного времени работы оборудования по варианту методом пропорций. Для уточнения времени задержки можно добавить в циклы дополнительные бесполезные инструкции, например, NOP.

Результаты занесите в таблицу 8.2. Продемонстрируйте работу программы преподавателю.

 

Т а б л и ц а 8.2– Результаты настройки циклов задержки

    Вариант     Оборудование Параметры подпрограммы Timer
Время работы, сек Значение счетчиков
Sch_in Sch_out Sch3
  S1        
  D1, D2, L1        
  D2, L1        

Внимание! Обязательно сохраните программу в моих документах, поскольку в следующих лабораторных работах программа будет продолжена.

 

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?

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...