Простейшая микро-ЭВМ

тимпанометры для клиники. Interacoustics MT 10 с доставкой по России.          

ДРУГИЕ ВОЗМОЖНОСТИ ПМ-ЭВМ


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

Отечественной промышленностью выпускается широкая но­менклатура периферийных программируемых микросхем, со-гласуемых с МП типа КР580ВМ80А.

Использование программируемых микросхем в конкретной МП-системе связано: 1) с заданием режимов ее работы в систе­ме, адресацией и определением электрических связей с внутрен­ними шинами МП-системы и периферийными устройствами; 2) с вводом фрагмента программы, задающей режимы работы микросхемы (программа инициализации); 3) с обращением к микросхеме в процессе исполнения рабочей программы.

Количественный рост МП-системы ведет и к ее архитектур­ному усложнению. Возникает необходимость каким-либо обра­зом стандартизовать связи микро-ЭВМ. Известно много стан­дартов внутрисистемных шин МП-систем. Для МП серии КР580ИК80А наиболее известны шины MULTIBUS и 8=100, позволяющие объединять в систему периферийные, процессор­ные блоки и блоки памяти различных изготовителей.

Большая МП-система требует специального математического обеспечения (МО). Если при написании и отладке программ емкостью до 1 Кбайт можно с успехом обойтись программиро­ванием в кодах, то программы большего размера пишутся обыч­но на языках различных уровней, в том числе и на специализи­рованных языках высокого уровня.
Для перевода таких программ на машинный язык необходимы программы-интерпрета­торы, а для отладки — программы редактирования и отладки. Чтобы весь комплекс программ мог успешно функционировать, необходимо использовать какую-либо операционную систему (ОС). Все это доводит общую емкость МО до нескольких сотен килобайт и требует для хранения специальных накопителей. Поэтому не имеет смысла, как говорят, "с нуля" проектировать большую МП-систему. Гораздо разумнее использовать уже имею­щийся опыт, взяв в качестве образца готовую промышленную систему.

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

Рассмотрим коротко характеристики некоторых програм­мируемых микросхем, находящих широкое применение в МП-системах.

Микросхема программируемого последовательного интерфей­са типа КР580ВВ51А является универсальным синхронно-асин­хронным приемопередатчиком (УСАПП), предназначенным для осуществления связи в последовательном формате между МП-системой и внешним абонентом. Микросхема используется как периферийное устройство, программируемое центральным про­цессором МП-системы почти для любого стандартного протоко­ла последовательной передачи данных. Микросхема принимает данные от МП-no шине данных в параллельном формате и преоб­разует их в непрерывный поток последовательных данных для передачи абоненту. Микросхема может одновременно с этим принимать последовательные данные, преобразовывать их в параллельный формат и передавать микропроцессору.


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



Микросхема типа КР580ВИ53 представляет программируе­мый таймер/счетчик, предназначенный для работы в качестве периферийного устройства МП-системы. Микросхема состоит из трех независимых 16-битовых счетчиков с максимальной частотой счета 2 МГц. Каждый счетчик микросхемы может ра­ботать в одном из шести запрограммированных режимов. С по­мощью микросхемы таймера/счетчика решается одна из наибо­лее часто встречающихся в МП-системах задач — генерирование точных программно задаваемых временных задержек взамен организации холостых программных циклов. Пользователь подключает соответствующим образом микросхему, загружает один из счетчиков нужным числом, после чего в результате по­дачи команды счетчик отсчитывает заданную задержку и выра­батывает сигнал прерывания для МП-системы. Микросхема может выполнять функции не только генератора задержки, но и программируемого генератора заданной частоты, счетчика со­бытий, датчика реального времени и др.

Микросхема типа КР580ВВ55А представляет собой програм­мируемый периферийный интерфейс, предназначенный для прие­ма в МП-систему и выдачи из нее информации в параллельном коде, функции микросхемы в системе задаются программно, поэтому, как правило, не требуется подключать какие-либо до­полнительные логические схемы. Предназначенные для ввода и вывода внешней информации 24 ножки микросхемы могут быть индивидуально запрограммированы группами по 12 и исполь­зованы в трех различных режимах работы. В первом из них (Режим 0) в каждой группе из 12 ножек часть может быть запрограммирована на ввод, а часть — на вывод.


