Logo GenDocs.ru

Поиск по сайту:  

Загрузка...

Лекции - Микропроцессоры и микропроцессорные системы - файл 1.doc


Лекции - Микропроцессоры и микропроцессорные системы
скачать (2465.5 kb.)

Доступные файлы (1):

1.doc2466kb.24.11.2011 12:18скачать

1.doc

1   2   3   4   5   6   7   8   9   10


Операнд источника циклически сдвигается на n позиций (0  n  15) в сторону старших разрядов (влево), результат сдвига помещается в приемник и/или на шину Y. В режиме слова сдвигаются все биты (что соответствует сдвигу вправо на (16 – n) позиций. В режиме байта сдвигаются только биты (7:0), а сдвиг на n влево эквивалентен сдвигу на (8 - n) вправо. Биты N и Z модифицируются, а биты C и OVR устанавливаются в «0».
Табл. 10.31. Инструкции циклического сдвига

Формат

Код

Мнемокод

ИСТ

ПРМ

ROTR1

1100

RTRA

РЗУ

Акк

1110

RTRY

РЗУ

Шина Y

1111

RTRR

РЗУ

РЗУ

ROTR2

0000

RTAR

Акк

РЗУ

0001

RTDR

РгD

РЗУ

ROTNR

11000

RTDY

РгD

Шина Y

11001

RTDA

РгD

Акк

11100

RTAY

Акк

Шина Y

11101

RTAA

Акк

Акк




Режим B/W

Шина Y

N регистра РгC







0 (байт)

Yi  ИСТ(i-n) mod 16

ИСТ(15-n)







1 (слово)

Yi  ИСТ(i-n) mod 8

Для i = 1.. 7

ИСТ(8-n)





6) Инструкции циклического сдвига и сравнения:




15

14 13

12 9

8 5

4 0

ROTC

B/W

0 1

n

ИСТ, ПРМ, МАСКА

Адрес РЗУ

И
нструкция осуществляет поразрядное сравнение двух 16-разрядных векторов, маскированных вектором маски, причем один из входных векторов предварительно (перед маскированием) сдвигается на заданное число разрядов ().

Рис. 10.82. Сдвиг и сравнение

Единичное значение разряда маски исключают из сравнения соответствующие разряды операндов (оба при сравнении равны «0»). Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0».

Табл. 10.32. Инструкции циклического сдвига и сравнения

Код [8 : 5]

Мнемокод

Сдвигаемый ИСТ

Несдвигаемый ИСТ, ПРМ

Маска

0010

CDAI

РгD

Акк

I

0011

CDRI

РгD

РЗУ

I

0100

CDRA

РгD

РЗУ

Акк

0101

CRAI

РЗУ

Акк

I

7) Инструкции циклического сдвига и слияния:




15

14 13

12 9

8 5

4 0

ROTM

B/W

0 1

n

ИСТ, ПРМ, МАСКА

Адрес РЗУ

Сдвигаемый операнд U циклически сдвигается на n позиций в сторону старших разрядов, затем с помощью маски формируется результат: в качестве его i-го разряда берется i-й разряд сдвинутого U, если соответствующий разряд маски равен «1», иначе берется разряд Ri. Результат заносится по адресу несдвигаемого операнда.

Пример: n = 4, режим W (работа со словами)

Операнд U

0011 0001 0101 0110

сдвинутый U

0001 0101 0110 0011

Операнд R

1010 1010 1010 1010

Маска S

0000 1111 0000 1111

Результат (R)

1010 0101 1010 0011

Табл. 12. Инструкции циклического сдвига и слияния

Код [8 : 5]

Мнемокод

Сдвигаемый ИСТ

Несдвигаемый ИСТ, ПРМ

Маска

0111

MDAI

РгD

Акк

I

1000

MDAR

РгD

Акк

РЗУ

10011

MDRI

РгD

РЗУ

I

1010

MDRA

РгD

РЗУ

Акк

1100

MARI

Акк

РЗУ

I

1110

MRAI

РЗУ

Акк

I

Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0».

Инструкции этого типа могут быть эффективно использованы для преобразования одного кода в другой.

8) Инструкции шифрации:




15

14 13

12 9

8 5

4 0

PRT1

B/W

1 0

ПРМ

ИСТ (R)

Адрес РЗУ/ Маска S

PRT2

B/W

1 0

Маска S

ПРМ

Адрес РЗУ/ ИСТ

PRT3

B/W

1 0

Маска S

ИСТ (R)

Адрес РЗУ/ ПРМ

PRTNR

B/W

1 1

Маска S

ИСТ (R)

ПРМ

В этих инструкциях производится поразрядная конъюнкция операнда R и инвертированного значения маски S. Нулевое значение разряда маски Si разрешает участие соответствующего разряда операнда R в шифрации приоритета. Выходной 5-разрядный код указывает номер старшей единицы операнда R (с учетом маски). Биты N, Z регистра состояний модифицируются, а OVR и C – сбрасываются в «0». Ограничение на выбор операндов – необходимость использования для операнда и маски различных источников (что, впрочем, логично). Инструкции этого типа могут быть эффективно использованы в операциях нормализации.

Табл. 10.33. Инструкции шифрации

PRT!

