Рябов В.Т. - Устройство и программирование однокристальных микроконтроллеров (1041592), страница 4
Текст из файла (страница 4)
Управляют работой элементов микроконтроллера специальные регистры (регистры специальных функций SFR).Микроконтроллер имеет 32 регистра общего назначения (РОН), организованных как11четыре банка по восемь регистров с именами R0… R7. Выбор того или иного банка определяется программой путем установки соответствующих бит в слове состояния процессораPSW. Над зоной РОН расположена зона битового процессора: 128 бит с раздельной адресацией каждого бита и набором инструкций для операций с ними (см. далее).Существуют следующие режимы работы микроконтроллера: 1) общий сброс; 2) нормальное функционирование; 3) режим пониженного энергопотребления и холостого хода;4) режим программирования резидентного РПЗУ, если оно есть.Мы здесь основное внимание уделим первым двум режимам работы.РОН и зона битового процессора расположены в адресном пространстве резидентнойОЗУ с адресами от 0 до 80h.
В верхней зоне адресов резидентной оперативной памяти от 80h доFFh расположены регистры специальных функций (SFR, Special Function Registers). Кратко рассмотрим их назначение.Аккумулятор АCC - регистр аккумулятора. Команды, предназначенные для работы саккумулятором, используют мнемонику "А", например, MOV А, Р2. Мнемоника "АСС' используется, к примеру, при побитовой адресации аккумулятора. Так, символическое имя пятого бита аккумулятора при использовании ассемблера АSМ51 будет следующим: АСС.5..Регистр В. Используется во время операций умножения и деления.
Для других инструкций регистр В может рассматриваться как дополнительный регистр.Регистр состояния программы PSW содержит информацию о состоянии программы. Часть его битов устанавливается автоматически по результату выполненной операции,часть - пользователем. Обозначение и назначение разрядов регистра приведены соответственно в таблице 3.1.Таблица 3.1.Биты7ОбозначениеCY6АС543--2F0RS1RS0RS1 RS000011011OV1--0PНазначение битовДоступ к битуФлаг переноса.
Изменяется во время выполненияряда арифметических и логических инструкций.Флаг дополнительного переноса. Аппаратно устанавливается/сбрасывается во время выполненияинструкций сложения или вычитания для указанияпереноса или заема в бите 3 при образованиимладшего полубайта результата (D0-D3).Флаг 0. Флаг, определяемый пользователем.Указатель банка рабочих регистровУказатель банка рабочих регистровАппаратно илипрограммноАппаратно илипрограммноБанк 0 с адресами (00Н - 07Н)Банк 1 с адресами (08Н – 0FН)Банк 2 с адресами (10Н - 17Н)Банк 3 с адресами (18Н – 1FН)Флаг переполнения.
Аппаратно устанавливаетсяили сбрасывается во время выполнения арифметических инструкций для указания состояния переполненияРезервный. Содержит триггер, доступный по записи и чтению, который можно использоватьБит четности. Аппаратно сбрасывается или устанавливается в каждом цикле инструкций для указания четного или нечетного количества разрядов аккумулятора, находящихся в состоянии "1".ПрограммноПрограммноПрограммноАппаратно илипрограммноАппаратно илипрограммно12Указатель стека SР - 8-битовый регистр, содержимое которого инкрементируетсяперед записью данных в стек при выполнении команд PUSH и CALL. При начальном сбросе указатель стека устанавливается в 07Н, а область стека в ОЗУ данных начинается с адреса 08Н. При необходимости, путем переопределения указателя стека, область стека можетбыть расположена в любом месте резидентного ОЗУ микроконтроллера.Указатель данных DPTR состоит из старшего байта (DPH) и младшего байта (DPL).Содержит 16-битовый адрес при обращении к внешней памяти.
Может использоваться как16-битовый регистр или как два независимых восьмибитовых регистра.Порт0 - ПортЗ. Отдельными битами регистров специальных функций Р0, Р1, Р2,РЗ являются биты –«защелки» выводов портов Р0, Р1, Р2, РЗ.Буфер последовательного порта SBUF представляет собой два отдельных регистра: буфер передатчика и буфер приемника.
Когда данные записываются в SBUF, они поступают в буфер передатчика, причем запись байта в SBUF автоматически инициирует егопередачу через последовательный порт. Когда данные читаются из SBUF, они выбираютсяиз буфера приемника.Регистры таймера. Регистровые пары (ТН0, ТL0) и (ТН1, TL1) образуют 16битовые счетные регистры соответственно таймера/счетчика 0 и таймера/счетчика 1.Регистры управления. Регистры специальных функций IР, IЕ, ТМOD, ТСОN, SCON иРСОN содержат биты управления и биты состояния системы прерываний, таймеров/счетчиков и последовательного порта. Они будут подробно рассмотрены далее.МК при функционировании обеспечивает: минимальное время выполнения команд сложения -1 мкс; аппаратное умножение и деление с минимальным временем выполнения - 4 мкс.Расширенная система команд обеспечивает побайтовую и побитовую адресацию,двоичную и двоично-десятичную арифметику, индикацию переполнения и определениячетности/нечетности, операции битового процессора.Важнейшей и отличительной чертой архитектуры семейства MCS51 является то, что АЛУ может, наряду свыполнением операций над 8-разрядными типами данных, манипулировать отдельными битами.Обработка отдельных битов (при существующей тенденции к увеличению длины слова) может с первоговзгляда показаться шагом назад, но это качество делаетмикроконтроллеры семейства MCS51 особенно удобнымидля управления.
Ведь элементарные действия контроллера: дискретный контроль ДК и управления ДУ, как раз исвязаны с обработкой отдельных битов без изменения соседних. Все эти свойства в целом называются булевымпроцессором семейства MCS51. Набор инструкций микроконтроллеры семейства MCS51 одинаково хорошо подходит как для управления в реальном масштабе времени, таки для алгоритмов с большим объемом данных.Схемотехническое изображение микроконтроллера представлено на рис. 3.2. В базовом варианте он упакован в 40-выводной DIP корпус. Рассмотрим назначениевыводов.Рис. 3.2. Внешние выводыНачнем с выводов питания «0 В» и «5 В», по комикроконтроллера.торым он получает основное питание.Вывод «RST» - сброс микроконтроллера.
При подаче на этот вывод активного высокого уровня запускается режим общего сброса и МК производит следующие действия:− устанавливает счетчик команд PC и все регистры специальных функций, кроме защелокпортов Р0—РЗ, указателя стека SP и регистра SBUF, в ноль;13− указатель стека принимает значение равное 07Н;− запрещает все источники прерываний, работу таймеров-счетчиков и последовательногопорта;− выбирает БАНК 0 ОЗУ, подготавливает порты Р0—РЗ для приема данных и определяетвыводы ALE и РМЕ как входы для внешней синхронизации;− в регистрах специальных функций PCON, IP и IE резервные биты принимают случайныезначения, а все остальные биты сбрасываются в ноль;− в регистре SBUF устанавливаются случайные значения.− устанавливает фиксаторы-защелки портов Р0—РЗ в "1".Вывод RST имеет и альтернативную функцию.
Через него подается резервное питаниядля сохранения неизменным содержимого ОЗУ микроконтроллера при снятии основного.Выводы BQ1, BQ2 – предназначены для подключения кварцевого резонатора, определяющего тактовую частоту работы МК.Вывод EA (External Adress – внешний адрес) - предназначен для активизации режимачтения управляющих кодов из внешней памяти программ, при подаче на этот вывод активного низкого уровня. Вывод имеет и альтернативное назначение (функцию).
На него подается напряжение программирования РПЗУ в режиме программирования.Вывод PME (Program Memory Enable – разрешение памяти программ) - предназначендля управления циклом чтения из памяти программ и автоматически активизируется МК вкаждом машинном цикле.Вывод ALE (Adress Length Enable – разрешение младшего адреса) стробирует выводмладшей части адреса по порту Р0. Вывод используется и при программировании РПЗУ, приэтом на него подается стробирующий процесс программирования импульс.МК содержит четыре группы портов: Р0, Р1, Р2, и Р3. Это оставшиеся из 40-а выводовмикроконтроллера. Эти порты могут служить для побитного ввода – вывода информации, нопомимо этого каждый из них имеет свою специализацию. Обобщенная функциональная схемапорта представлена на рис. 3.3.
Порт содержит выходные ключи на полевых транзисторах, подключенные к выводу, переключатель функций, защелку на D-триггере и логику управления. Взащелку по внутренней шине МК может быть записана единица или ноль. Эта информация через переключатель функцийпоступает на выходные ключии вывод МК. В состоянии единицы оба транзистора N и N1закрыты, но открыт N2.
В состоянии нуля N открывается, аN2 закрывается. В момент, когда порт выполняет альтернативную функцию, на которуюон специализирован, состояниезащелки с вывода снимается.Микроконтроллеротдельноможет считать состояние защелки порта и состояние еговывода, установленное внешРис. 3.3.
Функциональная схема порта микроконтроллера.ним сигналом. Для этого в ассемблере МК имеются специальные команды, активизирующие соответствующие линии. Для чтения состояния вывода в защелку соответствующего порта должна быть предварительно записана единица. При активизации линии «чтение защелки» на выходе ячейки «И», к которой подключена эта линия появляется состояние защелки, поступающее на внутреннюю шину МК, при активизации «чтение вывода» - состояние внешнего вывода порта.14Порт Р0 – универсальный двунаправленный порт ввода-вывода.