Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_08Л_Разработка устройств с МП.doc
Скачиваний:
44
Добавлен:
21.03.2015
Размер:
451.07 Кб
Скачать

2. Разработка управляющих программ

2.1. Написание программ для микропроцессоров.

Написание программ для микропроцессоров резко отличается от написания программ для универсального компьютера. При выполнении программы на универсальном компьютере запуск программ, взаимодействие с внутренними, внешними устройствами или человеком берёт на себя операционная система. В микроконтроллерах операционная система отсутствует или развита слабо. Программа, написанная для микроконтроллера, должна решать все задачи, которые на персональном компьютере решаются операционной системой и человеком оператором. Программа, написанная для компьютера, когда-нибудь запускается и завершается. Программа, управляющая микроконтроллером, запускается при включении устройства и не завершает свою работу пока не будет выключено питание.

Примером простейшей программы, которая может решать поставленные задачи является монитор. Алгоритм программы-монитора приведён на рис.5. После включения питания эта программа должна настроить микросхему под выполняемую программой задачу, то есть настроить определённые контакты микросхемы на ввод или вывод информации, включить и настроить внутренние таймеры микроконтроллера и так далее. Этот блок алгоритма программы-монитора называется инициализацией процессора.

Рис. 5. Алгоритм программы-монитора.

Основная часть программы начинает выполняться после настройки микроконтроллера на выполняемую работу. При этом необходимо понимать, что если в аппаратуре ввод, обработка и вывод информации производится различными блоками, то при выполнении программы эти же действия производятся последовательно одним и тем же устройством – микропроцессором. В этом же цикле предусмотрен блок обработки ошибок. Его предназначение сообщать пользователю о непредвиденной ситуации, такой как аварийная ситуация или неправильные данные с подключенного к микроконтроллеру устройства.

2.2. Система команд

Для обеспечения функциональной полноты типичная команда процессора должна содержать код команды, определяющий операцию, выполняемую над двумя двоичными числами, и до четырех операндов в виде их адресов в оперативной памяти. Первые два адреса нужны для определения местоположения чисел, над которыми выполняется операция. Третий адрес должен указать, куда записывается результат операции. Четвертый операнд это следующая команда, к которой надо перейти после завершения текущей. Если реализовать вычислительную систему непосредственно по приведенным соображениям, то получим вычислительную машину с большим объемом требуемой памяти и относительно низким быстродействием. Если для задания адреса требуется 16 бит, то четырехоперандная команда займет минимум 9 байт памяти. В PIC-микроконтроллерах команда занимает только 1,5 байта.

Сократить размер команды позволяет уменьшение числа адресов задаваемых в явном виде. В большинстве микроконтроллеров используются одноадресные, т.е. явно задается только один адрес. Это достигается следующими приемами:

1. Адрес следующей команды указывается только в командах переходов; в остальных случаях очередная команда выбирается из ячеек памяти, следующих за выполненной командой.

2. Использование команд с регистром аккумулятором, в котором находится один из операндов и в нем же запоминается результат операции.

Так как лабораторные работы у нас выполняются на микроконтроллерах фирмы Microchip мы будем рассматривать все на примере PIC–микроконтроллеров, но все выводы применимы и к микроконтроллерам других производителей.

В PIC используется RISC-система команд, характеризующаяся малым набором одноадресных инструкций (33, 35 или 58) в зависимости от разрядности шины программ в разных семействах (12, 14 или 16 бит). Каждая из них имеет длину в одно слово и большинство выполняется за один машинный цикл, состоящий из четырех тактов ГТИ. В системе команд отсутствуют сложные арифметические команды (умножение, деление), предельно сокращен набор условных переходов.

Систему команд микроконтроллера условно можно разбить на пять групп:

  • арифметические команды

  • логические команды

  • команды пересылки данных

  • команды ветвления программ и передачи управления

  • команды управления режимами работы микроконтроллера

Почти во всех форматах команд первые биты отводятся для кода операции, но далее форматы команд разных ЭВМ сильно отличаются друг от друга. Остальные биты должны определять операнды или их адреса, и поэтому они используются для комбинации режимов, адресов регистров, адресов памяти, относительных адресов и непосредственных операндов.

Обычно команда занимает в памяти одно машинное слово в памяти программ, но есть некоторые команды, которые имеют большую длину.