ПРМ

ИСТ (R)

Код

Мнемокод

ПРМ

Код

Мнемокод

ИСТ (R)

1000

PR1A

Акк

0111

PRT1A

Акк

1010

PR1Y

Шина Y

1001

PRT1D

РгD

1011

PR1R

РЗУ




PRT2

Маска S

ПРМ

Код

Мнемокод

Маска S

Код

Мнемокод

ПРМ

1000

PRA

Акк

0000

PR2A

Акк

1010

PRZ

0

0010

PR2Y

Шина Y

1011

PRI

I




PRT3

Маска S

ИСТ (R)

Код

Мнемокод

Маска S

Код

Мнемокод

ИСТ (R)

1000

PRA

Акк

0011

PR3R

РЗУ

1010

PRZ

0

0100

PR3A

Акк

1011

PRI

I

0110

PR3D

РгD

Табл. 10.34. Инструкции шифрации PRTNR

Маска S

ИСТ (R)

ПРМ

Код

Мнемокод

Маска S

Код

Мнемокод

ИСТ (R)

Код

Мнемокод

ПРМ

1000

PRA

Акк

0100

PRTA

Акк

00000

NRY

Шина Y

1010

PRZ

0

0110

PRTD

РгD

00001

NRA

Акк

1011

PRI

I








9) Инструкции генерации циклического избыточного кода (CRC) определяются одним полем – адресом РЗУ. Инструкции обеспечивают генерацию контрольных разрядов в циклическом избыточном коде. Одна инструкция – «прямая» (CRCF), другая – «обратная» (CRCR), отличающиеся порядком поступления разрядов на свертку: при прямой свертка начинается со старшего (15-го) разряда, при обратной – с младшего. Две инструкции необходимы, т.к. существующие стандарты применения циклических избыточных кодов не определяют, какой разряд данных (старший или младший) должен передаваться первым.

Форматы инструкций:




15

14 13

12 9

8 5

4 0

CRCF

1

1 0

0110

0011

Адрес РЗУ

CRCR

1

1 0

0110

1001

Адрес РЗУ

На рис. показан процесс реализации инструкции обратной свертки. Бит L используется как вход последовательного кода. В соответствии с полиномом, задаваемым с помощью маски, последовательный вход комбинируется с разрядами регистра контрольной суммы. После того, как последний входной бит будет обработан, регистр РЗУ содержит контрольные разряды. В процессе выполнения инструкций биты L, N, Z регистра состояний РгС модифицируются, а C и OVR – сбрасываются в «0».

Перед началом операции необходимо загрузить в Акк полиноминальную маску, а в разряд L РгС – первый бит данных. В следующем такте этот бит появится на выходе L. Результат операции  этого бита и старшего (младшего – для обратной свертки) бита регистра РЗУ передается на схемы поразрядной конъюнкции для умножения на разряды маски S. Выходы конъюнкторов поступают на входы сумматоров по модулю два , где поразрядно складываются со сдвинутым на один разряд влево (для обратной свертки n = 15, что соответствует сдвигу на один разряд вправо) операндом U (РЗУ). Результат операции поразрядного суммирования записывается в регистр РЗУ.

Очередной такт начинается с загрузки следующего разряда данных в разряд связи L. Процесс продолжается до тех пор, пока все разряды данных не пройдут такой цикл.

Табл. 10.35. Управление шиной Y в инструкциях CRC

Инструкция

Шина Y

Бит L

CRCF

Yi  [(L  РЗУ15) & Аккi]  РЗУi –1 i = 15 .. 1

Y0  [(L  РЗУ15) & Акк0]  0

РЗУ15

CRCR

Yi  [(L  РЗУ0) & Аккi]  РЗУi +1 i = 14 .. 0

Y15  [(L  РЗУ0) & Акк15]  0

РЗУ0


10) Инструкции установки и сохранения состояния оперируют с регистром состояния РгС, формат которого имеет след. вид:

7

6

5

4

3

2

1

0

FL3

FL2

FL1

L

N

OVR

C

Z

Форматы инструкций:




15

14 13

12 9

8 5

4 0

SETST

0

1 1

1011

1010

К О П

RSTST

0

1 1

1010

1010

К О П

SVSTR

B/W

1 0

0111

1010

Адрес РЗУ/ ПРМ

SVSTNR

B/W

1 1

0111

1010

ПРМ


Табл. 10.36. Инструкции SETST и RSTST

SETST

RSTST

Код

Мнемокод

Установка

Код

Мнемокод

Сброс

00011

SONCCZ

OVR, N, C, Z  1

00011

RONCCZ

OVR, N, C, Z  0

00101

SL

L  1

00101

RL

L  0

00110

SF1

F1  1

00110

RF1

F0  0

01001

SF2

F2  1

01001

RF2

F2  0

01010

SF3

F3  1

01010

RF3

F3  0

Y(15:0)  1

Y(15:0)  0


При реализации инструкций SVST в регистр РЗУ (SVSTR) или в Акк (SVSTNR) загружается только младший байт (при B/W = 0) или все слово (при B/W = 1) с шины Y. На шину Y во всех случаях передается: Y(7:0)  РгС, Y(15:8)  0.
11) Инструкции проверки состояния определяют одно из 12 тестовых условий, которое передается на выход CT. Формат инструкций:




