48274 (Программное обеспечение встроенных систем управления на базе однокристальных микропроцессоров (МП)), страница 3

2016-07-29СтудИзба

Описание файла

Документ из архива "Программное обеспечение встроенных систем управления на базе однокристальных микропроцессоров (МП)", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "контрольные работы и аттестации", в предмете "информатика, программирование" в общих файлах.

Онлайн просмотр документа "48274"

Текст 3 страницы из документа "48274"

Пример 1.3. Определение максимального из двух положительных чисел. При обработке сигналов часто встречается необходимость определения максимального из нескольких положительных чисел. Такие задачи возникают, например, при обнаружении полезных сигналов или при нахождении максимального значения сигнала при заданном интервале времени. Нахождение максимального из нескольких чисел сводится к последовательному определению максимального из двух чисел.

В системе команд МП имеется команда сравнения СМР, которая не изменяет содержимого аккумулятора, однако устанавливает триггер признака CY (перенос) в единичное состояние, если содержимое аккумулятора меньше содержимого регистра.

Рисунок 1.8 – Схема алгоритма нахождения большего из двух положительных чисел

Таблица 1.4 – Программа определения модуля числа

Метка

Мнемокод

Операнд

Адрес

Н-код

Комментарий

MOV

A, E

01F0

7B

Пересылка в аккумулятор

5

ORA

A

01F1

B7

Определение знака числа

4

JP

M2

01F2

F2

Условный переход по положительному значению

10

01F3

F8

01F4

10

CMA

A

01F5

2F

Изменение знака числа

4

INR

A

01F6

3C

5

MOV

E, A

01F7

5F

Пересылка в регистр Е

5

M2:

10F8

Для определенности будем считать, что одно из чисел находится в аккумуляторе, а другое – в регистре В. Требуется большее число поместить в регистр В, а меньшее – в аккумулятор. Схема алгоритма показана на рис. 1.8, а программа в машинных кодах приведена в табл. 1.5.

Рисунок 1.9 – Схема алгоритма формирования временной задержки

Таблица 1.5 – Программа нахождения большего из двух положительных чисел

Метка

Мнемокод

Операнд

Адрес

Н-код

Комментарий

Vt

CMP

B

00A1

B8

Сравнение чисел

7

JC

M1

00А2

DA

Переход на М1, если (А) <(В)

10

00А3

А8

00А4

00

MOV

C, A

00A5

4F

Обмен содержимого между аккумулятором и регистром B через регистр С

5

MOV

A, B

00A6

7B

5

MOV

B, C

00A7

41

5

M1:

00A8

Пример 1.1. Организация временной задержки длительностью 100мкс.

Программу, обеспечивающую такую задержку, оформим в виде подпрограммы, которую назовем DEL. Это символическое имя будем использовать в виде метки, указывающей начальный адрес подпрограммы. Схема алгоритма формирования временной задержки изображена на рис. 1.9, а программа помещена в табл. 1.6. Начальный адрес подпрограммы записан во втором и третьем байтах команды, с помощью которой происходит обращение к подпрограмме DEL. При выполнении подпрограммы в регистр В должно быть записано число циклов Х, которое вначале неизвестно. Содержимое регистра В уменьшается на единицу до тех пор, пока не станет равным нулю. При этом признак Z устанавливается в единичное состояние (Z=1) и происходит выход из цикла.

Подпрограмма неработоспособна до тех пор, пока не будет задано значение X.

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

Команды MVI B, X, CALL DEL и RET используется один раз. Если частота задающего генератора МП составляет 2МГц, каждый такт длится 0.5мкс. В этом случае время выполнения перечисленных команд составит 17мкс.

Для получения задержки времени, равной 100мкс, циклический участок программы должен выполняться столько раз, чтобы этот процесс завершился за 100-17=83мкс. Время выполнения команд DCR B и JNZ M1 составляет 2. 5+5=7. 5 мкс. Задержку 83мкс нельзя получить многократным повторением команд цикла, поскольку 83 не делится на 7.5 без остатка.

Если повторить циклический участок программы X = 10 раз, то получим временную задержку 75 мкс. Оставшиеся 835=8 мкс можно скомпенсировать введением подряд четырех команд NOP (К=4). Значение X=0A, соответствующее требуемому числу циклов, заносится во второй байт команды MVI B, X.

Таблица 1.6 – Программа формирования временной задержки длительностью 100мкс

Метка

Мнемокод, операнд

Адрес

Н-код

Комментарий

