logo
МУ ЦТ и МК для стенда 2013

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

Создать программу для автоматической окрасочной камеры, описанной в лабораторной работе №8, выполняющую следующую работу:

- при подаче питания включить световую сигнализацию на пульт оператора L2. Кроме того, включить звуковую предупреждающую сигнализациюS1 на 2 секунды;

- включить двигатель краскораспылителя D1, вентилятораD2 и лампочкуL1 на 3 секунды;

- выключить краскораспылитель D1. ВентиляторD2 и лампочкаL1 продолжают работать еще 2 секунды;

- выключить D2 иL1 на 1 секунду для замены заготовки в камере;

- выполнить подсчет окрашенных заготовок;

- повторить процесс окрашивания новой заготовки, начиная с включения предупреждающей звуковой сигнализации S1.

Временная диаграмма работы камеры показана на рисунке 8.2.

Изучите блок-схему алгоритма автоматизации работы окрасочной камеры по рисункам 12.2 и 12.3.

Рисунок 12.2 - Блок-схема программы Рисунок 12.3 - Блок-схема п/п Timer2

Ознакомьтесь с фрагментами программы. Они демонстрируют использование тай­мераTRM1 для организации временных задержек. На основе фрагментов создайте программу для заданного варианта.

Фрагменты программы. Курсивом отмечены дополнительные команды по сравнению с лабораторной работой №8.

Include <p16F877.inc>; подключаем библиотеку символов.

T_reg EQU h'20'; регистр, определяющий время задержки.

Kol_det EQU h'21'; регистр, хранящий количество окрашенных деталей.

; Команды стандартной настройки МК опущены.

BSF STATUS, 5

CLRF TRISC

CLRF PIE1; запрещаем периферийные прерывания.

BCF STATUS, 5

CLRF T1CON; установка TMR1 в режим ожидания, тактирование ;TMR1 от внутреннего генератора, значение предделителя частоты 1:1.

CLRF TMR1H; очищаем старший регистр-счетчик TMR1.

CLRF TMR1L; очищаем младший регистр-счетчик TMR1.

CLRF INTCON; запрещаем прерывания от TMR1.

MOVLW b'00110000'; тактирование от внутреннего генератора.

MOVWF T1CON; устанавливаем предделитель частоты 1:8.

; Рабочая часть совпадает с программой лабораторной работы 8.

GOTO$

; Подпрограмма Timerзаменяется на подпрограммуTimer2.

Timer2; Подпрограмма задержки времени с встроенным таймером TMR1.

MOVWF T_reg

; Return; для выключения Timer2 при отладке главной программы.

M_T_reg; следующие 4 команды только для отладки в режиме F7.

; MOVLW D'255'; для отладки Timer2.

; MOVWF TMR1H; для отладки Timer2.

; MOVLW D'254'; для отладки Timer2.

; MOVWF TMR1L; для отладки Timer2.

BCF PIR1, TMR1IF; сброс флага переполнения таймера в каждом цикле.

BSF T1CON, TMR1ON; пуск таймера TMR1.

; Следующие три строки это циклы работы таймера TRM1.

M_ TRM1; метка

BTFSS PIR1, TMR1IF; проверка флага перепол­нения таймера

GOTO M_ TRM1; если флага нет, то цикл TRM1 продолжается.

DECFSZ T_reg, F; уменьшаем число в регистре и проверяем на ноль.

GOTO M_T_reg; (только при Z=0) время не кончилось, повторяем цикл.

RETURN

END