 |
Книга AVR-RISC Микроконтроллеры. Архитектура, аппаратные ресурсы, система команд, программирование, применение.
Трамперт В.
Год выпуска: 2006
Изд-во: МК-Пресс
ISBN: 966-8806-07-7
464 страниц
Цена: 89.00 грн.
Нет в наличии (закончилась) |
В книге "AVR-RISC Микроконтроллеры. Архитектура, аппаратные ресурсы, система команд, программирование, применение" дано исчерпывающее описание базовой серии микроконтроллеров семейства АVR от компании Аtmеl, построенных на базе прогрессивной архитектуры RISC с применением программируемой флэш-памяти ЕРROМ. Кроме того, подробно рассматривается программирование микроконтроллеров данной серии на языке ассемблера, а также среда отладки АVR-Studiю и программно-аппаратный набор SТК200. Книга предназначена для всех, кто уже обладает основными познаниями в области построения и функционирования микрокомпьютеров, желает изучить однокристальные микроконтроллеры АVR и успешно претворять в жизнь задачи внутриплатного управления.
Содержание
ПРЕДИСЛОВИЕ................17 УСЛОВНЫЕ ОБОЗНАЧЕНИЯ......19 1. ВВЕДЕНИЕ................20 АРХИТЕКТУРА RISC..............20 ПРЕДСТАВИТЕЛИ БАЗОВОЙ СЕРИИ AVR......23 2. ОБЗОР..................................24 ОСНОВНЫЕ ХАРАКТЕРИСТИКИ СЕМЕЙСТВА МИКРОКОНТРОЛЛЕРОВ AVR.......24 Арифметико-логическое устройство..................25 Структура команд.............................25 Время выполнения команды.....................25 Архитектура памяти...........................25 Область ввода/вывода.........................26 Прерывания и подпрограммы.....................26 Периферийные функции.........................27 БЛОК-СХЕМА МИКРОКОНТРОЛЛЕРОВ AT90S1200 И AT90S8515...28 КОНСТРУКТИВНОЕ ИСПОЛНЕНИЕ КОРПУСОВ И РАСПОЛОЖЕНИЕ выводов...... 28 ГЕНЕРИРОВАНИЕ ТАКТА СИСТЕМНОЙ СИНХРОНИЗАЦИИ В МИКРОКОНТРОЛЛЕРАХ AVR..........................33 Интегрированный кварцевый осциллятор базовой серии микроконтроллеров AVR.... 33 Генерирование такта системной синхронизации с помощью контура RC-осциллятора....34 ПРОГРАММИРОВАНИЕ ДЛЯ AVR НА ЯЗЫКЕ ВЫСОКОГО УРОВНЯ С......35 СТЕНДОВЫЕ ИСПЫТАНИЯ ДЛЯ СРАВНЕНИЯ МИКРОКОНТРОЛЛЕРОВ AVR С ГЛАВНЫМИ КОНКУРЕНТАМИ..36 3. ЦЕНТРАЛЬНЫЙ ПРОЦЕССОР И ВНУТРЕННЯЯ ПАМЯТЬ...41 СИСТЕМА УПРАВЛЕНИЯ и АЛУ..41 СТАТИЧЕСКАЯ ПАМЯТЬ RAM (SRAM)..41 Организация статической памяти SRAM семейства микроконтроллеров AVR....43 Регистровый файл.....44 Регистры двойной длины X, Y и Z.....44 Область ввода/вывода....45 Регистр состояния (SREG)......48 Регистр управления MCU (MCUCR)..49 Внутренняя память SRAM....57 Внешняя память SRAM...52 Стек базовой серии микроконтроллеров AVR..54 Указатель стека......55 ПАМЯТЬ КОМАНД (ТЕХНОЛОГИЯ FLASH-EPROM)..59 Физическая организация флэш-памяти базовой серии микроконтроллеров семейства AVR....60 Технологии памяти Flash-EPROM......60 Процесс программирования....61 Процесс стирания...63 ПАМЯТЬ ДЛЯ ЭНЕРГОНЕЗАВИСИМЫХ ДАННЫХ (ТЕХНОЛОГИЯ EEPROM).......64 Память данных типа EEPROM.......64 Технология памяти EEPROM.....64 Доступ ЦП к памяти EEPROM на запись/чтение.......65 Регистр адреса EEAR памяти EEPROM....66 Регистр данных EEDR памяти EEPROM...66 Регистр управления EECR памяти EEPROM...66 Чтение памяти EEPROM (для всех типов микроконтроллеров базовой серии семейства AVR)...67 Запись в память EEPROM в микроконтроллерах AT90S2313, AT90S4414uAT90S8515...67 Запись в память EEPROM в микроконтроллере A T90S1200...70 РАЗЛИЧНЫЕ СПОСОБЫ АДРЕСАЦИИ КОМАНД и ДАННЫХ....72 Прямая адресация одного регистра......72 Прямая адресация двух регистров Rd и Rr.......73 Прямая адресация области ввода/вывода...73 Прямая адресация памяти данных (SRAM)......74 Косвенная адресация памяти данных (SRAM)..75 Косвенная адресация регистров в микроконтроллере A T90S1200.....76 Косвенная адресация памяти данных с последующим приращением адреса..77 Косвенная адресация памяти данных с предварительным уменьшением адреса.......77 Относительная адресация памяти данных......78 Адресация констант в памяти программ...79 Прямая адресация памяти программ (команды jmp и call).....80 Косвенная адресация памяти программ (команды ijmp и icall)..81 Относительная адресация памяти программ (команды г jmp и rcall). 82 Время доступа к памяти и время выполнения команд......83 СБРОС и ОБРАБОТКА ПРЕРЫВАНИЙ..84 Сброс по включению питания.....87 Внешний сброс......90 Сброс от сторожевого таймера....91 Обработка прерываний...91 Время ответа на прерывание...92 Внешние прерывания...92 Регистры GIMSK GIFR TIMSK TIFR...93 "СПЯЩИЕ" РЕЖИМЫ ЦЕНТРАЛЬНОГО ПРОЦЕССОРА......97 4. ТАЙМЕРЫ/СЧЕТЧИКИ МИКРОКОНТРОЛЛЕРОВ БАЗОВОЙ СЕРИИ СЕМЕЙСТВА AVR.....100 ПРЕДВАРИТЕЛЬНЫЙ ДЕЛИТЕЛЬ ЧАСТОТЫ И СХЕМА УПРАВЛЕНИЯ ТАЙМЕРОМ 100 ВОСЬМИРАЗРЯДНЫЙ ТАЙМЕР/СЧЕТЧИК Т/СО..102 Регистр управления TCCR0 таймера/счетчика Т/СО......104 Счетный регистр TCNT0 таймера/счетчика Т/СО...104 Области применения таймера/счетчика Т/СО.....104 ШЕСТНАДЦАТИРАЗРЯДНЫЙ ТАЙМЕР/СЧЕТЧИК Т/С 1..104 Счетный регистр TCNT1....107 Регистр управления TCCR1A....108 Регистр управления TCCR1B....109 Регистр захвата на входе ICR1.....113 Регистры сравнения на выходе OCR1A и OCR1B......113 Таймер/счетчик Т/С1 как широтно-импульсный модулятор......114 Области применения таймера/счетчика Т/С1.....118 5. СТОРОЖЕВОЙ ТАЙМЕР....120 РЕГИСТР УПРАВЛЕНИЯ WDTCR.....121 6. АСИНХРОННАЯ ПЕРЕДАЧА ДАННЫХ ЧЕРЕЗ ПРИЕМОПЕРЕДАТЧИК UART...123 РАСПРОСТРАНЕННЫЕ СТАНДАРТЫ АСИНХРОННОЙ ПЕРЕДАЧИ ДАННЫХ..123 ФОРМАТ ПЕРЕДАЧИ по АСИНХРОННОМУ ИНТЕРФЕЙСУ....127 ФИЗИЧЕСКОЕ УСТРОЙСТВО ПРИЕМОПЕРЕДАТЧИКА UART....129 Передающий элемент UART (трансмиттер)......130 Принимающий элемент приемопередатчика UART (ресивер)....131 РЕГИСТРЫ UART, ввода/вывода данных UDR, состояния USR, управления UCR ....134 Регистр скорости передачи данных UBRR.....137 7. СИНХРОННАЯ ПЕРЕДАЧА ДАННЫХ ЧЕРЕЗ ПОСЛЕДОВАТЕЛЬНЫЙ ИНТЕРФЕЙС (SPI)....139 ВХОДЫ И ВЫХОДЫ ИНТЕРФЕЙСА SPI...141 ПРОТОКОЛ ПЕРЕДАЧИ...144 СИСТЕМНЫЕ КОНФЛИКТЫ SPI..147 РЕГИСТР УПРАВЛЕНИЯ SPCR...148 РЕГИСТР состояния SPSR......149 РЕГИСТР ДАННЫХ SPDR.....149 8. ПОСЛЕДОВАТЕЛЬНАЯ ПЕРЕДАЧА ДАННЫХ ПО ШИНЕ I2С..151 ПРИНЦИП ДЕЙСТВИЯ шины 12С.....152 Линия SCL.....152 Линия SDA....153 РЕЖИМЫ РАБОТЫ БЛОКОВ, ПОДСОЕДИНЕННЫХ С ПОМОЩЬЮ ШИНЫ 12С......154 ЭЛЕКТРИЧЕСКИЕ СВОЙСТВА.....155 ПРОТОКОЛ шины...155 Занятость шины.....755 Условие начала передачи.....156 Процесс передачи данных...156 Бит подтверждения....156 Освобождение шины передачи данных.....157 Условие завершения передачи....158 АДРЕСАЦИЯ ВЕДОМЫХ УСТРОЙСТВ.....158 Адрес ведомого устройства.....158 Постоянная часть адреса ведомого устройства.......159 Переменная часть адреса ведомого устройства......159 Разряд направления передачи данных...159 ОСОБЫЕ СЛУЧАИ.....161 Повторение условия начала передачи.......161 Чтение-модификация-записъ..161 Задержка такта.....162 Синхронизация такта...162 АРБИТРАЖ ШИНЫ ПРИ РАБОТЕ С НЕСКОЛЬКИМИ ВЕДУЩИМИ УСТРОЙСТВАМИ. 164 СИНХРОНИЗАЦИЯ ШИНЫ 12С....165 ОБРАЩЕНИЕ МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА AVR к ШИНЕ 12С..165 9. ИНТЕГРИРОВАННЫЙ АНАЛОГОВЫЙ КОМПАРАТОР.......166 РЕГИСТР УПРАВЛЕНИЯ и состояния 10. ПОРТЫ ВВОДА/ВЫВОДА.......169 ПОРТА...172 Регистр данных порта А.....172 Регистр направления передачи данных DDRA.....172 Адреса порта А ? выводы PINA....172 ПОРТ В...173 Регистр данных порта В....173 Регистр направления передачи данных DDRB.....175 Адреса порта В ? выводы PINB....775 ПОРТ С...175 Регистр данных порта С....775 Регистр направления передачи данных DDRC.....776 Адреса порта С ? выводы PINC...776 ПОРТБ...176 Регистр данных порта D....776 Регистр направления передачи данных DDRD.....177 Адреса порта D ? выводы PIND...178 ВЫХОД С ОТКРЫТЫМ КОЛЛЕКТОРОМ...178 11. ПРОГРАММИРОВАНИЕ ПАМЯТИ..179 РАЗРЯДЫ БЛОКИРОВКИ ПАМЯТИ ПРОГРАММ LB1 и LB2..179 РАЗРЯДЫ ПРЕДОХРАНЕНИЯ RCEN, FSTRT и SPIEN..179 БАЙТЫ СИГНАТУРЫ.......180 ПРОЦЕСС ПРОГРАММИРОВАНИЯ....180 Параллельный режим программирования.......181 Считывание запрограммированных данных из флэш-памяти.......187 Программирование памяти EEPROM....188 Чтение памяти EEPROM.......188 Программирование разрядов предохранения....190 Программирование разрядов блокировки....190 Считывание разрядов предохранения и блокировки....190 Считывание байтов сигнатурны.......191 Параметры параллельного режима программирования.....191 Последовательный режим программирования....192 Алгоритм последовательного программирования..194 Опрос для установления окончания процесса программирования.....197 Параметры последовательного режима программирования....197 12. СИСТЕМА КОМАНД....199 РАЗРЯДЫ УСЛОВИЙ (ФЛАГИ) МИКРОКОНТРОЛЛЕРОВ AVR.....200 Разряд 0 ? С (флаг переноса)..201 Разряд 1 ? Z (нулевой флаг).....203 Разряд 2 ? N (флаг отрицательного результата)....203 Разряд 3 ? V (переполнение при вычислениях в дополнительных кодах). 203 Разряд 4 ? S (флаг знака)...204 Разряд 5 ? Н (флаг половинного переноса)....204 Разряд б? Т (флаг копирования)...205 Разряд 7? I (общее разрешение прерываний).....205 Условный переход в программе......205 ОБЗОР КОМАНД МИКРОКОНТРОЛЛЕРОВ AVR..206 ОПИСАНИЕ КОМАНД МИКРОКОНТРОЛЛЕРОВ AVR......222 ADC, ADD, ADIW, AND, ANDI, ASR, BCLR, BLD, BRBC, BRBS, BRCC, BRCS, BREQ- BST...222 CALL- LD(LDD).......237 Косвенная загрузка из SRAM в регистр с помощью указателя X.......248 Косвенная загрузка из SRAM в регистр с помощью указателя Y.......249 Косвенная загрузка из SRAM в регистр с помощью указателя Z..250 LDI.--- ST(STD)......251 Косвенное сохранение содержимого регистра в SRAM с помощью указателя X ..269 Косвенное сохранение содержимого регистра в SRAM с помощью указателя Y ..270 Косвенное сохранение содержимого регистра в SRAM с помощью указателя Z...271 STS-- WDR......272 13. АССЕМБЛЕР.......275 УСТАНОВКА AVR-АССЕМБЛЕРА....279 СИНТАКСИС АССЕМБЛЕРА..280 РАБОТА С AVR-АССЕМБЛЕРОМ.......281 Кнопки панели инструментов..281 Меню AVR-ассемблера WAVRASM.......282 Меню Window......283 ПОИСК ОШИБОК......283 ДИРЕКТИВЫ АССЕМБЛЕРА..284 Директива .BYTE, CSEG, DB, DEF, DEVICE, DSEG, DW, ENDMACRO, EQU ....285 Директива .ESEG, EXIT, INCLUDE, LIST, LISTMAC, MACRO, NOLIST, ORG, SET....289 ВЫРАЖЕНИЯ......293 Операнды......293 Функции.......293 Операторы...294 14. ОТЛАДКА ПРОГРАММ В СРЕДЕ AVR-STUDIO...298 УСТАНОВКА AVR-STUDIO.......298 ОБЗОР.....299 ОКНА AVR-STUDIO.......300 Окно исходного кода......300 Окно Registers, Processor, Memory, 10, Watch, Trace, Message..301 МЕНЮ AVR-STUDIO.....308 Меню File......308 Меню правки Edit, Debug, Breakpoint, Trace & Triggers, Watch, Options, Views ....309 Меню Debug для управления ходом программы...309 Меню Window и Help....312 МОДУЛИ ВВОДА/ВЫВОДА СИМУЛЯТОРА...312 15. НАБОР STK200 ДЛЯ ТЕСТИРОВАНИЯ И ЗАПИСИ В ПАМЯТЬ СОБСТВЕННЫХ ПРОГРАММ.....314 ОПИСАНИЕ АППАРАТНОЙ ЧАСТИ STK200.......315 Организация питания STK200..316 Обнаружение провалов напряжения в STK200.....316 Функции перемычек STK200.....317 Подключения портов STK200...318 Интерфейс ISP STK200.......319 RS232-интерфейс STK200...319 ЖКИ-интерфейс STK200....320 Встроенный кварцевый осциллятор STK200..322 Восемь индикаторных светодиодов на STK200...322 Восемь кнопочных выключателей на STK200.......323 Расширение памяти в STK200.. 323 ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ДЛЯ STK200....323 Меню программного обеспечения ISP..324 Панель инструментов среды 1SP...326 16. ПРИМЕНЕНИЕ МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА AVR......327 СРЕДСТВА ДВОИЧНО-ДЕСЯТИЧНОЙ АРИФМЕТИКИ......327 Преобразование шестнадцатеричного числа в BCD-число..332 Преобразование простой двоичной дроби в BCD-дробь..332 Преобразование BCD-числа в шестнадцатеричное число....332 Сложение BCD-чисел....333 Вычитание BCD-чисел..334 БАЗОВЫЕ ОПЕРАЦИИ ВВОДА/ВЫВОДА..334 ПОДКЛЮЧЕНИЕ ЖК-МОДУЛЕЙ.......341 Подключение модуля HD44780......341 Регистры модуля HD44780.......342 Память модуля HD44780....343 Знакогенератор модуля HD44780..344 Разработка собственных символов.....344 Сброс табло.......345 Система команд HD44780..347 Пример для подключения двухстрочного табло по 16 знаков в строке. 350 Описание подпрограмм...356 Описание главной программы....357 ФОРМИРОВАНИЕ ИМПУЛЬСОВ ОПРЕДЕЛЕННОЙ ДЛИНЫ С ПОМОЩЬЮ Т/СО... 357 Описание программы.....358 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ АВТОМАТИЧЕСКОЙ ПЕРЕЗАГРУЗКИ Т/СО..360 Описание подпрограммы обработки прерывания......362 Время выполнения подпрограммы обработки прерывания таймера 0.. 363 Описание главной программы...363 ВЫРАБОТКА С ПОМОЩЬЮ Т/С1 ИМПУЛЬСОВ С ЧАСТОТОЙ 50 ГЦ И КОЭФФИЦИЕНТОМ ЗАПОЛНЕНИЯ 0,025.....364 Описание подпрограммы обработки прерывания......367 Описание главной программы...367 ТРЕХКАНАЛЬНЫЙ ЦАП С РАЗРЕШЕНИЕМ 10 РАЗРЯДОВ....369 Описание подпрограммы обработки прерывания от Т/СО...378 Время выполнения подпрограммы обработки прерывания от таймера 0. 379 Описание главной программы...380 Измерения.....380 ЧЕТЫРЕХКАНАЛЬНЫЙ АЦП С ДВОЙНЫМ ИНТЕГРИРОВАНИЕМ И РАЗРЕШЕНИЕМ 11 РАЗРЯДОВ....381 Описание подпрограмм.......388 Описание главной программы...388 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ПРИЕМОПЕРЕДАТЧИКА UART для МИКРОКОНТРОЛЛЕРА AT90S1200.......392 ПОДКЛЮЧЕНИЕ К МИКРОКОНТРОЛЛЕРУ AT90S8515 МИКРОСХЕМЫ ЦАП МАХ5154 ЧЕРЕЗ ИНТЕРФЕЙС SPI............399 РАСШИРЕНИЕ ПОРТОВ ВВОДА/ВЫВОДА МИКРОКОНТРОЛЛЕРА AT90S4414 с помощью ИНТЕРФЕЙСА SPI...407 Описание подпрограммы.....411 Описание главной программы...412 ПРОГРАММНАЯ РЕАЛИЗАЦИЯ ИНТЕРФЕЙСА SPI для МОДЕЛИ AT90S1200 ПРИ ПОДКЛЮЧЕНИИ АЦП.......413 Описание программы.....418 ПОДКЛЮЧЕНИЕ к ШИНЕ 12С ДАТЧИКА ТЕМПЕРАТУРЫ LM75.......419 ПОДКЛЮЧЕНИЕ К ШИНЕ 12С СХЕМЫ SAA1064 УПРАВЛЕНИЯ ЧЕТЫРЕХРАЗРЯДНЫМ СВЕТОДИОДНЫМ ТАБЛО.....424 ИСПОЛЬЗОВАНИЕ МИКРОКОНТРОЛЛЕРА AVR в КАЧЕСТВЕ ВЕДУЩЕГО УСТРОЙСТВА 12С...429 Описание подпрограмм.......438 Описание главной программы...441 17. ПРИЛОЖЕНИЕ..443 ТЕХНИЧЕСКИЕ ХАРАКТЕРИСТИКИ МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА AVR 443 ДОКУМЕНТИРОВАННЫЕ КОМПАНИЕЙ ATMEL ОШИБКИ И ПУТИ ИХ УСТРАНЕНИЯ....443 18. СОДЕРЖИМОЕ ПРИЛАГАЕМОГО К КНИГЕ КОМПАКТ-ДИСКА.....445 ПАПКА DATEN..445 ПАПКА ATMEL....446 Подпапка Sheets...446 Подпапка Applicat....446 Подпапка Software....441 Подпапка Tools......448 ПАПКА PROGRAMM....449 INTERNET-ССЫЛКИ....450 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ.......451
|