15

14 13

12 9

8 5

4 0

TSTST

0

1 1

1001

1010

К О П

Табл. 10.37. Инструкции TSTST

Код (4:0)

Мнемокод

Выдается на СТ

Код (4:0)

Мнемокод

Выдается на СТ

00000

TNOZ

(NOVR)Z

01100

TZC

ZC\

00010

TNO

NOVR

01110

TN

N

00100

TZ

Z

10000

TL

L

00110

TOVR

OVR

10010

TF1

F1

01000

TLOW

0 (Const)

10100

TF2

F2

01010

TC

C

10110

TF3

F3

Состояние шины Y при действии инструкции TSTST не определено, содержимое РгС не меняется.

Содержимое РгС может быть так же проверено (помимо инструкции) через двунаправленную шину Т(4:1), причем код Т(4:1) совпадает с полем кода инструкции I(4:1) для выбора соответствующего условия (см. таблицу). При конфликте кодов I(4:1) и Т(4:1) приоритет имеют линии I(4:1).

12) Инструкция «Нет операции»:




15

14 13

12 9

8 5

4 0

NOP

0

1 1

1000

1010

0000

Значение шину Y не определено; Внутреннее состояние регистров не меняется.

Инструкции с непосредственным операндом – двухтактные – содержат в мнемокоде литеру «I». Операнд размещается в программе (микропрограмме) непосредственно за словом инструкции
.


Рис. 10.83. Реализация обратной свертки


  1. ^

    Однокристальные микроЭВМ

1.24.Однокристальные микро-ЭВМ К1816ВЕ48/49/35


Восьмиразрядные ОМЭВМ К1816ВЕ48, К1816ВЕ49 и К1816ВЕ35 отличаются лишь объемом и типом памяти программ:..ВЕ48 - 1К ППЗУ с УФ - стиранием,..ВЕ49 - 2К ПЗУ с масочным программированием,..ВЕ35 не содержит на кристалле памяти программ. Все остальные архитектурные и структурные особенности этих микро-ЭВМ идентичны; ниже будет рассмотрена ОМЭВМ ..ВЕ48, структурная схема которой показана на Рис. 11.84.
^

1.24.1.С
труктура ОМЭВМ



Рис. 11.84. Структурная схема ОМЭВМ К1816ВЕ48

ОМЭВМ включает в себя 8-разрядное АЛУ, ОЗУ программ объемом 64 байта, 8-разрядный регистр команд и 12-разрядный счетчик команд, три 8-разрядных (квази)двунаправленных порта ввода/вывода, 8-разрядные регистр-аккумулятор A, таймер/счетчик T и регистр слова состояния PSW. Устройство управления УУ включает тактовый генератор, автомат управления операциями на кристалле и схему связи с внешней средой. Кроме того, ОМЭВМ ..ВЕ48 содержит на кристалле ППЗУ программ объемом 1K байт.

12-разрядный СчК позволяет процессору управлять памятью команд до 4K, поэтому в системе предусмотрена возможность подключения внешней памяти.

Назначение выводов ОМЭВМ :

DB(P0), P1, P2 - восьмиразрядные двунаправленные порты ввода/вывода. Кроме того, по линиям DB передается младший байт адреса и код команды или данные при связи ОМЭВМ с внешней памятью, а по линиям P2[3:0] - старшие разряды адреса;

  • ALE - строб адреса внешней памяти, сопровождает появление адреса на линиях DB и позволяет "защелкнуть" адрес во внешнем регистре адреса;

  • CR1, CR2 - входы для подключения кварцевого резонатора (1..6 МГц), на вход CR1 можно подавать синхроимпульсы от внешнего тактового генератора;

  • CLR - сброс;

  • SS - управление пошаговым режимом работы ОМЭВМ;

  • PME - строб чтения из внешней памяти программ;

  • RD, WR - стробы чтения и записи во внешнюю память данных;

  • EMA - режим внешнего доступа, при EMA = 1 производится выборка команд только из внешней памяти программ;

  • INT - радиальный запрос внешнего прерывания, при появлении на входе INT L-уровня и установленном бите разрешения прерывания процессор переходит на выполнение подпрограммы с адреса 003h;

  • T0 - тестируемый вход (имеется команда условного перехода по состоянию T0), может использоваться как выход тактовой частоты внутреннего генератора;

  • T1 - тестируемый вход, может использоваться как вход счетчика внешних событий;

  • PROG/ST - в режиме программирования ППЗУ на этот вход подается импульс записи амплитудой 25 В, в режиме работы ОМЭВМ используется для стробирования передачи данных через порты расширения.
^

1.24.2.Элементы архитектуры ОМЭВМ


Формат слова состояния PSW показан на Рис. 11.85. Трехразрядный указатель стека SP определяет один из восьми уровней стека, расположенного во внутреннем ОЗУ данных. Селектор банка регистров определяет один из двух банков РОН, являющийся активным. Бит BS является программно-доступным, как и бит F0, по значению которого можно выполнить команду условного перехода. Флаги переноса (из 7 разряда) и дополнительного переноса (из 3 разряда) формируются в арифметических операциях.





