- •Раздел 3 основы микропроцессорной техники
- •3.1 Структуры вычислительных систем
- •3.2 Принципы организации однокристальных микропроцессоров и микропроцессорных систем
- •3.3 Программирование микропроцессоров
- •При использовании прямой адресации
- •При использовании косвенной адресации
- •На языке Ассемблер
- •Ассемблер, содержащая подпрограмму
- •3.4 Принципы организации однокристальных микроконтроллеров
- •3.5 Программирование микроконтроллеров
- •3.6 Организация памяти микропроцессорных систем
- •3.7 Интерфейсные бис/ сбис
- •Информации
3.1 Структуры вычислительных систем

Рисунок 3.1 – Классическая структура вычислительной системы

Рисунок 3.2 – Магистральная структура вычислительной системы

Рисунок 3.3 – Упрощенная структура блока микропрограммного управления
3.2 Принципы организации однокристальных микропроцессоров и микропроцессорных систем

Рисунок 3.4 – Типовая структурная схема МПС

Рисунок 3.5 – Мультиплексирование шины адреса/данных

Рисунок 3.6 – Структура простого микропроцессора

Рисунок 3.7 – Структурная схема блока дешифрации команд и формирования машинных циклов
|
КЦ |
|
b1 |
N – 2 | |||||||||||||||||
|
М1 |
М2 |
М3 |
|
b2 |
N – 1 | |||||||||||||||
|
Т1 |
Т2 |
Т3 |
Т4 |
Т1 |
Т2 |
Т3 |
Т1 |
Т2 |
Т3 |
|
b3 |
N | ||||||||
|
а) |
|
б) |
| |||||||||||||||||
Рисунок 3.8 – Циклы и такты МП (а) и пример размещения команды в памяти МПС(б)

Рисунок 3.9 – Временные диаграммы цикла чтения МП

Рисунок 3.10 – Аппаратная реализация пересылки байта вектора прерывания при выполнении операции рестраRST
|
N-1 0 |
0000 h |
|
RG 0 | |
|
RG 1 |
0001 h |
|
RG 2 |
0002 h |
|
. . . |
. . . |
|
RG M-2 |
FFFE h |
|
RG M-1 |
FFFF h |
Рисунок 3.11 – Условное представление линейной организации памяти для 16-разрядной шины адреса

