46071 (665366), страница 4
Текст из файла (страница 4)
Все порты могут быть использованы для организации ввода/вывода информации по двунаправленным линиям передачи. Однако порты 0 и 2 не могут быть использованы для этой цели в случае, если МК-система имеет внешнюю память, связь с которой организуется через общую разделяемую шину адреса/данных, работающую в режиме временного мультиплексирования.
Запись в порт.
При выполнении команды, которая изменяет содержимое регистра-защелки порта, новое значение фиксируется в регистре в момент S6P2 последнего цикла команды. Однако опрос содержимого регистра-защелки выходной схемой осуществляется во время фазы Р1 и, следовательно, новое содержимое регистра-защелки появляется на выходных контактах порта только в момент S1P1 следующего машинного цикла.
Нагрузочная способность портов. Выходные линии портов 1, 2 и 3 могут работать на одну ТТЛ-схему. Линии порта 0 могут быть нагружены на два входа ТТЛ-схем каждая. Линии порта 0 могут работать и на n-МОП-схемы, однако при этом их необходимо подключать на источник электропитания через внешние нагрузочные резисторы за исключением случая, когда шина порта 0 используется в качестве шины адреса/данных внешней памяти.
Входные сигналы для МК51 могут формироваться ТТЛ-схемами или n-МОП-схемами. Допустимо использование в качестве источников сигналов для Intel87C51FB схем с открытым коллектором или открытым стоком. Однако при этом время изменения входного сигнала при переходе из 0 в 1 окажется сильно затянутым.
Особенности работы портов.
Обращение к портам ввода/вывода возможно с использованием команд, оперирующих с байтом, отдельным битом и произвольной комбинацией бит. При этом в тех случаях, когда порт является одновременно операндом и местом назначения результата, устройство управления автоматически реализует специальный режим, который называется "чтение-модификация-запись". Этот режим обращения предполагает ввод сигналов не с внешних выводов порта, а из его регистра-защелки, что позволяет исключить неправильное считывание ранее выведенной информации.
Обзор типов команд
Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла. При тактовой частоте 2 МГц длительность машинного цикла составляет 1 мкс. Обычно первый байт команды любых типа и формата всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.
Типы операндов.
Состав операндов Intel87C51FB включает в себя операнды четырех типов: биты, 4-битные цифры, байты и 16-битные слова. Пример рис 3.3.
Рис 3.3.
Intel87C51FB имеет 128 программно-управляемых флагов пользователя. Имеется также возможность адресации отдельных бит блока регистров специальных функций и портов. Для адресации бит используется прямой 8-битный адрес (bit). Косвенная адресация бит невозможна. Карты адресов отдельных бит представлены на рис и рис . Четырехбитные операнды используются только при операциях обмена (команды SWAP и XCHD). Восьмибитным операндом может быть ячейка памяти программ или данных (резидентной или внешней), константа (непосредственный операнд), регистры специальных функций (РСФ), а также порты ввода/вывода. Порты и РСФ адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры (R0, R1, DPTR и PC). Двухбайтные операнды - это константы и прямые адреса, для представления которых используются второй и третий байты команды.
Способы адресации данных.
В Intel87C51FB используются такие способы адресации данных: прямая, непосредственная, косвенная и неявная. Следует отметить, что при косвенном способе адресации РПД используются все восемь бит адресных регистров R0 и R1.
Флаги результата.
Слово состояния программы (PSW) включает в себя четыре флага: C - перенос, AC - вспомогательный перенос, O - переполнение и P - паритет.
Флаг паритета напрямую зависит от текущего значения аккумулятора. Если число единичных бит аккумулятора нечетное, то флаг P устанавливается, а если четное - сбрасывается попытки изменить флаг Р, присваивая ему новое значение, будут безуспешными, если содержимое аккумулятора при этом останется неизменным.
Флаг АС устанавливается в случае, если при выполнении операции сложения/вычитания между тетрадами байта возник перенос/заем.
Флаг C устанавливается, если в старшем бите результата возникает перенос или заем. При выполнении операций умножения и деления флаг C сбрасывается. Флаг OV устанавливается, если результат операции сложения/вычитания не укладывается в семи битах и старший (восьмой) бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV устанавливается, если результат больше 255.
В табл. 3.5 перечисляются команды, при выполнении которых модифицируются флаги результата. В таблице отсутствует флаг паритета, так как его значение изменяется всеми командами, которые изменяют содержимое аккумулятора. Кроме команд, приведенных в таблице, флаги модифицируются командами, в которых местом назначения результата определены PSW или его отдельные биты, а также командами операций над битами.
Таблица 3.5.
Команды | Флаги | Команды | Флаги | |
ADD | C, OV, AC | CLR C | C = 0 | |
ADDC | C, OV, AC | CPL C | C = ¬C | |
SUBB | C, OV, AC | ANL C, b | C | |
MUL | C = 0, OV | ANL C, /b | C | |
DIV | C = 0, OV | ORL C, b | C | |
DA | C | ORL C, /b | C | |
RRC | C | MOV C, b | C | |
RLC | C | CJNE | C | |
SETB C | C = 1 |
Символическая адресация.
При использовании ассемблера ASM51 для получения объектных кодов программ допускается применение в программах символических имен регистров специальных функций (РСФ), портов и их отдельных бит рис. 3.4., рис 3.5.
Для адресации отдельных бит РСФ и портов (такая возможность имеется не у всех РСФ) можно использовать символическое имя бита следующей структуры:
.
Например, символическое имя пятого бита аккумулятора будет следующим: АСС.5. Символические имена РСФ, портов и их бит являются зарезервированными словами для Intel87C51FB, и их не надо определять с помощью директив ассемблера.
Рис 3.4.
Рис 3.5.
Выбор Инструментальных средств
При выборе инструментальных средств разработки было необходимо обеспечить удобство и быстроту создания и отладки программного обеспечения микроконтроллера. Программа отлаживалась в интегрированной среде PICE-51, которую можно охарактеризовать следующим образом. PICE под Windows основная интегрирующая среда разработки для технологии микрокристалла включающей INTEL87C51FB семейств микроконтроллера. PICE позволяет пользователю писать, отлаживать, и оптимизировать многие процессоры для разработки микропрограмм. PICE включает текстовый редактор, имитатор, и руководитель проекта. PICE также имеет внутрисхемный эмулятор, программирующие устройства, и другие системы разработки инструментальных средств микрокристалла. Инструментальные средства PICE реализуют для пользователя следующие функции:
Отладка его исходной программы;
Эмуляция процессоров:
Intel: 80C31/32, 8XC51/52/54/58, 8XL/C51FA/FB/FC, 8XC51RA/RB/RC;
Philips: 80C31/32, 8XC51/52/54/58, 8XC51FA/FB/FC; 8XC51RA+/RB+/RC+/RD+, 8XC524, 8XC528, 8XC550, 8XC652, 8XC654, 8XC575, 8XC576, 8XC851, 89C535,89C536, 89C538;
Atmel: 89C51, 89C52, 89C55, 89C4051, 89C2051, 89C1051;
Siemens: SAB501;
MHS: 80C31, 8XC51, 80C32, 8XC52, 8XC154;
Oki: 80C31, 8XC51, 8XC154;
AMD: 80C31, 8XC51, 8XC52;
Автоматически располагает ошибки в исходных файлах для редактирования;
Отладка с контрольными точками, базировавшимися на внутренних величинах регистра;
· Часы ход программы с имитатором или часами в реальном времени с внутрисхемным эмулятором POD51-RX.
· Делать синхронизацию размеров со стоповыми часами;
· Видеть переменные в специальных окнах;
· Находить быстрые ответы на вопросы с PICE онлайновой подсказки;
Встроенная разработка среды Project-51 позволяет пользователю быстро перемещаться между другими способами разработки/отладки.
Встроенная разработка среды Project-51 включает инструментальные средства следующей разработки:
Руководитель проекта позволяет пользователю создавать проект, и работать со специфическими файлами связанными с проектом. Project-51 руководитель проекта также позволяет пользователю формировать приложение и загружать программный код в эмулятор или имитатор с нажатием мыши.
Project-51 это:
редактор позволяет программисту писать и редактировать исходные файлы микропрограмм или другие текстовые файлы для INTEL87C51FB микроконтроллеров;
универсальный ассемблер микроконтроллеров позволяет пользователю получать программный код;
программный имитатор имитирует выполнение инструкции и I/O микроконтроллеров.
Внутрисхемный эмулятор POD51-RX использует аппаратные средства, чтобы эмулировать INTEL87C51FB микроконтроллеров в реальном времени. Аппаратные средства POD51-RX эмулятора продаются отдельно.
После установки и компиляции проектов в Project-51, программист захочет увидеть как сделаны его кодовые прогоны. Если у вас есть программатор устройства, вы можете запрограммировать устройство микроконтроллера и подключите программируемое устройство в вашем фактическом приложении, чтобы проверить, что приложение работает как ожидается. Обычно, приложение не будет выполняться правильно сначала, и программист должен отладить код. Отладчик может использовать Project-51, чтобы с имитировать программный код или может использовать эмулятор POD51-RX, чтобы выполнять созданные микропрограммы в фактическом приложении пока программист производит отлаживание созданной программы. Во время отладки, пользователь может использовать прерывание и точки останова, когда выполняется код его программы. Можно наблюдать величины регистра в окне регистра или в специальном функциональном окне регистра, чтобы увидеть состояние процессора и следовательно выполняемый код и пошаговый режим.
Внутрисхемный эмулятор POD51-RX выполняет код в фактической скорости выполнения (реальное время) в разрабатываемых целевых аппаратных средствах, останавливаясь только в определенных контрольных точках. Project-51 имитирует выполнение любого процессора и имитирует условия I/O в скоростях, которые зависят от скорости вашего PC.
Все эти функции используют информацию из Project-51 проекта. Строка помечается в исходной программе, символических позициях в памяти, и функциональные имена из кода могут использоваться, чтобы установить прерывание и точки останова и изучать и модифицировать регистры.
Исходя из всего выше сказанного, выбор элементной базы был остановлен на уже перечисленных микросхемах. Выбор инструментальных средств разработки обоснован необходимостью применения интегрированной среды Project-51 для отладки ассемблерных программ контроллеров.
Разработка структуры программного обеспечения подсистемы.
В процессе дипломного проектирования необходимо разработать подсистему контроля вскрытия персонального компьютера обеспечивающую постоянный контроль поставленных на охрану объектов и выдачу информации о их состоянии на АРМ СБ.