Во втором ре­жиме ( Режим 1) группа программируется так, что 8 ножек слу­жат для ввода или вывода, а 3 ножки из оставшихся 4 предназ­начены для сигналов квитирования (запрос — подтверждение) и прерывания. В третьем режиме (Режим 2) из 8 ножек орга­низуется 8-разрядная двунаправленная шина, а 5 ножек (с за-емом из другой группы) предназначены для сигналов квитиро­вания и прерывания.

Микросхема типа КР580ВТ57 представляет собой четырех-канальный программируемый контроллер прямого доступа к памяти (ПДП), предназначенный для организации высокоско­ростного обмена данными между периферийными устройствами и памятью МП-системы, построенной на базе микропроцессора КР580ВМ80А. Функция микросхемы заключена в основном в

мы имеют информационную емкость 2К х 8 и программируются побайтно импульсами на ТТЛ-уровне. Микросхема приводится в исходное состояние (когда во всех разрядах стоят единицы) путем облучения ультрафиолетовым источником света, в каче­стве которого можно использовать с соответствующими предо­сторожностями обычную бытовую кварцевую лампу, а в ка­честве программатора — саму ПМ-ЭВМ.

ПРИЛОЖЕНИЯ

 

Система команд микропроцессора КР580ИК80А

ПРИЛОЖЕНИЕ1

Мнемокод команды

Описание команды

Длина команды байт

, Изменяемые флаги

Число тактов

INRr

Увеличение содержимого регистра г на еди-

1

Z,S,P,AC

5

 

ницу

 

 

 

INRM

Увеличение на единицу содержимого ячейки

1

Z,S,P,AC

10

 

памяти по адресу, указанному в регистрах Н

 

 

 

 

и L

 

 

 

DCRr

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

1

Z,S,P, AC2

5

 

ницу

 

 

 

DCRM

Уменьшение на единицу содержимого ячейки

1

Z, S,P, AC2

10

 

памяти по адресу, указанному в регистрах Н

 

 

 

 

иЬ

 

 

 

MOVrl,r2

Пересылка данных из регистра г 2 в регистр rl

1

-

5

MOV M, г

Пересылка данных из регистра г в ячейку па-

1

-

7

 

мяти по адресу, указанному в регистрах Н и L

 

 

 

MOV г, М

Пересылка данных в регистр г из ячейки памя-

1

-

7

 

ти по адресу, указанному в регистрах Н и L

 

 

 

ADDr

Суммирование содержимого регистра г и со-

1

Z,S,P,C,AC

4

 

держимого аккумулятора

 

 

 

ADDM

Суммирование содержимого ячейки памяти

1

Z,S,P,C, AC

7

 

по адресу, указанному в регистрах Н и L,

 

 

 

 

с содержимым аккумулятора

 

 

 

ADCr

Сложение с учетом переноса содержимого ре-

1

Z,S,P, C, AC

4

 

гистра г и содержимого аккумулятора

 

 

 

ADCM

Сложение с учетом переноса содержимого

1

Z,S,P,C,AC

7

 

ячейки памяти по адресу, указанному в ре-

 

 

 




Продолжение прилож. 1

Мнемокод команды

Длина Описание команды команды, Изменяемые флаги байт

Число тактов

 

ги страх Н и L, с содержимым аккумулятора

 

SUB r

Вычитание содержимого регистра г из содер- 1 Z,S,P, С , АС

4

 

жимого аккумулятора

 

SUBM

Вычитание из содержимого аккумулятора 1 Z, S, Р, С , АС

7

 

содержимого ячейки памяти по адресу, ука-

 

 

занному в регистрах Н и L

 

SBBr

Вычитание с заемом содержимого регистра г 1 Z, S, Р, С , АС

4

 

из содержимого аккумулятора

 

SBBM

Вычитание с заемом из содержимого аккуму- 1 Z,S,P,C , AC

7

 

лятора содержимого ячейки памяти по адресу,

 

 

указанному в регистрах Н и L

 

ANA г

Поразрядное И над содержимым регистра г 1 Z , S, Р, С = 0, АС = 0

4

 

и аккумулятора

 

ANAM

Поразрядное И над содержимым аккумуля- 1 Z , S, Р, С = 0, АС = 0

7

 

тора и ячейки памяти по адресу, указанному

 

 

в регистрах Н и L

 

XRAr

Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над со- 1 Z, S, Р, С = 0, АС = 0

4

 

держимым регистра г и аккумулятора

 

XRAM

Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над со- 1 Z, S, Р, С = 0, АС = 0

7

 

