Качество получаемого прикладного программного обеспечения контроллера всецело зависит от уровня проектных решений, принятых на этапе «от постановки задачи к исходной программе». Уровень проектных решений, в свою очередь, из-за отсутствия теории проектирования программируемых контроллеров определяется только опытом, квалификацией и интуицией разработчика. Однако накопленный опыт убеждает в том, что систематический подход к процессу разработки прикладных программ для контроллеров обеспечивает достижение хороших результатов даже начинающими разработчиками.
1.3 Использование контроллера АТ89С51
На данный момент широко применяются микроконтроллеры серии МК51. Существует обширная техническая документация и что самое главное широкий выбор отладочных средств от эмулятора ПЗУ и отладочного монитора до внутрисхемного эмулятора. Процессоры данной серии достаточно универсальны для успешного применения в микроэлектронике, что позволяет их использовать как при разработке простых систем, так и при создании сложных модулей электронной аппаратуры.
Рассмотрим микроЭВМ серии МК51 более подробно.
1.3.1 Основные программно-доступные устройства микроконтроллера АТ89С51
Основными программно-доступными устройствами микроконтроллера AT89C51 являются:
1) 8‑разрядный аккумулятор А;
2) 8‑разрядный вспомогательный регистр AВ;
3) триггеры признаков результата: C, OV, P, отрицательности, нуля;
4) триггеры выбора банка рабочих регистров RS0 и RS1;
5) триггер программно-управляемого флага F0;
6) 16‑разрядный счетчик команд PC;
7) 16‑разрядный регистр указателя данных DPTR;
8) 8‑разрядный регистр указателя стека SP;
9) внутренняя память программ емкостью 4 Kb, расширяемая внешними устройствами до 64 Kb;
10)внутренняя память данных емкостью 128 байт, в которой размещается от одного до четырех банков рабочих регистров R0‑R7, область стека и побитово адресуемая область памяти;
11)внешняя память данных емкостью до 64 Kb;
12)два программируемых 16‑разрядных таймера-счетчика;
13)программируемый двунаправленный последовательный порт ввода-вывода и соответствующие устройства управления;
14)четыре 8‑разрядных двунаправленных параллельных порта ввода-вывода;
15)двухуровневую приоритетную систему прерываний с пятью векторами и двумя уровнями;
16)последовательный интерфейс;
17)тактовый генератор.
1.3.2 Структурная схема микроЭВМ серии МК51
Система команд микроЭВМ серии МК51 содержит 111 базовых команд с форматом 1, 2 или 3 байта. Микроконтроллер имеет:
· 32 РОН;
· 128 определяемых пользователем программно-управляемых флагов;
· набор регистров специальных функций.
РОН и определяемые пользователем программно-управляемые флаги расположены в адресном пространстве внутреннего ОЗУ данных.
Важнейшей и отличительной чертой архитектуры семейства МК51 является то, что АЛУ может наряду с выполнением операций над 8‑разрядными типами данных манипулировать одноразрядными данными. Отдельные программно-доступные биты могут быть установлены, сброшены или заменены их дополнением, могут пересылаться, проверяться и использоваться в логических вычислениях. Тогда как поддержка простых типов данных может с первого взгляда показаться шагом назад, это качество делает микроЭВМ семейства МК51 особенно удобным для применений, в которых используются контроллеры. Алгоритмы работы последних по своей сути предполагают наличие входных и выходных булевых переменных, которые сложно реализовывать при помощи стандартных микропроцессоров. Все эти свойства в целом называются булевым процессором семейства МК51. Благодаря такому мощному АЛУ набор инструкций микроЭВМ семейства МК51 одинаково хорошо подходит как для применений управления в реальном масштабе времени, так и для алгоритмов с большим объёмом данных.
Рис. 1.2а. Структурная схема МК51
Рис. 1.2б. Структурная схема МК51
Блок управления предназначен для выработки синхронизирующих и управляющих сигналов, обеспечивающих координацию совместной работы блоков микроЭВМ семейства МК51 во всех допустимых режимах её работы. В состав блока управления входят устройство выработки временных интервалов, логика ввода-вывода, регистр команд, регистр управления потреблением, дешифратор команд, ПЛМ и логика управления ЭВМ.
Устройство выработки временных интервалов предназначено для формирования и выдачи внутренних синхросигналов фаз, тактов и циклов.
Логика ввода-вывода предназначена для приёма и выдачи сигналов, обеспечивающих обмен информацией ОМЭВМ с внешними устройствами через порты ввода-вывода Р0‑Р3.
Регистр команд предназначен для записи и хранения 8‑разрядного кода операции выполняемой команды, который с помощью дешифратора команд преобразовывается в 24‑разрядный код для ПЛМ, с помощью которой вырабатывается набор микроопераций в соответствии с микропрограммой выполнения команды. Регистр команд программно недоступен.
Регистр управления потреблением PCON управляет скоростью передачи последовательного порта SMOD.
Логика управления ЭВМ в зависимости от режима работы МИКРОЭВМ СЕМЕЙСТВА МК51 вырабатывает необходимый набор управляющих сигналов.
АЛУ представляет собой параллельное восьмиразрядное устройство, обеспечивающее выполнение арифметических и логических операций, а также операции логического сдвига, обнуления, установки и т.п.
Регистр аккумулятора и регистр временного хранения – восьмиразрядные регистры, предназначенные для приёма и хранения операндов на время выполнения операций над ними. Программно недоступны.
ПЗУ констант обеспечивает выработку корректирующего кода при двоично-десятичном представлении данных, кода маски при битовых операциях и кода констант.
Параллельный восьмиразрядный сумматор представляет собой схему комбинационного типа с последовательным переносом, предназначенную для выполнения арифметических операций сложения, вычитания и логических операций сложения умножения неравнозначности и тождественности.
Регистр В-восьмиразрядный регистр, используемый во время операций умножения и деления. Для других инструкций он может рассматриваться как дополнительный сверхоперативный регистр.
Аккумулятор представляет собой восьмиразрядный регистр, предназначенный для приёма и хранения результата, полученного при выполнении арифметико-логических операций или операций пересылки.
Регистр состояния программы предназначен для хранения информации о состоянии АЛУ при выполнении программы.
Таймеры / Счётчики предназначены для подсчёта внешних событий, для получения программно-управляемых временных задержек и выполнения времязадающих функций ОМЭВМ.
Блок последовательного интерфейса и прерываний предназначен для организации ввода-вывода последовательных потоков информации и организации системы прерывания программ.
Счётчик команд предназначен для формирования текущего 16‑разрядного адреса внешней памяти данных.
Порты Р0, Р1, Р2, Р3 являются двунаправленными портами ввода-вывода и предназначены для обеспечения обмена информацией микроЭВМ семейства МК51 с внешними устройствами.
Память данных предназначена для приёма, хранения и выдачи информации, используемой в процессе выполнения программы. Память данных, расположенная на кристалле ОМЭВМ, состоит из регистра адреса ОЗУ, дешифратора, ОЗУ и указателя стека.
Память программ предназначена для хранения программ и имеет отдельное от памяти данных адресное пространство объёмом до 64 Кбайт.
1.3.3 Адресные пространства АТ89С51
В AT89C51 имеются следующие адресные пространства:
1. Пространство адресов регистров специальных функций, таких как аккумулятор А, вспомогательный регистр AВ, старший и младший регистры указателя данных DPTR, фиксаторы портов ввода-вывода P0‑P3, регистр слова состояния программы PSW, регистр указателя стека SP и др. Диапазон адресов регистров специальных функций находится в пределах от 128 до 255. При записи данных по адресу регистра несуществующей специальной функции данные теряются, при считывании из регистра несуществующей специальной функции данные не определенны;
2. Пространство адресов триггеров специальных функций, таких как триггеры признаков переноса C, переполнения OV, четности P, отрицательности N, нуля Z, триггеры выбора банка рабочих регистров RS0 и RS1; триггер программно-управляемого флага F0 и другие. Все триггеры специальных функций физически размещаются в регистрах специальных функций. Наличие триггеров специальных функций определяется типом микроконтроллера. Диапазон адресов триггеров специальных функций находится в пределах от 128 до 255. Части адресов соответствуют несуществующие триггеры. При записи бита по адресу несуществующего триггера этот бит теряется, при считывании бита из несуществующего триггера его значение неопределенно;
3. Пространство адресов памяти программ. Диапазон адресов этого пространства находится в пределах от 0 до 65535. Память программ с адресами от 0 до 4096 может реализоваться внутренним запоминающим устройством. В пространстве адресов памяти программ размещаются коды команд и, возможно, данные. Часть адресов пространства памяти программ зарезервирована для точек входа в программу начального запуска и программы обслуживания прерываний. Адрес команды, подлежащей выполнению, хранится в счетчике команд PC. Обращение к данным в памяти команд осуществляется по адресу равному сумме содержимого счетчика команд PC и аккумулятора A или регистра указателя данных DPTR и аккумулятора A;