Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Программирование микропроцессоров

Покупка
Артикул: 753001.01.99
Доступ онлайн
2 000 ₽
В корзину
Лабораторный практикум содержит описание архитектуры микропроцессора Intel 8085, лабораторные работы с использованием среды разработки программ AVSYM для процессорного комплекта Intel 8085 по управлению внешними устройствами от параллельного порта персонального компьютера, пояснения к разработке программ и задания для самостоятельной работы, описание этапов технологии разработки и отладки программ, основные приемы работы с AVSYM. Практикум предназначен для студентов, изучающих курс «Программирование микропроцессоров» и «Применение микропроцессоров».
Программирование микропроцессоров : лабораторный практикум / А. Н. Душин, Н. Н. Горюнов, Ф. И. Маняхин, А. А. Травин. - Москва : ИД МИСиС, 2003. - 57 с. - Текст : электронный. - URL: https://znanium.com/catalog/product/1232281 (дата обращения: 27.04.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
УДК 004.318:621.382 
П78 

Р е ц е н з е н т 
кандидат технических наук, доцент ^.Я Широков 

Программирование микропроцессоров: Лаб. практикум/ 
П78 А.Н. Душин, Н.Н. Горюнов, Ф.И. Маняхин, А.А. Травин. -М.: 
МИСиС,2003.-57с. 

Лабораторный практикум содержит описание архитектуры микропроцессора Intel 8085, лабораторные работы с использованием среды разработки 
программ AVSYM для процессорного комплекта Intel 8085 по управлению 
внешними устройствами от параллельного порта персонального компьютера, 
пояснения к разработке программ и задания для самостоятельной работы, 
описание этапов технологии разработки и отладки программ, основные 
приемы работы с AVSYM. 

Практикум предназначен для студентов, изучающих курс «Программирование микропроцессоров» и «Применение микропроцессоров». 

© Московский государственный институт 
стали и сплавов (Технологический 
университет) (МИСиС), 2003 

ОГЛАВЛЕНИЕ 

Введение 
4 

Требования к подготовке выполнения лабораторных работ 
4 

Краткие теоретические сведения по микропроцессору Intel 8085....5 

Лабораторнаяработа!. Эмулятор AVSYM 
10 

Лабораторная работа 2. Группы команд пересылок 
15 

Лабораторная работа 3. Арифметические и логические команды. 

Флаги 
20 

Лабораторная работа 4. Команды передачи управления по условию. 

Стек. Подпрограммы 
25 

Лабораторная работа 5. Порты ввода-вывода 
29 

Лабораторная работа 6. Программирование параллельного порта 
персонального компьютера на языке BASIC 
(интерфейс Centronics) 
33 

Библиографический список 
45 

Приложение. Краткая инструкция по использованию языка QBASIC 
46 

3 

Введение 

Настоящий практикум предназначен для студентов, изучающих курс "Программирование микропроцессоров" и "Применение 
микропроцессоров". Работы выполняются на ЭВМ IBM с пакетом 
программ, включающим ассемблер, линковщик и эмулятор микропроцессора или микропроцессорного комплекта. Студенты обучаются основам программирования и отладки программных модулей, 
изучают архитектуру микропроцессорных средств. 

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

Лабораторные работы выполняются на базе IBM PC с использованием эмулятора AVSYM процессора I 8085 (или I 8251) в операционной системе DOS, макетов внешних устройств соединенных с параллельным портом, позволяющих изучать возможности управления ими 
через параллельный порт с использованием языка Basic. 

Требования к подготовке выполнения лабораторных работ 

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

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

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

. Для лабораторных работ 1-5 выполняется компиляция программы с использованием программ ассемблера и линковщика, загружает программа в эмулятор, после чего реализуется программа в автоматическом или пошаговом режиме. 

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

4 

Краткие теоретические сведения по микропроцессору Intel 8085 

1. Введение. Микропроцессор 8085 фирмы Intel 
На рис. 1 представлена упрощенная блок-схема микропроцессора 8085. Аккумулятор (А) соединен с шиной данных и арифметико-логическим устройством (ALU). ALU выполняет все арифметические и логические операции. 

Рис. 1. Упрощенная блок-схема микропроцессора 8085 

Вспомогательный регистр (Т) передает на второй вход ALU 
данные второго операнда, если преобразование выполняется с двумя 
операндами (например, сложение двух чисел). Этот регистр недоступен программисту. Регистр флагов представляет собой набор триггеров, которые фиксируют характеристики результата последней операции, выполненной ALU. Например, флаг нуля устанавливается, если результатом операции является нуль. Регистр команд (KR), дешифратор команд (КОС), счетчик команд (PC) и схема управления и 
синхронизации (CSU) используются для выборки команд из памяти и 
управления их выполнением. 