7

6

5

4

3

2

1

0




C

AC

F0

BS

1

SP




C

- флаг переноса;

BS

- селектор банка регистров;

AC

- флаг доп. переноса;

SP

- указатель стека.

F0

- флаг пользователя;







Рис. 11.85. Формат PSW

Распределение адресного пространства внутренней памяти данных показано на
Рис. 11.86,а. К каждой ячейке памяти 00..3Fh можно обратиться по косвенному адресу и, кроме того, некоторые ячейки выполняют роль РОНов и стека.

К РОНам можно обращаться по прямому адресу, причем в зависимости от значения BS роль РОНов выполняют ячейки 00..07h или 18..1Fh. Каждый уровень стека занимает 2 байта, в которые записывается 12-разрядный СчК и старшая тетрада PSW (см. Рис. 11.86,б). Стек загружается только по команде CALL или по прерыванию, а разгружается - по команде RET.

В ОМЭВМ серии К1816 существует четкое разделение памяти на область программ и область данных. В область программ можно обратиться только по адресу, содержащемуся в СчК. Невозможно разместить фрагмент программы в свободной области памяти данных, т.к. процедуры обращения к ЗУ программ и данных проводятся с выработкой разных управляющих сигналов.

Память программ ОМЭВМ ..ВЕ48/49/35 может составлять до 4К байт, причем часть этой памяти (1-2К) может располагаться на кристалле. ОМЭВМ автоматически генерирует циклы обращения к внутренней памяти программ, если адрес команды (содержимое СчК) лежит в пределах внутренней памяти и на управляющий вход EMA подан L-уровень. При EMA = 1 независимо от содержимого СчК генерируется цикл обращения к внешней памяти программ. Таким образом, подав H-уровень на вход EMA, можно отключить внутреннюю память программ.

К системным ресурсам ОМЭВМ относится 8-разрядный таймер/счетчик внешних событий T. Это программно-доступный регистр (имеются команды MOV A,T и MOV T,A), который может работать (аппаратный суммирующий счетчик) в режиме таймера или счетчика внешних событий.


а)




7 0










00h

R0










01h

R1














РОН, банк 0




б)







07h

R7




7 0




08h




08

Сч. К [7:0]




09h




09

PSW[7:4]

Сч. К [11:8]








СТЕК

8уровней

по 2 байта





7 4 3 0




16h













17h













18h

R0










19h

R1














РОН, банк 1








1Fh

R7










20h
3Fh


ОЗУ







Рис. 11.86. Распределение памяти данных и формат уровня стека

В режиме таймера подсчитываются импульсы тактового генератора после делителя на 480. Таким образом, одна единица таймера соответствует 80 мкС (при тактовой частоте 6 МГц), а максимальное время счета - 20,4 мС. Запуск таймера осуществляется по команде STRT T, а прекращение счета - по команде STOP TCNT.

В режиме счетчика внешних событий подсчитывается число отрицательных перепадов (H  L) на входе T1; запуск режима счета внешних событий осуществляется по команде STRT CNT, а прекращение счета – по команде STOP TCNT.

Переполнение таймера/счетчика во всех режимах вызывает установку флага таймера TF, и внутреннее прерывание по адресу 007, если прерывание по таймеру не запрещено.

Содержимое таймера/счетчика может быть в любой момент считано в аккумулятор A и там проанализировано. Предварительной загрузкой в T константы (из аккумулятора) можно выбрать произвольное время отсчета (в пределах диапазона 0,08 .. 20,4 мС с шагом 0.08 мС)

^ Подсистема прерываний ОМЭВМ включает два радиальных прерывания: внешнее - по входу INT (с вектором 003) и внутреннее - по переполнению таймера/счетчика (вектор 007). Каждое прерывание может быть запрещено программно. Команды управления подсистемой прерываний приведены в разделе 1.24.4 (специальные команды).

При необходимости можно использовать вход счетчика внешних событий T1 для подачи второго внешнего радиального прерывания (с вектором 007). В этом случае таймер следует загрузить кодом FF, тогда появление импульса на T1 вызовет переполнение счетчика и прерывание с вектором 007.
^

1.24.3.Порты ввода/вывода


В состав ОМЭВМ входят три 8-разрядных двунаправленных порта ввода/вывода, причем порты P1 и P2 являются фактически квазидвунаправленными. Кроме того, с помощью линий порта P2 можно обращаться к четырем 4-разрядным портам P4..P7.