держимым аккумулятора и ячейки памяти

 

 

по адресу, указанному в регистрах Н и L

 

ORAr

Поразрядное ИЛИ над содержимым регист- 1 Z,S,P,C = 0, AC = 0

4

 

pa r и аккумулятора

 

ORAM

Поразрядное ИЛИ над содержимым аккуму- 1 Z, S, Р, С = 0, АС = 0

7

 

лятора и ячейки памяти по адресу, указанно-

 

 

му в регистрах Н и L

 

CMP г

Сравнение содержимого регистра г и аккуму- 1 (Z, S, P, С, АС)3

4

 

лятора

 

CMPM

Сравнение содержимого аккумулятора и ячей- 1 (Z, S, P, С, АС)3

7

 

ки памяти по адресу, указанному в регист-

 

 

рах Н и L

 

INXrp

Увеличение на единицу содержимого пары ре- 1 -

5

 

гистров гр (В, D, Н, SP)

 

DCXrp

Уменьшение на единицу содержимого пары 1 -

5

 

регистров гр (В, D, H, SP)

 

DADrp

Сложение содержимого пары регистров тр 1 С

10

 

(В, D, H, SP) с содержимым пары регистров

 

 

Н и L и хранение результата в Н и L

 

POPrp

Выдача данных из стека в пару регистров гр 1 (Z, S, P, С, АС)6

10

 

(В, D, H) или в аккумулятор и регистр при-

 

 

знаков PSW

 

PUSH rp

Занесение в стек содержимого пары регист- 1 -

11

 

ров гр (В, D, H) или содержимого аккумуля-

 

 

тора и регистра признаков PSW

 

STAXrp

Запись содержимого аккумулятора в ячейку 1 -

7

 

памяти, косвенно адресуемую парой регист-

 

 

ров гр (В, D)

 

LDAX rp

Запись в аккумулятор содержимого ячейки 1

7

 

памяти, косвенно адресуемой парой регист-

 

 

ров гр (В, D)

 

RNZ

Возврат из подпрограммы при отсутствии 1 -

5/11

 

нуля (флаг нуля в состоянии 0)

 

RZ

Возврат из подпрограммы при наличии нуля 1 -

5/11

 

(флаг нуля в состоянии 1)

 

RNC

Возврат из подпрограммы при отсутствии 1 -

5/11

 

переноса (флаг переноса в состоянии 0)

 

RC

Возврат из подпрограммы при наличии пе- 1 -

5/11

 

реноса (флаг переноса в состоянии 1)

 




Продолжение прилож. 1

Мнемокод команды

Описание команды

Длина команды, Изменяемые флаги байт

Число тактов

 
RPO

Возврат из подпрограммы при отсутствии

1

5/11

 
 

четности (флаг четности в состоянии 0)

 

 

 
RPE

Возврат из подпрограммы при наличии чет-

1

 

 
 

ности (флаг четности в состоянии 1)

 

 

 
RP

Возврат из подпрограммы при положительном

1

5/11

 
 

результате (флаг знака в состоянии 0)

 

 

 
RM

Возврат из подпрограммы при отрицательном

1

5/11

 
 

результате (флаг знака в состоянии 1)

 

 

 
RET

Безусловный возврат из подпрограммы

1 С4

5/11

 
RLC

Циклический сдвиг содержимого аккумуля-

1 С4

 

 
 

тора влево

1 С4

 

 
RRC

Циклический сдвиг содержимого аккумуля-

1 С

 

 
 

тора вправо

 

 

 
RAL

Циклический сдвиг содержимого аккумуля-

1 С4

 

 
 

тора влево, включая флаг переноса

1 С4

 

 
RAR

Циклический сдвиг содержимого аккумуля-

1 С4

 

 
 

тора вправо, включая флаг переноса

 

 

 
XCHG

Обмен данными между парами регистров Н,

1

4

 
 

L HD.E

 

 

 
XTHL

Обмен данными между двумя верхними ячей-

1

18

 
 

ками стека и парой регистров Н, L (сначала

 

 

 
 

самая верхняя обменивается с L , затем сле-

 

 

 
 

дующая с Н)

 

 

 
SPHL

Передача в указатель стека содержимого ре-

1

 

 
 

гистров Н и L

 

 

 
PCHL

Передача в счетчик команд содержимого пары 1 -

5

 

регистров Н и L с последующим выполнением

 

 

программы с адреса, равного новому содер-

 

 