Предположим, например, что команда, которую нужно выполнить, находится в ячейке с адресом ЮОН. Прежде всего, необходимо прочитать из памяти код операции, т.е. произвести выборку 
команды. Например, чтобы выполнить команду MVI А, DATA8, устройство управления и синхронизации, прежде всего, считывает код 
операции ЗЕ. Микропроцессор запоминает код операции в регистре 
команд и затем увеличивает адрес в счетчике команд. Дешифратор 
команд определяет, что вслед за этим кодом операции находится 
байт с данными, поэтому содержимое ячейки, имеющей адрес, указанный в PC (101Н), считывается в аккумулятор. 

5 

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

Микропрограмма теперь указывает схеме управления, что 
команда выполнена. Содержимое PC увеличивается на единицу, и в 
KR считывается следующий байт программы (следующий код операции). Затем начинается выполнение этой команды. Такая повторяющаяся последовательность действий, выполняемых микропроцессором, называется циклом выборки-исполнения. 

Микропроцессор 8085 может выполнять операции четырех 
основных типов: 

- 
считывание данных из памяти или с входного порта; 

- 
запись данных в память или на выходной порт; 

- 
внутренние операции микропроцессора; 

- 
передачу управления. 

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

Микропроцессор, модули памяти, устройства ввода-вывода 
обмениваются информацией по шине данных (мультиплексная шина 
адреса/данных ADO - AD7) под управлением сигналов от устройства 
управления и синхронизации. Эта группа сигналов формирует шину 
управления. 

2. Регистры общего назначения 
Одна из основных составных частей микропроцессора 8085 регистры общего назначения (РОН). Имеется шесть таких восьмиразрядных регистров, которые могут использоваться для временного 
хранения данных. На рис. 1. эти регистры обозначены буквами В, С, 
D, Е, Н и L. На рисунке изображен также указатель стека (SP). 

Регистры общего назначения полезны в случаях, когда программа работает с несколькими различными переменными. Каждый 
регистр в этом случае может иметь свое конкретное назначение, и до 
тех пор, пока достаточно шести регистров, нет необходимости использовать для запоминания данных оперативного запоминающего 
устройства (ОЗУ). 

6 

3. Краткая характеристика системы команд микропроцессора 
8085 

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

Команды манипулирования данными MVI, INR, СМА, ANI. 
Одна из основных операций микропроцессора - загрузка 
данных в аккумулятор. Эта операция выполняется по команде 
MVI А [данное]. 

С помощью команд: INR А (увеличить содержимое аккумулятора на единицу), СМА (преобразовать код в обратный) и ANI [данное]. можно выполнять все основные арифметические и логические 
операции. 

Команды сравнения и передачи управления CPI, JMP, JZ. Для 
сравнения числа с содержимым аккумулятора, используется команда 
CPI [данное]. Она соответствующим образом устанавливает флаги 
процессора, например флаг нуля, если результат операции равен нулю. Команда JZ [адрес] (переход по нулю) проверяет этот флаг и при 
его наличии инициирует переход к команде, находящейся в ячейке 
[адрес]. Имеется команда безусловного перехода JMP [адрес], которая вызывает передачу управления независимо от состояния флагов. 

Команды обращения к памяти и ввода-вывода LDA, STA. Команды LDA [адрес] и STA [адрес] (загрузить в аккумулятор и запомнить его содержимое) выполняют обмен данными между регистром - аккумулятором и памятью. 

Команды обращения к подпрограммам CALL, RET. Для организации использования подпрограмм необходимы команды CALL 
[адрес] служит для перехода на подпрограмму, и команда RET обеспечивает переход на команду, непосредственно следующую за последней выполненной командой CALL. 

Команды управления прерываниями SIM, El, DI. Управление 
прерываниями осуществляют три команды. 

Команда SIM (установить маску прерываний) используется для 
того, чтобы определить разрешенные и запрещенные прерывания. 

Команда EI (разрешить прерывания) дает разрешение на выполнение выбранных прерываний. 

Команда DI (запретить прерывания) запрещает всякие прерывания. 

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

7 

