ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.01.2025
Просмотров: 3675
Скачиваний: 8
СОДЕРЖАНИЕ
1. Структура и функционирование микроконтроллера aTmega128
Регистр управления делением частоты кварцевого генератора – xdiv
2. Интегрированная система программирования avr Studio v4.12
3.Описание лабораторного стенда лс-2.
Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления
Работа №2 микроконтроллер aTmega128: команды обработки данных
Работа №3 цифровые системы на базе микроконтроллерa aTmega128:
Регистр управления внешними прерываниями – eicra и eicrb
16-Разрядные таймеры/счетчики t/c1 и t/c3
Регистры сравнения а таймеров/счетчиков - ocRxA
Работа №6 цифровые системы на базе микроконтроллера aTmega128:
Передача данных - Передатчик usart.
Прием данных - Приемник usart.
Работа №7 цифровые системы на базе микроконтроллера aTmega128:
|
№ п.п. |
Адрес |
Источник |
Наименование |
|
1 |
$0000 |
RESET |
Сброс по сигналу Reset, включению питания и сторожевому таймеру |
|
2 |
$0002 |
INT0 |
Запрос внешнего прерывания 0 |
|
3 |
$0004 |
INT1 |
Запрос внешнего прерывания 1 |
|
4 |
$0006 |
INT2 |
Запрос внешнего прерывания 2 |
|
5 |
$0008 |
INT3 |
Запрос внешнего прерывания 3 |
|
6 |
$000A |
INT4 |
Запрос внешнего прерывания 4 |
|
7 |
$000C |
INT5 |
Запрос внешнего прерывания 5 |
|
8 |
$0006 |
INT6 |
Запрос внешнего прерывания 6 |
|
9 |
$0010 |
INT7 |
Запрос внешнего прерывания 7 |
|
10 |
$0012 |
TIMER2 COMP |
Совпадение таймера/счетчика T2 |
|
11 |
$0014 |
TIMER2 OVF |
Переполнение таймера/счетчика T2 |
|
12 |
$0016 |
TIMER1 CAPT |
Захват таймера/счетчика T1 |
|
13 |
$0018 |
TIMER1 COMPA |
Совпадение «А» таймера/счетчика T1 |
|
14 |
$001A |
TIMER1 COMPB |
Совпадение «B» таймера/счетчика T1 |
|
15 |
$001C |
TIMER1 OVF |
Переполнение таймера/счетчика T1 |
|
16 |
$001E |
TIMER0 COMP |
Совпадение при сравнении таймера/счетчика T0 |
|
17 |
$0020 |
TIMER0 OVF |
Переполнение таймера/счетчика T0 |
|
18 |
$0022 |
SPI, STC |
Завершена пересылка порта SPI |
|
19 |
$0024 |
UART0, RX |
Завершение приема UART0 |
|
20 |
$0026 |
UART0, UDRE |
Регистр данных UART0 пуст |
|
21 |
$0028 |
UART0, TX |
Завершение передачи UART0 |
|
22 |
$002A |
ADC |
Завершение AD преобразования |
|
23 |
$002C |
EE READY |
Готовность EEPROM |
|
24 |
$002E |
ANALOG COMP |
Срабатывание аналогового компаратора |
|
25 |
$0030 |
TIMER1 COMPC |
Совпадение «С» таймера/счетчика T1 |
|
26 |
$0032 |
TIMER3 CAPT |
Переполнение таймера/счетчика T3 |
|
27 |
$0034 |
TIMER3 COMPA |
Совпадение «A» таймера/счетчика T3 |
|
28 |
$0036 |
TIMER3 COMPB |
Совпадение «B» таймера/счетчика T3 |
|
29 |
$0038 |
TIMER3 COMPC |
Совпадение «С» таймера/счетчика T3 |
|
30 |
$003A |
TIMER3 OVF |
Переполнение таймера/счетчика T3 |
|
31 |
$003C |
USART1, RX |
Завершение приема UART |
|
32 |
$003E |
USART1, UDRE |
Регистр данных UART1 пуст |
|
33 |
$0040 |
USART1, TX |
Завершение передачи UART1 |
|
34 |
$0042 |
TWI |
Прерывание от модуля TWI |
|
35 |
$0044 |
SPM_RDY |
Готовность SPM |
Микроконтроллеры ATmega128 содержат два специальных 8-разрядных регистра масок прерываний: регистр масок внешних прерываний EIMSK (External Interrupt Mask) и регистр масок прерываний таймеров/счетчиков TIMSK (Timer/Counter Interrupt Mask). Кроме того, в регистрах управления блоками ввода-вывода могут существовать и другие биты разрешения и биты масок.
При возникновении прерывания бит I разрешения всех прерываний (в регистре SREG) очищается и все прерывания запрещаются. Процедура прерывания может установить бит I, чтобы разрешить вложенные прерывания. Выход из процедуры обработки прерывания происходит по команде RETI, которая устанавливает бит I (=1).
Когда в счетчик команд загружен вектор процедуры обработки прерывания, соответствующий флаг, вызвавший прерывание, аппаратно очищается. Некоторые флаги прерываний можно очистить программно.
Если условия прерывания возникли, когда соответствующий бит разрешения очищен, флаг этого прерывания будет установлен и сохранен в таком состоянии, пока прерывание не будет разрешено, или флаг не будет очищен программно.
Если условия прерываний возникли, когда очищен бит разрешения всех прерываний, флаги прерываний будут установлены и сохранены в таком состоянии, пока все прерывания не будут разрешены и обработаны в порядке приоритетов.
Прерывания по уровню сигнала, флага не имеют и условия прерывания имеют место, пока активен внешний сигнал.
Регистр масок внешних прерываний – EIMSK
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
$39 ($59) |
INT7 |
INT6 |
INT5 |
INT4 |
INT3 |
INT2 |
INT1 |
INT0 |
EIMSK |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Bits 7..0 – Разрешение внешних прерываний INT7..INT0. При установленных битах INT7-INT0 и установленном бите I регистра статуса (SREG) разрешаются прерывания по соответствующим выводам сигналов внешних прерываний. Активность сигнала по любому из этих выводов вызовет запрос прерывания, даже если вывод назначен как выход. Это обеспечивает возможность организации программного прерывания.
Регистр флагов внешних прерываний - EIFR
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
$38 ($58) |
INTF7 |
INTF6 |
INTF5 |
INTF4 |
INTF3 |
INTF2 |
INTF1 |
INTF0 |
EIFR |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Bits 7..0 – Флаги внешних прерываний INTF7 – INTF0. В случае поступления запроса на прерывание на какой-либо из выводов INT7 – INT0 устанавливается ( =1) соответствующий флаг прерывания INTF7 – INTF0. Если бит I регистра SREG и соответствующий бит разрешения (INT7 – INT0) регистра EIMSK установлены, то выполняется переход по вектору прерывания. При возврате из процедуры прерывания флаг очищается. Кроме того, флаг можно очистить, записав в него логическую 1.Обратите внимание, что программно установить флаг внешнего прерывания, записав в него «1», невозможно!
Регистр управления внешними прерываниями – eicra и eicrb
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
$6A |
ISC31 |
ISC30 |
ISC21 |
ISC20 |
ISC11 |
ISC10 |
ISC01 |
ISC00 |
EICRA |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
$3A ($5A) |
ISC71 |
ISC70 |
ISC61 |
ISC60 |
ISC51 |
ISC50 |
ISC41 |
ISC40 |
EICRB |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Bits7..0 - ISCX1, ISCX0: Биты управления опознаванием внешних прерываний INT7-INT0. Запросы внешних прерываний на выводах INT7 – INT0 являются активными, если установлен флаг I регистра SREG и установлена соответствующая маска в регистре EIMSK. Запрос прерывания по логическому уровню или фронтам определяется в соответствии со следующей таблицей:
Таблица 4.2. Управление опознаванием прерывания
|
ISCx1 |
ISCx0 |
Описание |
|
0 |
0 |
Запрос прерывания генерируется низким уровнем на INTx |
|
0 |
1 |
Зарезервировано |
|
1 |
0 |
Запрос прерывания генерируется спадающим фронтом на INTx |
|
1 |
1 |
Запрос прерывания генерируется нарастающим фронтом на INTx |
Примечание: Х может быть равен 7, 6, 5,4,3,2,1 или 0
При изменении битов ISCx1/ISCx0 прерывание должно быть запрещено очисткой бита разрешения в регистре GIMSK. В ином случае может произойти прерывание в момент изменения бита.
Входы прерываний INTxпериодически опрашиваются на предмет наличия запроса. Если внешний запрос прерывания фиксируется по фронту, то для гарантированного срабатывания длительность импульса должна быть больше, чем один период тактовой частоты процессора. Заметим, что частота процессора может быть меньше частотыXTALиз-за возможного наличия делителя. Запрос прерывания по логическому уровню должен продолжаться, пока выполняется текущая инструкция, и он будет зафиксирован. Запрос прерывания по логическому уровню, если он разрешен, будет генерировать запрос прерывания до тех пор, пока на входе удерживается низкий уровень.
Регистр масок прерывания по таймерам/счетчикам - TIMSK
|
|
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
$37 ($57) |
OCIE2 |
TOIE2 |
TICIE1 |
OCIE1A |
OCIE1B |
TOIE1 |
OCIE0 |
TOIE0 |
TIMSK |
|
Исходное значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|