Порт P0 (DB) снабжен двунаправленным буфером и предназначен для связи с внешней памятью. Через DB в сопровождении строба ALE выдается 8-разрядный адрес внешней памяти данных или младший байт адреса памяти программ. Кроме того, через DB принимаются команды (в сопровождении строба PME\) или принимаются и выдаются данные (по стробам RD\ и WR\ соответственно. При отсутствии внешней памяти P0 можно использовать для связи с ВУ.

Порт P0 содержит 8-разрядный регистр, в который записывается информация при выводе в порт. При этом формируется строб записи WR\. Информация сохраняется в регистре до поступления новой информации. При считывании из порта информация снимается непосредственно с входных линий и не фиксируется в регистре порта. Считывание сопровождается выдачей строба WR\. Над входными данными и содержимым регистра могут производиться логические операции И и ИЛИ.



Рис. 11.87. Структура разряда квазидвунаправленного порта

Порты P1 и P2 так же содержат 8-разрядные регистры, предназначенные для фиксации выводимой информации (или маски для вводимой). Однако, порты не имеют двунаправленных буферных схем, поэтому для приема байта через P1 (P2) необходимо предварительно записать в регистр порта константу FFh, иначе разряды регистра, хранящие "0", передадут L-уровень на линии внутренней шины и в этих разрядах будут считаны лог."0" независимо от состояния входных линий. На Рис. 11.87 представлена схема одного разряда квазидвунаправленного порта.

Блок LB на Рис. 11.87 реализует логические операции над содержимым регистра порта и входным словом.

В системе команд предусмотрены команды ввода (IN) и вывода (OUT) для портов P0..P2, а так же конъюнкция и дизъюнкция содержимого регистра порта и непосредственного операнда (второй байт команды).

Кроме трех 8-разрядных портов, в ОМЭВМ предусмотрено подключение четырех
4-разрядных портов P4..P7, причем линии P2[3:0] используются для передачи 1/2-байта данных, линии P2[7:6] определяют номер порта, а P2[5:4] - операцию по команде:

0 0

- чтение

- MOVD A, Pp;

0 1

- запись

- MOVD Pp, A;

1 0

- конъюнкция

- ANLD Pp, A;

1 1

- дизъюнкция

- ORLD Pp, A.

В командах с 4-разрядными портами используется младшая тетрада аккумулятора A[3:0]. Синхронизация передачи осуществляется сигналом ST по выходу PROG/ST.
^

1.24.4.Система команд ОМЭВМ


Система команд ОМЭВМ серии К1816 ориентирована на эффективную реализацию процедур управления : маскированный ввод/вывод, логические операции, операции с битами, большое число команд условных переходов, арифметические операции в двоичном и десятичном кодах.

Программно-доступными объектами в составе ОМЭВМ серии К1816 являются: регистр - аккумулятор А, таймер/счетчик Т, порты ввода/вывода P0..P2,P4..P7, регистр PSW, два банка по восемь регистров R0..R7,R0'..R7 и 64 ячейки внутренней памяти данных - с адресами 00H..3FH. Кроме того, по специальной команде MOVX может быть доступна внешняя память данных с адресами 00H..FFH.

При программировании следует иметь в виду, что в качестве регистров (банк 0) R0..R7 используются ячейки внутренней памяти данных с адресами 00H..07H соответственно, а в качестве R0..R7' (банк 1) - ячейки 18H..20H. В ОМЭВМ серии К1816 предусмотрен 8-уровневый стек, в который автоматически (по команде CALL или в процедуре прерываний) загружается 12-разрядный программный счетчик PC и 4 флажка признаков. Таким образом, один уровень стека занимает два байта. Под стек используются регистры внутренней памяти данных с адресами 08H..17H, указатель стека младшие три бита регистра PSW.

В системе команд ОМЭВМ серии К1816 используются прямая, косвенная и непосредственная адресация. По прямому адресу можно обращаться к аккумулятору А, таймеру/счетчику Т, регистру PSW, портам ввода/вывода P0..P2,P4..P7 и регистрам R0..R7,R0'..R7. Примеры команд с прямой адресацией: ADD A,R3; MOV T,A; MOV A,PSW; IN A,P1;

Косвенно можно адресоваться к ячейкам памяти данных через регистры R0,R1 текущего банка, например:

MOV A,@R0 - чтение в аккумулятор содержимого ячейки внутреннего ОЗУ данных, адрес которой хранится в R0;

INC @R1 - добавление 1 к содержимому ячейки внутреннего ОЗУ данных, адрес которой хранится в R1;

MOVX A,@R0 - чтение в аккумулятор содержимого ячейки внешнего ОЗУ данных, адрес которой хранится в R0;

MOVX @R0,A - запись содержимого аккумулятора в ячейку внешнего ОЗУ данных, адрес которой хранится в R0;

Двухбайтовые команды с непосредственной адресацией позволяют загружать константу, содержащуюся во втором байте в регистры или косвенно адресуемые ячейки внутреннего ОЗУ или задавать второй операнд в двухместных арифметических и логических операциях, например:

MOV A,#5E; MOV R6,#40; MOV @R4,#77; ANL A,#08;

По типу операций можно выделить следующие классы команд: пересылки и загрузки, включая и команды обращения к портам ввода/вывода; арифметические и логические; передачи управления; специальные команды.

^ Класс команд пересылки и загрузки представлен главным образом разновидностями команд MOV, обеспечивающих пересылку информации между регистрами, ячейками внутренней памяти данных, аккумулятором, таймером, регистром PSW, а так же загрузку перечисленных объектов константами. Две команды позволяют считывать в аккумулятор А содержимое ячеек памяти программ:

MOV А,@А - считывает с текущей страницы содержимое ячейки памяти программ, косвенно адресуемой через аккумулятор: А:= ЗУ Прг(PC(11:8).А(7:0));

MOVP3 А,@А - считывает с третьей страницы содержимое ячейки памяти программ, косвенно адресуемой через аккумулятор: А:= ЗУ Прг(0011.А(7:0));

Команды обмена XCH меняют местами содержимое аккумулятора и регистра или косвенно адресуемой ячейки памяти. Команды XCHD меняют местами только младшие тетрады аккумулятора и ячейки памяти, при этом старшие тетрады остаются неизменными.

Команда SWAP А меняет местами старшую и младшую тетрады в аккумуляторе.

Чтение в аккумулятор содержимого портов P0..P2 осуществляется по командам IN А,P..; запись содержимого аккумулятора в порт P0..P2 - командами OUTL P..,А.

Для работы с четырехразрядными портами P4..P7 используют команды MOVD А,P..; MOVD P..,А, причем в обмене участвует только младшая тетрада.

^ Арифметические и логические команды делятся на одноместные и двухместные. В двухместных командах первый операнд размещается в аккумуляторе, туда же помещается результат. Второй операнд может адресоваться разными способами, например:

ADD A,R7; ADDC A,@R1; ANL A,#0F;

К двухместным операциям данного класса в ОМЭВМ К1816ВЕ35 относятся:

  1. ADD - сложение;

  2. ADDC - сложение с переносом;

  3. ANL - конъюнкция;

  4. ORL - дизъюнкция;

  5. XRL - сумма по модулю два (исключающее ИЛИ).

Следует обратить внимание, что в системе команд отсутствует команда вычитания!

Логические операции с непосредственной адресацией могут выполняться и над содержимым портов P0,P1,P2:

  1. ANL Pp,#D : Pp := Pp & #D;

  2. ORL Pp,#D : Pp := Pp  #D; Pp = [0,1,2].

Для четырехразрядных портов P3..P7 возможно выполнение логических операций с младшей тетрадой аккумулятора A[3:0]:

  1. ANLD Pq,A : Pq := Pq & A[3:0];

  2. ORLD Pq,A : Pq := Pq A[3:0]; Pq = [4,5,6,7].

Одноместные операции включают:

  1. DAA - десятичная коррекция аккумулятора;

  2. CLR A; CPL A - очистка аккумулятора; инверсия аккумулятора;

  3. INC A; INC R; INC @R - инкремент содержимого аккумулятора, регистра, ячейки памяти;

  4. DEC A; DEC R -декремент содержимого аккумулятора или регистра;

  5. RL A; RR A - циклический сдвиг аккумулятора влево и вправо;

  6. RLC A; RRC A - циклический сдвиг аккумулятора влево и вправо через триггер флага переноса;

Действия команд сдвигов описываются следующими выражениями:

  1. RL A: A[7:0] := A[6:0].A[7]; FC := A[7]

  2. RR A: A[7:0] := A[0].A[7:1]; FC := A[0]

  3. RLC A: FC.A[7:0] := A[7].A[6:0].FC;

  4. RLC A: FC.A[7:0] := A[0].FC.A[7:1];

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

Все команды переходов являются двухбайтовыми, причем только команда безусловного перехода JMP позволяет осуществить т.н. "длинный" переход - в пределах всей памяти программ. Остальные команды организуют переход в пределах текущей страницы (старшие 4 бита программного счетчика не меняются). Среди них:

  1. JMPP @A - безусловный переход по косвенному адресу PC[7:0] := A;

  2. JC/JNC - условные переходы по переносу/отсутствию переноса;

  3. JZ/JNZ - условные переходы по нулю/не нулю аккумулятора;

  4. JT0/JNT0 - условные переходы по состоянию входа T0;

  5. JT0/JNT1 - условные переходы по состоянию входа T1;

  6. JF0,JF1 - условные переходы по единичному значению флагов пользователя;

  7. JTF - условный переход по переполнению таймера;

  8. JNI - условный переход, если сигнал на входе запроса на внешнее прерывание INT = 0;

  9. JBb - условный переход по единичному значению заданного бита аккумулятора;

К командам передачи управления может быть отнесена команда организации цикла DJNZ Ri,a; где Ri - номер регистра (R0..R7), a - смещение на странице. Команда декрементирует содержимое заданного регистра и, если результат не равен нулю, осуществляется переход.

Команда безусловного вызова подпрограммы CALL позволяет вызвать подпрограмму из любой области памяти программ - она, подобно JMP, загружает все 12 разрядов PC. Предварительно старое значение PC вместе с PSW(7:4)(флаги) загружается в стек.

Во внутреннем языке К1816ВЕ35 существуют две команды безусловного возврата:

  1. RET - восстанавливает PC, не меняя PSW;

  2. RETR - восстанавливает PC и PSW[7:4].

Специальные команды можно, в свою очередь, разбить на несколько групп.

Команды управления таймером/счетчиком:

  1. STRT T - запуск таймера;

  2. STRT CNT - запуск счетчика внешних событий;

  3. STOP TCNT- останов таймера/счетчика.

Команды управления подсистемой прерываний:

  1. EN TSNTI - разрешить прерывание от таймера/счетчика;

  2. DIS TSNTI - запретить прерывание от таймера/счетчика;

  3. EN I - разрешить внешнее прерывание;

  4. DIS I - запретить внешнее прерывание.

Команды выбора блоков памяти:

  1. SEL RB0 - выбор банка регистров 0;

  2. SEL RB1 - выбор банка регистров 1;

  3. SEL RB0 - выбор блока 0 памяти программ;

Команды управления флагами:

  1. CLR C; CLR F0; CLR F1 - очистка признаков переноса и флажков пользователя;

  2. CPL C; CPL F0; CPL F1 - инверсия признаков переноса и флажков пользователя;

Прочие команды:

  1. ENT0 CLK - разрешение выдачи сигнала синхронизации на вывод T0; NOP - пустая операция.
^

1.24.5.Расширение ресурсов ОМЭВМ


При работе с внешней памятью программ ОМЭВМ выдает младший байт адреса команды через DB в сопровождении строба ALE и старший полубайт адреса СчК[11:8] - через P2[3:0]. В следующем такте снимается младший байт адреса и формируется строб чтения команды из внешней памяти программ PME. Считанный байт команды должен поступать на линии DB, с которых и передается в регистр команд. На Рис. 11.88 показана временная диаграмма обращения ОМЭВМ во внешнюю память программ, а на Рис. 11.89 – схема подключения памяти.



Рис. 11.88. Обращение к внешней памяти программ

Независимо от физического воплощения памяти программ, она рассматривается в ОМЭВМ как сплошной массив адресов 000..FFFh, причем адреса 000..7FF составляют нулевой блок памяти, а 800..FFF - первый. Переход из блока в блок путем естественного наращивания адреса СчК невозможен. Так, после команды (однобайтовой) по адресу 7FF будет выполнена команда по адресу 000, а не 800. Перенос в СчК[11] отсутствует, а его изменение возможно только специальными командами SEL MB0 и SEL MB1.



Рис. 11.89. Подключение внешней памяти программ
Наличие команд выбора блока памяти (программ) и выбора банка регистров SEL RB0 и SEL RB1 позволяет иметь в системе две в какой-то мере защищенных друг от друга области системных ресурсов. Эти области можно использовать для работы двух независимых программ или области программ и области подпрограмм.

Архитектура ОМЭВМ позволяет расширить память данных, подключив дополнительно 0,25К байт внешней памяти. В системе команд предусмотрены специальные команды обращения к внешней памяти данных:

  1. MOVX A,@R0 - чтение в аккумулятор содержимого ячейки внешнего ОЗУ данных, адрес которой хранится в R0;

  2. MOVX @R0,A - запись содержимого аккумулятора в ячейку внешнего ОЗУ данных, адрес которой хранится в R0.

Внешняя память данных адресуется только косвенно (через регистры R0 и R1), причем, поскольку мнемоника команд обращения к внешней и внутренней памяти данных различна (MOVX и MOV соответственно), допустимо иметь одинаковые адреса в этих типах памяти. Подключение внешней памяти данных показано на Рис. 11.90.


ОМЭВМ

К1816

ВЕ35/48

DB

ALE

Рг

D

D

C

CS




A[7:0]



Вне-

шнее

ОЗУ

дан-ных





WE




WR
RD

&




Рис. 1
Рис. 11.90. Подключение внешней памяти данных

Если системе недостаточно портов микро-ЭВМ (P0..P2, P4..P7), то возможно подключение внешних контроллеров параллельного обмена, например К580ВВ55. При этом допустимы различные варианты подключения: 1) подключить как внешнюю память данных с обращением по командам MOVX; 2) без использования адресного регистра, обращение по командам MOVX, однако используются только стробы RD и WR при работе команд MOVX. Адрес команды (содержимое регистра R0 или R1) безразличен, а для адресации используются линии порта P1 или P2. Соответствующие разряды должны быть загружены в порт до выполнения команды обращения к внешнему порту MOVX.