жимому счетчика команд (по существу коман-

 

 

да перехода)

 

HLT

Останов программы 1 -

7

NOP

Отсутствие операции 1 -

4

DI

Запрет на прерывание программы 1 -

4

EI

Разрешение прервать программу 1 -

4

DAA

Перевод двоичного представления содержимо- 1 —  

4

 

го аккумулятора в двоично-десятичный код

 

СМА

Поразрядное инвертирование содержимого 1 -

4

 

аккумулятора

 

STC

Установка флага переноса С в единицу 1 С = 1

4

CMC

Инвертирование значения флага переноса 1 С=С

4

RSTA

Повторный запуск программы с адреса 1 -

11

 

8А10 = (ОА08)

 

ADI<B2>

Сложение содержимого байта В2 с содержи- 2 Z,S,P, С, АС

7

 

мым аккумулятора

 

ACI <В2>

Сложение с учетом переноса содержимого 2 Z,S, P, С, АС

7

 

байта В2 с содержимым аккумулятора

 

SUI <В2>

Вычитание содержимого байта В2 из содер- 2 Z, S, Р, С1 , АС2

7

 

жимого аккумулятора

 

SBI <В2>

Вычитание с заемом содержимого байта В2 2 Z, S, Р, С1 , АС2

7

ANI <В2>

из содержимого аккумулятора Поразрядное И над содержимым байта В2 и 2 Z , S, Р, С = 0, АС = 0

7

 

содержимым аккумулятора

 

XRI <B2>

Поразрядное ИСКЛЮЧАЮЩЕЕ ИЛИ над со- 2 Z, S, Р, С = 0, АС =0

7

 

держимым байта В2 и содержимым аккуму-

 

 

лятора

 




Продолжение прилож. 1

Мнемокод команды

Описание команды

Длина команды, байт

Изменяемые флаги

Число тактов

ORI<B2>

Поразрядное ИЛИ над содержимым байта В2

2

Z,S,P, C = 0, AС=0

7

 

и содержимым аккумулятора

 

 

 

CPI <В2>

Сравнение содержимого байта В2 с содержи-

2

(Z, S, Р,С, АС)3

7

 

мым аккумулятора

 

 

 

IN <B2>

Ввод данных в аккумулятор из порта ввода,

2

-

10

 

определяемого адресом в байте В2

 

 

 

OUT<B2>

Вывод данных из аккумулятора в порт вы-

2

-

10

 

вода, определяемый адресом в байте В2

 

 

 

MVI r <B2>

Занесение содержимого байта В2 в регистр г

2

-

7

MVI M <B2>

Запись содержимого байта В2 в ячейку памя-

2

-

7

JNZ<B2><B3>

ти по адресу, указанному в регистрах Н и L

Переход в программе к выполнению команды по адресу в В2, ВЗ при отсутствии нуля (флаг нуля в состоянии 0)

3

-

10

JZ<B2><B3>

Переход в программе к выполнению команды по адресу в В2, ВЗ при наличии нуля (флаг ну­ля в состоянии 1)

3

-

10

JNC<B2><B3> JC<B2><B3>

Переход в программе к выполнению команды по адресу в В2, ВЗ при отсутствии переноса (флаг переноса в состоянии 0) Переход в программе к выполнению команды по адресу в В2, ВЗ при наличии переноса (флаг переноса в состоянии 1)

3 3

-

10 10

JPO<B2><B3>

Переход в программе к выполнению команды по адресу в В2, ВЗ при наличии нечетности (флаг четности в состоянии 0)

3

-

10

JPE<B2><B3>

Переход в программе к выполнению команды

3



10

 

по адресу в В2, ВЗ при наличии четности (флаг четности в состоянии 1)

 

 

 

JP<B2><B3>

Переход в программе к выполнению команды по адресу в В2, ВЗ при положительном резуль­тате (флаг знака в состоянии 0)

3

 

10

JM<B2><B3>

Переход в программе к выполнению команды по адресу в В2, ВЗ при отрицательном резуль­тате (флаг знака в состоянии 1)

3

 

10

JMP<B2><B3>

Безусловный переход к команде по адресу в В2, ВЗ

3



10

.       с

CNZ<B2><B3>

Вызов подпрограммы при отсутствии нуля (флаг нуля в состоянии 0)

3

 

11/175

с

CZ<B2><B3>

Вызов подпрограммы при наличии нуля (флаг нуля в состоянии 1)

