ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 23.01.2025

Просмотров: 3695

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

Введение

1. Структура и функционирование микроконтроллера aTmega128

Указатель стека – sp.

Регистр управления делением частоты кварцевого генератора – xdiv

2. Интегрированная система программирования avr Studio v4.12

2.1. Создание проекта.

2.2. Компиляция проекта.

3.Описание лабораторного стенда лс-2.

Работа №1 микроконтроллер aTmega128: методы адресации, команды передачи данных и управления

Введение

Команды передачи данных приведены в Табл.1.1. Из таблицы видно, что набор этих команд представляет собой сочетание восьми операций с различными методами адресации.

Из табл.1.1 и табл.1.2 видно, что команды пересылки данных и команды переходов значения флагов регистра sreg не изменяют.

Работа №2 микроконтроллер aTmega128: команды обработки данных

Введение

Задания

Работа №3 цифровые системы на базе микроконтроллерa aTmega128:

Введение

Регистр управления внешними прерываниями – eicra и eicrb

Выполнение основного задания

Задания

Работа №4 цифровые системы на базе микроконтроллера aTmega128: работа с внешними устройствами через параллельные порты ввода вывода – работа с клавиатурой и светодиодным индикатором

Введение

Выполнение основного задания

Задания

Работа №5

16-Разрядные таймеры/счетчики t/c1 и t/c3

Регистры сравнения а таймеров/счетчиков - ocRxA

Выполнение основного задания

Задания

Работа №6 цифровые системы на базе микроконтроллера aTmega128:

Введение

Универсальный синхронный и асинхронный приемопередатчик usart предназначен для организации последовательной связи.

Инициализация usart.

Передача данных - Передатчик usart.

Прием данных - Приемник usart.

Описание регистров usart.

Задания

Работа №7 цифровые системы на базе микроконтроллера aTmega128:

Аналоговый компаратор.

Задания

Задания

Приложение 1.

Приложение 2.

п.п.

Адрес

Источник

Наименование

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