- •Микропроцессорные системы в электроэнергетике
- •Алматы 2013
- •Введение
- •1 Системы счислений. Карта памяти микроконтроллера
- •1.1 Краткие теоретические сведения
- •1.2 Задания
- •1.3 Контрольные вопросы
- •2 Изучение среды mplab. Управление оборудованием
- •2.1 Краткие теоретические сведения и задания для внеаудиторной подготовки
- •"Умк-mini"
- •2.2 Исходные данные
- •2.3 Выполнение проекта на умк-7
- •4.Выполним соответствующие настройки для запуска Вашего проекта:
- •6.Запуск проекта
- •2.4 Контрольные вопросы
- •3 Сложение, вычитание. Логика
- •3.1 Теоретические сведения
- •3.2 Исходные данные и выполнение программы
- •3.4 Контрольные вопросы
- •4 Операции преобразования информации
- •4.1 Теоретические сведения
- •4.2 Исходные данные и задание
- •4.3 Контрольные вопросы
- •5 Анализ информации посредством регистра состояния
- •5.1 Теоретические сведения
- •5.2 Исходные данные
- •5.3 Порядок выполнения работы
- •5.4 Контрольные вопросы
- •6 Маскирование
- •6.1 Краткие теоретические сведения
- •6.2 Исходные данные и задание
- •6.3 Контрольные вопросы
- •7 Суммирование массива информации
- •7.1 Теоретические сведения
- •7.2 Исходные данные
- •7.3 Выполнение задания
- •7.4 Контрольные вопросы
- •8 Автоматизация окрасочной камеры. Организация подпрограмм
- •8.1 Теоретические сведения
- •8.2 Задание на проектирование.
- •8.3 Выполнение задания
- •8.4 Контрольные вопросы
- •9 Программированиеклавиатуры
- •9.1 Теоретические сведения
- •9.2 Задание на проектирование
- •Фрагмент 9.1. Программирование клавиатуры.
- •9.3 Задание на выполнение
- •9.4 Контрольные вопросы
- •10 Автоматизация упаковки
- •10.1 Задание на автоматизацию упаковочной машины
- •10.2 Исходные данные
- •10.3 Выполнение задания
- •10.4 Контрольные вопросы
- •11 Программирование обработки аварийной ситуации
- •11.1 Теоретические сведения
- •11.2 Задание на проектирование и выполнение программы
- •11.3 Контрольные вопросы
- •12 Программирование таймерных функций
- •12.1 Задание на проектирование
- •12.2 Выполнение работы
- •12.3 Контрольные вопросы
- •Приложение а Системы счислений
- •Приложение б Карта памяти мк pic16877
- •Приложение в
- •Регистр Status
- •Приложение д Описание инструкций мк pic
- •Приложение е Модуль таймера tmr1
- •Список литературы
- •Содержание
- •0 50013, Алматы, Байтурсынова, 126
9.3 Задание на выполнение
Разработайте программу, автоматизации окрасочной камеры, согласно варианту задания из таблицы 9.1. Для уменьшения паразитных наводок необходимо все клеммы клавиатуры соединить с выводами PORTDи на битыRD4…RD7 подать напряжение.
Т а б л и ц а 9.1 – Варианты заданий
Вариант |
Биты подключения S1, D1, D2 L1, L2. |
Кнопка Pusk |
Кнопка Stop |
Вариант |
Биты подключения S1, D1, D2 L1, L2. |
Кнопка Pusk |
Кнопка Stop |
1 |
1, 2, 3, 4, 5 |
1или 2 |
5 или 6 |
6 |
6, 7, 0, 1, 2 |
6 или 7 |
9 или 0 |
2 |
2, 3, 4, 5, 6 |
2 или 3 |
6 или 7 |
7 |
7, 0, 1, 2, 3 |
7 или 8 |
3 или 4 |
3 |
3, 4, 5, 6, 7 |
3 или 4 |
7 или 8 |
8 |
0 ,1 ,2 ,3, 4 |
8 или 6 |
4 или 2 |
4 |
4, 5, 6, 7, 0 |
4 или 2 |
6 или 8 |
9 |
1, 3, 5, 7, 0 |
9 или 0 |
2 или 3 |
5 |
5, 6, 7, 0, 1 |
5 или 6 |
1или 2 |
10 |
2, 4, 6, 0, 1 |
0 или 9 |
7 или 6 |
Время работы S1,D1,D2,L1 иL2 и биты их подключения кPORTCпринять как в лабораторной работе №8.
Продемонстрируйте работу программы преподавателю.
9.4 Контрольные вопросы
Расскажите, какую реальную задачу решает ваша программа
Назначение клавиатуры.
Зачем разряды PORTDнастраивают на ввод и на вывод?
Как инициализируется PORTD?
Как проверяется нажатие кнопки клавиатуры?
Почему каждая кнопка клавиатуры не имеет отдельной клеммы?
Что выполняет инструкция BTFSSPORTD, 2?
Что выполняет инструкция BTFSCPORTD, 2?
Как подключить кнопки «1» и «2» параллельно по схеме ИЛИ?
Что записано в файле p16F877.inc?
Назначение сигнализации в программе.
Можно ли кнопку Stopразместить вне подпрограммыTimer.
10 Автоматизация упаковки
Цель работы: разработка автоматизации упаковочной машины.
10.1 Задание на автоматизацию упаковочной машины
При подаче напряжения на установку включить лампочку L2 на пульте оператора и предупреждающую звуковую сигнализацию на 3 секунды, затем включить конвейерD1. По нему движутся изоляторы, фотодатчик фиксирует попадание изолятора в коробку. После попадания двух изоляторов включить лампочкуL1. После попадания четырех изоляторов включить на две секунды упаковочный механизм, который заменяет полную коробку на пустую коробку. Количество упакованных коробок должно быть пересчитано. Срабатывание лазерных датчиков будем имитировать кнопкамиK5 иK6 клавиатуры. Временная диаграмма работы упаковщика показана на рисунке 10.1.
Рисунок 10.1 – Временная диаграмма работы упаковщика
10.2 Исходные данные
В таблице 10.1 показано назначение битов PORTCи клавиатуры.
Т а б л и ц а 10.1 – Назначение битов PORTCи контактов клавиатуры
Регистр PORTC |
Кнопки клавиатуры |
Действия кнопок |
0 разряд - предупреждающая звуковая сигнализация S1 |
5 или 6 |
Фотодатчики |
1 разряд – двигатель конвейера D1 |
|
|
2 разряд – двигатель D2 упаковочного механизма |
|
|
3 разряд – световая сигнализация L1 |
|
|
7 разряд – световая сигнализация работы L2 на пульт |
|
|
Блок – схема программы для упаковочной машины приведена на рисунке 10.1.
Рисунок 10.1 – Блок-схема
Фрагменты программы.
include<p16F877.inc>
Sch_in EQU H'22'; счетчик внутреннего цикла задержки.
Sch_out EQU H'23'; счетчик внешнего цикла задержки.
Sch3 EQU H'24'; счетчик третьего цикла задержки.
KOL_IZOL EQU h'25'; регистр для записи количества изоляторов.
KOL_KOROB EQU h'28'; регистр для хранения количества коробок.
; Инструкции по настройке МК опущены.
MOVLW b'00001111'
MOVWF TRISD; настраиваем PORTD: биты 0-3 на ввод, 4-7 на вывод.
BCF STATUS, 5
MOVLW b'11110000'
MOVWF PORTD; подаем питание на клавиатуру.
CLRF PORTC; очищаем PORTC от мусора.
CLRF KOL_KOROB
; Рабочая часть программы
MOVLW B'10000001'
MOVWF PORTC; включаем сигнализацию L2 на пульт и сирену S1.
MOVLW d'60'; время работы предупредительной сирены.
CALL Timer
BCF PORTC, 0; выключаем сирену S1.
BSF PORTC, 1; включаем транспортер D1.
M1 CLRF KOL_IZOL
Prov_dat
BTFSS PORTD, 2; проверяем срабатывание датчиков (кнопки "5", "6").
GOTO Prov_dat
MOVLW D'10'
Call Timer; убираем дребезг контактов клавиатуры.
INCF KOL_IZOL, F; фиксируем поступление изолятора в коробку.
MOVLW D'2';
XORWF KOL_IZOL, W; W=KOL_IZOL XOR B'00000010'.
BTFSC STATUS, Z; проверяем Z = 0?
BSF PORTC, 3; только при Z=1, включаем лампочку L1.
MOVLW D'4';
SUBWF KOL_IZOL, W; W=KOL_IZOL-4.
BTFSS STATUS, Z; проверяем разность KOL_IZOL-4=0?
GOTO Prov_dat; выполняется только при Z=0.
MOVLW b'10000110'; при Z=1, заменить коробку и выключить L1.
MOVWF PORTC; пересылаем информацию в PORTC.
INCF KOL_KOROB, F; фиксируем заполнение очередной коробки.
MOVLW d'50'; время смены коробок.
CALL Timer
BCF PORTC, 2; выключаем механизм замены коробок.
GOTO M1; начинаем заполнение новой коробки.
GOTO$
Timer; Подпрограмма Timer. Приведены только три строки.
MOVWF Sch3
; RETURN; включить команду при отладке программы в режиме F7.
M3 MOVLW D'150' . . .
RETURN; конец подпрограммы Timer.
END; конец текста всей программы.
В приведенной программе не используется кнопка Stop, поскольку она здесь не будет срабатывать.