^

1.25. Однокристальная микроЭВМ К1816ВЕ51


Однокристальные микро-ЭВМ К1816ВЕ51/52 представляют как бы второе поколение микро-ЭВМ серии К1816 со значительно большими вычислительными мощностями. 16-разрядный программный счетчик и 16-разрядные регистры косвенного адреса позволяют управлять внешней памятью программ и данных по 64К байт. Значительно расширены возможности системы команд, увеличена номенклатура встроенных ВУ.

Микро-ЭВМ ..ВЕ52 отличается от ..ВЕ51 большей внутренней памятью данных (256 байт вместо 128) и наличием третьего встроенного таймера. Все остальные ресурсы кристаллов идентичны. Ниже будем рассматривать микро-ЭВМ К1816ВЕ52.
^

1.25.1.Семейство однокристальных ЭВМ MCS-51


История этого семейства началась с базового микроконтроллера i8051 и за последние 15 лет семейство пополнялось не только изделиями INTEL, но и микроконтроллерами других фирм. Однако почти все модели строго соблюдали архитектурные особенности, предложенные фирмой INTEL.

Но, наряду с существенными преимуществами микроконтроллеры INTEL обладают и недостатками, например: невозможностью построения операционных систем внутри кристалла или сложностью межпроцессорного обмена. Кроме того, часто хотелось бы иметь более высокую производительность при том же потреблении энергии или, наоборот, уменьшить потребление энергии не снижая производительности процессора. Поэтому многие производители семейства MCS51 вносят различные изменения в архитектуру, позволяющие оптимизировать отдельные характеристики микроконтроллера.

