- •Магомедов и. А. Микропроцессорные системы. Теория и практика применения микроконтроллеров
- •Глава I. Микроконтроллеры
- •Глава III. Лабораторный практикум по микроконтроллерам семейства avr фирмы atmel
- •Предисловие
- •Введение
- •Глава I. Микроконтроллеры
- •1.1. Классификация микроконтроллеров
- •Области применения:
- •1.2. Направление развития элементной базы 8-разрядных микроконтроллеров
- •Контрольные вопросы
- •Глава II. Высокопроизводительные risc микроконтроллеры семейства avr
- •2.1. Микроконтроллер фирмы Atmel aTmega1281
- •2.2. Системное управление и сброс микроконтроллера
- •Контрольные вопросы
- •2.3. Программная модель микроконтроллера2
- •Регистр управления коэффициентом деления частоты кварцевого генератора - xtal Divide Control Register – xdiv.
- •Контрольные вопросы
- •Регистр управления коэффициентом деления частоты кварцевого генератора xdiv и его назначение. Пример использования регистра.
- •2.4 Подсистема памяти микроконтроллера
- •2.4.1 Статическое озу памяти данных
- •2.4.2 Система команд процессоров avr в семействе avr система команд у микроконтроллеров разных типов содержат от 89 до 130 команд.
- •2.4.3 Режимы адресации памяти программ и данных
- •2.4.5 Память данных на eeprom
- •2.4.6 Конфигурационные биты
- •2.4.7 Системная синхронизация и тактовые источники
- •Контрольные вопросы
- •2.5. Периферийные модули микроконтроллера aTmega128
- •2.5.1. Параллельные порты ввода-вывода
- •Порты в качестве универсального цифрового ввода-вывода. Все порты являются двунаправленными портами ввода-вывода с опциональными подтягивающими резисторами.
- •Описание регистров портов ввода-вывода.
- •Использование параллельных портов для управления жидкокристаллическим индикатором и
- •Контрольные вопросы
- •2.6. Подсистема таймера/счетчика микроконтроллера aTmega128
- •Описание регистров 8-разрядного таймера-счетчика 0.
- •Описание регистров 16-разрядных таймеров-счетчиков.
- •Контрольные вопросы
- •2.7. Подсистема ввода аналоговых сигналов мк
- •Контрольные вопросы
- •2.8. Аналоговый компаратор
- •Контрольные вопросы
- •2.9. Последовательный периферийный интерфейс – spi
- •Функционирование вывода ss.
- •2.9.1. Пример использования интерфейса spi микроконтроллера aTmega128
- •Контрольные вопросы
- •2.10. Универсальный синхронно - асинхронный последовательный приемопередатчик
- •Описание регистров усапп
- •2.10.1. Пример использования порта uart
- •Контрольные вопросы
- •2.11. Последовательный двухпроводной интерфейс twi
- •2.11.1. Формат посылки и передаваемых данных
- •2.11.2. Модуль twi микроконтроллера avr
- •Описание регистров twi.
- •2.11,3. Подключение схемы ds1307 к микроконтроллеру по интерфейсу twi
- •Глава III. Лабораторный практикум по микроконтроллерам семейства avr фирмы atmel6
- •Оформление отчета
- •Правила выполнение работы в лаборатории
- •Подготовки стенда к выполнению лабораторной работы
- •Лабораторная работа № 1. Разработка и отладка программ в среде avr Studio 4. Изучение системы команд микроконтроллеров семейства avr
- •Режимы работы отладчика
- •Индивидуальные задания к выполнению лабораторной работы №1
- •Контрольные вопросы к лабораторной работе №1
- •Лабораторная работа №2. Параллельные порты ввода/вывода микроконтроллера
- •Индивидуальные задания к выполнению лабораторной работы №2
- •Контрольные вопросы к лабораторной работе №2
- •Лабораторная работа №3 Подсистема ввода аналоговых сигналов микроконтроллера
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №3
- •Контрольные вопросы к лабораторной работе №3
- •Лабораторная работа №4.
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №4
- •Контрольные вопросы к лабораторной работе №4
- •Лабораторная работа №5 Изучение режимов работы Таймера/Счетчика
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №5
- •Контрольные вопросы к лабораторной работе № 5
- •Лабораторная работа №6 Последовательный периферийный интерфейс – spi
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №6
- •Контрольные вопросы к лабораторной работе № 6
- •Лабораторная работа №7 Подсистема памяти микроконтроллера.
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работе №7
- •Контрольные вопросы к лабораторной работе №7
- •Лабораторная работа №8 Последовательный двухпроводной интерфейс i2c (twi)
- •Краткие теоретические сведения
- •Индивидуальные задания к выполнению лабораторной работы №8
- •Контрольные вопросы к лабораторной работе №8
- •Список использованной литературы
- •Костин г.Ю. Микроконтроллеры фирмы Motorola. М.: ктц-мк, 1998.
- •Микроконтроллеры семейства avr
- •Приложение 2
- •Include - Вложить другой файл
- •Выражения
- •Набор инструкций
- •Приложение 3
- •Семейства avr
- •Приложение 4
Индивидуальные задания к выполнению лабораторной работы №2
Разработать программу для подсчета количества единиц в 8 разрядном слове порта РВ. Результат записать в РС, если РВ0=1, иначе в РА.
Разработать программу для реализации 8 разрядного двоичного счетчика (порт РС). Режим суммирования при РВ0=1, режим вычитания РВ0=0.
Разработать программу реализации 8 разрядного распределителя импульсов. Сдвиг слева направо, если PD0=1, справа налево, если PD0=0.
Разработать программу для реализации 8 разрядного двоичного счетчика в режиме суммирования (порт РD). При РА0 = 1 с шагом +1импульс, а при РА0=0 с шагом +2 импульса.
Разработать программу для реализации 8 разрядного двоичного счетчика в режиме суммирования (порт РD) с прогаммно-изменяемой скоростью работы. Скорость определяется значением порта С.
Разработать программу для реализации следующих логических условий: если (РА0=1 и РС0=1) или РА3=1, то записать в РD число FF, иначе в РD число 00.
Разработать программу для реализации следующих логических условий: если РА0 = 1 или РС0 = 1, то вызов подпрограммы сдвига данных влево и запись их в РА, иначе –вправо.
Разработать программу формирования на выводах параллельного порта МК временных диаграмм заданного вида (см. таблицу 3.1).
Таблица 3.1
№ варианта |
Временная диаграмма |
№ варианта |
Временная диаграмма |
8.1
|
|
8.3 |
|
8.2 |
|
8.4 |
|
Контрольные вопросы к лабораторной работе №2
Назначение параллельных портов МК.
Приведите примеры применения параллельных портов.
Как производит настройка параллельных портов на ввод или вывод данных? Приведите пример настройки портов.
Какие регистры используются для настройки параллельных портов?
В чем отличие регистров DDRx, PORTx и PINx (где x-A, B, С, D и т.д.)
Назначение регистров DDRx, PORTx и PINx параллельных портов.
Перечислите команды обращения к портам и приведите их форматы.
Привести схему подключения набора кнопок и светодиодной линейки индикации к параллельным портам МК. Разработать программу отображения состояния кнопок на светодиодной линейке индикации.
Лабораторная работа №3 Подсистема ввода аналоговых сигналов микроконтроллера
Цель работы. Изучение принципов работы АЦП. Получение навыков разработки и отладки программ управления АЦП и обработки данных.
Краткие теоретические сведения
ATmega8535 содержит 10-разрядный АЦП последовательного приближения. АЦП связан с 8-канальным аналоговым мультиплексором, 8 однополярных входов которого связаны с линиями порта A.
Источник опорного напряжения (ИОН) для АЦП (VИОН) определяет диапазон преобразования АЦП. Если уровень однополярного сигнала свыше VИОН, то результатом преобразования будет 0x3FF. В качестве VИОН могут выступать AVCC, внутренний ИОН 2,56В или внешний ИОН, подключенный к выв. AREF. AVCC подключается к АЦП через пассивный ключ. Внутреннее опорное напряжение 2,56В генерируется внутренним эталонным источником VBG, буферизованного внутренним усилителем. В любом случае внешний вывод AREF связан непосредственно с АЦП и, поэтому, можно снизить влияние шумов на опорный источник за счет подключения конденсатора между выводом AREF и общим. Напряжение VИОН также может быть измерено на выводе AREF высокоомным вольтметром. Обратите внимание, что VИОН является высокоомным источником и, поэтому, внешне к нему может быть подключена только емкостная нагрузка.
Регистр управления мультиплексором АЦП– ADMUX
-D7,D6–REFS1,0. Биты выбора источника опорного напряжения
00-AREF, внутренний VИОН отключен
01-AVCC с внешним конденсатором на выводе AREF
10-Зарезервировано
11-Внутренний источник опорного напряжения 2.56В с внешним конденсатором на выводе AREF
-D 5–ADLAR. Бит управления представлением результата преобразования. Бит ADLAR влияет на представление результата преобразования в паре регистров результата преобразования АЦП. Если ADLAR=1, то результат преобразования будет иметь левосторонний формат, в противном случае - правосторонний.
-D4-D0–MUX4:0. Биты выбора аналогового канала и коэффициента усиления (более подробно см. раздел ХХХХ).
Регистр управления и статуса АЦП – ADCSRA
-D7–ADEN: Разрешение работы АЦП.
-D6 – ADSC. Запуск преобразования АЦП.
-D5 – ADFR. Выбор режима автоматического перезапуска АЦП
-D4 – ADIF. Флаг прерывания АЦП. Данный флаг устанавливается после завершения преобразования АЦП и обновления регистров данных. Если установлены биты ADIE и I (регистр SREG), то происходит прерывание по завершении преобразования.
-D3–ADIE. Разрешение прерывания АЦП 11001111
-D2-D0 – ADPS2:0: Биты управления предделителем АЦП. Данные биты определяют на какое значение тактовая частота ЦПУ будет отличаться от частоты входной синхронизации АЦП (более подробно см. раздел 2.7).
Пример программы разработки программы управления АЦП
Аналоговый сигнал –по входу ADC0/PA0.
Считывание результата преобразования из регистров данных АЦП и запись их в PC –по сигналу «Запрос прерывания»
Разрядность результата преобразования -8. ИОН- внешний AREF.
.include "m8535def.inc"
;---------------------------------------------------------------
;настройка векторов прерывания
.cseg
.org 0x000
rjmp RESET ;прерывание после сброса
.org $00e
;прерывание при окончании преобразования
rjmp AD_CONV
Reset:
;---------------------------------------------------------------
;Инициализация стека
ldi r16, low(RAMEND) ;загрузить в r16 младший байт
;RAMEND
out SPL,r16 ;вывести значение r16 в SPL
ldi r31, high(RAMEND) ;загрузить в r16 старший байт
;RAMEND
out SPH,r16 ;вывести значение r16 в SPH
;---------------------------------------------------------------
;Инициализация АЦП
sei ;устанавливаем флаг разрешения прерываний
ldi r16,0xсf ;разрешение работы
out adcsr,r16 ;разрешение прерывания и старт
clr r16 ;сбрасываем все биты в r16
out admux,r16 ;выбор 0 канала АЦП (порт PA0)
;и параметр усиления
ser r16 ;устанавливаем все биты в r16
out ddrc,r16 ;настройка PORTC на вывод
;---------------------------------------------------------------
;цикл ожидания
loop:
nop
nop
rjmp loop
;---------------------------------------------------------------
;подпрограмма обслуживания АЦП
AD_CONV:
sei ;устанавливаем флаг разрешения прерываний
in r16,adch ;загрузка байта результата в регистр r16
out portc,r16 ;вывод содержимого r16 в PORTC
ldi r16,0xсf ;разрешение работы
out adcsr,r16 ;разрешение прерывания и старт
reti ;возврат
