
- •1.Микропроцессорные устройства. Этапы развития, технологии производства.
- •Классификация микропроцессорных устройств. Назначение.
- •Микропроцессорная система, основные определения
- •Микропроцессор, программа.
- •Связь блоков в микропроцессорной системе, шины.
- •Структура мпс. Управляющие сигналы.
- •Программный обмен, обмен по прерываниям.
- •Прямой доступ к памяти.
- •9. Функции процессора.
- •1 0. Структура процессора.
- •11. Память процессора.
- •12. Устройства ввода-вывода.
- •13. Микроконтроллер, назначение и состав.
- •14. Система команд, виды архитектур.
- •15. Особенности архитектуры микроконтроллеров.
- •16. Минимизация энергопотребления.
- •17. Обеспечение надежности.
- •18. Дополнительные модули в микроконтроллерах.
- •19. Микроконтроллеры avr. Общие характеристики, устройство.
- •20. Типы и организация памяти микроконтроллеров avr.
- •21. Периферийные устройства, их назначение. Взаимодействие с цпу
- •22. Питание. Назначение выводов.
- •23. Ядро, регистр статуса, конвейер микроконтроллеров avr.
- •24. Классификация команд микроконтроллеров.
- •27.Представление чисел в микропроцессоре. Математические инструкции. Операции с многобайтными числами.
- •28. Команды умножения, операции с многобайтными числами.
- •29. Логические и битовые команды. Сдвиги. Операции сдвига с многобайтными числами.
- •36. Защита памяти программ и eeprom. Конфигурационные биты.
- •Конфигурационные биты
- •30. Деление, перевод в десятичную систему. Использование сдвигов вместо арифметических команд. Битовые маски.
- •Организация циклов, ветвлений. Р азветвление программы на две ветки с последующим соединением
- •Разветвление программы на три ветки с последующим соединением
- •33. Команды передачи данных. Адресация памяти данных.
- •33.Адресация памяти данных:
- •34. Директивы ассемблера avr
- •35. Макросы, выражения, функции ассемблера avr
- •37. Параллельное программирование
- •38. Последовательное програмирование, jtag
- •39. Устройство сброса микроконтроллера
- •40. Режимы энергосбережения
- •Минимизация потребляемой мощности
- •41. Порты ввода-вывода
- •42.Режимы работы портов ввода-вывода, альтернативные функции. Система прерываний.
- •43. Внешние прерывания
- •49. Режимы работы таймера. Шим с фазовой коррекцией.
- •50.Асинхронный режим работы таймера.
- •51.Синхронный режим. Устройство предделителей таймеров.
- •59. Аналоговый компаратор
- •56. Ацп. Устройство и принцип работы.
- •57. Выполнение преобразования ацп.
- •Режимы работы ацп. Регистры настройки ацп.
- •25.Типы адресации памяти, сегментации памяти
- •26.Ассемблер,структура команд, операнды. Виды регистровой адрессации
- •46. Режимы работы таймера. Нормальный режим.
- •47. Режимы работы таймера. Режим стс.
- •48. Режимы работы таймера. Быстрый шим.
- •53. Функциональные блоки 16-разрядного таймера-счетчика.
- •55. Режимы шим 16-разрядного таймера-счетчика.
36. Защита памяти программ и eeprom. Конфигурационные биты.
Биты защиты памяти программ и данных
A
Tmega содержит 6 битов защиты, которые можно оставить в незапрограммированном состоянии ("1") или же запрограммировать ("0") для активизации дополнительных функций.
Стирание бит защиты (установка "1") может быть выполнена только командой стирание кристалла (Chip Erase).
Конфигурационные биты
ATmega имеет два или три конфигурационных байта. Обратите внимание, что если конфигурационный бит запрограммирован, то при его считывании возвращается лог. 0.
Старший конфигурационный байт
30. Деление, перевод в десятичную систему. Использование сдвигов вместо арифметических команд. Битовые маски.
БИТОВАЯ МАСКА — определённые данные, которые используются для маскирования — выбора отдельных битов или полей из нескольких битов из двоичной строки или числа.
Например, для получения значения пятого бита (считая слева) числа 10111011 нужно использовать маску 00001000 и применить операцию побитового логического «И» (конъюнкцию). В результате получится: 10111011 & 00001000 = 00001000
Подобное число на языках, использующих вместо логического типа числовые типы, например в Си, будет означать истину или ложь, если этот бит принимает соответствующее значение. На языках, например, C++, имеющие логические типы, необходимо произвести приведение типа.
Основные плюсы и недостатки:
Экономия памяти — требуется бит для хранения информации, а не байт.
Неэффективно по производительности.
Сфера использования в основном в интерфейсах, где приоритет отдаётся экономии памяти:
выбор битов из слова состояния, идущие с пакетом по интерфейсу, например, контрольная сумма;
выбор битов из IP-адреса для адресации подсети (см. маска подсети) 255.255.224.0
Деление FMUL Дробное незнаковое умножение
FMULS Дробное умножение со знаком
FMULSU Дробное умножение знакового с незнаковым
Пусть (N.Q) обозначают дробное число с N двоичных цифр слева от точки, и Q двоичных цифр справа от точки. Умножение между двумя числами в форматах (N1.Q1) и (N2.Q2) даст результат в формате ((N1 + N2). (Q1 + Q2)).
Формат (1.7) широко исполь-ся как входные числа для сигнальной обработки, а получившийся в результате формат (2.14) - как результат. Сдвиг влево необходим для того, что бы старший байт результата был в таком же формате как входные числа. Инструкция FMULS, включая операцию сдвига, выполняется за такое же число циклов как инструкция MUL.
Ф
ормат
(1,7) наиболее широко используется со
знаковыми числами, а инструкция FMUL
выполняет незнаковое умножение. Эта
инструкция наиболее полезна при
вычислении части результата при
выполнении умножения со знаком 16-битных
чисел в формате (1.15), дающие результат
в формате (1,31).
3
0
31БЕЗУСЛОВНЫЕ ПЕРЕХ. ВЫЗОВ ПОДПРОГРАММ. АДРЕС-Я ПАМЯТИ ПРОГРАММ.
БЕЗУСЛОВНЫЙ ПЕРЕХОД – указание микроконтроллеру продолжить выполнение программы по указанному адресу. Команды безусловных переходов вызывают переход в новый адрес независимо ни от чего. Они могут вызывать переход на указанную величину смещения (вперед или назад) или же на указанный адрес памяти. Величина смещения или новое значение адреса указываются в качестве входного операнда.Существует видов безусловных переходов, различающихся по способу указания данного адреса:
Непосредственный (абсолютный) – JMP – адрес перехода указан непосредственно в теле команды, при выполнении счетчику команд присваив-ся этот адрес.
Относительный – RJMP – в теле команды указывается смещение адреса перехода относительно адреса команды, к счетчику команд прибавляется или вычитается значение смещения, а микроконтроллерах семейства AVR данное смещение
Косвенный – IJMP – адрес перехода задается в регистре Z, при выполнении счетчику команд присваивается этот адрес.
Расширенный косвенный – EIJMP – старший байт адреса перехода содержится в регистре специального назначения EIND (команда и регистр присутствует не во всех МК-ах)
ВЫЗОВ ПОДПРОГРАММ (англ. subroutine) —идентифицированная часть компьютерной программы, содержащая описание определённого набора действий. Подпрограмма может быть многократно вызвана из разных частей программы. В языках программирования для оформления и использования подпрограмм есть специальные синтаксические средства.
Подпрограммы изначально появились как средство оптимизации программ по объёму занимаемой памяти — они позволили не повторять в программе идентичные блоки кода, а описывать их однократно и вызывать по мере необходимости. При вызове подпрограммы адрес возврата (к команде, следующей после команды вызова подпрограммы) сохраняется в стеке. При возврате из подпрограммы счетчик программы (Program Counter) устанавливается на адрес возврата, таким образом, выполнение программы продолжается со следующей за вызовом команды. В остальном действия команд вызова подпрограмм аналогичны соответствующим командам безусловного перехода. В конце подпрограммы используется команда возврата RET или возврата из прерывания RETI. Команда RETI дополнительно устанавливает флаг разрешения прерываний I.
АДРЕСАЦИЯ ПАМЯТИ ПОДПРОГРАММ. МК AVR позволяют считывать данные из памяти программ, поэтому удобно записывать в нее значения констант. Для записи константы в память программ используются директивы: .CSEG – сегмент текста программы, .ORG – установка адреса, .DB – запись восьмибитной константы в память программ,.DW – запись шестнадцатибитной конст-ы в память программ.
Р
исунок
– Виды адресации памяти программ:а)
Адресация константы кода памяти; б)
Непосредственная адресация памяти
программ; в) Косвенная адресация памяти
программ; г) Относительная адресация
памяти программ
32КОМАНДЫ УСЛОВНЫХ ПЕРЕХОДОВ. ОРГАНИЗАЦИЯ ЦИКЛОВ, ВЕТВЛЕНИЙ.
УСЛОВНЫЙ ПЕРЕХОД — команда микроконтроллеру на изменение порядка выполнения программы в соответствии с результатом проверки некоторого условия.
Команды условных переходов вызывают переход не всегда, а только при выполнении заданных условий. В качестве таких условий обычно выступают значения флагов в регистре состояния процессора (PSW). То есть условием перехода является результат предыдущей операции, меняющей значения флагов.
Несколько примеров команд условных переходов: переход, если равно нулю; переход, если не равно нулю; переход, если есть переполнение; переход, если нет переполнения; переход, если больше нуля; переход, если меньше или равно нулю.
Если условие перехода выполняется, то производится загрузка в регистр-счетчик команд нового значения. Если же условие перехода не выполняется, счетчик команд просто наращивается, и процессор выбирает и выполняет следующую по порядку команду.
Специально для проверки условий перехода применяется команда сравнения (CMP), предшествующая команде услов. перех. (или даже нескольким командам условных переходов).
Но флаги могут устанавливаться и любой другой командой, например командой пересылки данных, любой арифметической или логической командой. Отметим, что сами команды переходов флаги не меняют, что как раз и позволяет ставить несколько команд переходов одну за другой. Совместное использование нескольких команд условных и безусловных переходов позволяет процессору выполнять разветвленные алгоритмы любой сложности.