• 3

~

11/175

с

CNC<B2><B3>

Вызов подпрограммы при отсутствии перенос, (флаг переноса в состоянии 0)

i3



И/175

CC<B2><B3>

Вызов подпрограммы при наличии переноса (флаг переноса в состоянии 1)

3



И/175

CPO<B2><B3>

Вызов подпрограммы при наличии нечетности (флаг четности в состоянии 0)

3



11/175

CPE<B2><B3>

Вызов подпрограммы при наличии четности (флаг четности в состоянии 1)

3



И/175

CP<B2><B3>

Вызов подпрограммы при наличии положи­тельного результата (флаг знака в состоя­нии 0)

3

 

И/175

CM<B2><B3>

Вызов подпрограммы при наличии отрица­тельного результата (флаг знака в состоя­нии 1)

3

 

И/175




Продолжение прилож. 1

Мнемокод команды

Длина Описание команды команды, Изменяемые флаги байт

Число тактов

CALL<B2><B3>

Вызов подпрограммы из памяти по адресу, 3 -

17

 

указанному в байтах В2, ВЗ

 

LXIrp<B2><B3>

Занесение содержимого двух байтов В2, ВЗ 3 -

10

 

в пару регистров гр (В, D, Н, SP)

 

STA<B2><B3>

Запись содержимого аккумулятора в ячейку 3 -

13

 

памяти по адресу в В2, ВЗ

 

LDA<B2><B3>

Запись в аккумулятор содержимого ячейки 3 —  

13

 

памяти по адресу в В2, ВЗ

 

SHLD<B2><B3>

Занесение содержимого регистров Н и L в па- 3 -

16

 

мять: содержимое L пересылается в ячейку

 

 

по адресу в В 2, ВЗ; содержимое регистра Н -

 

 

в ячейку, адрес которой на единицу больше

 

LHLD<B2><B3>

Загрузка в регистры Н и L содержимого ячеек 3 -

16

 

памяти: в L пересылаются данные из ячейки па-

 

 

мяти по адресу в В2, ВЗ; в Н — из ячейки, ад-

 

 

рес которой на единицу больше

 

Примечания [14]:

1.  Флаг устанавливается при наличии заема в старший разряд, в противном случае сбрасывается.

2.  Флаг устанавливается при наличии заема из старших четырех разрядов в младшие, в противном случае сбрасывается.

3.  Флаг нуля Z устанавливается, если содержимое регистра или байта данных совпадает с содержимым аккумулятора; флаги знака и переноса S и С устанавливаются, если содержимое регистра или байта данных больше содержимого аккуму­лятора; флаг вспомогательного переноса АС устанавливается, если содержимое младших четырех разрядов регистра или байта данных больше содержимого соответствующих разрядов аккумулятора; флаг четности Р устанавливается, если байт разности между содержимым аккумулятора и содержимым регистра или байта данных содержит четное число единиц.

4. Состояние флага равно значению выдвигаемого из аккумулятора двоичного разряда.



5.  Большее значение ( за косой чертой) указывает на число тактов при выполнении условий, меньшее — при невыпол­нении.

6.  По команде POP PSW флаги устанавливаются в соответствии со значением разрядов слова, хранящегося в стеке; при выдаче данных из стека в другие регистры флаги не меняются.

Приложение 2. СХЕМА ПМ-ЭВМ



Приложение 3. Таблица элементов, используемых в схеме ПМ-ЭВМ

Обозначение микросхемы

Тип микросхемы

Выводы микросхем

Питание

+ 5 В общее

D1

КР580ИК80А

Данные в тексте

D2

КР580ГФ24

Данные в тексте

D3-D7, D31

К155ЛН1

14 7

D8

К155ЛА1

14 7

D9, DIG, D23

К589АП16

16 8

Dll, D24

К155ИД4

14 7

D12, D13

КР541РУ2

18 9

D14, D15

КР556РТ4

16 8

D16-D22, D29

К155ТМ7

5 12

D25

К155ЛА2

14 7

D26

К155ЛЕ1

14 7

D27, D28

К155ЛАЗ

14 7

D30

К155ТМ2

14 7

Примечания:

KB - 9 МГц

С1 - 0,15 мкФ

R1-R6 - 1 кОм

R7 — R30 — в зависимости от типа VI — V24

R31-R34- 5,1 кОм

V1-V24 - АЛ102А, АЛ102Г, АЛ112А-М



Содержание раздела