CALL DEL

01C0

CD

Вызов подпрограммы формирования временной задержки

17

01С1

09

01С2

0A

. . .

. . . . . . . . . . . .

. . . .

. . . .

. . . . . . . . . . . . . . .

. . .

DEL:

MVI B, X

0A09

06

Запись в регистр В числа X=0A

7

0A0A

0A

M1:

DCR B

0A0B

05

Уменьшение содержимого регистра В на 1

5

JNZ M1

0A0C

С2

Повторить цикл, если результат не равен нулю

105

0A0D

0B

0A0E

0A

NOP

0A0F

00

Пустые операции

4

NOP

0A10

00

4

NOP

0A11

00

4

NOP

0A12

00

4

RET

0A13

C9

Возврат к основной программе

10

7 Программирование на языке ассемблера

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

Командная строка при этом разделяется на четыре поля:

поле «МЕТКА»

поле «КОД ОПЕРАЦИИ»

поле «ОПЕРАНДЫ»

Поле «КОММЕНТАРИИ»

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

Метка. В поле метки размещается символическое имя ячейки памяти, в которой хранится отмеченная команда или операнд. Метка представляет собой буквенно-цифровую комбинацию, начинающуюся с буквы. Используются только буквы латинского алфавита. Некоторые ассемблеры допускают использование в метках символа подчеркивания (_). Длина метки не должна превышать шесть символов. Метка завершается двоеточием (:).

Псевдокоманды ассемблера не преобразуются в двоичные коды, а потому не могут иметь меток. Исключение составляют псевдокоманды резервирования памяти и определения данных (DS, DB, DW). У псевдокоманд, осуществляющих определение символических имен, в поле метки записывается определяемое символическое имя, после которого двоеточие не ставится.

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

Код операция. В этом поле записывается мнемоническое обозначение команды МП или МК или псевдокоманды ассемблера, которое является сокращением (аббревиатурой) полного английского наименования выполняемого действия. Например: МОV – movе – переместить, JМР – jump – перейти, DВ – define bуtе – определить байт.

Для всех МП и МК используется строго определенный и ограниченный набор мнемонических кодов. Любой другой набор символов, размещенный в поле операции, воспринимается ассемблером как ошибочный.

Операнды. В этом поле определяются операнды (или операнд), участвующие в операции. Команды ассемблера могут быть без-, одно- или двухоперандными. Операнды разделяются запятой (,).

Операнд может быть задан непосредственно или в виде его адреса (прямого или косвенного). Непосредственный операнд представляется числом. В некоторых МП он задается в команде.

ПРИМЕР:

MVIA,15H

LXIH,23BEH

ACI25