альтернатив. Здесь прослеживается прямая аналогия с разработкой 
электронной схемы, так как можно реализовать любую логическую 
схему только на элементах И - НЕ, однако система существенно упрощается при использовании других устройств, таких, как схемы 
ИЛИ - НЕ, триггеры, мультиплексоры, счетчики и сумматоры. 

Для организации использования РОН необходимо несколько 
дополнительных команд. Команда MVI, может работать с любым регистром. Например, команда MVI D [данное] вызывает загрузку данного в регистр D 

Команда INR также распространяется на любой регистр; 
общий ее формат-INR г. Например, команда INR Н увеличивает 
на 1 содержимое регистра И. 

Команда MOV г1, г2. данное из регистра г2 переносит в регистр г1. Например, команда MOV А, Н вызывает перенос содержимого регистра И в аккумулятор, но содержимое самого регистра Н 
при этом не изменяется. Заметим, что регистр-источник и регистрприемник записываются в порядке, обратном естественному. Более 
подробно команды микропроцессора будут рассмотрены в описании 
лабораторных работ. 

4. Синтаксис языка и принцип работы ассемблера. 
Программа на языке ассемблера состоит из строк - операторов. Оператор может содержать до четырех полей: метки, кода операции, операндов и комментария. 

[метка:] 
команда [операнд[,операнд}] [; комментарий] 

Метка (если имеется), команда и операнд (если имеется) отделяются по крайней мере одним пробелом или символом табуляции. 
Примеры кодирования: 

Метка 
Команда 
Операнд 
комментарий 

COUNT: 
DB 
1 
; определить байт с именем COUNT и значением 1 
MVI А,0 ; записать число О в аккумулятор. 

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

Ассемблер обрабатывает строки программы и преобразует ее 
в так называемый объектный код. Формат команды ассемблирования 
AVMAC85 program.asm. Файл после ассемблирования имеет расши
8 

рение obj. Если ассемблер выдает сообщение об ошибках - в текстовом редакторе вносятся исправления. 

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

Программа на машинном языке создается из объектного кода 
с помощью программы-линковщика. Формат команды линковки 
AVLINK filename = program.obj-sy (filename - имя файла в шестнадцатеричном формате Intel- расширение hex). 

9 

Лабораторная работа 1 

Эмулятор AVSYM 

1.1. Цель работы 

Ознакомление и приобретение навыков работы со средствами 
разработки программ для микроконтроллеров и микроЭВМ на примере программного комплекса AVSYM. 

1.2. Введение 

Программа AVSYM компании AVOCET SYSTEMS INC 
представляет собой комплект кросс-средств (программы, выполняемые в среде другой микропроцессорной системы) для создания и отладки программ устройств на различных типах микропроцессоров 
фирм INTEL, MOTOROLA, ZILOG. В данной работе рассматривается комплект программ для систем на базе микропроцессора I 8085. 
Поддерживается эмуляция БИС I 8155 и I 8355 (порты ввода-вывода 
и таймер-счетчик). Окно симулятора-отладчика имеет следующий 
вид: 

8085 
AVSIM 8085 Simulator/Debugger 
V1.31 

CPU REGISTERS FLAGS SCL SPD DSP SKP CURSOR 

С Accumulator 
Z P S AC OFF HI ON OFF MENU 

0 01011111:5F:_ 
0 00 0 
Cycles: 

addr 
data 
PINS 

PC:0110 it DB 09 B8 CA 09 01 47 D3 
Intr Bus:00 

LABEL 

MAIN 

0103H 

0104H 

0106H 

0107H 

lntr:0 

NXT 

Trap:0 

OlOBH 

OlOCH 

OlOFH 

OllOH 

0112H 

0115H 

OPERATION 

LXI 

XRA 

OUT 

DCR 

OUT 

IN 

CMP 

JZ 

SP,$ 

A 

DB8355 

A 

DA8355 

PB8355 

В 

NXT 

MOV B,A 

OUT 

JMP 

no 

PA8355 

NXT 

memory 

SP:0100I00 00 00 00 00 00 00 31 
Rim:0000111 

00 01 AF D3 OB 3D D3 OA 
R7.5:0 

BC:5F00 it FF FF FF FF FF FF FF FF °°°°°°°° 
R6.5:0 

DE:0000 it C3 00 01 FF FF FF FF FF Г°_°°°°° 
R5.5:0 

HL:0000 it C3 00 01 FF FF FF FF FF Г°_°°°°° 
Sid:0 

8355 PORTS:A 00000000 
В 11111111 
Sod:0 

at 1:8 39:9:00111001 С8:И: 11001 00 0 

10 

0116Н 

0117Н 

