
- •Содержание
- •Введение
- •Теоретическая часть Базовая микропроцессорная система
- •Типичные 8-разрядные микропроцессоры
- •Типичные интерфейсные бис мп систем
- •Ассемблеры
- •Экспериментальная часть Описание программы
- •Последовательность выполнения программы
- •Программа на языке Ассемблера asm 8085
- •Приложение
- •Список литературы
Последовательность выполнения программы
Д
ля
того, чтобы высвечивались символы, нужно
в порт А (11 Н) отправить необходимую
комбинацию из единиц и нулей в виде кода
в шестнадцатеричной системе счисления,
который соответствует символу.
Например, для того, чтобы на светодиодном индикаторе загоралась
цифра 1 нужно отправить в порт А код соответствующий этому 0110 0000, т.е. загораются только светодиоды В и С. Переведя в шестнадцатеричную систему счисления, получим 60 Н.
Составим таблицу кодов в двоичной и шестнадцатеричной системах для данных символов:
-
Высвечиваемый
символ
Код в двоичной системе счисления
Код в шестнадцатеричной системе счисления
A B C D E F G H
5
1 0 1 1 0 1 1 0
B6 H
6
1 0 1 1 1 1 1 0
ВЕ H
7
1 1 1 0 0 0 0 0
E0 H
8
1 1 1 1 1 1 1 0
FE H
LXI SP, 0500 H / Заполняем адрес в регистре SP. С этого начинается программа.
MVI A, 01 H
OUT 10 H / Программируем порт А на вывод, порт С на ввод. Для этого в регистре команд на порте А должны быть 1, а на порте С – 0. Отправляем в регистр команд 10Н слово режима 01.
M1: IN 13 H / Проверяем состояние кнопки, считывая информацию с порта С (13 Н). Кнопка нормально замкнута, т.е. на входе мы будем иметь 1
АNI A, 02 H / Для этого информацию с порта С мы будем сравнивать с числом 02 Н (в двоичной системе – 00000010)
JNZ М1 / Если не ноль, то проверяем кнопку снова. И до тех пор, пока мы не получим 0 (т.е. не разомкнем кнопку), наша программа не будет работать.
MVI A, __ H / Загружаем в аккумулятор код соответствующий символам 5,6,7,8 (повторяем 4 раза)
OUT 11 H / отправляем этот код в порт А (11 Н). В результате эти символы будут высвечиваться на светодиодном индикаторе.
CALL TIME / Вызываем подпрограмму TIME.
TIME:
MVI A, 10 H
OUT 14 H / Код 10 – задаем младший байт таймера (14 H)
MVI A, 27 H
OUT 15 H / код 27 – старший байт таймера (15 Н). Эта подпрограмма задает время свечения каждого символа (1мс).
MVI A, C1 H
OUT 10 H / Код С1 отправляем в регистр команд, чтобы работал таймер.
RET
MVI A, 00 H / Чтобы погасить весь индикатор загружаем в аккумулятор код 00 (00000000).
OUT 11 H / Отправляем в порт А (11Н). В результате ни один из индикаторов гореть не будет.
Теперь мы можем составить цельную программу. Она будет выглядеть следующим образом:
Программа на языке Ассемблера asm 8085
LXI SP, 0500 H
MVI A, 01 Н
OUT 10 H
M1: IN 13 H
АNI A, 04 H
JNZ М1
M14: MVI A, B6 H
OUT 11 H
CALL TIME
EI
HLT
M11: MVI A, 00 H
OUT 11 H
NOP
MVI A, ВЕ H
OUT 11 H
CALL TIME
EI
HLT
M12: MVI A, 00 H
OUT 11 H
NOP
MVI A, E0 H
OUT 11 H
CALL TIME
EI
HLT
M13: MVI A, 00 H
OUT 11 H
NOP
MVI A, FE H
OUT 11 H
CALL TIME
EI
HLT
MVI A, 00 H
OUT 11 H
NOP
HLT
TIME: MVI A, 10 H
OUT 14 H
MVI A, 27 H
OUT 15 H
MVI A, C1 H
OUT 10 H
003C: JMP M10
M10: INR A
CPI 64 H
JNZ TIME
INR C
CPI 01 H
JZ M11
CPI 02 H
JZ M12
CPI 03 H
JZ M13
CPI 04 H
JZ M14
RET
Вывод
В результате проделанной курсовой работы я научился разрабатывать электрическую принципиальную схему и создавать программу функционирования на языке Ассемблера ASM 85. Система команд МП 8085 (как и большинства других МП) ограничена узким кругом простых команд. Машинный язык – это единственный язык, непосредственно воспринимаемый микропроцессором, но программирование на нем нелегко. Поэтому обычно программы пишутся на языке ассемблера, а затем транслируются на машинный язык специальной программой. Язык ассемблера – это не какой-то конкретный язык программирования, а целый класс языков. Каждый микропроцессор имеет собственный язык ассемблера. В нашем случае рассматривался язык ассемблера микропроцессора Intel 8085.