В МК семейства MCS 51 записывается с обязательным указанием префикса непосредственного операнда (#) (MOV A,#25 или с символическим именем: ADDC A,#OPER2). Адрес операнда может быть задан мнемоническим обозначением регистра (INC Rn; MOV A,D), символическим именем (MOV A,MEMORY). Указателем на косвенную адресацию может служить для одних МП буква М (MOV M,A; ADD M), для других префикс @ (MOV @Ri,2FH). Операндом может являться прямой адрес ячейки памяти (JMP 8324H; CALL 115BH; JNC 1F5AH), порта ввода/вывода (IN F9H, OUT BAH) или их символические имена (JMP LABEL; MOV A,P3).

Используемые в качестве операндов символические имена и метки должны быть определены, а числа представлены с указанием системы счисления, для чего используется суффикс (буква, стоящая после числа): В – для двоичной, Q – для восьмеричной, D – для десятичной и Н – для шестнадцатеричной. Число без суффикса по умолчанию считается десятичным.

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

Выражение представляет собой совокупность символических имен и чисел, связанных операторами ассемблера. Операторы ассемблера обеспечивают выполнение арифметических ("+" – сложение, "-" – вычитание,* – умножение, / – целое деление) и логических (ОR – ИЛИ, АND – И, ХОR – исключающее ИЛИ) операций в формате 2-байтных слов.

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

Псевдокоманды ассемблера. Ассемблирующая программа транслирует исходную программу в объектные коды. Хотя транслирующая программа берет на себя многие из рутинных задач программиста, таких как присвоение действительных адресов, преобразование чисел, присвоение действительных значений символьным переменным и т.п., программист все же должен указать ей некоторые параметры: начальный адрес прикладной программы, конец ассемблируемой программы, форматы данных и т.п. Всю эту информацию программист вставляет в исходный текст своей прикладной программы в виде псевдокоманд (директив) ассемблера, которые только управляют процессом трансляции и не преобразуются в коды объектной программы.

Псевдокоманда ORG 10Н задает ассемблеру адрес ячейки памяти (10Н), в которой должна быть расположена следующая за ней команда прикладной программы.

Псевдокомандой EQU можно любому символическому имени, используемому в программе, поставить в соответствие определенный операнд. Например, запись

PETEQU13

приводит к тому, что в процессе ассемблирования всюду, где встретится символическое имя PET, оно будет заменено числом 13.

Символические имена операндов, переопределяемых в процессе исполнения программы, определяются псевдокомандой SET:

ALFASET3

. . .

. . .

ALFASETALFA+1

Ассемблер MCS-51 позволяет определить символическое имя как адрес внутренних (псевдокоманда DATA), внешних (XDATA) данных или адрес бита (псевдокоманда BIT). Например, директива

ERROR_FLAGBIT25H.3

определяет символическое имя ERROR_FLAG как третий бит ячейки ОЗУ с адресом 25Н.

Псевдокоманда DB обеспечивает занесение в ПП константы, представляющей собой байт.

Псевдокомандой END программист дает ассемблеру указание об окончании трансляции.

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

В соответствии с форматом команд для представления их объектных кодов отводятся одна, две или три ячейки памяти программ.

Пример программы на языке ассемблера:

ORG801FH;Присвоение начального адреса для

;подпрограммы DELET (задержка)

COUNTEQUXXXXH;Присвоение символического имени

;значению XXXXH (количество циклов

;в подпрограмме для формирования

;задержки)

PUSHPSW;11 тактов. Сохранение в стеке

;программно доступные регистры

; (A, F, H, L)

PUSHH;11 тактов

LXIH,COUNT;10 т. Установка счетчика циклов в

;регистровой паре (H)(L)

CICL:DCXH;5т.Уменьшение счетчика циклов на 1

MOVA,L;4т. и проверка

ORAH;4т. на “нуль”

JNZCIC1;10т. If XXXX0 GOTO CICL

POPH;10т. Восстановление программно-

POPPSW;10т. доступных регистров перед

; выходом из подпрограммы

RET;10т. Выход

8 Ввод, редактирование, трансляция и отладка прикладных программ

Написанием текста программы заканчивается первый этап разработки прикладного программного обеспечения – "от постановки задачи к исходной программе" и начинается следующий – "от исходной программы к объектному модулю".

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

В минимальный состав программного обеспечения кросс-средств входят:

системная программа для ввода исходного текста прикладной программы, его редактирования и записи на внешней носитель информации – так называемый редактор текстов;

программа-транслятор, обеспечивающая преобразование исходного текста прикладной программы в объектный модуль (ASM).

Более мощные кросс-средства предполагают наличие редактора внешних связей (LINK), позволяющего включать в программу модули, разработанные независимо друг от друга, и программу, обеспечивающую настройку перемещаемых программных модулей на абсолютные адреса (LOCATE).

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

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

ASSEMBLY COMPLETE NO ERRORS

_

или сообщение

ASSEMBLY COMPLETE NNN ERRORS

_

с указанием числа ошибок (NNN) и номера последней ошибочной строки (LLL) при наличии синтаксических ошибок.

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

Если исходный текст прикладной программы не имел внешних ссылок и содержал директиву ORG, то после успешного завершения трансляции этап разработки программного обеспечения "от исходной программы к объектному модулю" можно считать законченным.

Литература

  1. Тавернье К. PIC-микроконтроллеры. Практика применения: Пер. с фр. -М: ДМКПресс, 2008. - 272 с.: ил. (Серия «Справочник»).

  2. Борзенко А.Е. IBM PC: устройство, ремонт, модернизация. – 2-е изд. перераб. и доп. – М.: ТОО фирма «Компьютер Пресс», 2006. – 344с.: ил.

  3. Цифровые интегральные микросхемы: Справ./М. И. Богданович, И.Н. Грель, В.А. Прохоренко, В.В. Шалимо.–Мн.: Беларусь, 2001. – 493 с.: ил.

  4. ДСТУ 3008-95. Документация. Отчеты в сфере науки и техники. Структура и правила оформления.

  5. Охрана труда в вычислительных центрах. Ю.Г. Собаров и др. – М.: Машиностроение, 2000. – 192с.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5224
Авторов
на СтудИзбе
427
Средний доход
с одного платного файла
Обучение Подробнее