Микроконтроллеры на тему: «MCS-96»

Автор работы: Пользователь скрыл имя, 22 Декабря 2011 в 14:01, контрольная работа

Описание

В последнее время на российском рынке цифровых интегральных схем можно найти практически любые микроконтроллеры. Мы остановимся на шестнадцатиразрядных микроконтроллерах семейства MCS-96 фирмы Intel. МК этого семейства предназначены для использования в управляющих и контрольноизмерительных системах и приборах различного назначения в качестве встраиваемых микропроцессорных устройств.

Содержание

Введение…………………………………………………………………….3
Структура микроконтроллеров семейства MCS-96…………………….. 4
Порты ввода/вывода информации…………………………………….......9
Таймер/счетчик MCS-96………………………………………………….14
Организация прерываний, модули прерываний………………………...18
Общие сведения о системе команд……………………………………....21
7. Доступ к внешней памяти…………………………………………………26
8. Заключение…………………………………………………………………29
9. Список литературы ………………………………………………………..30

Работа состоит из  1 файл

семестровая по мкс 96.doc

— 313.00 Кб (Скачать документ)

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

Режим 1. Работа любого Т/С в режиме 1 такая же, как и в режиме 0, за исключением того, что таймерный регистр имеет разрядность 16 бит.

Режим 2. В режиме 2 работа организована таким образом, что переполнение (переход из состояния "все единицы" в состояние "все нули") 8-битного счетчика TL1 приводит не только к установке флага TF1(рис.3.10,б), но и автоматически перезагружает в TL1 содержимое старшего байта (TH1) таймерного регистра, которое предварительно было задано программным путем. Перезагрузка оставляет содержимое ТН1 неизменным. В режиме 2 Т/С0 и Т/С1 работают совершенно одинаково.

Рис. 3.10. Таймер/счетчик событий: а - T/C1 в режиме 0: 13-битный счетчик: б - Т/С1 в режиме 2: 8-битный автоперезагружаемый счетчик; в - Т/С0 в режиме 3: два 8-битный счетчика  

Режим 3. В режиме 3 Т/C0 и Т/C1 работают по- разному. Т/C1 сохраняет неизменным свое текущее содержимое. Иными словами, эффект такой же, как и при сбросе управляющего бита TRI в нуль.

Работу T/C0 в режиме 3 иллюстрирует рис.3.10, в. В режиме 3 TL0 и ТН0 функционируют как два независимых 8-битных счетчика. Работу TL0 определяют управляющие биты T/C0 (C/ ¬T, GATE, TR0), входной сигнал ¬INT0 и флаг переполнения TF0, Работу TH0, который может выполнять только функции таймера (подсчет машинных циклов МК), определяет управляющий бит TR1. При этом ТН0 использует флаг переполнения TF1.

Режим 3 используется в тех случаях применения МК96, когда требуется наличие дополнительного 8-битного таймера или счетчика событий. Можно считать, что в режиме 3 МК96 имеет в своем составе три таймера/счетчика. В том случае, если Т/С0 используется в режиме 3, Т/С1 может быть или включен, или выключен, или переведен в свой собственный режим 3, или может быть использован последовательным портом в качестве генератора частоты передачи, или, наконец, может быть использован в любом применении, не требующем прерывания. 
 

5. Организация прерываний, модули прерываний 

Упрощенная  схема прерываний МК96 показана на рис.3.13..

Рис. 3.13. Схема прерываний МК96

Внешние прерывания ¬INT0 и ¬INT1 могут быть вызваны либо уровнем, либо переходом сигнала из 1 в 0 на входах МК51 в зависимости от значений управляющих бит IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются флаги IE0 и IE1 в регистре TCON, которые инициируют вызов соответствующей подпрограммы обслуживания прерывания. Сброс этих флагов выполняется аппаратурно только в том случае, если прерывание было вызвано по переходу (срезу) сигнала. Если же прерывание вызвано уровнем входного сигнала, то сбросом флага IE управляет соответствующая подпрограмма обслуживания прерывания путем воздействия на источник прерывания с целью снятия им запроса.

Флаги запросов прерывания от таймеров TF0 и TF1 сбрасываются автоматически при передаче управления подпрограмме обслуживания. Флаги запросов прерывания RI и ТI устанавливаются блоком управления УАПП аппаратурно, но сбрасываться должны программой.

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

В блоке  регистров специальных функций  есть два регистра, предназначенных для управления режимом прерываний и уровнями приоритета. Форматы этих регистров, имеющих символические имена IE и IP описаны в табл.12.1. и табл.12.2 соответственно. Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает систему прерываний МК96 исключительно гибкой.

Таблица 12.1. Регистр масок прерывания (РМП)

Символ Позиция Имя и назначение
ЕА IE.7 Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IЕ4 - IЕ0
---- IE.6 Не используются
---- IE.5
ES IE.4 Бит разрешения прерывания от УАПП. Установка/сброс  программой для разрешения/запрета  прерываний от флагов TI или RI
ET1 IE.3 Бит разрешения прерывания от таймера 1. Установка/сброс  программой для разрешения/запрета прерываний от таймера 1
EX1 IE.2 Бит разрешения внешнего прерывания 1. Установка/сброс  программой для разрешения/запрета  прерываний
ET0 IE.1 Бит разрешения прерывания от таймера 0. Работает аналогично IE.3
EX0 IE.0 Бит разрешения внешнего прерывания 0. Работает аналогично IE.2
 

 

Таблица 12.2. Регистр приоритетов прерываний

Символ Позиция Имя и назначение
---- IP.7 - IP.5 Не используются
PS IP.4 Бит приоритета УАПП. Установка/сброс программой для  присваивания прерыванию от УАПП высшего/низшего приоритета
PT1 IP.3 Бит приоритета таймера 1 . Установка/сброс программой для присваивания прерыванию от таймера 1 высшего/низшего приоритета
PX1 IP.2 Бит приоритета внешнего прерывания 1. Установка/сброс  программой для присваивания высшего/низшего  приоритета внешнему прерыванию ¬INT1
PT0 IP.1 Бит приоритета таймера 0. Работает аналогично IP.3
PX0 IP.0 Бит приоритета внешнего прерывания 0. Работает аналогично IP.2
 

 

Флаги прерываний опрашиваются в момент S5P2 каждого машинного цикла. Ранжирование прерываний по уровню приоритета выполняется в течение следующего машинного цикла. Система прерываний сформирует аппаратурно вызов (LCALL) соответствующей подпрограммы обслуживания, если она не заблокирована одним из следующих условий:

1) в  данный момент обслуживается запрос прерывания равного или более высокого уровня приоритета;

2) текущий  машинный цикл – не последний  в цикле выполняемой команды;

3) выполняется  команда RETI или любая команда,  связанная с обращением к регистрам  IE или IP.

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

По аппаратурно-сформированному  коду LCALL система прерывания помещает в стек только содержимое счетчика команд (PC) и загружает в счетчик команд адрес вектора соответствующей подпрограммы обслуживания. По адресу вектора должна быть расположена команда безусловной передачи управления (JMP) к начальному адресу подпрограммы обслуживания прерывания. Подпрограмма обслуживания в случае необходимости должна начинаться командами записи в стек (PUSH) спора состояния программы (PSW), аккумулятора, расширителя, указателя данных и т.д. и заканчиваться командами восстановления из стека (POP). Подпрограммы обслуживания прерывания обязательно завершаются командой RETI, по которой в счетчик команд перезагружается из стека сохраненный адрес возврата в основную программу. Команда RET также возвращает управление прерванной основной программе, но при этом не снимает блокировку прерываний, что приводит к необходимости иметь программный механизм анализа окончания процедуры обслуживания данного прерывания.

6. Общие сведения о системе команд

Система команд МК96 содержит 111 базовых команд, которые удобно разделить по функциональному признаку на пять групп: команды передачи данных, арифметических операций, логических операций, передачи управления и операций с битами.

Система команд МК96 много мощнее и шире системы команд МК48, так как кроме всех команд МК48 в ее состав входят команды умножения, деления, вычитания, операций над битами, операций со стеком и расширенный набор команд передачи управления. Большинство команд (94) имеют формат один или два байта и выполняются за один или два машинных цикла. При тактовой частоте 2 МГц длительность машинного цикла составляет 1 мкс. На Рис. 3.19. показаны 13 типов команд МК96. Первый байт команды любых типа и формата всегда содержит код операции (КОП). Второй и третий байты содержат либо адреса операндов, либо непосредственные операнды.

Типы  операндов. Состав операндов МК96 шире, чем МК48, и включает в себя операнды четырех типов: биты, 4-битные цифры, байты и 16-битные слова.

В отличие  от МК48, который имеет только три битовых флага, МК96 имеет 128 программно-управляемых флагов пользователя. Имеется также возможность адресации отдельных бит блока регистров специальных функций и портов. Для адресации бит используется прямой 8-битный адрес (bit). Косвенная адресация бит невозможна. Карты адресов отдельных бит представлены Ри с.3.20 и Рис.3.21. Четырехбитные операнды используются только при операциях обмена (команды SWAP и XCHD). Восьмибитным операндом может быть ячейка памяти программ или данных (резидентной или внешней), константа (непосредственный операнд), регистры специальных функций (РСФ), а также порты ввода/вывода. Порты и РСФ адресуются только прямым способом. Байты памяти могут адресоваться также и косвенным образом через адресные регистры (R0, R1, DPTR и PC). Двухбайтные операнды - это константы и прямые адреса, для представления которых используются второй и третий байты команды.

Способы адресации данных. В МК96 используются такие же способы адресации данных, как и в МК48: прямая, непосредственная, косвенная и неявная. Следует отметить, что при косвенном способе адресации РПД в отличие от МК48 используются все восемь бит адресных регистров R0 и R1.

Система команд МК96 по сравнению с МК48 допускает больше комбинаций способов адресации операндов в командах, что делает ее более гибкой и универсальной.

Флаги результата. Слово состояния программы (PSW) включает в себя четыре флага: C - перенос, AC - вспомогательный перенос, O - переполнение и P - паритет.

Флаг  паритета (отсутствует в МК48) напрямую зависит от текущего значения аккумулятора. Если число единичных бит аккумулятора нечетное, то флаг P устанавливается, а если четное - сбрасывается попытки изменить флаг Р, присваивая ему новое значение, будут безуспешными, если содержимое аккумулятора при этом останется неизменным.

Флаг  АС устанавливается в случае, если при выполнении операции сложения/вычитания между тетрадами байта возник перенос/заем.

Флаг C устанавливается, если в старшем  бите результата возникает перенос  или заем. При выполнении операций умножения и деления флаг C сбрасывается. Флаг OV (отсутствует в МК48) устанавливается, если результат операции сложения/вычитания не укладывается в семи битах и старший (восьмой) бит результата не может интерпретироваться как знаковый. При выполнении операции деления флаг OV сбрасывается, а в случае деления на нуль устанавливается. При умножении флаг OV устанавливается, если результат больше 255.

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

Таблица 3.1. Команды, модифицирующие флаги результата

Команды Флаги   Команды Флаги
ADD C, OV, AC CLR C C = 0
ADDC C, OV, AC CPL C C = ¬C
SUBB C, OV, AC ANL C, b C
MUL C = 0, OV ANL C, /b C
DIV C = 0, OV ORL C, b C
DA C ORL C, /b C
RRC C MOV C, b C
RLC C CJNE C
SETB C C = 1    

Информация о работе Микроконтроллеры на тему: «MCS-96»