- •Микропроцессорные системы в электроэнергетике
- •Алматы 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
8.4 Контрольные вопросы
Почему создан третий цикл в подпрограмме Timer?
Почему в счетчики циклов записаны указанные значения?
Назначение подпрограмм.
Цикл, вложенный цикл.
Что такое машинный цикл?
Сколько машинных циклов требуется для выполнения команд в подпрограмме Timer?
Почему в Timerвыбраны указанные значенияSch_inиSch_out?
Как вызывается подпрограмма на выполнение?
Опишите работу инструкции DECF Sch_out, F.
Приведите формулу для расчета времени задержки.
Как разделяются главная программа и подпрограммы?
Какими операторами начинается и заканчивается подпрограмма?
Как выполняется отладка подпрограммы Timer?
Что является аргументом для подпрограммы Timer?
9 Программированиеклавиатуры
Цель работы: обучение созданию программ с вводом данных с помощью клавиатуры. Закрепление навыков организации условных переходов и инициализации портов.
9.1 Теоретические сведения
Клавиатура используется в реальных программах для ввода данных, инструкций, изменения алгоритма вычислений. В лабораторной работе с клавиатуры будем подавать сигнал ’1’ в PORTD, без применения дополнительного источника питания. Сигнал будет обработан микропроцессором и вPORTCбудет выведен результат работы программы.
Изучите принципиальную схему подключения пленочной клавиатуры к микроконтроллеру (см. рисунок 9.1). Использование такой схемы подключения продиктовано тем, что все кнопки подключаются к одному регистру PORTD, имеющему восемь бит.
На рисунке 9.1 приведена, в качестве примера, монтажная схема подключения кнопки с цифрой «1» к PORTD. РазрядыRD7,RD6,RD5,RD4 предназначены для подачи сигнала «1». Остальные для приема сигнала. В разрядеRD0 по заводской схеме всегда записана «1». Одна клемма кнопки «1» подключена к выводуRD7, вторая подключена к выводуRD3.
Бит RD7 должен быть запрограммирован на вывод, а битRD3 - на ввод. Когда кнопка нажата, с битаRD7 проходит сигнал через кнопку «1» на клеммуRD3. Роль кнопок клавиатуры в программе и их расположение: “5” - Кнопка Pusk1 на пульте; “6” - Кнопка Pusk2 по месту; “Shift”- КнопкаStop1 на пульте; “9” - Кнопка Stop2по месту. | |
Рисунок 9.1 – Схема подключения |
|
9.2 Задание на проектирование
Создайте программу автоматизации окрасочной камеры по заданию лабораторной работы №8. Предусмотреть запуск и останов камеры кнопками по месту и с пульта оператора.
Дребезг контактов клавиатуры убирается включением подпрограммы Timer. КнопкаStopв данной программе находится в подпрограммеTimer. Выключение оборудования кнопкой здесь возможно, потому что при выполнении данной программы, МК практически все время находится во внутреннем цикле подпрограммыTimer. При других алгоритмах такой вариант выключения невозможен, необходимо предусмотреть прерывание.
Фрагмент 9.1. Программирование клавиатуры.
Добавленные команды по сравнению с лабораторной работой №8, выделены курсивом.
; Инструкции для настройки МК опущены.
CLRF TRISC
MOVLW b'00001111'
MOVWF TRISD; настраиваем PORTD: биты 0-3 на ввод, 4-7 на ввод.
BCF STATUS, 5
CLRF PORTC
; Рабочая часть программы
MOVLW B'11110000'
MOVWF PORTD; подаем питание на выводы К7-К4 клавиатуры.
MOVLW B'10000000'
MOVWF PORTC; включаем сигнализацию наличия питания на пульт.
Sled_det BTFSS PORTD, 2; проверяем нажатие кнопки Pusk.
GOTO Sled_det; если кнопка Pusk не нажата повторяем проверку.
BSF PORTC, 0; если нажата, включаем звуковую сигнализацию S1.
MOVLW d'40'; задаем время работы сигнализации S1.
CALL Timer
MOVLW B'10001110'
MOVWF PORTC; включаем двигатели D1 и D2, сигнализацию L1.
MOVLW d'60'; задаем время работы D1.
CALL Timer
BCF PORTC, 2; выключаем D1, продолжают работать D2, L1 и L2.
MOVLW d'20'; задаем время работы вентилятора D2 и лампочки L1.
CALL Timer
MOVLW B'10000000'
MOVWF PORTC; выключаем вентилятор D2 и сигнализацию L1.
MOVLW d’20’; задаем время для замены заготовки.
CALL Timer
GOTO Sled_det; на метку Sled_det для нового запуска установки.
GOTO $; разделитель основной программы и подпрограмм.
Timer; в подпрограмме показан только внутренний цикл с кнопками Stop.
M_in; метка внутреннего счетчика.
BTFSC PORTD, 1; проверяем нажатие кнопки Stop1 или Stop2.
GOTO Stop; если кнопка Stop нажата, останавливаем камеру.
DECF Sch_in, F; уменьшаем значение счетчика Sch_in на 1.
BTFSS STATUS, Z; если счетчик обнулился (Z=1), пропускаем GOTO.
GOTO M_in; срабатывает только при Z=0.
DECF Sch_out, F; уменьшаем значение счетчика Sch_out на 1.
. . . .
RETURN
Stop CLRF PORTC; окончание работы окрасочной камеры.
END; конец текста всей программы.