- •Магомедов и. А. Микропроцессорные системы. Теория и практика применения микроконтроллеров
- •Глава 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
Описание регистров портов ввода-вывода.
Регистр данных порта – PORTх (где x-A, B, C, D, E, F)
|
PORTx7 |
PORTx6 |
PORTx5 |
PORTx4 |
PORTx3 |
PORTx2 |
PORTx1 |
PORTx0 |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Регистр направления данных порта x–DDRx
|
DDx7 |
DDx6 |
DDx5 |
DDx4 |
DDx3 |
DDx2 |
DDx1 |
DDx0 |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Регистр выводов входа порта x – PINx
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
PINx7 |
PINx6 |
PINx5 |
PINx4 |
PINx3 |
PINx2 |
PINx1 |
PINx0 |
W/R |
R |
R |
R |
R |
R |
R |
R |
R |
Исх. значение |
- |
- |
- |
- |
- |
- |
- |
- |
PINx - адрес выводов входа порта x не является регистром в полном смысле этого слова, и эти адреса обеспечивают считывание физического состояния каждого вывода порта. При считывании PORTx считывается состояние фиксаторов данных порта x, а при считывании PINx считываются непосредственно логические состояния выводов.
Регистр данных порта G – PORTG
|
- |
- |
- |
PORTG4 |
PORTG3 |
PORTG2 |
PORTG1 |
PORTG0 |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Регистр направления данных порта G – DDRG
|
|
- |
- |
DDG4 |
DDG3 |
DDG2 |
DDG1 |
DDG0 |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
W/R |
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
Регистр выводов входа порта G – PING
|
- |
- |
- |
PING4 |
PING3 |
PING2 |
PING1 |
PING0 |
W/R |
R |
R |
R |
R |
R |
R |
R |
R |
Исходное значение |
- |
- |
- |
- |
- |
- |
- |
- |
В следующих примерах показано как установить на линиях РВ0 и РВ1 уровень логической 1, а на линиях РВ2 и РВ3 – логического 0, а также как настроить линии РВ4…РВ7 на ввод с подключением подтягивающих резисторов на линиях 6 и 7. Результирующее состояние линий считываются обратно, но, с учетом сказанного выше, включена инструкция nop для обеспечения возможности обратного считывания только что назначенного состояния некоторых выводов.
Пример кода на Ассемблере.
;Разрешаем подтягивание и устанавливаем высокие выходные ;уровни
;Определяем направления данных линий портов
ldi r16,(1<<PB7)|(1<<PB6)|(1<<PB1)|(1<<PB0)
ldi r17,(1<<DDB3)|(1<<DDB2)|(1<<DDB1)|(1<<DDB0)
out DDRB,r17
out PORTB,r16
; Вставляем инструкцию nop для синхронизации
nop
; Опрос состояния выводов порта B
in r16,PINB
