- •Магомедов и. А. Микропроцессорные системы. Теория и практика применения микроконтроллеров
- •Глава 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. Параллельные порты ввода/вывода микроконтроллера
Цель работы: Изучение принципа работы портов. Получение навыков использования параллельных портов для ввода/вывода данных. Разработка и отладка управляющих программ и программ ввода/вывода данных.
Краткие теоретические сведения. Микроконтроллер ATmega8535 имеет 4 восьмиразрядных параллельных порта ввода-вывода: PA, PB, PC и PD. В состав каждого порта входят 3 регистра ввода-вывода с именами DDRх, PORTх, PINх (где х=A, B, C и D. например, порт A имеет регистры DDRA, PORTA, PINA). Регистр PINх не имеет аппаратной реализации. Это имя используется в командах, по которым выполняется чтение байтов на выводах порта.
Состояния разрядов регистра DDRх определяет направление передачи бита через выводы порта. Если i-й разряд регистра DDRх равен 1, то соответствующий вывод порта работает в режиме выхода, а если равен нулю, то в режиме входа.
Например, следующие две команды настраивают порт PB на вывод данных:
ser r16 ;установить все биты регистра r16 в “1”.
;в r16 записывается число $FF.
out DDRB, r16 ;вывести содержимое r16 в регистр DDRB.
;все 8 разрядов порта B настроены на вывод.
Значение входного сигнала на отдельном выводе порта может быть определено с использованием команд условного перехода. Например:
SBIS PINA, 5 ; пропустить следующую команду, если 5-ый бит в порте А установлен
SBIC PINC, 7 ;пропустить следующую команду, если 7-ый бит в порте А сброшен.
При пуске и перезапуске микроконтроллера все разряды регистров DDRх и PORTх всех портов сбрасываются в нулевое состояние и выводы портов работают в режиме входов и находятся в Z состоянии.
Более подробную информацию вы можете найти во второй главе в разделе 2.5. «Параллельные порты ввода/вывода».
Пример программы управления ввод/выводом
по параллельным портам.
Программная реализация 8 разрядного распределителя импульсов (порт РА) с программно изменяемой скоростью (порт РВ).
Порт А настаиваем на вывод, а порт В – на ввод.
.include "m8535def.inc"
;---------------------------------------------------------------
;Инициализация стека
ldi r16,low(ramend) ;загрузить в r16 младший байт RAMEND
out spl,r16 ;вывести значение r16 в SPL
ldi r16,high(ramend) ;загрузить в r16 старший байт RAMEND
out sph,r16 ;вывести значение r16 в SPH
;---------------------------------------------------------------
;Инициализация портов МК
clr r16 ;сброс всех битов в регистре r16
out ddrd,r16 ;настраиваем все биты PORTD на ввод
ser r16 ;устанавливаем все биты в регистре r16
out ddra,r16 ;настраиваем все биты PORTA на вывод
;---------------------------------------------------------------
;Основная программа
ldi r18,$01 ;записываем в r16 1
start:
rol r16 ;команда циклического сдвига влево
out porta,r18 ;вывод содержимого r18 в PORTA
rcall delay ;вызов подпрограммы формирование задержки
rjmp start ;команда безусловного перехода на метку Start
;подпрограмма формирования временной задержки
delay:
in r16,portd ;вводим значения из PORTD в r16
m:
dec r16 ;уменьшаем на 1 содержимое r16
breq m ;если не равно 0 переходим на метку m
ret ;выход их подпрограммы
