Лек2 (1084887)
Текст из файла
2. БАЗОВАЯ МОДЕЛЬ СЕМЕЙСТВА МИКРОКОНТРОЛЛЕРОВ 8051
2.1. Основные показатели
Базовой моделью семейства микроконтроллеров MCS-51 и основой для всех последующих модификаций является микроконтроллер I-8051 первого поколения, содержащий следующие функциональные узлы:
1) восьмиразрядное арифметико-логическое устройство, выполняющее две арифметические операции (сложение и вычитание) и три логические (конъюнкция, дизъюнкция, ИСКЛЮЧАЮЩИЕ ИЛИ) и вырабатывающее по результатам указанных операций четыре признака: переноса С, вспомогательного переноса АС, переполнения V и паритета Р;
2) аппаратный умножитель и аппаратный делитель;
3) 16-разрядный счётчик команд;
2) резидентную перепрограммируемую память программ с ультрафиолетовым стиранием объемом 4 Кбайт и возможностью расширения до 64Кбайт за счёт подключения внешних схем постоянной памяти (ПЗУ) и её блокировки;
3) резидентную память данных объемом 128 байт и возможностью расширения до 64Кбайт за счёт подключения внешних схем оперативной памяти (ОЗУ). Подробнее об организации резидентной памяти данных рассказано ниже;
4) четыре восьмиразрядных параллельных порта ввода-вывода (Р0, Р1, Р2, Р3) с возможностью поразрядной настройки направления передачи;
5) два 16-битовых многорежимных таймера/счетчика (Т/С0 и Т/С1);
6) систему прерываний с 6 источниками прерывания пятью векторами и двумя уровнями;
7) универсальный синхронно-асинхронный последовательный порт (УСАПП);
8) тактовый генератор, частота которого определяется внешним кварцевым резонатором. Частота тактового генератора базовой модели -12МГц, длительность машинного цикла 1мкс.
Обычно кристалл упаковывался с 40-контактный корпус, показанный на рис. 2.1.
Рис.2.1. Внешние выводы базовой модели микроконтроллера 8051(выводы питания не показаны)
Обозначения выводов:
Р0, Р1, Р2, Р3 -8-разрядные параллельные порты ввода/вывода.
RESET – вход начальной установки.
____
EA – вход блокировки внутренней памяти программ.
XTAL1, XTAL2 – выводы для подключения кварцевого резонатора, определяющего тактовую частоту микроконтроллера.
ALE – строб адреса внешней памяти.
PSEN – сигнал чтения из внешней памяти программ.
Любой микроконтроллер можно разделить на две части: процессорное ядро и периферию. К процессорному ядру относят сам процессор, память программ (ПП) и память данных (ПД). В процессоре выделяют операционный блок и блок управления.
Операционный блок микроконтроллера 8051 состоит из арифметико-логического устройства (АЛУ), схемы инкремента/декремента, умножителя и делителя. Блок управления включает в себя счётчик команд (СК), регистр команд (РК), дешифратора команд (ДШК) и указателя стека (УС).
Внутренние функциональные узлы базовой модели 8051 показаны на структурной схеме (рис. 2.2) с использованием следующих обозначений:
Y1, Y2,…Yn -управляющие сигналы.
PSW – регистр слова состояния программы.
А – аккумулятор.
ПД – память данных.
Т/С0 – таймер/счетчик ноль.
Т/С1 – таймер/счетчик один.
Система прерывания, управляемая регистрами IE и IP.
УСАПП (USART) – универсальный синхронно-синхронный последовательный порт.
Рис.2.2.
Структурная схема базовой модели 8051
Арифметико-логическое устройство микроконтроллера 8051 выполняет 5 операций (сложение , вычитание, конъюнкция AND, дизъюнкция OR, ИСКЛЮЧАЮЩИЕ ИЛИ XOR.
Некоторые операции могут быть выполнены без участия АЛУ. Операции умножения и деления реализованы аппаратно специальными схемами умножителя и делителя. Кроме того, содержимое любой ячейки памяти может быть инкрементировано или декрементировано схемой инкремента/декремента, являющейся составной частью резидентной памяти данных, без использования АЛУ.
Важнейшей отличительной чертой архитектуры семейства MCS-51 является возможность обработки одноразрядными данными. Отдельные программно-доступные биты могут быть установлены, сброшены или заменены их дополнением, могут пересылаться, проверяться и использоваться в логических вычислениях. Количество битов доступных для побитных операций равно 16*8 + 11*8 =216. Каждый из них может быть использован в командах условных переходов. Это качество делает микроконтроллеры семейства MCS-51 особенно удобными для применений, связанных с логической обработкой сигналов релейных датчиков и управления двухпозиционными переключателями.
2.2.Порты базовой модели
В базовой модели микроконтроллера 8051 имеются четыре 8-разрядных порта ввода-вывода, обозначаемых P0, P1, P2 и P3, образуя 32 линии ввода-вывода. В последующих модификациях количество портов варьировалось от 2 до 8, но функции и адреса портов Р0, PI, P2, РЗ сохраняются.
Из-за ограниченного количества выводов корпуса большинство из них используется для выполнения двух или более функций. Помимо работы в качестве статических портов ввода/вывода линии портов Р0—РЗ могут выполнять ряд дополнительных функций, описанных ниже.
Через порт Р0:
-
выводится младший байт адреса А0—А7 при работе с внешней памятью программ и/или внешней памятью данных;
-
выдается и принимается данные при работе с внешней памятью по сигналам WR и RD;
-
считываются коды команд из внешней памяти по сигналу PSEN.
Через порт Р2:
-
выводится старший байт адреса А8—А15 при работе с внешней памятью программ и внешней памятью данных (для внешней памяти данных — только при использовании команд MOVX A,@DPTR и MOVX @DPTR,A, которые вырабатывают 16-разрядный адрес);
Каждая линия порта РЗ имеет индивидуальную альтернативную функцию:
РЗ.0 – RxD, вход последовательного порта (УСАПП);
РЗ.1 – TxD, выход последовательного порта;
РЗ.2 – INT0, вход 0 внешнего запроса прерывания;
РЗ.3 – INT1, вход 1 внешнего запроса прерывания;
РЗ.4 – Т0, вход таймера/счетчика Т/С0;
РЗ.5 – Т1, вход таймера/счетчика Т/С1;
РЗ.6 – WR, строб записи во внешнюю память данных, сопровождающий вывод данных через порт Р0 при использовании команд MOVX @Ri, A и MOVX @DPTR, А.
РЗ.7 – RD, строб чтения из внешней памяти данных, выходной сигнал, сопровождающий ввод данных через порт Р0 при использовании команд MOVX A,@Ri и MOVX A,@DPTR.
По сигналу сброс в регистры защёлки всех портов записываются единицы, настраивая их тем самым на ввод. Все выводы портов Р1, Р2, Р3 независимо друг от друга можно использовать как входы или выходы. Для использования вывода в качестве входа необходимо предварительно установить этот разряд в единичное состояние. Благодаря этой особенности порты Р1, Р2 и Р3 иногда называют квазидвунаправленными. Порт Р0 является двунаправленным портом, имеющим третье (высокоимпедансное) состояние. Его выводы также можно независимо настроить на ввод или вывод.
Все выводы портов Р1,Р2 и Р3 имеют внутренние подтягивающие резисторы. В случае использования порта Р0 в качестве выходного порта общего назначения необходимо установить на его выводах внешние подтягивающие резисторы.
Нагрузочная способность портов базовой модели была невысокой. Однако в последующих моделях этот недостаток устранён. Нагрузочный ток в обоих направлениях может достигать довольно большого значения (до 20мА).
Примеры использования портов:
1. Запись в порт P0:
MOV P0, A ; порт P0 используется как статический порт.
2. Считывание из порта P0:
MOV P0, #0FFH ; перед считыванием во все разряды порта записываются единицы.
MOV A, P0 ;передача содержимого порта Р0 в аккумулятор.
3Обеспечить мерцание светодиода с заданной частотой, подключенного к младшему разряду порта P1 (рис.2.3).
Рис.2.3.Подключение кнопки и светодиода к микроконтроллеру
SETB P1.0 ; устан.1 в младшем разряде порта P1
POVT: CALL DELAY_01s ; вызов подпрограммы врем. задержки на 100 мс.
CPL P1.0 ; инверсия младшего бита порта P1.
SJMP POVT ; переход на метку POVT
; Подпрограмма задержки на 0.1секунды
DELAY_01s:
MOV R1, #200
L1: MOV R2, #250
L2: DJNZ R2, L2
DJNZ R1, L1
RET
4 Проверить состояние кнопки, подключенной к порту P1.1. Повторять опрос состояния кнопки до тех пор, пока она не будет нажата.
SETB P1.1; предварит. запишем 1 в заданный разряд.
POVT: JB P1.1, POVT ; если бит =1, то переход на метку POVT, если = 0, то выполняется следующая команда.
2.3.Организация памяти данных
2.3.1. Структура
В базовой модели резидентная память представляет собой регистровый файл объёмом 256х8, адресное пространство в котором разделёно на две области: область регистров общего назначения (РОН), предназначенную для хранения операндов, и область регистров специального назначения (РСН), связанные с функционированием периферийных устройств: портов, таймеров/счётчиков, системы прерывания. Структурная схема регистрового файла представлена на рис.2.4.
Рис.2.4 Структура регистрового файла
В базовой модели микроконтроллера 8051 объем области РОН -128 ячеек.
Первые 32 ячейки организованы в четыре банка рабочих регистров, обозначаемых соответственно RB0-RB3. Каждый из них состоит из восьми регистров R0 - R7. В любой момент доступен только один банк, номер которого зафиксирован в третьем и четвертом битах регистра слова состояния программы PSW и может быть программно изменён. По умолчанию включён нулевой банк рабочих регистров RB0.
2.3.2. Битовая область
16 ячеек памяти данных с номерами от 32 до 47 образуют, так называемую битовую область, в которой имеется возможность при помощи специальных битовых команд адресоваться к каждому разряду этих ячеек памяти. Адрес бита может быть записан либо в виде <Адрес Байта >.<Разряд>, например, выражение 21.2 означает третий разряд ячейки памяти с адресом 21H, либо в виде номера бита, который для данного примера равен 0А (См. рис.2.5).
Рис.2.5.Нумерация битов в битовой области памяти
По адресам c 0030h (48-ая ячейка) по 0007F (127 ячейка) располагается область ОЗУ без всяких дополнительных функций.
По адресам старше, чем 127 (7Fh), т.е. в диапазоне от 128 (80h) до 255 (0FFh) располагается адресное пространство регистров специальных функций РСН (SFR - Special Function Register).
Примеры использования побитовой области памяти:
Эти биты можно использовать, как флаги, т.е. как условия в командах условных переходов, производить с ними логические операции конъюнкции, дизъюнкции, инверсии, менять местами, устанавливать и сбрасывать.
1. again: JB 1F, again ; переход по метке again, если проверяемый (бит 1FН)=1. Команда будет повторяться до тех пор, пока проверяемый бит равен 1 Если же бит равен нулю, то выполняется следующая по списку команда. В краткой нотации действие команды (PC) ← (PC) + 3, если (b) = l, то (PC) ← (PC) + rel. Учитывая, что бит с номером 1FН является 7-ым разрядом ячейки 23Н, возможна другая эквивалентная форма записи этой команды again: JB 23.7, again.
2. SETB 00 ; Запись 1 в нулевой разряд ячейки 32 (20Н).
3. CPL 21.5 ; инверсия бита 0DH (5-ый разряд ячейки 33 (21Н).
4.ANL C, 7F ; Конъюнкция переноса и бита 7F
5 ORL C, /20 ; Дизъюнкция переноса и инверсного значения бита 20Н (нулевого разряда 21 ячейки.
6. MOV 0A, C ; Передача переноса С в бит 0А
7. MOV C, 1F ; Передача бита 7F в перенос С
2.3.3.Стековая область памяти данных
Часть ячеек в адресном пространстве РОН выделяется под стек. Стек – служит для быстрой смены программ (подпрограмм).
Смена программ может происходить аппаратно по сигналам запроса прерываний либо программно по команде вызова подпрограммы (call). В обоих случаях в стек автоматически отправляется содержимое счётчика команд, а его место записывается адрес первой ячейки вызываемой подпрограммы. Сохранение в стеке содержимого контекста прерванной программы производится программно командой PUSH <регистр>, а восстановление командой POP <регистр>, причём извлечение из стека должно производиться в обратном порядке по отношению записи в стек.
Стек – память с жесткой дисциплиной доступа, которая характеризуется правилом: последний записанный байт, первым извлекается. Порядок доступа к ячейкам стека определяется указателем стека (УС/ SP), который представляет собой восьмиразрядный регистр, предназначенный для адресации к особой области памяти данных (стеку). У микроконтроллеров семейства 8051 стек «возрастающий», т.е. перед выполнением команды PUSH или CALL или при переходе к подпрограмме обслуживания прерывания, содержимое SP инкрементируется, после чего производится запись информации в стек. В краткой нотации порядок действии микроконтроллера при переходе к подпрограмме можно отразить тремя микрооперациям:
-
(SP)+1(SP),
-
(PC)((SP)),
-
<адрес подпрограммы> (PC).
Действие команды PUSH <регистр> можно выразить двумя микрооперациями:
-
SP+1SP,
-
(регистр)((SP)),
В краткой нотации порядок действии микроконтроллера при извлечении из стека выражается следующим образом:
-
((SP))(РС) или ((SP))(регистр),
-
(SP)-1(SP).
В процессе инициализации микроконтроллера по сигналу начальной установки в (УС/ SP) заносится код 07Н. Это означает, что первый элемент стека будет располагаться в ячейке памяти с адресом 08Н, что может мешать использовать первый банк рабочих регистров. Поэтому иногда стек переносят в свободную область РОН не обремененную дополнительными функциями (49-127) путем переопределения начального значения указателя стека, например, командой MOV SP, #49.
2.3.4. Внешняя память данных
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.