МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Ответы к Экзамену по Микропроцессорным Системам (микроконтроллеры микрокопроцессоры)

    ввода/вывода ($00-$1F)

    К - символьная или численная константа (8 бит)

    к - адресная константа

    b - номер бита в регистре (3 бита)

    0 s - номер бита в регистре статуса (3 бита)

    0 X, Y, Z - регистры косвенной адресации (X=R27:R26, Y=R29:R28; Z=R31

    :R30 Команды пересылки

    Команды пересылки осуществляют перемещение данных между ячейками памяти и

    регистрами процессорного ядра. Один из операндов, участвующих в инструкции,

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

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

    команды пересылки практически осуществляют копирование данных.

    Одним из операндов в любой команде пересылки обычно является регистр общего

    назначения процессорного ядра. Вторым может быть любой регистр или ячейка

    памяти.

    Инструкции, как правило, не влияют на флаги в регистре состояния

    процессорного ядра.

    В системе команд микроконтроллеров AVR предусмотрено 34 инструкции,

    осуществляющие пересылку данных. В инструкциях используются все, за

    исключением битовых, способы адресации данных; одним из операндов в любой

    инструкции является регистр общего назначения. Инструкция Idi (toad

    immediate), использующая непосредственную адресацию, может быть

    использована только в старшей половине файла регистров общего назначения

    (R16....R31), остальные команды работают с любым из регистров файла.

    Инструкцию spm (store program memory), осуществляющую запись когда в память

    программ, можно использовать только в Boot Program Section памяти программ;

    Время выполнения инструкций, работающих с регистрами, равно 1 такту.

    Инструкции, обращающиеся к ячейкам памяти данных, выполняются за 2 такта, а

    'вращающиеся к ячейкам памяти программ - за 3 такта.

    Арифметические и логические команды

    В группу арифметических команд входит команды выполняющие сложение,

    вычитание, декремент и инкремент данных, логическое умножение логическое

    сложение, операцию ИСКЛЮЧАЮЩЕЕ ИЛИ, инверсию переменной. Обычно к этои

    группе относят также инструкции сравнения данных. В микроконтроллере Aтmegа

    163реализованы также функции арифметического умножения целых чисел и

    дробных чисел, без знака и со знако3м

    Все инструкции этой группы, как правило, приводят к изменению состояния

    флагов регистра состояния в соответствии с резулыа1ами, выполняемой

    операции.

    В микроконтроллерах с архитектурой AVR предусмотрено довольно много (31)

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

    Инструкции используют исключительно прямую регистровую или непосредственную

    адресацию данных. Операнды хранятся в регистрах общего назначения, в один

    из них (регистр-приемник) всегда направляется и результат вычислений.

    В результате выполнения инструкций изменяются флаги регистра SREG (Status

    Register), а флаг переноса С (Сапу), кроме того, непосредственно участвует

    в выполнении ряда операций.

    Арифметические команды сложения и вычитания выполняют сложение и вычитание

    одно- и двухбайтных операндов. Команды adc (add with сапу two registers) и

    sbc (subtract with carry two registers) используют при вычислениях флаг

    переноса С.

    Инструкции логического умножения (and) и логического сложения (or) ,

    ИСКЛЮЧАЮЩЕЕ ИЛИ (вот) преобразуют только однобайтные данные.

    Инструкция дополнения до единицы com (one's complement), фактически

    выполняет операцию инверсии, а инструкция дополнения до двух neg (two's

    complement) - меняет знак числа

    Инструкции установки (set) позволяют установить как отдельные, так и все

    биты выбранного регистра в единичное состояние, а команды очистки (dear) -

    в нулевое.

    Инструкции инкремента регистра inc (increment) и декремента регистра dec

    (decrement) используют прямую адресацию одного выбранного регистра.

    Тест на нуль или минус tst (test for zero or minus) фактически не меняет

    содержимого регистра, но устанавливает соответствующие флаги при равенстве

    операнда нулю или при его отрицательном значении.

    Команды сравнения (compare) также не меняют содержиМ°го РегистР°в' а

    оценивают разность операндов и устанавливают соответствующие Флаги в

    регистре состояния.

    Шесть инструкций умножения (multiply выполняют умножение |-1ель|Х и Дробных

    операндов с учетом и без учета знака. 16-битный результат /1^ножения всегда

    описывается в регистры общего назначения RO:R1.

    Большинство арифметических и логических команд выполня!0^ за°Дин такт-

    Исключение составляют только команды с непосредственной адресац^.'

    Ра2?таюи^ ° двухбайтными словами: adiw (add immediate to word) и sbiw

    (subtract im^196 m vvo/")- и команды умножения, выполняющиеся за два такта.

    Битовые команды

    Битовые команды (Вit And Bit-Test Instructions) позволяют обращаться

    непосредственно к отдельным битам регистров процессорного ядра и выполнять

    с выбранными битами простейшие операции пересылки, установки и сброса.

    Операндами команд могут быть как биты регистров общего назначения, так и

    биты регистров ввода/вывода. Битовые команды могут влиять на отдельные

    флаги регистра признаков.

    Битовые команды микроконтроллером семейства AVR работают с отдельными

    битами регистров общего назначения и регистров ввоода/вывода Биты регистров

    ввода/вывода могут быть установлены или сброшены. Биты регистров общего

    назначения могут быть сдвинуты в соседние ячейки, как влево (в сторону

    старших разрядов), так и вправо (в сторону младших разрядов). В операциях

    сдвига, кроме разрядов регистров, может участвовать и бит переноса.

    Специальные команды предусмотрены дли установки и сброса отдельных флагов

    регистра состояния.

    Команда swap меняет местами тетрады (полубайты) регистров общего

    назначения.

    10. Микроконтроллер Atmega и его внешние подключения.

    Контроллером в технике регулирования считается управляющее устройство,

    осуществляющее регулирующие и контролирующие функции в системе. Как правило

    это вычилительная машина. С развитием технологий различные компоненты этой

    машины, такие как процессорное ядро, различные виды памяти, АЦП, таймеры и

    др. становились миниатюрнее и стало возможным включать их в одну

    интегральную микросхему или их малый набор. Микроконтроллер – контр.,

    реализованный на одном кристалле.

    AVR микроконтроллеры фирмы Atmel имеют улучшенную RISС архитектуру.

    Микроконтроллер состоит из трех элементов: процессорного ядра, памяти и

    набора функциональных блоков различного назначения, связанных системными

    шинами.

    Процессорное ядро является основой микроконтроллера. Оно выполняет все

    арифметические операции, управляет работой всех остальных элементов

    системы.

    В памяти хранится программа работы микроконтроллера, исходные данные и все

    промежуточные результаты вычислений.

    Функциональные блоки обеспечивают связь микроконтроллера с внешним миром.

    Для процессорного ядра любой функ. блок представляется в виде одного или

    нескольких регистров. Каждый регистр имеет свой оригинальный адрес.

    [pic]

    Внешние подключения условно можно разделить на выводы питания и

    информационные выводы. Информационные выводы включают в себя 4 порта ввода-

    вывода, выводы подключения кварцевого резонатора, вывод сброса. Контакты

    портов ввода-вывода могут быть использованы в качестве параллельных портов

    либо другими функциональными блоками, контакты которых объединены с

    контактами портов. Все выводы портов имеют индивидуальные подтягивающие

    резисторы. Для подключения этих резисторов с регистре SFIOR предусмотрен

    бит PUD.

    Для повышения стабильности используется внешний тактовый генератор. Схема

    подключении приведена на рисунке.

    [pic]

    Емкость С=13,,43пФ. Для выбора синхронизации используются биты CRSEL0-3.

    12. Сторожевой таймер

    Сторожевой таймер синхронизирован от отдельного внутреннего генератора на

    кристалле, работающего с частотой 1МГц (при напряжении питания 5В).

    Задержка сброса устанавливается с помощью предделителя (Prescaler).

    Настройка предделителя осуществляется установкой или сбросом битов

    WDP0…WDP2 регистра управления сторожевым таймером WDTCR. По истечении

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

    микроконтроллер.

    Интервалы задержки сторожевого таймера

    |WDP2|WDP1 |WDP0|Количест|Задержк|

    | | | |во |а |

    | | | |циклов |сброса |

    |0 |0 |0 |16К |15ms |

    |0 |0 |1 |32К |30ms |

    |0 |1 |0 |64К |60ms |

    |0 |1 |1 |128К |0,12s |

    |1 |0 |0 |256К |0,24s |

    |1 |0 |1 |512К |0,49s |

    |1 |1 |0 |1,024К |0,97s |

    |1 |1 |1 |2,048К |1,9s |

    Сброс может быть предотвращен инструкцией wdr.

    Бит WDE в регистре WDTCR позволяет подключить или отключить сторожевой

    таймер. При разрешении работы сторожевого таймера его состояние не

    определено и прежде, чем разрешать его включение, необходимо выполнить

    инструкцию wdr. В ином случае контроллер может быть сброшен прежде, чем

    будет выполнена команда wdr, прописанная после разрешения. Для

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

    оформляться специальной процедурой выключения.

    13. Програмно_управляемый_обмен

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

    объектами и могут реализовывать различные алгоритмы обмена данными :

    асинхронный программный обмен , синхронный обмен , ввод - с сигналами

    квитирования . Обмен данными между портами и объектами обеспечивается

    специальными подпрограммами – драйверами , создаваемыми индивидуально для

    каждого объекта .

    АСИНХРОННЫЙ ОБМЕН

    В режиме асинхронного программного обмена ввод и вывод данных производится

    по программе в моменты выполнения инструкций ввода и вывода данных.

    Предполагается, что объект всегда готов к обмену: при вводе – данные в

    момент выполнения инструкции in присутствуют на линиях порта, при выводе –

    данные будут прочитаны с линий порта до следующего вывода. Например ,

    микроконтроллер ATmega 63 осуществляет асинхронный вывод данных при

    выполнении фрагмента программы:

    .equ porta = $B ;

    .equ ddra = $A ;

    .cseg

    ldi r 6,$FF ; $FF в r 6

    out ddra, r 6 ; порта А на вывод

    out porta, r0 ; данных из регистра r0 в порт A.

    Время выполнения команды вывода равно двум периодам тактового сигнала . Тот

    же микроконтроллер в течении двух тактов введет данные с линий порта при

    выполнении фрагмента программы :

    .equ pina = $9 ;

    .cseg

    in r0, pina ; ввод данных из порта pina в регистр r0.

    По адресу $9 в пространстве ввода - микроконтроллера размещен регистр

    pina, с входных линий которого и будут взяты данные во время выполнения

    инструкции .

    СИМПЛЕКСНЫЙ ОБМЕН

    Симплексным считается однонаправленный обмен данными . Такой обмен обычно

    является синхронным . В этом случае каждое изменение данных на линиях порта

    сопровождается сигналом синхронизации (). Строб генерируется источником

    данных и предназначается для задания момента записи данных в регистр

    приемника . При выводе данных сигнал строба должен сформировать

    микроконтроллер , используя для этого специальные линии шины управления или

    отдельные биты портов ввода -. На рис . 9.2 показан вариант соединения

    микроконтроллера ATmega 63 c посимвольным принтером , имеющим 8-битный вход

    для приема данных DATA, выход сигнала готовности READY и вход стробирования

    #STB. Активным на входе стробирования является сигнал низкого уровня . Порт

    PORTA микроконтроллера и бит PB6 порта PORTB программируются на вывод

    данных , бит PB2 порта PORTB на ввод . Подпрограмма вывода должна :

    осуществить проверку готовности принтера ( сигнала готовности принтера

    READY и его анализ ), при обнаружении сигнала READY=1 вывести данные в порт

    PORT , подтвердить вывод данных выводом сигнала стробирования #STB=0 для

    записи данных в принтер . Если принтер не готов к обмену микроконтроллер

    через заданный интервал времени повторяет операцию.

    [pic]

    Рис . 9.2. Подключение принтера к микроконтроллеру

    Режим синхронного ввода позволяет точно задать момент считывания данных с

    объекта . В этом режиме сигнал стробирования , подтверждающий готовность

    данных , поступает с объекта на микроконтроллер . При появлении строба

    микроконтроллер должен осуществить ввод данных с порта.

    ПОЛУДУПЛЕКСНЫЙ ОБМЕН

    Полудуплексным считается двунаправленный синхронный обмен , при котором в

    любой момент времени передача данных может производиться только в одном

    направлении . Направление передачи данных порта меняется в процессе работы

    в зависимости от решаемой в текущий момент задачи . На рис . 9.3 изображен

    вариант соединения микроконтроллера ATmega 63 с объектом для обмена данными

    в полудуплексном режиме . В схеме на рис . 9.3 передача данных в

    параллельном формате осуществляется по линиям порта PORTA. Для выдачи и

    приема четырех сигналов управления обменом ( квитирования ): строб ввода

    #STB IN (Strobe Input), строб вывода #STB OUT (Strobe Out), подтверждение

    ввода #ACK IN (Acknowledge Input) и подтверждение вывода #ACK OUT

    (Acknowledge Out), использованы две линии порта PORTB и входы запросов на

    прерывания INT0 и INT . При поступлении сигнала #STB IN = 0 контроллер

    должен выставить сигнал подтверждения #ACK IN = 0 и осуществить запись во

    входной регистр порта PORTA.. При низком уровне сигнала ASK IN объекту

    запрещается формировать новый сигнал #STB IN. По окончании записи

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

    Работа микроконтроллера в режиме вывода аналогична . Микроконтроллер

    выводит данные в порт PORTA, подтверждая вывод сигналом #STB OUT = 0.

    Объект формирует сигнал подтверждения #ACK OUT = 0, сообщая контроллеру о

    готовности к приему данных . При снятии сигнала #ACK OUT контроллер должен

    снять сигнал #STB OUT и может вновь перейти к выводу данных . Одновременная

    передача данных в двух направлениях при полудуплексном обмене невозможна .

    ДУПЛЕКСНЫЙ ОБМЕН

    Дуплексным считается двунаправленный синхронный обмен , при котором в любой

    момент времени возможна передача данных в двух направлениях . В этом случае

    для передачи данных в каждом направлении выделяется свой однонаправленный

    порт . На рис . 9.4 изображен вариант соединения микроконтроллера ATmega 1

    63 с объектом для обмена данными в дуплексном режиме

    [pic]

    Рис . 9.3. Подключение микроконтроллера при полудуплексном обмене

    Рис . 9.4. Подключение микроконтроллера при дуплексном обмене В схеме на

    рис . 9.4 порт PORTA работает на ввод данных , порт PORT – на вывод , а

    линии PC0 и PC порта PORTC использованы для вывода сигналов квитирования

    #ACK IN и #ACK OUT. Для ввода сигналов квитирования от объекта #STB IN и

    #ACK OUT использованы входы запросов на прерывания INT0 и INT . При таком

    подключении задача ввода данных в микроконтроллер получает больший

    приоритет чем задача вывода .

    14.Порты ввода-вывода предназначены для связи микроконтроллера с различными

    объектами и могут реализовывать различные алгоритмы обмена данными:

    1)Асинхронный программный обмен 2)Синхронный обмен 3)Ввод-вывод с сигналами

    квитирования.

    Обмен данными между портами и объектами обеспечивается специальными

    подпрограммами – драйверами, создаваемыми индивидуально для каждого

    объекта.

    Асинхронный обмен.

    В режиме асинхронного программного обмена ввод и вывод данных

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

    данных. Предполагается, что объект всегда готов к обмену: при вводе –

    данные в момент выполнения инструкции in присутствуют на линиях порта, при

    выводе – данные будут прочитаны с линий порта до следующего вывода.

    Пример программы для осуществления асинхронного вывода данных для

    Atmega163:

    .equ porta=$1B; .equ ddra=$1A; .cseg;

    ldi r16,$FF;запись $FF в r16

    out ddra,r16 ; включение порта А на вывод out porta,r0 ;

    вывод данных из регистра r0 в порт А.

    Ввод данных с линий порта.

    .equ pina=$19 .cseg in r0pina

    ; ввод данных из порта pina в регистр r0.

    По адресу $19 в пространстве ввода – вывода микроконтроллера размещен

    регистр pina, с входных линий которого и будут взяты данные во время

    выполнения инструкции.

    Симплексный обмен.

    Симплексным считается однонаправленный обмен данными. Такой обмен обычно

    является синхронным. В этом случае каждое изменение данных на линиях порта

    сопровождается сигналом синхронизации (стробом). Строб генерируется

    источником данных и предназначен для задания момента записи данных в

    регистр приемника.При выводе данных сигнал строба должен сформировать

    микроконтроллер, используя для этого специальные линии шины управления или

    отдельные биты портов ввода – вывода.

    Вариант соединения Atmega163 с посимвольным принтером, имеющим 8-битный

    вход для приема данных DATA, выход сигнала готовности READY и вход

    стробирования #STB. Активным на входе стробирования является сигнал низкого

    уровня. Порт А микроконтроллера и бит РВ6 порта PORTB программируются на

    вывод данных, бит PB2 порта PORTB на ввод. Подпрограмма вывода должна:

    осуществлять проверку готовности принтера, при обнаружении сигнала READY=1

    вывести данные в порт PORTА, подтвердить вывод данных выводом сигнала

    стробирования #STB=0 для записи данных в принтер. Если принтер не готов к

    обмену микроконтроллер через заданный интервал времени повторяет операцию.

    Режим синхронного ввода данных позволяет точно задать момент считывания

    данных с объекта. В этом режиме сигнал стробирования, подтверждающий

    готовность данных поступает с объекта в микроконтроллер. При появлении

    строба микроконтроллер должен осуществить ввод данных с порта.

    Полудуплексный обмен.

    Полудуплексным считается двунаправленный синхронный обмен, при котором в

    любой момент времени передача данных может производится только в одном

    направлении. Направление передачи данных порта меняется в процессе работы в

    зависимости от решаемой в текущий момент задачи. Пример: передача данных в

    Страницы: 1, 2, 3, 4, 5, 6


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.