Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Программирование МК



Порядок составления программ для микропроцесссорного комплекта тот же, что изучался в курсе "информатика":

- на основе анализа производится выбор решения поставленной задачи;

- составляется алгоритм решения;

- в соответствии с алгоритмом записывается программа на языке ассемблера;

- производится перевод программы в машинные коды (в шестнадцатиричной системе счисления);

- выполняется ввод программы в микропроцессорный комплект и производится ее отладка;

- программа запускается на выполнение.

Команды могут быть однобайтные, двубайтные и трехбайтные, то есть занимать в ОЗУ одну, две или три ячейки памяти.

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

Для полного использования возможностей микропроцессора все программы пишутся, как правило, на языке ассемблера (используется мнемонический код). Для этого в каждой строке программы пишут один оператор, а вся программа разбивается на 4 поля: поле метки, поле мнемокода, поле операнда и поле комментария.

Метка – условное обозначение адреса перехода в программе. Меткой может быть последовательность пяти буквенно-цифровых символов, причем первым символом может быть только буква. Метка отделяется от поля мнемокода символом двоеточие, например:

M1:, M34:, S210: и так далее.

Поле мнемокода – содержит код операции, например MOV, LDA и так далее.

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

Существует четыре типа операндов:

- регистр;

- регистровая пара;

- непосредственные данные (одно- или двухбайтовые);

- адрес памяти (двухбайтовый).

Поле комментария – отделяется от поля операнда символом точка с запятой. Комментарий служит для пояснения работы программы, он помогает выяснить ошибки в программе.

Рассмотрим порядок разработки программы на следующем примере.

Вывести в порт А, расположенный по адресу (90)н, число (АА)н. Режим работы порта простой (0). Регистр управляющего слова работы портов расположен по адресу (93)н. Для решения задачи необходимо настроить порты на заданный режим работы и вывести заданное число в порт А. Для настройки портов составляется управляющее слово работы портов и выводится в регистр управляющего слова. По условию задан только режим работы порта А, в связи с этим, произвольно задаются условиями режим работы остальных портов. Положим, что порт В, Сст, Смл работают на вывод и режим их работы нулевой. Тогда код управляющего слова будет иметь вид

10000000 = (80)н

Так как все операции в МП КР580ВМ80А осуществляются через аккумулятор, то первой командой необходимо переслать данные (управляющее слово) в регистр А. Для этого воспользуемся командой MVI r, data 8. В данном примере команда будет иметь вид MVI A, 80. Код команды MVI A – 00DDD110 → 00111110 = (3E)н. Команда MVI A, 80 занимает два байта. Следующий этап – это пересылка управляющего слова в регистр управляющего слова. Для пересылки воспользуемся командой OUT, port. Код команды OUT – 11010011 = (D3)н. Во втором байте команды указывается адрес (в данном случае РУС – (93)н). После выполнения этой команды настройка портов осуществлена. Аналогично осуществляется пересылка заданного числа в порт А с той лишь разницей, что в команде OUT порт указывается адрес порта А (90)н. Остановить выполнение программы можно командой HLT или осуществить безусловный переход на метку (команда пересылки заданного числа в аккумулятор) с помощью команды JMP adr. При этом выполнение программы, начиная с метки, будет повторяться.

При написании программы первоначально указывается адрес первой ячейки памяти, с которой начнется запись программы. Для этого служит директива ORG. В таблице 5.8 приведена программа решения задачи.

Таблица 5.8 – Программа вывода числа в порт А

  OGR    
  MVI А, 80 ; настройка УВВ: пересылка управ­ляющего слова работы портов в акку­мулятор
  OUT   ; настройка УВВ: пересылка управ­ляющего слова в РУС
М1: MVI А, АА ; запись исходного числа в регистр-аккумулятор (регистр А)
  OUT   ; вывод исходного числа в порт све­тодиода (порт А)
  JMP М1 ; возврат на начало программы
поле метки поле мнемокода поле операнда поле комментария

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

При ручном переводе необходимо из таблицы команд выписать двоичные коды команд на мнемонике, подставив в них коды регистров, регистровых пар, проверок условий и так далее. Затем двоичные числа переводят в шестнадцатиричные и заносят их по ячейкам памяти. Этот перевод необходим, чтобы ускорить ввод программы. Приведенная ранее программа представлена в таблице 5.9.При переводе следует помнить, что нумерация адресов ячеек памяти – шестнадцатиричная, а при записи адресов перехода в начале указывается младший байт адреса, а затем старший байт адреса. Поэтому после кода команды JMP – С3 в ячейку с адресом 0809 записан вначале младший байт адреса 04 метки М1 с адресом 0804, а в ячейку с адресом 080А записан старший байт метки М1 - 08.

Таблица 5.9 – Программа вывода заданного числа в порт А в кодах

Адрес Код Назначение кодов
  код команды MVI A
    управляющее слово работы портов
  D3 код команды OUT
    адрес регистра управляющего слова
  3E код команды MVI A
  AA код исходной информации, которая выводится в порт А
  D3 код команды OUT
    адрес порта А
  C3 код команды JMP
    младший байт адреса метки
080А   старший байт адреса метки

КОНТРОЛЬНЫЕ ВОПРОСЫ К РАЗДЕЛАМ 5.10 - 5.11

1. Микропроцессор: назначение, архитектура.

2. Команда, машинный цикл, машинный такт.

3. Общие принципы функционирования МП.

4. Функциональная схема МП КР580ВМ80А.

5. Шины МП: назначение, разрядность.

6. Система команд МП.

7. Микропроцессорный комплект.

8. Организация ввода-вывода; МС КР580ВВ55А.

9. Таймер; МС КР580ВИ53.

10. Основные принципы программирования МК.





Дата публикования: 2015-01-23; Прочитано: 341 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...