Фирма siemens components inc. выпускает микроконтроллеры, ориентированные на использование в бытовой технике, в том числе видеотехнике. Микросхемы содержат разнообразные встроенные устройства (АЦП, массивы счетчиков, дополнительные блоки умножения и деления, расширение портов ввода/вывода).

Фирма philips semiconductors выпускает микроконтроллеры, ориентированные на применение в бытовой или автомобильной технике. Благодаря аппаратной реализации шин I2C и CAN легко могут быть использованы в инструментальных комплексах. Микросхемы содержат разнообразные встроенные устройства (АЦП, массивы счетчиков, расширение портов ввода/вывода). Имеются варианты с пониженным питающим напряжением и в компактных корпусах.

Фирма oki semiconductor производит полностью статические микросхемы по технологии CMOS, являющиеся функциональным аналогом микросхем фирмы INTEL с дополнительными возможностями. Имеют улучшенные характеристики по цепям питания. Применен корпус, в котором внутренняя шина вынесена наружу в виде разъема для установки ПЗУ.

Фирма matra mhs производит статические микросхемы, представляющие собой аналоги стандартных моделей семейства MCS51 с улучшенными выходными цепями портов ввода/вывода.

Фирма advanced micro devices (AMD) выпускает по технологиям CMOS и NMOS функциональные аналоги микросхем фирмы INTEL с дополнительными возможностями.

Фирма fujitsu выпускает функциональные аналоги микросхем i8031, i8051 и i8751 по технологии NMOS.

Объединение atmel производит стандартные микроконтроллеры с ПЗУ по технологии Flash объемом 4 Кбайт в обычных и уменьшенных корпусах.

^

1.25.2.Структура микро-ЭВМ К1816ВЕ51


Структурная схема микро-ЭВМ К1816ВЕ52 показана на Рис. 11.91.

Большинство сигналов ..ВЕ52 имеют назначение, аналогичное соответствующим сигналам ..ВЕ48:

ALE - строб адреса;

PSEN\ - строб чтения внешней памяти программ;

RD\,WR\- стробы чтения и записи внешней памяти данных;

EA\ - разрешение обращения во внутреннюю память программ;

T0,T1,T2 - входы счетчиков внешних событий;

INT0,INT1- запросы внешних радиальных прерываний; Дополнительно введен сигнал управления счетчиком T2 и последовательные линии связи:

T2EX - управление режимом таймера/счетчика T2;

RxD - вход данных последовательного канала;

TxD - выход данных последовательного канала.





Рис. 11.91. Структура микро-ЭВМ К1816ВЕ52

В состав ..ВЕ52, как и ..ВЕ48, входят параллельные 8-разрядные квазидвунаправленные порты P0..P2. Кроме того, большинство управляющих линий “собрано” в порт P3:




7

6

5

4

3

2

1

0

P3

RxD

TxD

INT0\

INT1\

T0

T1

WR\

RD\


Таким образом, в циклах обращения к внешним ресурсам на линиях порта P3 работают управляющие сигналы, а при отсутствии необходимости управления внешними ресурсами эти же линии могут быть использованы как линии порта.

Для управления счетчиком T2 использованы две линии порта P1: T2 = P1.0, а T2EX = P1.1.

Для подключения внешних ресурсов можно организовать внешние магистрали микро-ЭВМ (Рис. 11.92), причем наличие отдельных сигналов для стробирования чтения из памяти программ (PSEN) и обращения к памяти данных (RD, WR) позволяет иметь непересекающиеся пространства для этих типов внешней памяти.
^

1.25.3.Архитектурные особенности микро-ЭВМ



Микро-ЭВМ ..ВЕ52 позволяет управлять пятью (частично пересекающимися) адресными пространствами памяти, четыре из которых являются областями данных:

  • RSEG - пространство регистров (48 байт);

  • DSEG - пространство внутренней памяти данных (256 байт);

  • BSEG - битовое пространство данных (256 бит);

  • XSEG - пространство внешней памяти данных (до 64К байт);

  • CSEG - пространство программного кода (до 64К байт).





Рис. 11.92. Организация магистрали для подключения внешних ресурсов

Пространства RSEG и BSEG частично пересекаются, физически совмещаются с DSEG и образуют единую внутреннюю среду для хранения данных. Это позволяет одни и те же данные рассматривать с разных позиций (ячейка памяти, регистр, битовое поле, порт ввода/вывода и т.п.) и организовывать наиболее удобный для данного случая доступ к ним.

Характерно, что все порты ввода/вывода, системные регистры, таймеры так же отображены на пространство DSEG.

Пространство регистров представлено четырьмя банками регистров по 8 РОН в каждом, а так же 16-разрядными программным счетчиком PC и регистром косвенного адреса DPTR, 8-разрядными аккумуляторами A и B, указателем стека SP и регистром PSW (Рис. 11.93)

15 0




PC




DPH

DPL

DPTR

B

A







C

AC

F0

RS

OV

P

PSW




SP







7 0



1   2   3   4   5   6   7   8   9   10



Скачать файл (2465.5 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации