|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Структура МК48Структура МК48 показана на рис.5.1. Основу структуры образует внутренняя двунаправленная 8 - битная шина, которая связывает между собой все элементы микроконтроллера: арифметико - логическое устройство (АЛУ), устройство управления (УУ), резидентную память данных (RАМ) и память программ (EPRON), программный счетчик (РС), регистр адреса (RAR), таймер/ счетчик (TCNT), слово состояния программы (PSW), регистр команд (РК) и порты ввода / вывода информации (Р1, Р2, DB). В состав АЛУ входят следующие блоки: комбинационная схема обработки байтов, регистры Т1 и Т2, регистр - аккумулятор (А), схема десятичного корректора и схема формирования признаков (PSW). Аккумулятор используется в качестве регистра операнда и регистра результата. Регистр временного
Рис. 5.1 – Структура МК48
хранения операнда Т1 программно недоступен и используется для временного хранения второго операнда при выполнении двухоперандных команд. При выполнении операций обработки данных в АЛУ вырабатываются флаги (признаки), которые формируются на комбинационной схеме и не фиксируются на триггерах. К таким флагам относятся флаг нулевого содержимого аккумулятора и флаг наличия единицы в селектируемом бите аккумулятора. Логика условных переходов по указанным флагам позволяет выполнять команды передачи управления (JZ, JNZ, JB0 - IB7) без их фиксации на триггерах. Флаги переноса и вспомогательного переноса (перенос “единицы” из младшей тетрады в старшую) фиксируются на триггерах, входящих в состав регистра слова состояния программы (PSW). Формат PSW показан на рис.5.2.
Рис. 5.2 – Формат PSW
Кроме перечисленных признаков логика условных переходов МК48 оперирует флагами F0 и F1, функциональное назначение которых определяется разработчиком; флагом переполнения таймера TF, сигналами на входах T0 и T1. Программистом могут быть также использованы флаги рабочего банка регистров BS и выбранного банка внешней памяти программ МВ. Кроме того, логикой переходов после окончания каждого машинного цикла опрашивается флаг разрешения / запрета прерываний. Память программ и память данных в МК48 физически и логически разделены. Память программ реализована в резидентном ППЗУ объемом 1К байт. Максимальное адресное пространство, отводимое для программ, составляет 4К байт. Счетчик команд (РС) содержит 12 бит, но инкрементируются в процессе счета только младшие 11 бит. Поэтому РС из предельного состояния 7FFH (если только по этому адресу не расположена команда передачи управления) перейдет в состояние 000H. Состояние старшего бита счетчика команд может быть изменено специальными командами (SEL MB0, SEL MB1). Подобный режим работы позволяет создать два банка памяти емкостью по 2К байт каждый. В свою очередь, оба банка памяти разделены на страницы по 256 байт в каждой. В командах условного перехода задается 8 - битный адрес передачи управления в пределах текущей страницы. Межстраничные переходы обеспечиваются модификацией 11 - го бита РС при вызове подпрограмм в пределах выбранного банка памяти программ. Карта адресов памяти программ показана на рис. 5.3.
Рис. 5.3 – Карта адресов памяти программ
В резидентной памяти программ имеются три специализированных ячейки с адресами 00H, 03H и 07H, в которых должны находиться соответственно вектор безусловного перехода к началу программы после окончания сигнала RST, вектор прерывания от внешнего источника (вход INT) и вектор прерывания от таймера или начальная команда подпрограммы обслуживания прерывания по признаку переполнения TCNT. Резидентная память данных емкостью 64 байта имеет в своем составе два банка рабочих регистров 0 - 7 и 24 - 31 (см. рис. 5.4) по восемь регистров в каждом. Выбор банка регистров осуществляется по команде SEL RB0 или SEL RB1. Рабочие регистры доступны по командам с прямой адресацией, а все ячейки РПД - по командам с косвенной адресацией. В качестве регистров косвенного адреса используются регистры R0 и R1 и R0* и R1*. Ячейки RAM с адресами 8 - 23 адресуются указателем стека из PSW и могут быть использованы в качестве 8 - уровневого стека. В случае, если уровень вложенности программ меньше восьми, незадействованные в стеке ячейки могут использоваться как ячейки RAM. КМ1816ВЕ48 не имеет команд загрузки байта в стек или его извлечения из стека, и в нем фиксируются только содержимое РС и старшая тетрада PSW. В силу этого необходимо следить за тем, чтобы вложенные подпрограммы не использовали одни и те же рабочие регистры.
Рис. 5.4 – Карта адресов памяти данных Для связи МК48 с объектом управления используются 27 линий. Эти линии сгруппированы в три порта (Р1, Р2 и DB) по восемь линий в каждом и могут быть использованы для ввода, вывода или для ввода / вывода информации через двунаправленные линии. Кроме портов имеются три линии, сигналы на которых могут изменять ход программы по командам условного перехода (INT, T0, T1). Порты Р1 и Р2 позволяют осуществлять побитную обработку информации и являются квазидвунаправленными. Последнее означает, что для того чтобы настроить некоторую линию на режим ввода в МК48, необходимо перед этим в буферный триггер этой линии записать “1”. Сигнал RST автоматически записывает во все линии портов Р1 и Р2 сигнал “1”. Квазидвунаправленная структура портов Р1 и Р2 специфична тем, что в процессе ввода информации выполняется операция логического И над вводимыми данными и текущими (последними) введенными данными. Порт Р2 отличается от порта Р1 тем, что его младшие четыре бита могут быть использованы для расширения микропроцессорной системы по вводу / выводу информации. Порт DB представляет собой двунаправленный буфер с тремя состояниями и предназначен для побайтного ввода / вывода информации. Данный порт является системным: с его помощью можно расширить систему ввода / вывода информации. Внутренний 8 - битный двоичный таймер / счетчик TCNT может быть использован для формирования временных задержек и для подсчета внешних событий. Из максимального состояния FFH TCNT переходит в начальное состояние 00H. При этом устанавливается в “1” флаг переполнения, который может вызвать прерывание, если оно разрешено. Если прерывание запрещено, то флаг переполнения может быть опрошен по команде условного перехода JTF. Выполнение команды JTF, как и переход к подпрограмме обработки прерывания по вектору с адресом 7, сбрасывает флаг переполнения TCNT. В режиме таймера на вход TCNT поступают основные синхросигналы машинного цикла ALE (400 кГц), и счетчик увеличивает свое состояние на “1” через каждые 80 мкс (12,5 кГц). Путем программной установки TCNT в исходное состояние и анализа флага переполнения могут быть реализованы различные временные задержки, лежащие в диапазоне от 80 мкс до 20,48 mc. Большие по времени задержки могут быть получены накоплением переполнений в рабочем регистре под управлением программы. В режиме счетчика событий TCNT увеличивает свое состояние на “1” каждый раз, когда сигнал на входе T1 переходит из состояния “1” в состояние “0”. Устройство управления МК48 совместно с логической схемой переходов в каждом цикле команды формирует последовательность сигналов, управляющих функциями всех элементов микроконтроллера и системой их взаимосвязи. Функциональное назначение основных управляющих и синхронизирующих сигналов УУ (см. рис.1) следующие: XTAL1, XTAL2 - выводы для подключения кварцевого резонатора (6 МГц); RST - вход сигнала общего сброса при запуске МК48; SS - сигнал, который совместно с сигналом ALE позволяет организовать пошаговый режим выполнения программы; T0 - входной сигнал, опрашиваемый по командам условного перехода JT0 или JNT0; может быть использован для вывода сигнала синхронизации после команды ENT1 CLK; T1- входной сигнал, опрашиваемый командами условного перехода JT1 или JNT1; может использоваться в качестве входа внутреннего счетчика внешних событий после исполнения команды STRT CNT; INT - сигнал запроса прерывания от внешнего источника; RD,WD - стробирующие сигналы при чтении / записи информации во внешнюю память данных или УВВ; EA - входной сигнал отключения резидентной EPROM, позволяющей организовать выборку команд из внешней памяти программ; ALE - строб адреса внешней памяти; используется для приема и фиксации адреса внешней памяти на внешнем регистре; является идентификатором машинного цикла; PSEN- входной сигнал разрешения работы с внешней памятью программ; PROG - вход для подачи программируемого импульса +25 В при загрузке резидентной EPROM; выходной стробирующий сигнал для БИС расширителя ввода / вывода информации КР580ВР43. Система команд МК48 содержит 96 основных команд, ориентированных на реализацию процедур управления. Формат команд - один или два байта (70% - однобайтные). МК48 оперирует с командами четырех типов. Тип 1: Команда - однобайтная, и все разряды байта занимает код операции. Тип 2: Команда - двухбайтная; первый байт занимает код операции, а второй - непосредственное число; Тип 3: Команда - двухбайтная; три старших разряда первого байта определяют номер страницы в пределах одного из двух банков памяти программ, а остальные пять - код операции; второй байт команды определяет адрес перехода в пределах страницы памяти программ. Тип 4: Команда - двухбайтная; все разряды первого байта занимает код операции, а второй байт определяет адрес перехода в пределах страницы памяти программ. Все множество команд МК48 можно разбить на пять групп по функциональному признаку: команды пересылки данных; команды арифметических операций, команды логических операций, команды передачи управления и команды управления режимами работы МК48. Все группы системы команд МК48 представлены в Приложении. С точки зрения программиста можно выделить 9 типов операндов, между которыми выполняется информационный обмен (см. рис.5.5). При этом основным элементом, через который остальные устройства обмениваются данными, является аккумулятор А.
Рис. 5.5 – Схема информационных связей в МК48 В МК48 возможна передача данных в двух режимах: пересылки (загрузки) и обмена. Пересылка предполагает передачу данных в направлении от источника (второй операнд команды) к приемнику (первый операнд команды). При этом источник не изменяет своего содержимого. Обмен предполагает одновременную передачу данных в двух направлениях: в результате операции обмена изменяются значения обоих операндов, участвующих в операции. В МК48 предусмотрены 3 способа адресации: 1) прямая, когда адрес операнда содержится в теле самой команды: MOV A,R3; номер регистра, содержимое которого пересылается ; в А, указывается в 3 - х младших битах кода операции 2) непосредственная, когда 8 - битный операнд (число) располагается непосредственно в теле команды (второй байт команды): MOV A, # 9FH; содержимое второго байта команды - число 9FH - ; пересылается в А 3) косвенная, при которой адрес операнда располагается в регистре R0 или R1 каждого из двух банков регистров: MOV A, @ R1; содержимое ячейки РПД по адресу, хранимому в ; регистре R1, пересылается в А
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.006 сек.) |