Рис 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 для отладки ассемблерных программ контроллеров.
Разработка структуры программного обеспечения подсистемы.
В процессе дипломного проектирования необходимо разработать подсистему контроля вскрытия персонального компьютера обеспечивающую постоянный контроль поставленных на охрану объектов и выдачу информации о их состоянии на АРМ СБ.
Программа контроллера УСВИЦ-250 должна выполнять следующие основные функции:
Осуществлять считывание с масок кодов скоростей;
Осуществлять перевод этих кодов в двоичный код;
Осуществлять формирование 32х-разрядного слова по ARING-427;
Осуществлять вывод в магистраль выходного слова;
Осуществлять вывод аналогового сигнала о приборной скорости.
Результатом анализа и осмысления, поставленных при разработке данной подсистемы требований явилась следующая структура подпрограмм в основной программе, обеспечивающей выполнения поставленных требований:
1. Подпрограмма, взаимодействующая масок с МК должна выполнять следующие возложенные на нее функции:
- принимать коды грея;
2. Подрограмма, осуществляющая перевод кодов по формуле:
Код_Двоичный4=Код_Грея4;
Код_Двоичный3=Код_Грея3 Å Код_Двоичный4;
Код_Двоичный2=Код_Грея2 Å Код_Двоичный3;
Код_Двоичный1=Код_Грея1 Å Код_Двоичный2;
Код_Двоичный0=Код_Грея0 Å Код_Двоичный1;
3. Подрограмма, формирование 32х-разрядного слова по ARING-427 должна выполнять следующие функции: