Скачиваний:
74
Добавлен:
04.03.2014
Размер:
202.75 Кб
Скачать

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ

УНИВЕРСИТЕТ имени Н.Э.БАУМАНА

Кафедра РК-10

Б.Б.Михайлов, О.И.Елисеева

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

К ВЫПОЛНЕНИЮ ЛАБОРАТОРНОЙ РАБОТЫ №4

«Исследование однокристального микропроцессора 1816ВЕ51»

по курсу «Элементы электроники и микропроцессорной

техники РТС»

Москва

2006Г. Исследование однокристального микропроцессора

Однокристальные микропроцессоры этого типа состоят из традиционного набора устройств: АЛУ, РОНы, память, порты. Первая особенность этих процессоров заключается в том, что все перечисленные устройства располагаются в одном кристалле, вторая – в наличии двух разных независимых памятей: одной – для хранения программ, второй – для хранения данных. Существуют много аналогичных процессоров, выпускаемых как в нашей стране, так и за рубежом. Основные параметры, по которым они различаются, это:

- быстродействие;

  • тип и объем памяти;

  • число и сложность выполняемых команд в АЛУ;

  • количество и возможности портов.

1. Краткое описание микропроцессора 1816ве51

Структура процессора 1816ВЕ51 приведена на рис.1. Основа процессора 8р – шина, которая связывает основные устройства процессора. В частности:

  • АЛУ (со вспомогательными регистрами);

  • резидентную память (программ и данных);

  • блок регистров специальных функций;

  • порты ввода/вывода;

  • блок синхронизации и управления.

1.1. АЛУвыполняет арифметические операции, включая умножение и деление, логические операции, операции сдвига и т.д. В АЛУ входят также два программно недоступных триггера Т1 и Т2, аккумулятор, схема десятичной коррекции и регистр слова состояния программы (ССП илиPSW).

АЛУ оперирует четырьмя типами (форматами) информации:

  • 1р словами ( «битный» процессор);

  • 4р словами (цифровыми словами);

  • 8р словами (байтами);

  • 16р словами (адресами).

В АЛУ выполняется 111 базовых операций преобразования и пересылки данных. Используется 11 режимов адресации: 7 для данных и 4 для адресов. В результате общее число вариантов команд составляет 255 при однобайтном коде команды.

Аккумуляторявляется источником операнда и местом фиксации результата. Он используется при выполнении арифметических и логических операций, операциях сдвига, проверки на ноль, формирования флагов и т.д.

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

Регистр слова состояния программы (ССП или PSW)является местом занесения признаков полученного результата (флагов), хранящегося в аккумуляторе.

7p 6 5 4 3 2 1 0p

С

АС

F0

RS1

RS0

OV

X

P

С – флаг переноса. Устанавливается после выполнения арифметических операций при наличии переноса из старшего разряда.

АСфлаг переноса из третьего бита результата (полуперенос). Используется при выполнении операции десятичной коррекции.

F0флаг пользователя. Может устанавливаться, сбрасываться и проверяться программно.

RS0,RS1 – определяют банк регистров резидентной памяти данных (РПД) следующим образом:

00 – 0 банк адреса 00Н – 07Н

01 – 1 банк адреса 09Н – 0FH

10 – 2 банк адреса 10Н – 17Н

11 - 3 банк адреса 18Н – 1FH

Разряды RS0,RS1 устанавливаются и сбрасываются программно

OV – флаг переполнения. Устанавливается после выполнения арифметических операций, если результат превышает разрядность процессора.

Р – флаг паритета. Фиксирует четное число бит (единиц) в аккумуляторе (контроль четности).

1.2. Резидентная память. Память данных и память программы на данном кристалле физически и логически разделены, имеют разные механизмы адресации и работают под управлением разных устройств.

Память программ(ПЗУ или СППЗУ) имеет емкость 4 Кбайта и предназначена для хранения команд, констант, таблиц, команд инициализации, и т.п. Память программ имеет 16р шину адреса. Доступ к памяти обеспечивается с помощью счетчика команд (СК) или регистра-указателя данных (РУД).

Память данных(ОЗУ) предназначена для хранения переменных в процессе выполнения программы. Она имеет объем 128 байт. Адресуется байтом. К адресному пространству ОЗУ примыкают адреса регистров блока специальных функций (аккумулятор, ССП указатель стека, порты, регистр приоритетов и т.п.). Доступ к памяти обеспечивается с помощью регистра адреса (РА) и регистра-указателя стека (РУС).

Память программ и память данных может быть расширена до 64 Кбайт путем подключения дополнительных (внешних) микросхем памяти.

Регистры-указателипредназначены для занесения адреса ячейки памяти:

- регистр-указатель стека (РУС или SP) – 8р регистр, который служит для адресации любой области резидентной памяти данных. По командамPUSHиCALLего значение инкрементируется, по командам – декрементируется. Измерение содержимого РУС (SP) осуществляется до выполнения командыPUSH,CALL(прединкрементная адресация) и после выполнения команд РОР иRET(постдекрементная адресация). В процессе инициализации в этот регистр загружается код 07Н, т.е. первый исполнительный адрес - 08Н;

- регистр-указатель данных (РУД или DPTR) используется для фиксации 16р адреса при операциях с обращением к внешней памяти. Он может также использоваться как два самостоятельных 8р регистраDPHиDPL.

Внешняя память. Совместно с микропроцессором может использоваться внешняя память двух типов:

  • постоянная память для записи программ (внешняя память программ - ВПП);

  • оперативная память для хранения данных (внешняя память данных - ВПД).

Доступ к внешней памяти программ осуществится с помощью специального сигнала микропроцессора РВПД, который подается на вход RDпамяти (чтение).

Доступ к вешней памяти данных осуществляется с помощью сигналов ЧТ и 3П, для формирования которых используются разряды порта 3 (Р3.7 и Р3.6).

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

1.3. Блок регистров специальных функций состоит из нескольких регистров, предназначенных для задания режимов работы микропроцессора и реализации функций периферийных устройств.

Таймер/счетчик. В составе микропроцессора есть две регистровые пары ТН0, ТL0 и ТН1,TL1. На основе этих пар строятся два независимых программно-управляемых шестнадцати разрядных таймера. При работе в качестве таймера содержимое инкрементируется в каждом машинном цикле (через 12 периодов). При использовании таймера в качестве счетчика событий содержимое регистров инкрементируется при подаче внешнего сигнала на входы Т0 или Т1. Существует несколько режимов работы счетчика: таймер, счетчик событий, формирователь задержки и т.п.

Последовательный порт. Регистр с именемSBUFявляется по сути регистром последовательного порта, т.е. работает как два регистра: буфер приемника (ПР) и буфер передатчика (ПЕР). Загрузка регистраSBUFвызывает передачу информации через последовательный порт. Если этот регистр читается, то информация, поступившая через последовательный порт, вводится в микропроцессор. Последовательный порт может работать в 4-х режимах: с внутренней синхронизацией, синхронизацией от таймера и т.д.

Остальные регистры специальных функций IP,IE,TMOD,TCOM,SCON,PCONиспользуются для организации прерываний, изменения управляющих бит, управления последовательным портом и т. п.

Генератор. В микропроцессе 1816ВЕ51 есть свой встроенный генератор. Для его работы к входам Х1 и Х2 подключается кварцевый резонатор. Генератор подает сигналы в устройство управления, которое формирует машинный цикл фиксированной длительности. Один машинный цикл составляет 12 тактов работы генератора. Большинство команд выполняется за один машинный цикл. Некоторые команды – оперирующие с двухбайтовыми словами или обращающиеся к внешней памяти – выполняются за два цикла. Команды умножения и деления требуют 4-х машинных циклов.

1.4. Порты ввода/вывода. Все порты предназначены для ввода или вывода информации побайтно. Каждый порт имеет выходной буфер и входной буфер. Особенности портов:

1) При обращении к внешней памяти необходимо использовать порты 0 и 2. При этом через порт 0 сначала выдается младший байт адреса, затем осуществляется прием или передача данных (дуплексный обмен). Через порт 2 выдается старший байт адреса памяти, если разрядность адреса превышает 8.

2) Порт 3 может использоваться как для обмена данными, так и для реализации альтернативных функций. В последнем случае выводы порта 3 имеют следующее назначение

7p 6 5 4 3 2 1 0p

RD

WR

T1

T0

INT1

INT0

TxD

RxD

RD- чтение сигналы для обращения к внешней памяти данных

WR- запись

T0 входы таймеров/счетчиков

T1

INT0 внешние сигналы запроса прерывания

INT1

TXD- выход сигналы последовательного порта

RxD- вход

3) Порт «0» – является двунаправленным, порты 1, 2, 3 - квазидвунаправленными. Для записи информации в эти порты необходима их предварительная установка в единицу. Для этого используется специальная команда «Сброс», по которой порты настраиваются на ввод данных.

4) Обращение к портам возможно с помощью команд, оперирующих с байтом, отдельным битом или комбинацией бит. Процессор имеет возможность выполнять некоторые команды с разрядами порта без использования аккумулятора.

1.5.Система прерыванийПроцессор имеет пять внешних источников прерывания. Ниже приведены их имена, адреса и уровни приоритета.:

INT0 от внешнего сигнала→000ЗН 1

INT1 от внешнего сигнала→ 000ВН 2

TF0 от таймера→ 000ЗН 3

TF1 от таймера→ 001ВН 4

RIот последоват. порта→ 0023Н 5

TI

Управление прерываниями осуществляется с помощью двух регистров блока специальных функций: IEиIP. РегистрIEпредназначен для маскирования того или иного прерывания, регистрIP- для установки приоритетов прерываний.

Система прерываний аппаратно формирует вызов LCALLсоответствующей подпрограммы обслуживания, если он не запрещен. Аппаратно система прерываний помещается в стек только содержимое счетчика команд и загружает его адресом вектора. По этому адресу должен находиться безусловный переход для передачи управления подпрограмме обслуживания данного прерывания. Возврат из подпрограммы прерывания выполняется с помощью командRETилиRETI.

1.6. Система команд. Процессор выполняет 111 базовых команд, которые делятся на пять групп:

  • команды передачи данных;

  • команды арифметических операций;

  • команды логических операций;

  • команды операций с битами (разрядами);

  • команды передачи управления.

Перечень команд приведен в таблице 1, структура команд – на рис.2. В командах используются прямой, непосредственный, косвенный и неявный способы адресации. При косвенной адресации используются биты регистров R0 иR1.Следует отметить, что:

- 8р операнд это ячейка памяти программ или данных (резидентной или внешней), константа (непосредственный операнд), регистр специальных функций или порт ввода/вывода;

  • 16р операнд это константа или прямой адрес, расположенные во втором и третьем байтах команды.

Команды передачи данных. Это команды передачи и обмена данных. Все эти команды не модифицируют регистр флагов, кроме команд загрузки аккумулятора и самого регистра флагов. Большинство команд передачи данных осуществляется через аккумулятор, но возможен доступ к регистрам портов минуя аккумулятор. К самому аккумулятору можно обращаться используя прямую адресацию (А) и неявную адресации (АСС).

При обращении к внешней памяти данных (ВПД) используется либо восьмиразрядный адрес в регистре Riи команда с прямой адресациейMOVX@Ri(для доступа к 256 байтам), либо 16р адрес в регистре указателе данных (DPTR) и командаMOUX@DPTR(для доступа к 64 К адресам).

Арифметические команды(24 шт.). Эти команды реализуют операции сложения, вычитания, умножения (байтов), деления (байтов), инкрементирования, декрементирования, десятичной коррекции. При выполнении команд используется аккумулятор.

Логические команды(25 шт.). Эти команды реализуют операции типа И, ИЛИ, исключающее ИЛИ, инверсия, сброс, сдвиг. Операции сброса и инверсии могут выполняться над отдельными битами. Обычно при выполнении используется аккумулятор, но часть команд может выполняться на регистрах портов. Это особенно эффективно при вводе и выводе информации.

Команды операций с битами. Эти команды оперируют с однобитовыми операндами. Это биты регистров специальных функций и 128 программируемых флагов (битов) пользователя. Есть команды сброса (CLR), установки (SETB), очистки (CPL) отдельных бит, включая флаг переноса, а также логические команды И и ИЛИ для выбранных бит. В этих командах используется прямая адресация (адрес =bit).

Команды передачи управления. Это команды условного и безусловного перехода, вызова подпрограмм, возврата из подпрограмм, командаNOP. Большинство команд используют прямую адресацию. Есть несколько разновидностей команд перехода.

Длинный переход. Это переход по всему адресному пространству. Во втором и третьем байтах команды содержится полный 16р адрес перехода (ad16). Эти команды используются редко - тогда, когда возникает необходимость перехода по всему адресному пространству.

Абсолютный переход. Это переход в пределах одной страницы памяти программы размером 2048 байт. Эти двухбайтные команды содержат только 11 младших разрядов адреса (ad11).

Относительный переход. Это короткий переход в пределах -128…+127 ячеек адресов относительно адреса следующей команды. Это команды типа SJMP, (SHORTJUMP). Адрес относительного перехода находится во втором байте команды (rel). Именно этот переход используется во всех командах условного перехода.

Косвенный переход. Этот переход выполняется по адресу, определяемому как сумма содержимого аккумулятора и регистра-указателя данных (JMP@A+DPTR). Иными словами адрес вычисляется в процессе выполнения программы и в момент написания программы может быть неизвестен.

Условный переход. Эти команды обеспечивают возможность ветвления программы по следующим условиям: аккумулятор тождественно равен нулю (JZ), аккумулятор не равен нулю (JNZ), разряд переноса С=1 (JC), разряд переноса С=0 (JNC), адресуемый бит Вi=1 (JB), адресуемый бит Вi=0 (JNB).

Работа с подпрограммами. Для вызова подпрограмм используются командыLCALLиACALL. Эти команды сохраняют в стеке только адрес возврата. Все регистры, которые используются в подпрограмме, должны сохраняться и восстанавливаться пользователем. Для возврата из подпрограммы используются командыRETиRETI.

Соседние файлы в папке Методы к лабам