Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Микроконтроллеры AVR. Практикум для начинающих

Покупка
Артикул: 100983.03.99
Доступ онлайн
1 400 ₽
В корзину
Практикум содержит материалы для изучения микроконтроллеров AVR с архитектурой RISC. Рассмотрены необходимые инструментальные средства и предложен большой комплект учебных программ для изучения функциональных возможностей микроконтроллеров. Тематика учебного пособия охватывает практически все аспекты архитектуры микроконтроллеров. Базовые программы могут быть использованы в качестве основы для обучения и самостоятельного программирования на языке Ассемблер AVR в курсовом и дипломном проектировании. Материалы книги автор использует в учебном процессе в МГТУ им. Н.Э. Баумана. Для студентов высших и средних специальных учебных заведений, обучающихся по направлению "Информатика и вычислительная техника".
Хартов, В. Я. Микроконтроллеры AVR. Практикум для начинающих : учебное пособие / В. Я. Хартов. - 2-е изд., испр. и доп. - Москва : МГТУ им. Баумана, 2012. - 280 с. - ISBN 978-5-7038-3565-4. - Текст : электронный. - URL: https://znanium.com/catalog/product/2008806 (дата обращения: 07.05.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
УДК 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 In-
struction 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 In-
terface); 
– 8-разрядный таймер T0; 
– 16-разрядный таймер T1; 
– сторожевой таймер; 
– широтно-импульсный модулятор PWM; 
– энергонезависимая память EEPROM объемом 512 байт; 
– блок прерываний; 
– аналоговый компаратор. 
Для памяти программ и энергонезависимой памяти в составе 
микроконтроллера имеются средства для внутрисистемного программирования 
по интерфейсу SPI.  
Память микроконтроллера организована, как показано на  
рис. 1.2. 

Рис. 1.1. Структурная схема микроконтроллера АТ90S8515 

1.1. Микроконтроллеры АTх8515 
11

Рис. 1.2. Карта памяти микроконтроллеров ATхS8515 

Память программ Flash обособлена, ее размер составляет  
8 Кбайт. Каждая ячейка Flash-памяти содержит 16 разрядов. 
Память данных делится на три части: регистровая, оперативная 
статическая SRAM и энергонезависимая EEPROM.  
Регистровую память составляют 32 регистра общего назначения 
и 64 регистра ввода/вывода, представляющих периферийные 
устройства.  
Оперативная память объемом 512 байт предназначена для хранения 
данных при выполнении программы. Регистровая и оперативная 
память образуют единое адресное пространство: регистры 
общего назначения занимают адреса $0000–$001F, за ними располагаются 
регистры ввода/вывода $0020–$005F, затем ячейки оперативной 
памяти $0060–$025F. Расширение адресного пространства 
вплоть до верхней границы $FFFF можно осуществить за счет 
подключения внешнего запоминающего устройства ERAM.   
Для долговременного хранения данных, которые могут изменяться 
в процессе работы микроконтроллера, используют память 
EEPROM объемом 512 байт. Память EEPROM имеет обособленное 
адресное пространство, каждая ячейка содержит восемь разрядов. 
Данные в EEPROM могут быть записаны при программировании 
микроконтроллера. При выключении питания данные сохраняются. 
Регистры общего назначения разбиты на две группы: R0…R15 и 
R16…R31. Принадлежность регистра к той или иной группе необходимо 
учитывать при написании программы. 
Микроконтроллер AT90S8515 содержит 44 регистра ввода/вывода, 
используемых в составе периферийных устройств (еще 20 регистров 
зарезервировано), из них 14 – 8-разрядные регистры данных, 
остальные являются регистрами управления и состояния. Если 

1. Инструментальные средства практикума 
12

учесть, что они представлены битами управления и состояния, общее 
количество которых 187 (!), и часть их объединена полями с кодами 
управления, то нетрудно понять, насколько многообразны 
функциональные возможности этих устройств (к примеру, одно  
3-разрядное поле управления позволяет задать восемь управляющих 
функций). Список регистров ввода/вывода и их адреса в адресном 
пространстве SRAM приведены в табл. 1.1.  

Таблица 1.1. Адреса регистров ввода/вывода AT90S8515 

Адрес 
20 
30 
40 
50 

0 
Резерв 
PIND 
Резерв 
Резерв 

1 
Резерв 
DDRD 
WDTCR 
Резерв 

2 
Резерв 
PORTD 
Резерв 
TCNT0 

3 
Резерв 
PINC 
Резерв 
TCCR0 

4 
Резерв 
DDRC 
ICR1L 
Резерв 

5 
Резерв 
PORTC 
ICR1H 
MCUCR 

6 
Резерв 
PINB 
Резерв 
Резерв 

7 
Резерв 
DDRB 
Резерв 
Резерв 

8 
ACSR 
PORTB 
OCR1BL 
TIFR 

9 
UBRR* 
PINA 
OCR1BH 
TIMSK 

A 
UCR* 
DDRA 
OCR1AL 
GIFR 

B 
USR* 
PORTA 
OCR1AH 
GIMSK* 

C 
UDR 
EECR 
TCNT1L 
Резерв 

D 
SPCR 
EEDR 
TCNT1H 
SPL 

E 
SPSR 
EEARL 
TCCR1B 
SPH 

F 
SPDR 
Резерв 
TCCR1A 
SREG 

 
Все регистры имеют штатные имена, которые можно использовать 
при написании программ. Для этого в программу на языке 
Ассемблера необходимо включить файл определений 8515def.inc, 
а в программу на языке Си – файл 90s8515.h.  
Расшифровка названий регистров, формат и назначение каждого 
бита в отдельности приведены в последующих разделах практикума 
при описании работы соответствующих периферийных устройств. 
Регистры, имена которых отмечены знаком *, в модели ATmega8515 
получили другие имена: по адресу $29 – UBRRL, по адресу $2А – 
UCSRB, по адресу $2B – UCSRA, по адресу $5B – GICR.  

Доступ онлайн
1 400 ₽
В корзину