0118Н 

0119Н 

Oil АН 

OllBH 

OUCH 

OllDH 

OllEH 

OllFH 

no 

no 

no 

no 

no 

no 

no 

no 

no 

no 

memory 

memory 

memory 

memory 

memory 

memory 

memory 

memory 

memory 

memory 

Memory Space 

0000 C3 00 01 FF FF FF FF FF Г°_°°°°° 
I/O Address 

0008 FF FF FF FF FF FF FF FF °°°°°°°° 
1:0 

0010 FF FF FF FF FF FF FF FF °°°°°°°° 
00:°:00000000 

0018FFFFFFFFFFFFFFFF°°°°°°°° 
1:1 

Memory Space 
00:°:00000000 

0020 FF FF FF FF FF FF FF FF °°°°°°°° 
1:2 

0028 FF FF FF FF FF FF FF FF °°°°°°°° 
00:°:00000000 

0030 FF FF FF FF FF FF FF FF °°°°°°°° 
1:3 

0038 FF FF FF FF FF FF FF FF °°°°°°°° 
00:°:00000000 

>COMMAND: 

Dump Expression command File Help lO Load -space- ESC to screen 

В нижней части экрана находится строка команд. Команду 
можно выбрать клавишами ^ и ^ , или "быстрыми" клавишами 
(прописной символ в названии команды). При указании команды выводятся ее модификации или указания. Например, при выборе команды Load, будут предложены варианты: Avoset, Data, Program, 
Symbol-table. При перемещении клавишей ^ после команды Load 
появится следующая строка команд: 

Memory Patch Quit Reset Set setUp View eXecute -space—ESC to screen 

В процессе выполнения лабораторных работ мы будем в основном использовать команды 

- Load (Avoset) - загрузить коды программы в ПЕХ формате 
Intel (файл с расширением ПЕХ). 

-Dump - установить начальные адреса в двух областях 
Memory Space. В этих областях можно просматривать шестнадцатеричные значения содержимого ячеек памяти. 

-Set - команда позволяет установить точки прерывания, 
конфигурацию системы - памяти, портов. 

-Quit-завершение работы. 
- Reset - сброс CPU (установка программного счетчика в 0). 
При выполнении программы можно изменять код (мнемонику) команды или значение операнда, используя команду Patch. 

Существует возможность подключения к портам вводавывода файлов ввода-вывода (команда Ю). 

11 

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

Команда eXecute позволяет ввести мнемонику команды и 
выполнить ее. 

Команда Help вызывает одно из трех окон помощи (текст на 
английском языке). 

В столбце LABEL находятся адреса и метки команд. Следующий столбец (operation) содержит мнемонику команд программы. 

В области окна CPU REGISTERS выводится содержание регистров микропроцессора А, В и С, D и Е, Н и L а также программного счетчика (PC) и указателя стека (SP). Код текущей команды и значение вершины стека выделяются подсветкой в полях, рядом с значением счетчика команд PC и адреса указателя стека SP. Состояние флагов указывается под их обозначением (С, Z, Р, S, АС - соответственно 
флаги переноса, нуля, паритета, знака и дополнительного переноса). 

Если выбрана конфигурация с периферийными БИС, выделяются области для портов (PORTS) с указанием их адресов, режимов работы (ввод-вывод) и значений бит. 

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

1.3. Методические указания по проведению эксперимента 

Загрузка эмулятора выполняется командой AVSYM.bat. В 
меню предлагается выбор конфигурации микроЭВМ - только процессор (А), процессор и программируемый таймер-счетчик 8155 (В), 
процессор и порты ввода-вывода 8355(C), процессор, таймерсчетчик и порты ввода-вывода (D). 

Следует выбрать команду конфигурацию D, в строке команд- LOAD, формат файла AVSYM и в строке приглашения набрать имя файла demol; вызвать команду command File, LOAD, ввести имя: demo.cmd командного файла. 

Клавиша F1 запускает программу на выполнение и останавливает программу, клавиша F10 - пошаговое выполнение, F9 - шаг 
назад. При нажатии клавиши ESC курсор из области задания команды перемещается на рабочее поле окна. При этом можно менять содержимое всех регистров, флагов, ячеек памяти. Повторное нажатие 
клавиши ESC возвращает курсор в поле команд. Клавиши F2 и F4 
перемещают по полю LABEL указатель-стрелку. При нажатии клавиши F3 для команды, на которую указывает стрелка, устанавливает
12 

Доступ онлайн
2 000 ₽
В корзину