Эта книга — сборник примеров программ на языке С для микроконтроллеров производства ATMEL. В качестве средств разработки и имитации использованы компилятор WinAVR, среда AVR Studio и имитатор схем Proteus ISIS. Синтаксические особенности языка С и методы работы с перечисленными выше инструментальными средствами в книге подробно не рассматриваются, поскольку автор преследовал цель дать максимальное число практических примеров использования тех или иных периферийных устройств микроконтроллера: таймеров/счетчиков, приемопередатчика
Название: Программирование микроконтроллеров ATMEL на языке С
Автор: Прокопенко В. С.
Издательство: МК-Пресс
Формат: djvu (ISO)
Размер: 71,4 Mb + 276,6 Mb (CD)
Год издания: 2012
Страниц: 394
СОДЕРЖАНИЕ
Введение
ЧАСТЬ I. ПРИСТУПАЯ К РАБОТЕ
Глава 1. Средства разработки/имитации
Среда разработки WinAVR
Среда разработки AVR Studio
Имитатор схем Proteus ISIS
Глава 2. Работа с разрядами в языке С
Оператор >
Оператор ~
Оператор а
Оператор |
Оператор &
Запись лог. 1 в некоторый разряд с обнулением остальных разрядов
Запись лог. 1 в некоторый разряд без обнуления остальных разрядов
ЧАСТЬ II. МИКРОКОНТРОЛЛЕР AT90S2313
Глава 3. Таймеры/счетчики AT90S2313
Таймер/счетчик 0
Таймер/счетчик 0 в режиме счета импульсов на внешнем выводе ТО
Таймер/счетчик 1
Таймер/счетчик 1 в режиме счета импульсов на внешнем выводе Т1
Регистр захвата ICR1 таймера/счетчика 1
Регистр совпадения OCR1 таймера/счетчика 1
Использование таймера/счетчика 1 в режиме ШИМ
Глава 4. Память EEPROM AT90S2313
Запись/чтение одного байта
Запись/чтение заданного количества байт
Работа с EEPROM с помощью функций WinAVR
Глава 5. Работа с UART в AT90S2313
Передача байта данных через UART
Передача заданного числа байт через UART
Прием данных через UART
Настройка виртуального терминала в Proteus
Создание подключения в программе HyperTerminal
Прием и передача байта данных через UART
Прием байта, отправка строки через UART
Использование потока stdout
Использование потоков stdout и stdin для передачи и приема символа
Использование потоков stdout и stdin для передачи и приема строки
Сравнение строки, принятой через UART
Управление выводами с помощью UART
Реализация приглашения командной строки
Глава 6.
Аналоговый компаратор AT90S2313Глава 7. Работа с прерываниями в AT90S2313
Прерывание при переполнении счетного регистра TCNT0
Работа таймера/счетчика 0 в режиме счетчика импульсов на внешнем выводе
Прерывание при переполнении счетного регистра TCNT1
Работа таймера/счетчика 1 в режиме счетчика импульсов на внешнем выводе
Прерывание по сигналу на входе захвата
Прерывание при совпадении регистра OCR1
Внешние прерывания INTO и INT1
Прерывание при очистке регистра UDR
Прерывание по окончанию приема данных
Прерывание по окончанию передачи данных
Прерывание от аналогового компаратора
Использование таймера/счетчика 1 в режиме ШИМ
Передача данных через UART с использованием буфера
ЧАСТЬ III. МИКРОКОНТРОЛЛЕР ATMEGA16
Глава 8. Таймеры/счетчики ATmega16
Таймер/счетчик 0 в режиме «Normal»
Таймер/счетчик 0 в режиме «СТС»
Таймер/счетчик О в режиме «Fast PWM»
Глава 9. Аналоговый компаратор и АЦП ATmega16
Аналоговый компаратор
АЦП в режиме непрерывного преобразования
АЦП в режиме одиночного преобразования
АЦП в режиме дифференциального входа
Глава 10. Интерфейсы передачи данных ATmega16
Интерфейс USART
Интерфейс SPI. Подключение 12-разрядного ЦАП МСР4821
Интерфейс SPI. Работ а с памятью EEPROM
Внешние функции, используемые в программе
Описание микросхемы М95040
Глава 11. Использование ЖК-экрана
Подключение текстового ЖК-экрана 16×2 на базе контроллера KS0066U
Применение стандартных функций вывода при работе с ЖК-дисплеем
Вывод на ЖК-экран результатов аналого-цифрового преобразования
Измерение тока, напряжения, температуры
Подключение клавиатуры 3×4
Скачать книгу с Depositfiles
Скачать CD-диск с Depositfiles
Понравилась статья? Поделиться с друзьями:
Ревич Юрий Всеволодович
Артикул | 1502 |
ISBN | 978-5-9775-0277-1 |
Количество страниц | 384 |
Формат издания | 170 x 240 мм |
Печать | Черно-белая |
Серия | Аппаратные средства |
436 ₽
# AVR# электроника и схемотехника#Atmel
Изложены основные принципы функционирования и особенности архитектуры микроконтроллеров Atmel AVR.
Подробно описаны приемы программирования микросхем этого семейства и их отдельных узлов. Вы найдете готовые рецепты для программирования большинства основных функций современной микроэлектронной аппаратуры: от реакции на нажатие кнопки или построения динамической индикации до сложных протоколов записи данных во внешнюю память или особенностей подключения часов реального времени. В книге учтены особенности современных моделей AVR и сопутствующих микросхем последних лет выпуска. Особое внимание уделяется обмену данными микроэлектронных устройств с персональным компьютером, приводятся примеры программ на Delphi. Приложение содержит основные параметры микроконтроллеров AVR, перечень команд и тексты программ для них, а также список используемых терминов и аббревиатур….Ревич Юрий Всеволодович – инженер-электронщик, журналист и писатель с многолетним стажем. Основной круг интересов – проектирование микроэлектронных устройств от принципиальной схемы до пользовательского интерфейса, информационные технологии, их влияние на современное общество, технологические инновации, история компьютеров.
Артикул | 1502 |
---|---|
ISBN | 978-5-9775-0277-1 |
Количество страниц | 384 |
Серия | Аппаратные средства |
Переплет | Мягкая обложка |
Печать | Черно-белая |
Год | 2008 |
Габариты, мм | 240 × 170 × 18 |
Вес, кг | 0.43 |
ПОЛЕЗНАЯ РАССЫЛКА КНИЖНЫХ НОВОСТЕЙ
Подписываясь на рассылку, вы соглашаетесь с политикой конфиденциальности и обработкой своих персональных данных.
Scratch+Arduino. 18 проектов для юных программистов + КНИГА
Проекты с использованием контроллера Arduino. 3-е изд.
Умные вещи: Arduino, датчики и сети для связи устройств: Пер. с англ. 3-е изд.
Занимательная электроника, 5-е изд.
Микроконтроллер AVR от Atmel (теперь Microchip) является одним из наиболее широко используемых 8-разрядных микроконтроллеров. Arduino Uno основан на микроконтроллере AVR; это недорого и общедоступно по всему миру.
В этой книге авторы используют пошаговый и систематический подход для демонстрации программирования микросхемы AVR. Примеры как на языке ассемблера, так и на C объясняют, как программировать многие функции AVR, такие как таймеры, последовательная связь, АЦП, SPI, I2C и ШИМ.
Текст состоит из двух частей:
В первом издании этой книги, опубликованном Pearson, использовался ATmega32. Он по-прежнему доступен для покупки на Amazon. Эта новая версия основана на Atmega328 и плате Arduino Uno.
Дополнительная информация…
Микроконтроллеры Atmel AVR — это чипы, на которых работает Arduino, и которые являются популярными чипами для многих любителей и проектов по взлому оборудования. В этой книге вы отложите в сторону уровни абстракции, предоставляемые средой Arduino, и научитесь напрямую программировать микроконтроллеры AVR.
При этом вы приблизитесь к чипу и сможете выжать из него больше мощности и возможностей.
Каждая глава этой книги посвящена проектам, затрагивающим конкретную тему микроконтроллеров. Каждый проект включает в себя схемы, код и иллюстрации рабочего проекта.
Дополнительная информация…
Благодаря использованию популярного и экономичного встроенного контроллера Atmel AVR в качестве платформы и приложения для обучения Embedded C Programming и Atmel AVR являются идеальным выбором для новичков. Эта инновационная книга, содержащая множество полнофункциональных примеров приложений, позволяет пользователям применять подход «обучение на практике» по мере того, как они приобретают знания и навыки, необходимые для достижения профессионального уровня.
После ознакомления с RISC-процессорами Atmel AVR читатели сразу же переходят к встроенному учебному пособию по языку C.
Здесь они будут экспериментировать с переменными и константами, операторами и выражениями, операторами управления, указателями и массивами, типами памяти, директивами препроцессора, методами реального времени и многим другим.
В дополнение к всеобъемлющему справочнику по библиотечным функциям, целая глава о компиляторе CodeVision AVR C содержит подробные пошаговые инструкции по установке и эксплуатации IDE, смешиванию ассемблера с C и использованию генератора кода Code Wizard. Использование периферийных устройств, таких как клавиатуры, ЖК-дисплеи и другие стандартные встроенные устройства, связанные с микроконтроллерами, также подробно рассматривается в этом всеобъемлющем современном руководстве и справочном руководстве для программиста.
Дополнительная информация…
STK128+ — это полная и экономичная отладочная плата для ATmega128. Он предназначен для того, чтобы предоставить разработчикам возможность быстрого начала разработки кода для микроконтроллера ATmega128, что ускорит разработку прототипов устройств ATMega 128.
Микросхема ATmega128 установлена на плате устройства, которую можно отделить от материнской платы, что позволяет безопасно заменять MCU. Чип ATmega128 поставляется в корпусе TQFP64 и может быть ATmega128-16AU, ATmega128L-8AU или ATmega128A-AU.
Комплект STK128+ включает плату устройства ATmega128, дополнительную запасную плату устройства ATmega128 и набор экспериментальных фитингов.
Дополнительная информация…
Нам нравится смотреть на хардкорные проекты в области электроники с мощным микроконтроллером и сотнями, если не тысячами, строк кода в его центре. Но всем нужно как-то туда попасть.
Эта серия руководств призвана научить вас программировать линейку микроконтроллеров Atmel AVR. Если вы никогда раньше не прикасались к микроконтроллерам или уже успели поработать над десятками проектов Arduino, это поможет вам сразу перейти к аппаратному обеспечению и придаст вам уверенности в создании чего угодно.
Дорожная карта серии:
Предварительные знания
Хорошая новость: планка очень низкая. Вам необходимы базовые знания по установке программ на компьютер и их использованию. Вы должны иметь некоторое представление о том, как работает макетная плата без пайки, и желательно, чтобы у вас был мультиметр и вы знали, как с его помощью измерять напряжение. И вам не следует бояться использовать Google для исследования вопросов, на которые здесь нет явных ответов.
Что на самом деле делает микроконтроллер?
Это загруженный вопрос. Для понимания я приведу это к самому простому объяснению:
Микроконтроллер делает то, для чего вы его программируете. Делает это быстро и надежно.
Как это работает?
В этой серии руководств я буду обсуждать цифровую логику. То есть все входные и выходные контакты будут оцениваться на основе нулевого напряжения или 5 В. Это производит наши цифровые 1 и 0, с 5 вольтами как единица и ноль вольт как ноль.
Итак, если вы хотите зажечь светодиод, просто подключите цепь к контакту, сделайте этот контакт выходным и установите на нем высокий логический уровень (5 вольт). Если вы хотите добавить кнопку, подключите ее к контакту, установленному в качестве входа, и запрограммируйте микросхему для измерения уровня напряжения на этом контакте. Это действительно так просто, как только вы научитесь писать правильные команды, чтобы чип понял ваши пожелания.
Посмотрите на сам чип
Я решил использовать микроконтроллер ATmega168. Это мощный чип, но начать использовать его не сложнее, чем его младшие собратья. Это оставит вам много места для роста в ваших проектах, оставаясь при этом доступным (менее 4,50 долларов США). Вот его схема:
Это часто называют распиновкой, поскольку она показывает, что на самом деле делает каждый из 28 контактов на микросхеме. Все эти контакты имеют несколько функций, поэтому рядом с каждым из них есть длинные строки текста, за исключением пяти, которые имеют только одно имя. Это контакты, имеющие отношение к напряжению и земле (VCC, GND, AVCC, AREF, AGND), что является важной проблемой для микроконтроллеров.
Интегральные схемы нуждаются в постоянном источнике напряжения. Это означает, что в рамках нашего проекта нам нужно будет построить регулятор напряжения. Это легко сделать на макетной плате, и вы должны иметь возможность достать детали на месте. Также стоит отметить наличие полукруглой ямочки на верхней части чипа. Это то, что вы найдете в пластиковом корпусе этих двухрядных чипов, и оно используется, чтобы убедиться, что вы не подключите его наоборот.
Еще раз взгляните на распиновку и найдите контакты, имена которых начинаются с PD. Вы должны увидеть восемь из них, помеченные от PD0 до PD 7. Это фантастический пример 8-битной природы этих чипов. PD означает порт D, один из входных и выходных регистров. Все в этих чипах сосредоточено вокруг 8-бит. Это последовательность из восьми единиц или нулей в разных сочетаниях. Если вы хотите включить или отключить определенные функции, вы изменяете один или несколько битов в 8-битном регистре. Каждый раз, когда вы хотите изменить один контакт, вы должны адресовать все восемь в регистре. Мы узнаем об этом гораздо больше, но только в третьей части серии.
Программирование
ATmega168 — это программируемый микроконтроллер. Но что еще лучше, его можно перепрограммировать. На самом деле, когда вы работаете над проектом, вы, скорее всего, будете перепрограммировать его несколько раз в час.
Размер этого чипа ограничен 16 килобайтами пространства для программирования. В наши современные времена 64-гигабайтных iPod 16 килобайт могут показаться мизерными. Но на самом деле это 16 килобайт машинного кода. Вы можете многое сделать с этим… поверьте мне.
Вам нужно какое-то оборудование, чтобы записать код на эти чипы. Обычно это приходит в виде программатора AVR. Во второй части этого руководства мы рассмотрим несколько различных вариантов программирования, а затем создадим и запрограммируем тестовую схему.
Чтобы подготовиться к оставшейся части этой серии руководств, мне нужно, чтобы вы собрали некоторые инструменты. У вас должен быть какой-то тип компьютера, будь то Linux, Mac или Windows PC. Это запустит программное обеспечение, которое берет наш код, компилирует его во что-то, что может использовать микроконтроллер, а затем сообщает программисту, как записать его в наш чип.
Компилятор
Со временем мы напишем собственный код для AVR, использующий архитектуру RISC. Но мы делаем это на компьютере с архитектурой x86. Инструмент, необходимый для этого, называется кросс-компилятором. Это, возможно, лучшая причина для выбора AVR для разработки, поскольку имеется отличная цепочка инструментов, которую можно легко установить на несколько платформ.
Это не единственный вариант. Многие пользователи Windows доверяют бесплатному программному обеспечению AVR Studio от Atmel. Это единственный раз, когда я буду ссылаться на него, поскольку у меня нет компьютера с Windows и я никогда не пробовал этот пакет.
Программное обеспечение для программирования
Наше программное обеспечение для запуска аппаратного программатора называется AVRdude. Если вы установили один из наборов инструментов выше, у вас уже должна быть эта программа. Перейдите в окно терминала или командную строку и введите следующее, чтобы убедиться:
avrdude -h
Появится экран справки. Если вы получили сообщение об ошибке, вам следует убедиться, что вы правильно установили набор инструментов на предыдущем шаге, или скачайте AVRdude самостоятельно.
На этом вступительная часть этой серии завершается.
Часть 2: В следующем выпуске этой серии мы рассмотрим несколько аппаратных средств, которые можно использовать для программирования микроконтроллера AVR. Я написал программу hello world и проведу вас через сборку схемы на макетной плате, подключение микросхемы к программатору и использование AVRdude для записи этой простой прошивки на устройство. Я не хочу вас слишком волновать, но это связано с мигающим светодиодом.
Часть 3: Предварительно скомпилированный HEX-файл использовался для программирования микроконтроллера AVR во второй части серии.