Микроконтроллеры AVR. Практикум для начинающих
Покупка
Автор:
Хартов Вячеслав Яковлевич
Год издания: 2012
Кол-во страниц: 280
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7038-3565-4
Артикул: 100983.03.99
Практикум содержит материалы для изучения микроконтроллеров AVR с архитектурой RISC. Рассмотрены необходимые инструментальные средства и предложен большой комплект учебных программ для изучения функциональных возможностей микроконтроллеров. Тематика учебного пособия охватывает практически все аспекты архитектуры микроконтроллеров. Базовые программы могут быть использованы в качестве основы для обучения и самостоятельного программирования на языке Ассемблер AVR в курсовом и дипломном проектировании.
Материалы книги автор использует в учебном процессе в МГТУ им. Н.Э. Баумана.
Для студентов высших и средних специальных учебных заведений, обучающихся по направлению "Информатика и вычислительная техника".
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
УДК 621.396(075.8) ББК 32.81 Х22 Рецензенты: проф., зам. зав. кафедрой «Вычислительная техника» МИРЭА Е.Л. Иванов; зам. директора департамента «Ростелеком» С.М. Коновалов; доц. МГТУ им. Н.Э. Баумана В.М. Недашковский Хартов В. Я. Микроконтроллеры AVR. Практикум для начинающих : учеб. пособие / В. Я. Хартов. – 2-е изд., испр. и доп. – М. : Изд-во МГТУ им. Н. Э. Баумана, 2012. – 280 с. : ил. ISBN 978-5-7038-3565-4 Практикум содержит материалы для изучения микроконтроллеров AVR с архитектурой RISC. Рассмотрены необходимые инструментальные средства и предложен большой комплект учебных программ для изучения функциональных возможностей микроконтроллеров. Тематика учебного пособия охватывает практически все аспекты архитектуры микроконтроллеров. Базовые программы могут быть использованы в качестве основы для обучения и самостоятельного программирования на языке Ассемблер AVR в курсовом и дипломном проектировании. Материалы книги автор использует в учебном процессе в МГТУ им. Н.Э. Баумана. Для студентов высших и средних специальных учебных заведений, обучающихся по направлению «Информатика и вычислительная техника». УДК 621.396(075.8) ББК 32.81 Учебное издание Хартов Вячеслав Яковлевич МИКРОКОНТРОЛЛЕРЫ AVR Практикум для начинающих Редактор В.М. Царев. Художник С.С. Водчиц. Технический редактор Э.А. Кулакова. Корректор М.А. Василевская. Компьютерная верстка О.В. Беляевой. Подписано в печать 25.01.2012. Формат 60×90 1/16. Усл. печ. л. 17,5. Тираж 1000 экз. Заказ Издательство МГТУ им. Н.Э. Баумана.105005, Москва, 2-я Бауманская, 5. Е-mail: press@bmstu.ru http://www. baumanpress.ru Отпечатано в типографии МГТУ им. Н.Э. Баумана. 105005, Москва, 2-я Бауманская ул., д. 5. E-mail: baumanprint@gmail.com © Хартов В.Я., 2007 © Хартов В.Я., 2012, с изменениями © Оформление. Издательство ISBN 978-5-7038-3565-4 МГТУ им. Н.Э. Баумана, 2012 X22
ОГЛАВЛЕНИЕ Предисловие .............................................................................................. 5 1. Инструментальные средства практикума ...................................... 8 1.1. Микроконтроллеры АТх8515 ............................................................. 9 1.2. Интегрированная отладочная среда AVR Studio 4 ..................... 41 1.3. Стартовый набор STK500 фирмы ATMEL ................................... 46 1.4. Интерфейс STK500 в AVR Studio 4 и программирование микроконтроллера .......................................................................... 52 1.5. Интегрированная отладочная среда VMLab ................................. 2. Программирование портов ввода/вывода ....................................... 65 2.1. Взаимодействие микроконтроллера с кнопками и светодио- дами .................................................................................................. 66 2.2. Обработка внешних прерываний ................................................... 69 3. Арифметическая обработка данных ................................................ 76 3.1. Представление чисел в микроконтроллерах ................................. 76 3.2. Сложение и вычитание чисел в дополнительном коде ................ 77 3.3. Умножение чисел без знака ........................................................... 79 3.4. Деление целых чисел ...................................................................... 80 3.5. Сложение и вычитание двоично-десятичных чисел .................... 86 3.6. Программирование арифметических операций ........................... 90 3.7. Операции над числами с плавающей точкой ................................ 97 3.8. Программы для преобразования чисел ......................................... 121 4. Таймеры микроконтроллеров ATх8515 ........................................... 133 4.1. Таймер/счетчик Т0 микроконтроллера АТ90S8515 ..................... 134 4.2. Таймер/счетчик Т1 микроконтроллеров АТх8515 ....................... 136 4.3. Программирование таймера Т0...................................................... 144 4.4. Программирование функций сравнения, захвата и ШИМ таймера Т1 ......................................................................... 149 4.5. Сторожевой таймер ......................................................................... 5. Обмен данными по последовательному интерфейсу ..................... 163 5.1. Последовательный обмен данными по каналу UART ................. 163 5.2. Работа последовательного канала SPI ........................................... 178 5.3. Обмен данными по интерфейсу 12С(TWI) ................................... 189
Оглавление 4 6. Организация ввода/вывода данных по параллельному интерфейсу ............................................................................................ 218 6.1. Взаимодействие с клавиатурой и ЖК-дисплеем .......................... 218 6.2. Организация асинхронного параллельного обмена данными с квитированием ................................................................................ 230 7. Устройства для обработки аналоговых сигналов .......................... 240 7.1. Аналого-цифровой преобразователь ............................................. 240 7.2. Аналоговый компаратор ................................................................. 242 8. Энергонезависимая память данных EEPROM ............................... 248 9. Программирование микроконтроллеров ........................................ 251 9.1. Способы программирования и конфигурационные биты ........... 251 9.2. Самопрограммирование микроконтроллеров ............................... 256 10. Программирование и отладка программ на языке Си ............... 266 10.1. Среда CodeVision AVR ................................................................. 266 10.2. Отладка в AVR Studio ................................................................... 272 Литература ............................................................................................... 277 Приложение. Обозначения регистров ввода/вывода АТх8515 ............ 278
ПРЕДИСЛОВИЕ Появление новых семейств микроконтроллеров (МК) с RISCархитектурой (Reduced Instruction Set Computer), выполненных с Flash-памятью для программ, не могло не привлечь внимания специа-листов, занятых разработкой компьютерных систем управления. Высокие технические и конструктивные характеристики, низкая цена и невысокая потребляемая мощность способствовали их признанию; они быстро завоевали популярность, потеснив на мировом рынке широко известное семейство MCS-51 и ему подобные. Сказанное относится прежде всего к микроконтроллерам общего назначения семейств PicMicro, AVR Atmel и др. Но если первые имеют сравнительно небольшой набор операций (до 35), то вторые с системой команд, насчитывающей до 120 и более, практически ни в чем не уступают микроконтроллерам с CISC-архитектурой (Complex Instruction Set Computer). Эти микроконтроллеры имеют более развитую систему адресации данных, что чрезвычайно важно при создании эффективного программного обеспечения. Наряду с новыми технологическими решениями разработчики компьютерных управляющих систем получили в свое распоряжение удобный аппарат в виде интегрированных систем проектирования и отладки программ (Integrated Development Environment, IDE) и стартовых наборов (Starter Kit, STK), которые при совместном использовании являются неоценимым инструментом, ускоряющим процесс разработки и повышающим его эффективность. Излагаемый материал базируется на трех «китах». Во-первых, это архитектура 8-разрядных микроконтроллеров AVR, относящихся к средним по своим функциональным характеристикам семействам микроконтроллеров общего применения (например, AT90S8515 семейства Classiс или его аналога AТmega8515 семейства Mega). Знание архитектуры этих микроконтроллеров позволит быстро освоить иные модели микроконтроллеров этих семейств, а также микроконтроллеры других фирм-изготовителей.
Предисловие 6 Во-вторых, использование интегрированной среды проектирования AVR Studio 4, свободно распространяемой в сети Internet, дает возможность не только разрабатывать, но и отлаживать создаваемое программное обеспечение с помощью встроенного симулятора, а в среде VMLab совместно моделировать работу микроконтроллера и простых внешних устройств. Наконец, подключив к AVR Studio 4 стартовый набор разработчика STK500, можно проверить созданную программу непосредственно в целевом микроконтроллере, а подключив через разъем расширения дополнительные устройства, – и в составе системы. Попутно отметим сравнительно невысокую стоимость STK500, что немаловажно для учебных заведений. Пособие построено следующим образом. Вначале дается описание микроконтроллеров AVR, отладочных инструментов AVR Studio и VMLab и, наконец, стартового набора STK500. Освоение архитектуры и системы команд микроконтроллеров начинается с изучения приводимых в пособии проектов и программ, подготовленных на языке Ассемблер AVR, знакомящих с функциями портовой системы микроконтроллера, возможностями арифметической обработки данных, разнообразными функциями таймеров, организацией ввода–вывода по параллельным и последовательным каналам связи, с устройствами обработки аналоговых сигналов. Одна из глав пособия посвящена технологии работы над проектом, использующим программы, написанные на языке Си, и компилятор Code Vision C Compiler, разработанный HP Info Tech. В работах над проектами автор использовал помимо основных упомянутых интегрированных систем проектирования и другие, в частности, программу ISIS из пакета Proteus 6 Professional (Labcenter Electronics), что позволило провести совместную симуляцию программ в проектах, содержащих более одного микроконтроллера, вместе с виртуальными периферийными устройствами. Описанные программы и инструменты можно исполь-зовать в качестве основы при разработке программного обеспечения в приложениях общего назначения. Все разделы пособия содержат альтернативные задания разной сложности для самостоятельного программирования, которые могут быть реализованы на основе полученных знаний, и контрольные вопросы. Автор с удовлетворением отмечает большой интерес к первому изданию пособия, проявленный со стороны пользователей сети Internet, что подтолкнуло его к продолжению работы над данным учебным пособием. Во второе издание внесен ряд изменений и
Предисловие 7 дополнений. Переработана глава 3, в которую кроме методов арифметической обработки в микроконтроллерах вошли материалы по преобразованию форматов числовых данных (двоичный, двоично-десятичный целочисленный, с плавающей точкой). Заново написан ряд учебных программ, делающих их более наглядными для применения. Попутно устранены ошибки и неточности, допущенные в первом издании в программах арифметической обработки, выявленные при проведении учебного процесса во время активного тестирования описанных программ. Автор выражает благодарность студентам, принявшим участие в этой работе. В пособие добавлен ряд новых разделов, посвященных отладке в интегрированной среде VMLab (1.5), программированию энергонезависимой внутренней памяти EEPROM (гл. 8) и памяти программ микроконтроллеров (гл. 9). Для сокращения времени подготовки учебных программ для AVR Studio 4 предлагается архив с файлами программ, размещенный в сети Internet по ссылке /8/. Автор надеется, что проделанная работа будет и дальше способствовать плодотворному самостоятельному изучению архитектуры микроконтроллеров широким кругом лиц, интересующихся новыми схемотехническими решениями.
1. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПРАКТИКУМА Микроконтроллеры AVR фирмы Atmel, появившись на рынке интегральных микросхем в 1996 г., сразу же привлекли к себе внимание разработчиков электронной аппаратуры. Удачное сочетание RISC-архитектуры «ядра», обеспечивающей высокую производительность, с широким набором команд, Flash-памятью для программ быстро выдвинуло микроконтроллеры AVR на передовые позиции. На смену микроконтроллерам первых семейств (Tiny и Classic) пришло новое поколение микроконтроллеров (Mega). Сохранив программную преемственность, микроконтроллеры Mega приобрели новые свойства: пониженные напряжение питания (до 2,7 В) и энергопотребление, повышенные быстродействие (до 16 МГц) и объем Flash-памяти (до 128 Кбайт). Вслед за 8-разрядными микроконтроллерами появились 32-разрядные микроконтроллеры AVR32 и др. Одновременно были созданы программные продукты и технические средства, поддерживающие разработку программ для микроконтроллеров. Это, прежде всего, фирменный пакет фирмы Atmel AVR Studio, свободно распространяемый в сети Internet, и отладочные платы в виде стартовых наборов разработчика (STK500, STK501, STK502 нового STK600), выпущенные для поддержки разработок на микроконтроллерах AVR. Вместе они образуют единую платформу, на которой можно успешно проводить разработку и отладку различных приложений. Инструментальными средствами разработки и отладки программ для микроконтроллеров AVR, используемыми в практикуме, являются интегрированный пакет AVR Studio 4 и стартовый набор STK500 фирмы Atmel. Целевыми микроконтроллерами, которые используются во всех проектах практикума, являются ATх8515, поставляемые в комплекте со стартовым набором STK500 и занимающие среднее положение в семействе выпускаемых моделей AVR.
1.1. Микроконтроллеры АTх8515 9 В связи с этим, прежде чем перейти непосредственно к инструментальным средствам проектирования, рассмотрим кратко основные характеристики используемых микроконтроллеров и их структуру. 1.1. МИКРОКОНТРОЛЛЕРЫ ATх8515 Аппаратные ресурсы Все микроконтроллеры AVR имеют гарвардскую архитектуру, которая предполагает разделение памяти программ и данных. Используемые при этом средства адресации позволяют создавать эффективные программы с высоким быстродействием. Упрощенная структурная схема микроконтроллера AT90S8515 представлена на рис. 1.1. Ядро микроконтроллера образуют блок процессора, объединяющий арифметико-логическое устройство (АЛУ) с регистром признаков (SREG) и устройство управления, память программ (Flash) объемом 8 Кбайт, регистры общего назначения, память данных статического типа (SRAM) объемом 512 байт. Устройство управления включает схему синхронизации, регистр управления микроконтроллера (MCUCR), генератор, а также регистр команд с дешифратором, программный счетчик и указатель стека. Периферийные устройства представлены достаточно широко: – 8-разрядные порты ввода/вывода PA, PB, PC, PD; – последовательный асинхронный приемопередатчик UART (Universal Asynchronous Receiver-Transmitter); – последовательный синхронный порт SPI (Serial Peripheral Interface); – 8-разрядный таймер T0; – 16-разрядный таймер T1; – сторожевой таймер; – широтно-импульсный модулятор PWM; – энергонезависимая память EEPROM объемом 512 байт; – блок прерываний; – аналоговый компаратор. Для памяти программ и энергонезависимой памяти в составе микроконтроллера имеются средства для внутрисистемного программирования по интерфейсу SPI. Память микроконтроллера организована, как показано на рис. 1.2.
Рис. 1.1. Структурная схема микроконтроллера АТ90S8515