МикроЭВМ представляет собой законченное устройство, имеющее в своем составе арифметическо-логический блок, оперативную память и постоянное запоминающее устройство (ПЗУ).
Имеется 3 порта ввода/вывода, которые могут работать на ввод и вывод информации. Установка портов на ввод/вывод информации производится программно. Емкость оперативной памяти (внутренней) – 64 байта, может быть наращена до 1 кБайта. ПЗУ (внутреннее) содержит 1 кБ памяти, ее емкость может быть увеличена до 4 кБ с помощью внешних ПЗУ. В данном процессоре имеется два банка регистров общего назначения. Каждый из этих банков содержит восемь 8-разрядных регистров общего назначения (РОН). Обращение к одному или другому банку производится программно. Тактовая частота работы микроЭВМ – от 6 до 8 МГц. В последних модификациях К 1816 ВЕ 51 тактовая частота увеличена до 10 МГц. Данная микроЭВМ используется для реализации простых устройств на цифровой элементной базе. Помимо всего вышеперечисленного, в микроЭВМ имеется вход прерывания решения поставленной задачи (INT) – прерывание по переполнению счетчика событий. Схема микроЭВМ показана на рис. 3.1
Рисунок 3.1 – Структура микроЭВМ К 1816 ВЕ 48.
РПП – резидентная память программ:
- внутренняя РПП (ПЗУ): емкость 8 р.´1024 – 1 кБ;
- с внешним устройством: емкость 8 р.´4096 – 4 кБ;
РПП электрически программируется заказчиком. В случае необходимости, информация из РПП может быть стерта специальной ультрафиолетовой лампой.
СК – счетчик команд, 12-разрядный. 11 разрядов используются для адресации нулевого или первого банка РПП. 12-ый разряд определяет № банка (если 12-ый разряд равен 0 – 0 банк, если равен 1 – 1-ый банк). Для обращения к 0 –му банку данных нужно выполнить команду SEL МВ0, для обращения к 1-му банку – SEL МВ1.
РПД – резидентная память данных. Имеет емкость 8 р.´64 (64 байта): 16 байт – регистры общего назначения; 24 байта – стек; 24 байта – оперативная память. РПД моет быть увеличена за счет подключения внешних устройств до 1 кБ, при этом адресация организуется по страницам: в каждой странице 256 байт.
РА – регистр адреса 10 –разрядный. 10-ый разряд определяет № банка данных (0-ой или 1-ый банк РПД).
АЛУ – арифметическо-логическое устройство. Позволяет производить 4 вида операций: арифметическое сложение, логическое сложение, сложение по модулю 2, логическое умножение).
Т1, Т2 – программно недоступные регистры, которые содержат два операнда, участвующих в работе АЛУ.
РП – регистр признаков.
Р1 – двунаправленный порт ввода/ вывода. Используется для приращения емкости РПП и РПД.
Р2 – двунаправленный порт ввода / вывода. Используется для ввода / вывода информации.
ВШД – внутренняя шина данных, 8-разрядная.
BUS – порт, используется для ввода / вывода информации, является продолжением ВШД (внешней шины данных).
Принцип действия.
В ПЗУ хранится рабочая программа. Рабочий цикл начинается с поступления сигнала «RESET», который переводит все устройство в исходное состояние. СК выбирает первую команду из РПП. Эта команда выставляется на ВШД, анализируется и выполняется.
Если программа последовательная, то СК увеличивает свое состояние на 1, выбирается вторая команда, процесс повторяется.
Если программа ветвящаяся, то алгоритм следующий: содержимое счетчика команд пересылается по ВШД в стек РПД, а в СК загружается адрес, на который нужно перейти программе при выполнении условия. После выполнения данного условия из стека изымается прежнее содержимое счетчика команд и вновь возвращается в СК.
МикроЭВМ имеет два уровня прерывания:
1) Самый старший – вход прерывания INT. При поступлении на этот вход сигнала в виде кратковременного импульса, основная программа блокируется и выполняется программа прерывания.
2) Прерывание по переполнению счетчика событий.
Программно прерывание по входу INT прерывание по переполнению счетчика событий может быть разрешено либо запрещено.
Структура РПП.
0 – 2 ячейки: используются для безусловного перехода при обнулении устройства по входу «Reset». В этом случае в этих ячейках формируется команда безусловного перехода в начало программы.
3 – 5 ячейки: формируется команда безусловного перехода при поступлении сигнала по входу INT.
6 – 8 ячейки: формируется сигнал прерывания по входу INT счетчика событий.
РПП начинается с 9-ой ячейки. Если мы работаем с внутренним ПЗУ, - мы работаем с 0-вым банком данных.
Выбор банка данных осуществляется командами:
SEL MB0
SEL MB1
Структура РПД
РПД может использовать внутреннюю оперативную память (емкость 64 байта) и внешнюю (до 1 кБ).
В РПД имеется, как и в РПП, два банка данных.
Выбор 0-го банка данных: SEL RB 0.
Выбор 1-го банка данных: SEL RB 1.
При этом под банком данных подразумевается одна из восьми областей памяти, в которой находятся регистры общего назначения.
Если при составлении программы требуется использовать другой банк, то необходимо сформировать команду выбора другого банка данных. При возврате требуется сформировать команду возврата банка данных. При обнулении всегда выбирается 0-вой банк данных.
ОЗУ, в которой хранятся результаты промежуточных вычислений, содержит 32 байта, которые могут быть увеличены до 1 кБ, по 256 байт в каждой странице:
Форматы команд
В 1816 ВЕ – 48 возможны два вида команд:
1) Однобайтовые (примерно 80% всех команд)
MOV R0, R7
AßA+R2 - ADD A, R2
2) Двухбайтовые (второй байт является операндом, над которым производятся те или иные действия)
R1’ß05 - MVI R1’, #5
AßA+25 - ADD A, #25
Виды адресации
Существует три основных вида адресации: прямая, непосредственна и косвенная.
При прямой адресации в ходе операции указываются все значения регистров, которые участвуют в тех или иных вычислениях.
При непосредственной адресации формируется двухбайтовая команда, во втором байте которой следует тот операнд, над которым требуется произвести действие.
Косвенная адресация используется для обращения к ячейкам РПД. Для обращения к ячейкам оперативной памяти в нулевом банке данных используются регистры R0 и R1, а в первом – R0’ и R1’.
((R0))ßA - MOV CR0, A
Виды выполняемых команд
1) Команды пересылки и непосредственной загрузки.
Команды непосредственной загрузки:
Для 580 серии: Aß05 - MVI A, 05
Для 1816: Aß05 - MOV A, #05
Пример: MOV R7’, #C5 – 1-я команда для операции непосредственной загрузки.
Операции пересылки производятся внутри выбранного банка данных:
MOV A, R0
SEL RB1
MOV R0’, R1’
При формировании адреса ячеек оперативной памяти, используются регистры R0 и R1 в 0-вом банке данных, либо R0’ и R1’ в 1-ом банке данных.
R5ßM – обязательно использовать R0 или R1
MOV R5, C(R0)
MOV R5, C(R1)
2) Арифметические и логические операции
В данном процессоре возможна организация как операций между аккумулятором и регистрами, включая ОЗУ, так и между аккумулятором и вторым байтом, следующим в этой же команде.
Арифметические операции внутри 0-го банка:
AßA+R0 - ADD A, R0
AßA+R7 - ADD A, R7
Операции внутри 1-го банка:
AßA+R0’ - ADD A, R0’
AßA+R7’ - ADD A, R7’
AßA+#05 - ADD A, #05
Здесь: # - арифметическое сложение с каким-то байтом;
Ú - логическое сложение;
", Å - сложение по модулю два;
Ù - логическое умножение.
AßAÚR5’ - ORL A, R5’
AßAÚ#05 - ORL A, #05
AßA"R5’ - XRL A, R5’
AßAÚR1 - AND A, R1
3) Операции циклического сдвига.
Данные операции осуществляются, как и в 580-й серии, только в аккумуляторе.
Возможны 4 вида циклических сдвигов:
I. Циклический сдвиг вправо.
II. Циклический сдвиг вправо с переносом
III. Циклический сдвиг влево.
IV. Циклический сдвиг влево с переносом.
Данные операции аналогичны операциям в 580-й серии.
4) Операции условных и безусловных переходов.
a) Безусловные переходы:
Осуществляются командой JMP Mi – перейти на i-тую метку программы. Команда формируется в РПП и внутри рабочей программы при нарушении нумерации блоков алгоритма.
b) Условные переходы:
В отличие от 580-й серии, в 1816 имеются только два перехода по состоянию регистров признаков: ТС и ТZ:
ТZ=0 JZ Mi
ТZ=1 JNZ Mi
TC=0 JC Mi
TC=1 JNC Mi
В серии 1816 водятся несколько новых условий для формирования операций условных переходов:
· Условный переход по сигналу прерывания INT
JT 0 – если сигнал прерывания равен нулю;
JT 1 – если сигнал прерывания равен 1.
· Условный переход по состоянию счетчика событий.
JF 0 – если состояние счетчика событий равно 0,
JF 1 – если состояние счетчика событий равно1.
5) Отрицательное о положительное приращение регистра.
Данные команды позволяют увеличить или уменьшить на единицу содержимое любого регистра.
6) Прочие операции
Команда сброса (Reset) RST.
Команда разрешения прерывания по входу INT.
Команда запрета прерывания по входу INT.
Разрешение / запрет прерывания по входу счетчика событий INT GNT.