б)
Рисунок 3.12 – Форматы команд простого микропроцессора
Таблица 3.1 – Система команд простого микропроцессора
|
Мнемокод |
Код |
Флажки |
Число |
Содержание | |||
|
байтов |
тактов |
циклов | |||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
|
Команды пересылки | |||||||
|
MOV r1, r2 |
01ПППИИИ |
– |
1 |
4 |
1 |
Пересылка из регистра r2 в регистр r1 | |
|
MOV M, r |
01110ИИИ |
– |
1 |
7 |
2 |
Пересылка из регистра в память | |
|
MOV r, M |
01ППП110 |
– |
1 |
7 |
2 |
Пересылка из памяти в регистр | |
|
MVI r, b2 |
00ППП110 |
– |
2 |
7 |
2 |
Пересылка непосредственных данных в регистр | |
|
Продолжение таблицы 3.1
| |||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
|
Команды пересылки | |||||||
|
MVI M, b2 |
36 |
– |
2 |
10 |
3 |
Пересылка непосредственных данных в память | |
|
LXI rp,b3b2 |
00ПР0001 |
– |
3 |
10 |
3 |
Загрузка непосредственных данных в пару регистров | |
|
LDA b3b2 |
3A |
– |
3 |
13 |
4 |
Прямая загрузка аккумулятора | |
|
STA b3b2 |
32 |
– |
3 |
13 |
4 |
Прямая запись аккумулятора в память | |
|
LHLD b3b2 |
2A |
– |
3 |
16 |
5 |
Прямая загрузка пары регистров H | |
|
SHLD b3b2 |
22 |
– |
3 |
16 |
5 |
Прямая загрузка пары регистров H в память | |
|
LDAX rp |
00ПР1010 |
– |
1 |
7 |
2 |
Косвенная загрузка аккумулятора посредством пары регистров B или D | |
|
STAX rp |
00ПР0010 |
– |
1 |
7 |
2 |
Косвенная запись аккумулятора в память посредством пары регистров B или D | |
|
XCHG |
EB |
– |
1 |
4 |
1 |
Обмен между парами регистров H и D | |
|
Команды арифметических и логических операций | |||||||
|
ADD r |
10000ИИИ |
+ |
1 |
4 |
1 |
Сложение регистра и аккумулятора | |
|
ADD M |
86 |
+ |
1 |
7 |
2 |
Сложение памяти и аккумулятора | |
|
ADI b2 |
C6 |
+ |
2 |
7 |
2 |
Сложение непосредственных данных и аккумулятора | |
|
ADC r |
10001ИИИ |
+ |
1 |
4 |
1 |
Сложение регистра и аккумулятора с переносом | |
|
Продолжение таблицы 3.1
| |||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
|
Команды арифметических и логических операций | |||||||
|
ADC M |
8E |
+ |
1 |
7 |
2 |
Сложение памяти и аккумулятора с переносом | |
|
ACI b2 |
CE |
+ |
2 |
7 |
2 |
Сложение непосредственных данных и аккумулятора с переносом | |
|
SUB r |
10010ИИИ |
+ |
1 |
4 |
1 |
Вычитание регистра из аккумулятора | |
|
SUB M |
96 |
+ |
1 |
7 |
2 |
Вычитание памяти из аккумулятора | |
|
SUI b2 |
D6 |
+ |
2 |
7 |
2 |
Вычитание непосредственных данных из аккумулятора | |
|
SBB r |
10011ИИИ |
+ |
1 |
4 |
1 |
Вычитание регистра из аккумулятора с заемом | |
|
SBB M |
9E |
+ |
1 |
7 |
2 |
Вычитание памяти из аккумулятора с заемом | |
|
SBI b2 |
DE |
+ |
2 |
7 |
2 |
Вычитание непосредственных данных из аккумулятора с заемом | |
|
INR r |
00ППП100 |
(+) |
1 |
4 |
1 |
Инкремент регистра | |
|
INR M |
34 |
(+) |
1 |
10 |
3 |
Инкремент памяти | |
|
DCR r |
00ППП101 |
(+) |
1 |
4 |
1 |
Декремент регистра | |
|
DCR M |
35 |
(+) |
1 |
10 |
3 |
Декремент памяти | |
|
INX rp |
00ПР0011 |
– |
1 |
6 |
1 |
Инкремент пары регистров | |
|
DCX rp |
00ПР1011 |
– |
1 |
6 |
1 |
Декремент пары регистров | |
|
DAD rp |
00ПР1001 |
C |
1 |
10 |
3 |
Сложение регистровой пары H с регистровой парой | |
|
Продолжение таблицы 3.1
| |||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
|
Команды арифметических и логических операций | |||||||
|
DAA |
27 |
+ |
1 |
4 |
1 |
Преобразование аккумулятора в двоично-десятичный код | |
|
ANA r |
10100ИИИ |
+ |
1 |
4 |
1 |
Логическое И регистра и аккумулятора | |
|
ANA M |
A6 |
+ |
1 |
7 |
2 |
Логическое И памяти и аккумулятора | |
|
ANI b2 |
E6 |
+ |
2 |
7 |
2 |
Логическое И непосредственных данных и аккумулятора | |
|
XRA r |
10101ИИИ |
+ |
1 |
4 |
1 |
Исключающее ИЛИ регистра и аккумулятора | |
|
XRA M |
AE |
+ |
1 |
7 |
2 |
Исключающее ИЛИ памяти и аккумулятора | |
|
XRI b2 |
EE |
+ |
2 |
7 |
2 |
Исключающее ИЛИ непосредственных данных и аккумулятора | |
|
ORA r |
10110ИИИ |
+ |
1 |
4 |
1 |
Логическое ИЛИ регистра и аккумулятора | |
|
ORA M |
B6 |
+ |
1 |
7 |
2 |
Логическое ИЛИ памяти и аккумулятора | |
|
ORI b2 |
F6 |
+ |
2 |
7 |
2 |
Логическое ИЛИ непосредственных данных и аккумулятора | |
|
CMP r |
10111ИИИ |
+ |
1 |
4 |
1 |
Сравнение регистра и аккумулятора | |
|
CMP M |
BE |
+ |
1 |
7 |
2 |
Сравнение памяти и аккумулятора | |
|
Продолжение таблицы 3.1 | |||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
|
Команды арифметических и логических операций | |||||||
|
CPI b2 |
FE |
+ |
2 |
7 |
2 |
Сравнение непосредственных данных и аккумулятора | |
|
CMA |
2F |
– |
1 |
4 |
1 |
Инвертирование аккумулятора | |
|
STC |
37 |
C |
1 |
4 |
1 |
Установка флажка переноса | |
|
CMC |
3F |
C |
1 |
4 |
1 |
Инвертирование флажка переноса | |
|
RLC |
07 |
C |
1 |
4 |
1 |
Циклический сдвиг аккумулятора влево | |
|
RRC |
0F |
C |
1 |
4 |
1 |
Циклический сдвиг аккумулятора вправо | |
|
RAL |
17 |
C |
1 |
4 |
1 |
Циклический сдвиг аккумулятора влево через разряд переноса | |
|
RAR |
1F |
C |
1 |
4 |
1 |
Циклический сдвиг аккумулятора вправо через разряд переноса | |
|
Команды управления | |||||||
|
JMP b3b2 |
C3 |
– |
3 |
10 |
3 |
Безусловный переход | |
|
Jусл b3b2 |
11УУУ010 |
– |
3 |
10 |
3 |
Условный переход | |
|
CALL b3b2 |
CD |
– |
3 |
18 |
5 |
Безусловный вызов подпрограммы | |
|
Cусл b3b2 |
11УУУ100 |
– |
3 |
11/18 |
3/5 |
Условный вызов подпрограммы | |
|
RET |
C9 |
– |
1 |
10 |
3 |
Возврат | |
|
Rусл |
11УУУ000 |
– |
1 |
5/11 |
1/3 |
Возврат при условии | |
|
RST n |
11nnn111 |
– |
1 |
11 |
3 |
Повторный запуск | |
|
SPHL |
F9 |
– |
1 |
6 |
1 |
Пересылка пары регистров H в SP | |
|
Окончание таблицы 3.1
| |||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 | |
|
Специальные команды | |||||||
|
PUSH rp |
11РП0101 |
– |
1 |
11 |
3 |
Пересылка пары регистров в стек | |
|
PUSH PSW |
F5 |
– |
1 |
11 |
3 |
Пересылка аккумулятора и регистра флажков в стек | |
|
POP rp |
11РП0001 |
– |
1 |
10 |
3 |
Загрузка регистровой пары из стека | |
|
POP PSW |
F1 |
+ |
1 |
10 |
3 |
Загрузка аккумулятора и регистра флажков из стека | |
|
XTHL |
E3 |
– |
1 |
18 |
5 |
Обмен между регистровой парой H и стеком | |
|
PCHL |
E9 |
– |
1 |
5 |
1 |
Пересылка регистровой пары H в PC | |
|
IN port |
DB |
– |
2 |
10 |
3 |
Ввод | |
|
OUT port |
D3 |
– |
2 |
10 |
3 |
Вывод | |
|
EI |
FB |
– |
1 |
4 |
1 |
Разрешение прерывания | |
|
DI |
F3 |
– |
1 |
4 |
1 |
Запрещение прерывания | |
|
HLT |
76 |
– |
1 |
7 |
2 |
Останов | |
|
NOP |
00 |
– |
1 |
4 |
1 |
Нет операции | |
|
RIM |
20 |
– |
1 |
4 |
1 |
Чтение маски прерывания | |
|
SIM |
30 |
– |
1 |
4 |
1 |
Запись маски прерывания | |
Таблица 3.2 – Адреса регистров и регистровых пар микропроцессора
|
Регистры |
Пары регистров | ||||||||||
|
B |
C |
D |
E |
H |
L |
A |
B |
D |
H |
SP | |
|
000 |
001 |
010 |
011 |
100 |
101 |
111 |
00 |
01 |
10 |
11 | |
Таблица 3.3 – Коды условий для команд управления
|
УУУ |
Мнемокод |
Условия |
|
000 |
NZ |
Неравенство нулю |
|
001 |
Z |
Равенство нулю |
|
010 |
NC |
Отсутствие переноса |
|
011 |
C |
Наличие переноса |
|
100 |
PO |
Нечетность |
|
101 |
PE |
Четность |
|
110 |
P |
Плюс |
|
111 |
M |
Минус |
|
S |
Z |
0 |
AC |
0 |
P |
1 |
C |
|
бит 7 |
|
|
|
|
|
|
бит 0 |
Рисунок 3.13 – Формат регистра флажков

Рисунок 3.14 – Схемы, поясняющие выполнение сдвигов микропроцессором
