Микропроцессоры и микроконтроллеры
Понятие о микропроцессорах и микроконтроллерах, базовые определения. Шинная организация, характеристики шин микроконтроллера семейства MCS-51. Назначение и принцип работы компонентов микроконтроллера, блок управления, организация памяти микроконтроллера.
Рубрика | Коммуникации, связь, цифровые приборы и радиоэлектроника |
Вид | реферат |
Язык | русский |
Дата добавления | 30.11.2020 |
Размер файла | 1,9 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
3
Микропроцессоры и микроконтроллеры
Оглавление
Понятие о микропроцессорах и микроконтроллерах
Базовые определения
Шинная организация. Характеристики шин
Структура микроконтроллера семейства MCS-51
Характеристики микроконтроллера семейства MCS-51
Назначение контактов
Внутренняя структура микроконтроллера MCS-51
Назначение и принцип работы компонентов микроконтроллера
Блок управления
Блок счетчика команд (СК)
Арифметико-логическое устройство
Порты микроконтроллера
Организация памяти
Структура внутренней памяти данных
Подключение внешней памяти
Блок таймеров / счетчиков
Система прерываний
Блок прерываний микроконтроллера MCS-51
Управление разрешением и приоритетами прерываний
Процедура обработки прерывания
Блок последовательного канала (интерфейса)
Система команд
Арифметическая группа команд
Логическая группа команд
Команды пересылки данных
Команды передачи управления
Команды битовой обработки данных
Подключение периферийных устройств
Блок переключателей
Блок реле
Блок клавиатуры
Блок светодиодов
Блок семисегментного индикатора
Блок цифрового мультиплексора
Блок аналого-цифрового преобразователя
Блок цифро-аналогового преобразователя
Блок буфера последовательного канала RS-232
Блок буфера последовательного канала RS-485
Библиографический список
блок управления организация памяти микроконтроллер
Понятие о микропроцессорах и микроконтроллерах
Микропроцессор - это программно управляемое устройство, предназначенное для обработки цифровой информации и управления процессом этой обработки, реализованное в виде одной БИС (большой интегральной схемы).
Для работы микропроцессора необходим базовый набор периферийных устройств:
- память для хранения программ (постоянное запоминающее устройство);
- память для хранения данных (оперативное запоминающее устройство);
- порты для организации обмена данными с внешними устройствами.
Микроконтроллер - это СБИС (сверхбольшая интегральная схема) в состав которой входят микропроцессор, память для хранения программ, память для хранения данных и порты для организации обмена данными с внешними устройствами.
Кроме того, в состав микроконтроллера могут входить внутрисхемные периферийные устройства.
Базовая структура микроконтроллера приведена на рис.1
Рис.1 Базовая структура микроконтроллера
Шина - набор проводников, предназначенных для передачи цифровой информации одного типа.
В цифровых системах различают:
- шины адреса;
- шины данных;
- шины управления.
К основным характеристикам шин относятся:
- уровни сигнала, соответствующие логическим состояниям 0 и 1;
- разрядность;
- направление передачи данных.
Для всех шин используется положительная логика (высокий уровень напряжения соответствует логической единице на соответствующей линии связи, низкий -- логическому нулю). Напряжение логической 1 - от 2,4В до 5В (при номинальном напряжении питания микросхемы 5В) , логического нуля 0 - от 0В до 0,4В.
Шина адреса:
1. Разрядность - 16 бит, определяет объем адресного пространства в 65536 слов (или 64К).
2. Шина адреса однонаправленная, адрес передается от процессора к периферийным устройствам
Шина данных:
1. Разрядность - 8 бит, максимальный объем передаваемой за 1 цикл информации - 1 байт (FF в 16-ричной системе или 256 в 10-ной системе).
2. Шина данных двунаправленная, данные передаются от процессора к периферийным устройствам и от периферии к процессору. Наиболее часто встречающийся тип выходного каскада для линий этой шины -- выход с тремя состояниями.
Шина управления:
1.Число разрядов - не стандартизировано, определяется структурой микроконтроллера.
2.Шина управления является вспомогательной шиной, управляющие сигналы на которой определяют тип текущего цикла и фиксируют моменты времени, соответствующие разным частям или стадиям цикла. Кроме того, управляющие сигналы обеспечивают согласование работы процессора (или другого хозяина магистрали) с работой памяти или устройства ввода/вывода. Управляющие сигналы также обслуживают прерывания, запрос и предоставление прямого доступа к памяти.
3. Линии шины управления могут быть как однонаправленными, так и двунаправленными. Типы выходных каскадов могут быть самыми разными: с двумя состояниями (для однонаправленных линий), с тремя состояниями (для двунаправленных линий), с открытым коллектором (для двунаправленных и мультиплексированных линий).
Структура микроконтроллера семейства MCS-51
На сегодняшний день существует более 200 модификаций микроконтроллеров семейства MCS-51, выпускаемых почти 20-ю компаниями. Эти модификации включают в себя кристаллы с широчайшим спектром периферии: от простых 20-выводных устройств с одним таймером и 1К программной памяти до сложнейших 100-выводных кристаллов с 10-разрядными АЦП, массивами таймеров-счетчиков, аппаратными 16-разрядными умножителями и 64К программной памяти на кристалле. Каждый год появляются все новые варианты представителей этого семейства. Основными направлениями развития являются: увеличение быстродействия (повышение тактовой частоты и переработка архитектуры), снижение напряжения питания и потребления, увеличение объема ОЗУ и FLASH памяти на кристалле с возможностью внутрисхемного программирования, введение в состав периферии микроконтроллера сложных устройств типа системы управления приводами, CAN и USB интерфейсов и т.п.
Все микроконтроллеры из семейства MCS-51 имеют общую систему команд. Наличие дополнительного оборудования влияет только на количество регистров специального назначения.
Основными производителями клонов 51-го семейства в мире являются фирмы Philips, Siemens, Intel, Atmel, Dallas, Temic, Oki, AMD, MHS, GoldStar, Winbond, SiliconSystems и ряд других.
В данном пособии рассматриваются особенности базовой архитектуры микроконтроллеров семейства MCS-51, система команд и принципы подключения к микроконтроллеру типовых периферийных устройств.
Схема микроконтроллера семейства MCS-51 приведена на рис. 2.
Вход ЕА (в некоторых модификациях DEMA - линия 31). Сигнал на этом входе определяет вид памяти (внутренней или внешней), с которой будет работать микросхема. При подаче на вход логической 1 выполняется программа из внутренней памяти, при подаче логического 0 - из внешней памяти по адресам от 0 до 65536 (64 Кбайт).
Рис.2 Микроконтроллер семейства MCS-51
Входы Х1 и Х2 (линии 19 и 18). Служат для подключения к входу внутреннего генератора кварцевого резонатора, определяющего тактовую частоту.
Вход RST (линия 9). При подаче логической 1 происходит сброс микросхемы (регистры устанавливаются в исходное состояние, программа начинает выполняться с нулевого адреса). RC цепь на входе (рис. 2) обеспечивает формирование сигнала сброса при включении питания.
Сигнал PSEN (в некоторых модификациях PME - линия 29). Управляющий сигнал, по которому данные из внешней памяти программ считываются через порт Р0.
Сигнал ALE (линия 30). Управляющий сигнал, по которому младший байт адреса внешней памяти, выставленный через порт Р0, фиксируется в буферном регистре.
Линии 40 и 20. Служат для подключения источника питания.
Линии 32-39, 1-8, 21-28, 10-17. Соответственно, порты Р0, Р1, Р2 и Р3. Принципы функционирования портов и назначения отдельных линий описаны ниже.
Внутренняя структура микроконтроллера MCS-51 приведена на рис.3.
Блок управления предназначен для синхронизации работы всех блоков микроконтроллера, а также приема, дешифрации кода команды и формирования управляющих воздействий для её выполнения.
Блок счетчика командпредназначен для хранения адреса очередного байта программы, а также формирования адреса при считывании кода из памяти программ с автоматическим увеличением адреса.
АЛУ (арифметико-логическое устройство)предназначено для выполнения арифметических, логических команд, команд сдвига и обнуления.
Порты Р0-Р3 предназначены для организации обмена данными между микроконтроллером и внешними устройствами. Кроме того, порты имеют специальные функции для обслуживания внутренних периферийных устройств, организации программирования внутренней памяти программ и обеспечения доступа к внешней памяти.
Память программпредназначена для хранения программного кода, в рабочем режиме доступна только для чтения, запись реализуется только в режиме программирования. Может быть реализована в виде ПЗУ или РПЗУ.
Рис.3.Внутренняя структура микроконтроллера MCS-51
Память данныхпредназначена для хранения текущих данных, доступна для чтения и записи информации. Не сохраняет информацию при отключении питания.
Блок таймеров/счетчиков включает в свой состав два таймера/счетчика, регистр режимов TMOD и регистр управления TCON. Таймеры/счетчики предназначены для организации временных задержек, выполнения времязадающих функций и подсчета внешних событий.
Блок прерыванийосуществляет обработку запросов прерываний в соответствии с настройками регистра разрешений IE и регистра управления приоритетностью прерываний IP.
Блок последовательного канала предназначен для организации приема и передачи информации в последовательном виде в соответствии с настройками регистра SCON.
В состав блока управления входят следующие компоненты:
- ПЛМ - программируемая логическая матрица. На основании 24-разрядного кода команды обеспечивает формирование управляющих сигналов для ее выполнения.
Рис.4. Структура блока управления
- Дешифратор - обеспечивает преобразование 8-разрядного кода команды в 24-разрядный код для ПЛМ.
- Регистр команд- служит для хранения кода команды на время ее выполнения.
- ГТИ - генератор тактовых импульсов. Формирует тактовые импульсы на основании частоты, задаваемой внешним кварцевым резонатором.
Функции блока управления.
1.Синхронизация работы всех блоков микроконтроллера (рис. 5). Для формирования синхроимпульсов генератор тактовых импульсов, входящий в состав блока управления, использует сигналы с внешнего кварцевого генератора, подключенного к входам Х1 и Х2.
Рис.5. Диаграмма синхронизации
Р1,Р2 - фазы тактового импульса;
S1, S2. S3, S4, S5, S6 - состояния;
S1 - S6 -машинный цикл, т.е. время, в течение которого выполняется любая команда, за исключением умножения и деления, которые выполняются за 2 машинных цикла.
2.Прием команды, её дешифрация и формирование управляющих сигналов для ее выполнения.
В начале каждого цикла обращения к памяти программ блок управления формирует управляющие сигналы блоку счетчика команд для формирования адреса на шину адреса. Затем считанный из памяти программ код команды по шине данных поступает в блок управления и записывается в регистр команд.
После этого дешифратор преобразует восьмиразрядный код команды в 24-разрядный код для программируемой логической матрицы (ПЛМ), которая формирует управляющие сигналы для выполнения команды.
Структура блока счетчика команд приведена на рис 6.
В состав блока СК входят:
- регистр счетчика команд (СК) - предназначен для хранения адреса очередной команды;
Рис.6. Структура блока счетчика команд
- регистр адреса (РА) - предназначен для хранения адреса текущей команды и формирования его на шине адреса на время операции чтения памяти;
- блок инкремента - обеспечивает автоматическое увеличение содержимого регистра СК при выполнении операции чтения памяти программ;
- буфер СК - предназначен для согласования 8-разрядной шины данных и внутренней 16-разрядной шины блока СК;
- регистр указатель DPTR - хранит адрес при работе с внешней памятью данных.
Блок счетчика команд (СК) имеет три режима работы.
1. Режим формирования адреса команды.
В начале цикла обращения к памяти программ содержимое регистра счетчика команд выставляется на внутреннюю шину блока, по которой поступает в регистр адреса, затем по шине адреса микроконтроллера поступает в память программ. Одновременно с этим адрес поступает в блок инкремента, где автоматически увеличивается на единицу, а затем записывается в регистр счетчика команд.
2.Режим коррекции регистра счетчика команд.
При выполнении команд условного и безусловного перехода происходит коррекция содержимого регистра счетчика команд. Для этого адрес по шине данных в два этапа (сначала старший, затем младший байт) поступает в буфер программного счетчика, затем полный шестнадцатиразрядный адрес по внутренней шине блока записывается регистр счетчика команд.
3.Режим формирования адреса внешней памяти данных.
Для работы с внешней памятью данных адрес предварительно записывается в регистр указатель DPTR. При выполнении команд обращения к внешней памяти данных (чтение или запись) адрес из указателя отправляется в регистр адреса, затем по шине адреса микроконтроллера на внешние контакты портов Р0 и Р2 микроконтроллера.
Процедура чтения и выполнения команды осуществляется следующим образом (рис.7):
- регистр счетчика команд (СК) хранит адрес очередного байта программного кода;
Рис.7. Взаимодействие блоков при чтении и выполнении команды
- в начале очередного машинного цикла блок управления формирует управляющий сигнал блоку счетчика команд;
- при получении сигнала от блока управления содержимое регистра счетчика команд по внутренней 16-разрядной шине блока отправляется в регистр адреса, где хранится в течение цикла обращения к памяти и откуда выставляется на шину адреса микроконтроллера. Одновременно с этим содержимое регистра СК поступает в блок инкремента, увеличивается на 1, затем записывается обратно в регистр СК (таким образом обеспечивается последовательное считывание программного кода из памяти программ);
- адрес по шине адреса поступает в память программ, здесь дешифрируется и обеспечивает доступ к ячейке памяти с указанным адресом. Содержимое ячейки выставляется на шину данных и передается в блок управления;
- код команды записывается в регистр команд. После этого дешифратор преобразует восьмиразрядный код команды в 24-разрядный код для программируемой логической матрицы (ПЛМ), которая формирует управляющие сигналы для выполнения команды.
Структура арифметико-логического устройства приведена на рис.8.
В состав арифметико-логического устройства входят:
- сумматор - блок АЛУ, в котором выполняются все арифметические и логические операции;
- аккумулятор - основной регистр процессора, который используется для выполнения большинства арифметических и логических операций. Хранит один из операндов;
- регистр В - специальный регистр процессора, который используется для выполнения операций умножения и деления. Регистр хранит один из операндов;
- регистр аккумулятора - специальный регистр АЛУ, который используется для хранения содержимого аккумулятора на время выполнения арифметической или логической операции. Программно недоступен.
- регистр временного хранения - специальный регистр АЛУ, который используется для хранения второго операнда на время выполнения арифметической или логической операции. Программно недоступен.
Рис.8. Структура арифметико-логического устройства
-PSW - регистр слова состояния процессора - служит для хранения признаков результата арифметической операции (рис.9).
Рис.9. Слово состояния процессора
При выполнении операции первый операнд подается из аккумулятора в регистр аккумулятора, а второй из регистра или ячейки памяти в регистр временного хранения. Затем оба операнда одновременно поступают в сумматор, где и осуществляется выполнение арифметической или логической операции.
Результат операции записывается в аккумулятор, а в случае команд умножения также в регистр В (старшая часть), при делении в регистр В записывается остаток.
По результатам выполненной операции формируются признаки полученного результата и записываются в регистр слова состояния PSW. К признакам относятся такие флаги как Z - признак равенства нулю, С - разряд переноса и др. Кроме того, разряды RS0 и RS1 (PSW.3 и PSW.4) обеспечивают переключение банка регистров общего назначения.
Порты Р0-Р3 предназначены для организации обмена данными между микроконтроллером и внешними устройствами.
Кроме того, все порты имеют целый ряд дополнительных функций.
Порт Р0 (Р0.0-Р0.7):
- при работе с внешней памятью программ или данных в начале цикла обращения через Р0 выводятся младшие разряды адреса, затем по этим линиям передается байт данных;
- при программировании микросхемы (записи программы во внутреннюю память программ) и проверке через линии порта Р0 производится чтение/запись данных.
Порт Р1 (Р1.0-Р1.7):
- используется для передачи младших разрядов адреса при программировании и проверке микросхемы.
Порт Р2 (Р2.0-Р2.7):
- используется для передачи старших разрядов адреса при работе с внешней памятью программ и внешней памятью данных;
- при программировании микросхемы (записи программы во внутреннюю память программ) и проверке через линии порта Р2 производится передача старших разрядов адреса и управляющих сигналов.
Порт Р3 (Р3.0-Р3.7). Линии порта Р3 могут быть использованы для передачи сигналов управления:
- RxD (линия Р3.0) - передача информации в последовательном коде;
- TxD (линия Р3.1) - прием информации в последовательном коде;
- INT0 (линия Р3.2) - вход внешнего сигнала прерывания 0;
- INT1 (линия Р3.3) - вход внешнего сигнала прерывания 1;
- Т0 (линия Р3.4) - вход таймера/счетчика 0;
- Т1 (линия Р3.5) - вход таймера/счетчика 1;
- WR (линия Р3.6) - сигнал ЗАПИСЬ. Формируется при передаче байта информации через порт Р0 во внешнюю память данных;
- RD (линия Р3.7) - сигнал ЧТЕНИЕ. Формируется при считывании байта через порт Р0 из внешней памяти данных.
Структура порта (для одного разряда) представлена на рис.10.
Рис.10. Структура разряда порта
Выходные каскады порта (реализованные на транзисторах Т1 и Т2) через мультиплексор МХ могут подключаться либо к выходу защелок, либо к внутренним шинам Адрес/данные.
Порт может работать в следующих режимах:
1.Режим передачи адреса/данных.По линии «Управление» подается сигнал логической 1. Ключ мультиплексора МХ переключается вверх, нижняя часть схемы не работает. По линии «Адрес/данные» подаются сигналы (логические 1 или 0). Если подается логическая 1, то транзистор Т1 открыт, а Т2 закрыт, выходная линия подключена к источнику питания, на выходе Р0.Х появляется логическая 1. Если подается сигнал 0, то транзистор Т2 открыт, а Т1 закрыт, выходная линия замкнута на корпус, на внешнем контакте появляется логический 0.
2. Режим вывода.По линии «Управление» поступает 0, ключ мультиплексора МХ замкнут вниз, управление транзистором Т1 недоступно. По линии «Запись» подается логическая 1, по внутренней шине в защелку поступает либо 0, либо 1. Если записывается 0, то транзистор Т2 открывается, выход Р0.Х через транзистор Т2 замыкается на корпус, на нем появляется логический 0. Для формирования на выводе состояния 1 используется внешний подтягивающий резистор R1, который обеспечивает при закрытии транзистора Т2 на выводе Р0.Х состояние 1.
3. Режим ввода. Чтение защелки.По линии «Чтение защелки» поступает логическая 1, буфер В1 открывается, состояние защелки через В1 поступает на внутреннюю шину.
4.Режим ввода. Чтение входа.По линии «Чтение входа» поступает логическая 1, буфер В2 открывается, состояние входа Р0.Х через В2 поступает на внутреннюю шину.
Классификация существующих запоминающих устройств приведена на рис.11. В микропроцессорных системах используются постоянные и оперативные запоминающие устройства для хранения программ и данных. В микроконтроллерах семейства MCS-51 запоминающие устройства могут быть функционально разделены на память программ и память данных (рис.12). Ячейки адресного пространства памяти программ могут быть физически реализованы как в составе микроконтроллера (внутренняя память), так и в отдельной микросхеме (внешняя память). Оба типа используемой памяти будут составлять единое адресное пространство, при этом микроконтроллер в соответствии с адресом автоматически будет формировать обращение к требуемой памяти. Граничный адрес между внутренней и внешней памятью зависит от объема внутренней памяти микроконтроллера (2Кч64К). По желанию разработчика внутренняя память может не использоваться. Если подключить контакт EA на корпус (EA=0), то используется только внешняя память с адресами от 0000 до FFFF. При подаче на EA логической 1 (контакт ЕА подключен на источник) используется как внутренняя, так и внешняя память.
Рис. 11. Классификация запоминающих устройств
Рис.12. Функциональная классификация памяти микроконтроллера
Для хранения текущей информации в микроконтроллере предусмотрена возможность использования двух отдельных пространств памяти данных. Внутренняя память данных в базовой модификации микроконтроллера составляет 256 ячеек памяти, имеет специальную организацию, на это же адресное пространство отображены регистры специального назначения. Внешняя память данных подключается при необходимости хранения большого объема оперативных данных.
Структура внутренней памяти данных
Структура внутренней памяти данных приведена на рис.13. В состав памяти входят четыре банка регистров общего назначения, область памяти с битовым доступом, область памяти с байтовым доступом, зона регистров специального назначения.
а) Общая структура |
б) Структура битовой памяти |
Рис. 13. Структура внутренней памяти данных
Для подключения внешней памяти необходимо организовать шину адреса и шину данных с помощью специальных функций портов P0 и P2. Поскольку для организации ША требуется 16 разрядов и для ШД 8 разрядов, необходимо использовать буферный регистр, который позволит использовать порт Р0 по очереди в качестве ША и ШД. Схема подключения внешней памяти программ приведена на рис.14. Схема подключения внешней памяти данных приведена на рис.15.
Рис.14. Подключение внешней памяти программ
В начале цикла обращения к памяти программ адрес выставляется на порты Р0 (младшие разряды) и Р2 (старшие разряды). Одновременно с этим сигнал ALE выставляется в 0. Буферный регистр принимает со своих входов D0-D7 младшие разряды адреса и записывает во внутренние ячейки. В середине цикла обращения к памяти сигнал ALE выставляется в 1, буфер прекращает прием адреса. Младшие разряды адреса с порта Р0 снимаются. Далее полный адрес подается на микросхему памяти из Р2 и с выходов буферного регистра В0-В7. Одновременно с этим сигнал РМЕ выставляется в 0, что обеспечивает доступ к требуемой ячейке памяти. Содержимое ячейки выставляется на выходы D0-D7 и через порт Р0 поступает в микроконтроллер.
Обращение к памяти данных производится как для чтения, так и для записи, поэтому вместо сигнала РМЕ используется RD для чтения и WR для записи. При записи данные выставляются в порт Р0.
Рис. 15. Подключение внешней памяти данных
Блок таймеров / счетчиков
Микроконтроллер содержит два таймера/счетчика Т/С0 и Т/С1. Структура таймера/счетчика Т/С1 приведена на рис.16.
У каждого таймера/счетчика имеется 16-разрядный регистр (ТН0,TL0 для Т/С0) и (TH1,TL1 для Т/С1), который выполняет функцию считающего элемента.
Управление работой таймеров/счетчиков осуществляется с помощью регистров специального назначения - регистра режимов TMOD и регистра управления TCON, а также схемы управления. Число, с которого начинается счет, заносится в регистры таймеров/счетчиков программно. В процессе счета содержимое регистров Т/С0 и Т/С1 инкрементируется. При переполнении регистров Т/С0 или Т/С1 (переход от состояния «все единицы» к состоянию «все нули») формируется флаг переполнения.
Рис.16. Структура таймера/счетчика Т/С1
При работе в качестве таймера, содержимое Т/С0 и Т/С1 инкрементируется каждый машинный цикл, т.е. частота счета равна fQ/12 , где fQ - частота тактового генератора.
При работе Т/С0 и Т/С1 в качестве счетчиков внешних событий (сигналы поступают на входы Р3.4 и Р3.5) , содержимое счетчиков инкрементируется при переходе из 1 в 0 сигналов на счетных входах.
Регистр режимов TMOD определяет:
- режим работы каждого таймера/счетчика - используемую разрядность считающего элемента;
- источник импульсов для счета - работу в качестве таймера или счетчика;
- разрешение управления запуском таймера / счетчика от внешнего входа.
Назначение разрядов регистра TMOD приведено в таблице 1. Биты 0-3 относятся к Т/С0, биты 4-7 - к Т/С1.
Таблица 1
Биты |
|||||||||
Обозн. |
GATE1 |
C/T1 |
M1.1 |
M1. 0 |
GATE0 |
C/T0 |
M0. 1 |
M0.0 |
Назначение битов М0, М1 (режим работы, отдельно для Т/С1 и Т/С0):
- М1, М0=00 (режим 0), используется 13-разрядный считающий элемент 5 разрядов TH0+8 разрядов TL0;
- М1, М0=01 (режим 1), используется 16-разрядный считающий элемент 8 разрядов TH0+8 разрядов TL0;
- М1, М0=10 (режим 2), используется 8-разрядный считающий элемент TL0. TH0 хранит константу перезагрузки. При переполнении TL0 автоматически перезагружается;
- М1, М0=11 (режим 3), для Т/С1 не используется. Т/С0 работает как два независимых 8-разрядных счетчика TH0 и TL0.
Биты С/Т0,С/Т1 определяют работу в качестве таймера (С/Т0 или С/Т1 = 0) или счетчика (С/Т0 или С/Т1 = 1).
Бит GATE разрешает управлять таймером от внешнего вывода INT0 - для Т/С0, INT1 - для Т/С1. Если GATE = 0 - управление запрещено;GATE = 1 - управление разрешено.
Регистр управления ТCON предназначен для приема и хранения управляющего слова. Обозначение и назначение разрядов регистра приведено в таблице 2. Для управления работой таймеров-счетчиков используются разряды 4-7.
Таблица 2
Биты |
|||||
Обозн. |
TF1 |
TR1 |
TF0 |
TR0 |
Назначение битов:
- TR0, TR1 - биты включения Т/С, отдельно для Т/С0 и Т/С1. Если TR = 0 - выключен, TR = 1 - включен. Биты устанавливаются и сбрасываются программно
- TF0, TF1 - флаги переполнения Т/С. Биты сбрасываются и устанавливаются аппаратно и программно.
Все биты регистра ТCON доступны по чтению. Биты 4,5 относятся к Т/С0,биты 6,7 - к Т/С1.
Т/С1 аппаратно связан с блоком синхронизации последовательного интерфейса (ПИ), он используется для управления скоростью приема/передачи последовательных данных.
Пример настройки работы таймера-счетчика.
Задача. Запрограммировать таймер-счетчик 1 для работы в режиме 16-разрядного таймера без внешнего управления, начальная константа для счета FFFDh.
Формирование разрядов регистра TMOD:
М1=0, М0=1 - режим 1 (16-разрядный считающий элемент);
С/Т1 =0 - режим таймера;
GATE = 0 - без внешнего управления;
TMOD=00010000В.
Фрагмент программы настройки таймера:
MOV TMOD, #00010000B ;определение режима
MOV TH1, #FFH ;начальная константа для счета FFh (старшая часть)
MOV TL1, #FDH ;начальная константа для счета FDh(младшая часть)
SETB TR1 ;запуск таймера-счетчика
Пример организации временных отметок.
Задача. В МП устройстве подключен кварцевый резонатор на 12МГц. Требуется запрограммировать таймер 0 в режим таймера без управления от внешнего входа таким образом, чтобы интервал переполнений таймера был 0,05сек.
Решение.
Частота генерации импульсов, для считающего элемента таймера равна 12000000/12= 1000000.
Это означает, что за 1 сек на считающий элемент поступит 1000000 импульсов, а требуемый временной интервал составляет 0,05сек. Таким образом число импульсов, поступающих за 0,05 сек составит 1000000*0,05=50000.
Соответственно, для подсчета такого числа импульсов требуется 16-разрядный считающий элемент. Выбираем режим 1.
Начальная константа для счета равна 65536-50000=15536.
Переводим в 16-ричную систему 15536D = 3CB0H.
Программируем таймер:
MOV TMOD,#00000001B;
MOV TH0,#3CH;
MOV TL0,#B0H.
Запускаем таймер командой
SETB TR0.
Таким образом, запрограммированный таймер сформирует флаг переполнения через 0,05сек. Чтобы получить новое переполнение через такой же интервал, необходимо перезагрузить в него константу для счета 3CB0H.
Система прерываний
Прерывание - приостановка выполнения процессором текущей программы с целью обработки запроса прерывания.
Запрос прерывания - сигнал от внутреннего или внешнего периферийного устройства с целью выполнения программы обработки прерывания.
Программа обработки прерывания - заранее подготовленная и записанная в памяти программа, выполнение которой осуществляется по запросу прерывания и которая запускается через вектор прерывания.
Вектор прерывания - адрес в начальной зоне адресов памяти программ, с которого размещается или программа обработки прерывания или команда перехода на нее.
Приоритет прерывания - предпочтение в обработке одного запроса прерывания над другим. При одновременном поступлении двух запросов первым будет обрабатываться запрос, имеющий более высокий приоритет. При поступлении запроса во время обработки другого прерывания запрос фиксируется, а обработка производится после завершения программы первого прерывания.
Запросу прерывания программно может быть назначен наивысший приоритет, он обрабатывается в первую очередь и может прервать обработку ранее поступившего запроса прерывания.
Разрешение прерывания. Каждое прерывание может быть запрещено или разрешено программно. Если прерывание запрещено, то обработки соответствующего запроса не производится. Могут быть запрещены сразу все прерывания.
Источники прерываний микроконтроллера и организация приоритетов между ними приведены на рис. 17.
Источники прерываний: § внешний вход INT0 (контакт процессора, к которому может быть подключено внешнее устройство); § таймер/счетчик T0 (при переполнении считающего элемента - TF0); § внешний вход INT1 (контакт процессора, к которому может быть подключено внешнее устройство); § таймер/счетчик T1 (при переполнении считающего элемента - TF1); § последовательный канал TI/RI (при завершении передачи или приема байта по последовательным линиям). |
Базовая расстановка приоритетов |
Рис.17. Источники прерываний микроконтроллера
Настройка приема запросов прерывания от внешних устройств (INT0 и INT1) осуществляется с помощью регистра TCON (биты 0-3 в табл.3).
Таблица 3
Биты |
|||||
Обозн |
IE1 |
IT1 |
IE0 |
IT0 |
Здесь IE0, IE1 - флаги запроса внешних прерываний по входам INT0, INT1. Биты сбрасываются и устанавливаются аппаратно и программно.
IT0, IT1 - биты, определяющие вид прерывания по входам INT0, INT1. IT=0 - прерывание по низкому уровню (рис18 а); IT = 1 - прерывание по фронту (переход из 1 в 0) (рис18 б). Биты устанавливаются и сбрасываются программно.
При прерывании по фронту IT0 и IT1 сбрасываются аппаратно (автоматически) при обращении к соответствующей подпрограмме обработки прерываний. При прерывании по уровню флаги очищаются при снятии запроса внешнего прерывания (т.е. IT0 и IT1 отслеживают состояние входов INT0 или INT1).
а) |
б) |
Рис.18. Момент фиксации запроса прерывания
Формат регистра разрешения прерываний IE приведен в таблице 4.
Таблица 4
Биты |
|||||||||
Обозн. |
ЕА |
X |
X |
ЕS |
ET1 |
EX1 |
ET0 |
EX0 |
- ЕА - общее разрешение прерываний, если ЕА=0, то все прерывания запрещены; если ЕА=1, то прерывания могут быть разрешены индивидуальными разрешениями EX0, ET0, EX1, ET1 или ES;
- ES - разрешение прерывания от последовательного порта;
- ЕТ1 - разрешение прерывания от Т/С1;
- ЕХ1 - разрешение прерывания от внешнего источника INT1;
- ЕТ0 - разрешение прерывания от Т/С0;
- ЕХ0 - разрешение прерывания от внешнего источника INT0;
- Х - резервные разряды.
Для всех разрядов 1 - разрешение, 0 - запрещение.
Для каждого из источников прерываний может быть установлен высший приоритет в регистре приоритетов прерываний IP. Структура регистра IP приведена в таблице 5.
Таблица. 5.
Биты |
|||||||||
Обозн. |
Х |
Х |
Х |
PS |
PT1 |
PX1 |
PT0 |
PX0 |
- PX0 - установка высшего приоритета прерыванию от внешнего источника INT0;
- РТ0 - установка высшего приоритета прерыванию от таймера/счетчика Т/С0;
- PX1 - установка высшего приоритета прерыванию от внешнего источника INT1;
- РТ1 - установка высшего приоритета прерыванию от таймера/счетчика Т/С1;
- PS - установка высшего приоритета прерыванию от последовательного порта;
- Х - резерв.
Назначение наивысшего приоритета запросу прерывания осуществляется установкой 1 в соответствующем бите.
Между прерываниями, которым назначен наивысший приоритет действует базовая расстановка приоритетов
Адреса размещения команд перехода на программы обработки прерывания (векторы прерывания) представлены в таблице 6.
Таблица.6
Источник прерывания |
Вектор прерывания |
|
Внешнее прерывание INT0 |
0003Н |
|
Таймер/счетчик Т/С0 |
000ВН |
|
Внешнее прерывание INT1 |
0013Н |
|
Таймер/счетчик Т/С1 |
001ВН |
|
Последовательный порт |
0023Н |
Адрес вектора прерывания назначен каждому из запросов на аппаратном уровне и не может быть изменен программно.
Схема приема запросов прерывания приведена на рис.19
Рис.19. Схема приема запросов прерывания
Блок последовательного канала (интерфейса)
Процедура обработки прерывания
Взаимодействие блоков микроконтроллера при обработке запросов прерывания приведено на рис.20.
Рис. 20. Взаимодействие блоков микроконтроллера при обработке запросов прерывания
При поступлении запроса прерывания выполняются следующие действия:
1. Завершается выполнение текущей команды
2. Содержимое счетчика команд записывается в стек (через буфер СК в два этапа по шине данных передается в память данных, где записывается в две последовательные ячейки по адресу из регистра-указателя стека).
3. В соответствии с поступившим запросом выбирается адрес вектора прерывания и пересылается в регистр счетчика команд (через буфер СК в два этапа по шине данных передается сначала старшая часть адреса, затем младшая, собранный адрес из буфера записывается в регистр СК). Прием запросов прерывания от этого источника запрещается.
4. В следующем машинном цикле начинается выполнение программы обработки прерывания.
5. Завершается программа обработки прерывания командой RETI, при выполнении которой адрес из стека восстанавливается в регистр СК. Прием запросов прерывания от этого источника разрешается.
6. Со следующего машинного цикла продолжается выполнение прерванной программы.
Блок последовательного интерфейса (ПИ) предназначен для организации ввода-вывода последовательных потоков информации с возможностью дуплексного включения (одновременного приема и передачи данных). Структура блока последовательного интерфейса приведена на рис.21.
Рис.21. Блок последовательного интерфейса
ПИ может работать в четырех режимах.
Режим 0. Информация выдается и принимается через вход приемника RxD. Через выход передатчика ТхD выдаются импульсы синхронизации, стробирующие каждый передаваемый или принимаемый бит информации. Формат посылки - 8 бит. Частота приема и передачи - fQ /12.
Режим 1. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 10 бит: старт-бит (ноль), 8 бит данных (начиная с младшего) и стоп-бит (единица). Частота приема и передачи задается Т/С1.
Режим 2. Информация передается через выход передатчика TxD, а принимается через вход приемника RxD. Формат посылки 11 бит: старт-бит, 8 бит данных (начиная с младшего), программируемый девятый бит и стоп-бит. Передаваемый девятый бит данных принимает значение бита ТВ8 из регистра управления SCON. При приеме девятый бит принятой посылки поступает в бит RB8 регистра SCON. Частота приема и передачи задается программно и может быть равна fQ /64 или fQ /32.
Режим 3. Режим 3 идентичен режиму 2 за исключением скорости приема и передачи, которая в режиме 3 задается Т/С1.
Работой ПИ управляет регистр специального назначения SCON. Все разряды этого регистра доступны по записи и чтению (таблица 7).
Таблица 7
Биты |
|||||||||
Обозн. |
SM0 |
SM1 |
SM2 |
REN |
TB8 |
RB8 |
TI |
RI |
Назначение разрядов:
- SM0, SM1 - задают режим работы ПИ 0, 1, 2 или 3;
SM0 |
SM1 |
Режим |
Наименование |
Скорость передачи |
|
Сдвиговый регистр 8-битовый универсальный асинхронный приёмопередатчик (УАПП) 9 - битовый УАПП 9 - битовый УАПП |
fQ /12 переменная, задается Т/С1 fQ /64 или fQ/32 переменная, задается Т/С1 |
- SM2 - разрешение многопроцессорной работы. В режимах 2 и 3 при SM2=1 флаг RI не активизируется, если девятый принятый бит данных равен 0. В режиме 1 при SM2=1 флаг RI не активизируется, если не принят стоп-бит, равный «1». В режиме 0 SM2 должен быть установлен в «0»;
- REN - разрешение приема последовательных данных. Устанавливается и сбрасывается программным обеспечением, соответственно, для разрешения и запрета приема;
- ТВ8 - девятый бит передаваемых данных в режимах 2 и 3. Устанавливается и сбрасывается программным обеспечением;
- RB8 - девятый бит принятых данных в режимах 2 и 3.В режиме 1, если SM2 =0, RB8 является принятым стоп-битом. В режиме 0 бит RB8 не используется;
- ТI - флаг прерывания передатчика. Устанавливается аппаратно в конце времени выдачи 8-го бита в режиме 0 или в начале стоп-бита в других режимах. Сбрасывается программным обеспечением;
- RI - флаг прерывания приемника. Устанавливается аппаратно в конце времени приема 8-го бита в режиме 0 или через половину интервала стоп-бита в режимах 1, 2, 3 при SM2=0. При SM2=1 см. описание для бита SM2.
Скорость приема и передачи зависит от используемого кварцевого генератора и выбранного режима приема/передачи. Для режимов, в которых скорость определяется таймером/счетчиком 1, константы программирования таймера приведены в таблице 8.
Таблица8
Режим работы ПИ |
Скорость приема/ передачи, Кбод |
fQ, МГц |
SMOD |
Разряды TMOD |
ТН1 |
Приме-чание |
|||
С/Т |
М1 |
М0 |
|||||||
1,3 |
Макс: 375 62,5 19,2 9,6 4,8 2,4 1,2 0,1375 0,110 0,110 |
11,059 11,059 11,059 11,059 11,059 11,986 |
Х |
Х |
Х |
Х |
X Х FFH FDH FDH FAH F4H E8H 18H 72H FEH |
TL1= EBH |
Программная реализация последовательного приема/передачи информации приведена при описании периферийных устройств.
Для описания системы команд были использованы следующие обозначения:
PC- программный счетчик;
A - аккумулятор;
Rn - регистр общего назначения с номером n;
@Ri - ячейка памяти внутреннего ОЗУ, адрес которой записан в регистре Ri (косвенная адресация);
Direct - любой регистр специального назначения или ячейка внутреннего ОЗУ (абсолютная адресация);
#Data - байт данных, содержащийся во втором байте кода команды (непосредственная адресация);
Dptr -16-разрядный регистр-указатель данных;
Met - метка в командах переходов, указывающая какая команда будет выполняться следующей;
Name - имя подпрограммы;
Bit - имя прямоадресуемого бита (например: A.1, P2.3);
С - разряд переноса;
AС - разряд дополнительного переноса;
OV - разряд переполнения
Арифметическая группа команд
Сложение
Прибавляет к содержимому аккумулятора содержимое второго операнда. Результат записывается в аккумулятор. Изменяет состояние разрядов C,OV, AC.
Формат команды
Add A,Rn Add A,@Rii=0,1 Add A,Direct Add A,#Data |
A=(A)+(Rn) A=(A)+((Ri)) (A)=(A)+(Direct) (A)=(A)+(#Data) |
Сложение с переносом
Прибавляет к содержимому аккумулятора содержимое второго операнда и разряд С. Результат записывается в аккумулятор. Изменяет состояние разрядов C,OV, AC.
Формат команды
AddcA,RnAddc A,@Rii=0,1 AddcA,DirectAddcA,#Data |
A=(A)+(Rn)+С A=(A)+((Ri))+С (A)=(A)+(Direct)+С (A)=(A)+(#Data)+С |
Вычитание
Вычитает из содержимого аккумулятора содержимое второго операнда и разряд С. Результат записывается в аккумулятор. Изменяет состояние разрядов C,OV, AC.
SubbA,RnSubb A,@Rii=0,1 SubbA,DirectSubbA,#Data |
A=(A)+(Rn) A=(A)+((Ri)) (A)=(A)+(Direct) (A)=(A)+(#Data) |
Инкремент
Увеличивает на 1 содержимое указанного операнда. Состояние флагов не изменяет.
Inc A Inc Rn Inc Direct Inc @Rii=0,1 IncDptr |
(A)=(A)+1 (Rn)=(Rn)+1 (Direct)=(Direct)+1 ((Ri))=((Ri))+1 (Dptr)=(Dptr)+1 |
Декремент
Уменьшает на 1 содержимое указанного операнда. Состояние флагов не изменяет.
Dec A Dec Rn Dec Direct Dec @Rii=0,1 |
(A)=(A)-1 (Rn)=(Rn)-1 (Direct)=(Direct)-1 ((Ri))=((Ri))-1 |
Умножение
Перемножает содержимое регистров A и B. Результат записывается в регистр А (младшие разряды) и регистр B (старшие разряды). С=0. Если результат>255, то OV=1, иначе OV=0.
Mul AB |
(A)[7-0]=(A)*(B) (B)[15-8]=(A)*(B) |
Деление
Делит беззнаковое содержимое аккумулятора на беззнаковое содержимое регистра B. Результат помещается в аккумулятор. В регистре B остаток. С=0, OV=0.
Div AB |
(A)=(A)/(B) |
Логическое умножение
Выполняет операцию логического умножения (логическое и) над содержимым первого и второго операнда. Результат записывается в аккумулятор, регистр специального назначения или ячейку памяти. Состояние флагов не изменяет.
AnlA,RnAnlA,DirectAnl A,@Rii=0,1 AnlA,#DataAnlDirect,AAnlDirect,#Data |
(A)=(A)AND(Rn) (A)=(A)AND (Direct) (A)=(A)AND((Ri)) (A)=(A) AND (#Data) (Direct)=(A)AND(Direct) (Direct)=(Direct) AND(#Data) |
Логическое сложение
Выполняет операцию логического сложения (логическое или) над содержимым первого и второго операнда. Результат записывается в аккумулятор, регистр специального назначения или ячейку памяти. Состояние флагов не изменяет.
OrlA,RnOrlA,DirectOrl A,@Rii=0,1 OrlA,#DataOrlDirect,AOrlDirect,#Data |
(A)=(A) OR (Rn) (A)=(A) OR (Direct) (A)=(A) OR ((Ri)) (A)=(A) OR (#Data) (Direct)=(A) OR (Direct) (Direct)=(Direct) OR (#Data) |
Исключающее ИЛИ
Выполняет операцию «исключающее или» над содержимым первого и второго операнда. Результат записывается в аккумулятор, регистр специального назначения или ячейку памяти. Состояние флагов не изменяет.
XrlA,RnXrlA,Direct... |
Подобные документы
Понятие о микропроцессорах и микроконтроллерах. Блок управления и его функции. Структура разряда порта микроконтроллера. Структура внутренней памяти данных. Работа с внешней памятью данных и подключение внешней памяти. Принцип работы и настройка таймера.
презентация [665,8 K], добавлен 06.02.2012Структурная схема устройства управления. Алгоритм работы микроконтроллера в его составе. Строение центрального процессорного элемента – микроконтроллера AVR семейства Classic. Принципиальная схема устройства, расчет временных параметров ее работы.
курсовая работа [636,5 K], добавлен 03.12.2013Особенности микроконтроллера ATTINY семейства AVR. Описание ресурсов микроконтроллера ATTINY12: описание процессора, порты ввода/вывода, периферийные устройства, архитектура ядра. Разработка устройства со световыми эффектами на базе микроконтроллера.
курсовая работа [2,1 M], добавлен 24.06.2013Исследование системы команд языка Assembler для микроконтроллера MSC-51. Выполнение каждого шага программы и фиксирование состояния регистров микроконтроллера с помощью скриншота экрана компьютера. Скриншоты работоспособности написанной программы.
лабораторная работа [1,6 M], добавлен 18.05.2014Описание интегратора первого порядка. Обзор микроконтроллера AТmega16. Доопределение набора аппаратных средств. Схема включения микроконтроллера. Формирование тактовых импульсов. Организация сброса. Алгоритм работы и проектирование модулей устройства.
курсовая работа [1,1 M], добавлен 19.12.2010Понятие и функциональные особенности микроконтроллера, его структура и взаимодействие основных элементов, архитектура. Принципы работы светодиодного табло и порядок программирования микроконтроллера. Основные понятия и измерение надежности системы.
курсовая работа [108,1 K], добавлен 29.03.2014Микропроцессорные системы и микроконтроллеры. Разработка схемы и программы микроконтроллера. Симуляция проекта в программе Proteus 7. Прерывание программы по внешнему сигналу, поступающему в процессор. Устройство и настройка канала порта на ввод-вывод.
контрольная работа [551,8 K], добавлен 26.01.2013Общая характеристика микроконтроллера PIC16F873A, его корпус, технические параметры, структурная схема и организация памяти. Подключение питания и тактирование, анализ принципиальной схемы. Разработка рабочей программы для заданного микроконтроллера.
курсовая работа [667,0 K], добавлен 23.04.2015Функциональная спецификация, описание объекта, структура системы и ресурсов микроконтроллера. Ассемблирование, программирование микроконтроллера и разработка алгоритма работы устройства, описание выбора элементной базы и работы принципиальной схемы.
курсовая работа [2,2 M], добавлен 02.01.2010Микроконтроллер ATtiny2313/V фирмы Atmel: структура, основные характеристики, возможности. Центральное ядро процессора. Системная перепрограммируемая Flash-память программ. Порты ввода-вывода микроконтроллера. Блок-схема восьмиразрядного таймера/счётчика.
курсовая работа [2,2 M], добавлен 11.01.2011Формирование кодовой таблицы аналогового сигнала. Общая характеристика микроконтроллера P83C51RB+. Дискретизация заданного сигнала генератора. Организация памяти и программная модель, регистры SFR микроконтроллера. Параллельные порты ввода/вывода.
курсовая работа [1005,6 K], добавлен 07.08.2013Методы и этапы создания системы управления микроволновой печью. Технические характеристики и базовая архитектура семейства микроконтроллера семейства АТ89 фирмы Atmel. Спецификация элементов. Принцип работы стабилизатора КР142ЕН5 и дешифратора К155ИД13.
курсовая работа [328,5 K], добавлен 14.11.2010Принцип статического управления индикации. Три основных вида памяти, используемой в микроконтроллерах. Программа, управляющая действиями микроконтроллера по выводу информации на восемь семисегментных индикаторов в шестнадцатеричной системе счисления.
курсовая работа [2,6 M], добавлен 16.04.2014Функциональная спецификация и структурная схема электронных автомобильных часов-термометра-вольтметра. Разработка алгоритма работы и принципиальной электрической схемы. Получение прошивки программы для памяти микроконтроллера в результате ассеблирования.
курсовая работа [2,0 M], добавлен 26.12.2009Создание микропроцессорной системы на базе микроконтроллера, предназначенного для функциональной диагностики цифровых и интегральных микросхем. Разработка и расчёт блоков микроконтроллера, сопряжения, управления, питания, цифровой и диодной индикации.
курсовая работа [1,5 M], добавлен 28.01.2016Создание аналого-цифрового устройства для проведения лабораторных работ с использованием микроконтроллера. Разработка структурной и принципиальной схем. Выбор и описание элементной базы, используемого микроконтроллера. Программирование микроконтроллера.
дипломная работа [1,7 M], добавлен 19.07.2014Общие принципы разработки программно-аппаратного терминала с CAN-шиной, его основные физические интерфейсы. Структурная схема разрабатываемого устройства. Схема подключения микроконтроллера. Схема подключения микроконтроллера Atmega128 и для ПЭВМ.
дипломная работа [1,4 M], добавлен 07.07.2011Разработка схемы без включения элементной базы с нужными функциональными узлами. Цоколевка корпуса МК51 и наименования выводов. Принцип работы датчиков под воздействием внешнего магнитного поля. Эффект Холла. Граф состояния системы микроконтроллера.
курсовая работа [1,3 M], добавлен 08.03.2013Функциональная спецификация и структурная схема автомобильных вольтметра-термометра-часов. Описание ресурсов микроконтроллера, назначение выводов микросхемы. Ассемблирование и разработка алгоритма работы, коды кнопок и описание команд управления.
курсовая работа [2,0 M], добавлен 27.12.2009Арифметическо-логическое устройство как основная часть разрабатываемого микроконтроллера. Структурный анализ микроконтроллера, выполняющего логические и арифметические операции малой и средней степени интеграции. Расчет и схема источника питания.
курсовая работа [653,9 K], добавлен 26.04.2015