
- •1. Цель и содержание работы................................................................ 4
- •2. Задания для домашней подготовки .......................................... 4
- •3. Взаимодействие микроконтроллера с
- •5. Содержание отчёта .......................................................................... 23
- •1. Цель и содержание работы
- •2. Задания для домашней подготовки
- •2.1. Изучение аппаратных средств
- •2.2. Изучение системы команд
- •2.3. Изучение типовых процедур взаимодействия микроконтроллера с объектами управления и подготовка программ
- •2.4. Контрольные вопросы
- •3. Взаимодействие микроконтроллера с
- •3.1. Прерывания
- •3.2. Ввод информации с датчиков
- •3.2.1. Опрос двоичного датчика. Ожидание события
- •3.2.2. Устранение дребезга контактов
- •3.2.3. Подсчет числа импульсов
- •3.2.4. Опрос группы двоичных датчиков
- •3.3. Реализация функций времени
- •3.3.1. Программное формирование временной задержки
- •3.3.2. Формирование временной задержки таймером
- •3.3.3. Измерение временных интервалов.
- •3.4. Вывод управляющих сигналов
- •3.4.1. Формирование статических сигналов
- •3.4.2. Формирование импульсных сигналов
- •3.5. Работа с последовательным портом
- •3.6. Средства ProView для отладки взаимодействия с объектами управления
- •4. Лабораторные задания
- •5. Содержание отчёта
- •Команды передачи данных
- •Команды арифметических операций
- •Команды логических операций
- •Команды операций с битами
- •Команды передачи управления
3.4. Вывод управляющих сигналов
3.4.1. Формирование статических сигналов
Для управления исполнительным устройством, работающим по принципу включено/выключено, на соответствующей выходной линии порта необходимо сформировать статический сигнал 1 или 0, что реализуется командами установки, сброса или инверсии бита порта ( OUT ) [ 1 ].
В случае параллельного управления группой автономных исполнительных устройств, подключенных к выходному порту, формируется не двоичное управляющее воздействие, а управляющее слово, каждому из разрядов которого ставится в соответствие 1 или 0 в зависимости от того, какие исполнительные устройства должны быть включены, а какие выключены.
Управляющие слова удобно формировать командами логических операций над содержимым порта [1]. Командой XRL осуществляется инверсия тех битов, которые в маске заданы единицей. Команда ORL используется для установки битов управляющего слова. Команда ANL используется для сброса битов.
Out:MOVP1,#10101010B; вывод байта в порт Р1
SETBP1. 0 ; установка нулевого разряда
CLRP1.3 ; сброс 3-го разряда
CLRP1.4 ; сброс 4-го разряда
CLRP1.5 ; сброс 5-го разряда
CLRP1.6 ; сброс 6-го разряда
CLRP1.7 ; сброс 7-го разряда
XRLP1, #11110000B; инверсия разрядов 4 – 7
ORLP1, #00001000B; установка третьего разряда
ANLP1, #11111110B; сброс нулевого разряда
Для формирования сложных последовательностей управляющих слов обычно используют табличный способ, при котором все возможные слова упакованы в таблицу, а прикладная программа вычисляет адрес требуемого слова, выбирает его из таблицы и передаёт в порт.
3.4.2. Формирование импульсных сигналов
Импульс. Его можно получить последовательной выдачей сигналов, включая и отключая ( PULS , с промежуточным вызовом подпрограммы временной задержки:
Длительность импульса определяется временной задержкой, реализуемой подпрограммой DELAY.
Генерация меандра. В этом случае можно воспользоваться подпрограммой задержки, равной половине периода сигнала:
Бесконечный периодический сигнал формируется в линии 3 порта 1. На остальных линиях сигналы остаются неизменными.
Формирование апериодических управляющих сигналов. Последователь-
ность импульсных сигналов с произвольной длительностью и скважностью может быть получена аналогичным образом, то есть путём чередования процедур выдачи значения 0 или 1 и вызова подпрограмм временных задержек заданных длительностей.
3.5. Работа с последовательным портом
Последовательный порт микроконтроллера может использоваться в виде регистра сдвига для расширения ввода/вывода или в качестве UART с фиксированной или переменной скоростью последовательного обмена и возможностью дуплексного включения [ 1 ]. То есть через порт можно передавать и принимать данные одновременно. Порт может принимать очередной байт даже в том случае, если уже принятый до этого байт не был прочитан из регистра приёмника. Однако если до окончания приёма находящийся в регистре приёмника байт не будет прочитан, принятый байт теряется. Программный доступ к регистрам приёмника и передатчика осуществляется обращением к регистру специальных функций SBUF.
Ниже приведён пример фрагмента программы ( UART ), принимающей из последовательного порта байт и отправляющей его назад в последовательный порт, настроенный на 8-битный режим со скоростью передачи 2400 бод при тактовой частоте микроконтроллера 12 МГц.