
- •Общие сведения о микроконтроллере с8051f340
- •Процессорное ядро cip-51тм
- •Система команд
- •Команды и тактирование
- •Организацияпамяти
- •Память программ
- •Память данных
- •Регистры общего назначения
- •Ячейки памяти с битовой адресацией
- •Команда movx и память программ
- •Память данных
- •Написание и отладка программ на лабораторном стенде.
- •Основы ассемблера
- •Методика работы со стендом
- •Настройка программного обеспечения
- •Редактирование и отладка программ.
- •Задание и порядок выполнения лабораторных работ
- •4.2 Лабораторная работа 2.«Работа с внешними устройствами»
- •Лабораторная работа 3.«Работа с таймерами и системой прерываний»
- •Система прерываний
- •Регистр масок прерывания (ie)
- •Регистр приоритетов прерываний
- •4.4 Лабораторная работа 4. «Работа с клавиатурой и семисегментными индикаторами»
- •Контрольные вопросы к лабораторной работе № 4
- •Литература
4.2 Лабораторная работа 2.«Работа с внешними устройствами»
Цель работы:
Изучения портов ввода-вывода микроконтроллеров.
Приобретения практических навыков работы с внешними устройствами.
Теоретические сведения
Порты ввода-вывода являются основой любого микроконтроллера, позволяя ему общаться с внешним миром. В i8051 было реализовано четыре восьмибитных порта ввода-вывода с возможностью побитной адресации. В 51-совместимых контроллерах сохраняется базовая программная модель i8051(система команд, организация внутренней памяти данных и программ, базовый набор внешних устройств и их адреса). Расширенная аппаратная реализация у контроллеров разных фирм развита очень сильно и различается достаточно существенно. Поэтому необходимо иметь документацию на конкретно используемый контроллер. В данном случае мы имеем дело с контроллером 8051F340 фирмы SiliconLaboratories. Поэтому познакомимся вкратце с основами организации портов этого контроллера, необходимые для выполнения данной лабораторной работы. Во всех современных контроллерах кроме портов ввода-вывода общего назначения есть большое количество аналоговых и цифровых устройств, которым тоже необходимо обмениваться информацией с внешним миром. С целью экономии количества выводов микросхемы все эти устройства используют одни и те же выводы микроконтроллера. Чтобы не было конфликта при обращении нескольких устройств к одному выводу, выводы конфигурируют с помощью регистров специальных функций. Поэтому в один момент времени к выводу может обращаться только одно внутреннее устройство контроллера. Если регистры конфигурации выводов не программировать, то в силу вступает принцип «по умолчанию». В большинстве контроллеров, как правило, по умолчанию к выводам подключены цифровые порты ввода-вывода общего назначения настроенные на ввод. Т.е. вводить информацию в цифровом виде можно сразу после старта контроллера. Для вывода информации уже необходимо провести определенные настройки порта. В частности, необходимо включить приоритетный декодер матрицы. Что это за матрица более подробно Вы можете узнать из документации на данный микроконтроллер, прилагаемой в комплекте поставки стенда или скачанной с сайта производителя. А пока, чтобы включить матрицу, необходимо установить в «1» шестой бит(XBARE) регистра XBR1, который находится по адресу 0хЕ2. Или записать в этот регистр число 0х40. Теперь можно начинать работать с портами. В качестве внешних устройств на лабораторном стенде представлены:
Светодиоды(8 штук);
Восемь семисегментных индикаторов;
Динамическая клавиатура, состоящая из 16 клавиш, и клавиатура со сканированием через дешифратор, содержащая 13 клавиш;
Переменный резистор;
Пьезоизлучатель;
Шаговый двигатель;
Две кнопки;
ЖК-индикатор;
Энкодер;
Последовательные интерфейсы;
DIP-переключатели;
Однако, при использовании данного лабораторного стенда для изучения микроконтроллеров, необходимо учитывать определённые схемотехнические решения подключения внешних устройств. В данном стенде подключение внешних устройств имеет классическую шинную архитектуру. К порту P4 подключена шина данных. К ней также подключены входы данных всех регистров ввода-вывода. А к выходам регистров уже подключены непосредственно внешние устройства. Такая структура выбрана потому, что внешними устройствами могут управлять микроконтроллер, микропроцессор и ПЛИС. Ниже на рисунке 6 изображена структурная схема подключения внешних устройств. В качестве источника управляющих сигналов, защелкивающих данные в соответствующий регистр используется порт P3, биты которого подключены к входам записи регистров. Таким образом, для того чтобы в определенное устройство ввода-вывода вывести информацию, необходимо в порт P4 записать выводимый байт, а на определенном выводе порта P3 сформировать положительный импульс(сначала вывести «1», потом «0»).Соответствие выводов порта P3 регистрам ввода-вывода наглядно видно на функциональной схеме.
Рисунок 6
При этом надо учитывать, что на шине присутствуют не только устройства вывода, но и устройства ввода, которые тоже могут выставлять информацию на шину данных. Чтобы не было конфликтов на шине, необходимо управляющие сигналы устройств ввода удерживать в неактивном состоянии. Одним из таких устройств является ЖК-индикатор. Он управляется тремя старшими битами порта P2. Поэтому, чтобы он не мешал обмену, его надо отключить с помощью «0» на P2.7. Другими устройствами ввода являются буферы клавиатуры и DIP-переключателей. Они соответственно управляются выводами портов P3.4 и P3.5. Причем данные сигналы инверсные. Поэтому, чтобы отключить буферы надо подать на эти порты «1». Давайте рассмотрим пример простой программы иллюстрирующей всё вышесказанное и выводящей на светодиодную линейку информацию с DIP-переключателей в бесконечном цикле:
org 0
; начальная инициализация
mov 0xD9,#0 ;отключаем WDT
mov 0xE2, #0x40 ; включаем декодер матрицы
mov 0xA0,#0x7F ; отключаем ЖК-индикатор 0 -> P2.7
mov 0xB0,#0x30 ; отключаем входные буферы 1 -> P3.4 1 -> P3.5
; начинаем работу с устройствами
L1: mov 0xB0,#0x10 ;активируем буфер DIP-переключателей
mov A,0xC7 ;считываем в аккумулятор информацию с шины
;данных (DIP-переключателей) P4 ->Acc
mov 0xB0,#0x30 ;отключаем буфер DIP-переключателей
mov 0xc7,A ;выводим содержимое Асс на порт P4(шину данных)
mov 0xB0,#0x31 ;выводим строб записи на регистр светодиодов 1->P3.0
mov 0xB0,#0x30 ;снимаем строб записи с регистра светодиодов 0->P3.0
jmp L1 ; повторяем снова
end
Задание к работе
Основными устройствами в данной работе являются светодиодная линейка и DIP-переключатели. В качестве дополнительных могут быть задействованы семисегментные индикаторы, две кнопки и пьезоизлучатель.
Возможные варианты заданий для данной лабораторной работы:
(точные исходные данные необходимо получить у преподавателя)
Мультиплексор 4->1
триггер 155ТМ2
Двоичный реверсивный счётчик
Сдвиговый регистр К155ИР1
«Бегущие огни»
JK-триггер К155ТВ1
Шифратор-дешифратор
генератор звука
4 элемента «исключающее ИЛИ»
Контрольные вопросы к лабораторной работе № 2
Особенности организации портов в i8051.
Альтернативные функции портов.
Особенности выполнения команд по принципу «чтение-модификация-запись».
Подключение внешней памяти данных и программ.
Организация выходов и нагрузочная способность портов 51-совместимых микроконтроллеров различных фирм.
Модификация отдельных бит при побитном и байтовом обращении к порту.
Влияние параметров нагрузки на формирование выходных сигналов.