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

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

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

Добавлен: 23.01.2025

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

Скачиваний: 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.1. Регистры ввода-вывода микроконтроллера ATmega128

Название

Адрес

Функция

UCSR1C

($9D)

Регистр управления и состояния С USART1

UDR1

($9C)

Регистр данных USART1

UCSR1A

($9B)

Регистр управления и состояния A USART1

UCSR1B

($9A)

Регистр управления и состояния В USART1

UBRR1L

($99)

Регистр скорости передачи USART1, младший байт

UBRR1H

($98)

Регистр скорости передачи USART1, старший байт

UCSR0C

($95)

Регистр управления и состояния С USART0

UBRR0H

($90)

Регистр скорости передачи USART0, старший байт

TCCR3C

($8C)

Регистр управления С таймера/счетчика ТЗ

TCCR3A

($8B)

Регистр управления А таймера/счетчика ТЗ

TCCR3B

($8A)

Регистр управления В таймера/счетчика ТЗ

TCNT3H

($89)

Счетный регистр таймера/счетчика ТЗ, старший байт

TCNT3L

($88)

Счетный регистр таймера/счетчика ТЗ, младший байт

OCR3AH

($87)

Регистр совпадения А таймера/счетчика ТЗ, старший байт

OCR3AL

($86)

Регистр совпадения А таймера/счетчика ТЗ, младший байт

OCR3BH

($85)

Регистр совпадения В таймера/счетчика ТЗ, старший байт

OCR3BL

($84)

Регистр совпадения В таймера/счетчика ТЗ, младший байт

OCR3CH

($83)

Регистр совпадения С таймера/счетчика ТЗ, старший байт

OCR3CL

($82)

Регистр совпадения С таймера/счетчика ТЗ, младший байт

ICR3H

($81)

Регистр захвата таймера/счетчика ТЗ, старший байт

ICR3L

($80)

Регистр захвата таймера/счетчика ТЗ, младший байт

ETIMSK

($7D)

Дополнительный регистр маски прерываний от таймеров/счетчиков

ETIFR

($7C)

Дополнительный регистр флагов прерываний от таймеров/счетчиков

TCCR1C

($7A)

Регистр управления С таймера/счетчика Т1

OCR1CH

($79)

Регистр совпадения С таймера/счетчика Т1, старший байт

OCR1CL

($78)

Регистр совпадения С таймера/счетчика Т1, младший байт

TWCR

($74)

Регистр управления TWI

TWDR

($73)

Регистр данных TWI

TWAR

($72)

Регистр адреса TWI

TWSR

($71)

Регистр состояния TWI

TWBR

($70)

Регистр скорости передачи TWI

OSCCAL

($6F)

Регистр калибровки тактового генератора

XMCRA

($6D)

Регистр управления А внешней памятью

XMCRB

($6C)

Регистр управления В внешней памятью

EICRA

($6A)

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

SPMCR

($68)

Регистр управления памятью программ

PORTG

($65)

Регистр данных порта G

DDRG

($64)

Регистр направления данных порта G

PING

($63)

Выводы порта G

PORTF

($62)

Регистр данных порта F

DDRF

($61)

Регистр направления данных порта F

SREG

$3F($5F)

Регистр состояния

SPH

$3E($5E)

Указатель стека, старший байт

SPL

$3D($5D)

Указатель стека, младший байт

XDIV

$3C($5C)

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

RAMPZ

$3B($5B)

Регистр выбора страницы

EICRB

$3A($5A)

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

EIMSK

$39($59)

Регистр маски внешних прерываний

EIFR

$38 ($58)

Регистр флагов внешних прерываний

TIMSK

$37($57)

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

TIFR

$36($56)

Регистр флагов прерываний от таймеров/счетчиков

MCUCR

$35($55)

Регистр управления микроконтроллером

MCUCSR

$34($54)

Регистр управления и состояния микроконтроллера

TCCR0

$33($53)

Регистр управления таймером/счетчиком Т0

TCNT0

$32($52)

Счетный регистр таймера/счетчика Т0

OCR0

$31($51)

Регистр совпадения таймера/счетчика Т0

ASSR

$30($50)

Регистр состояния асинхронного режима

TCCR1A

$2F($4F)

Регистр управления А таймера/счетчика Т1

TCCR1B

$2E($4E)

Регистр управления В таймера/счетчика Т1

TCNT1H

$2D($4D)

Счетный регистр таймера/счетчика Т1, старший байт

TCNT1L

$2C($4C)

Счетный регистр таймера/счетчика Т1, младший байт

OCR1AH

$2B($4B)

Регистр совпадения А таймера/счетчика Т1, старший байт

OCR1AL

$2A($4A)

Регистр совпадения А таймера/счетчика Т1, младший байт

OCR1BH

$29($49)

Регистр совпадения В таймера/счетчика Т1, старший байт

OCR1BL

$28($48)

Регистр совпадения В таймера/счетчика Т1, младший байт

ICR1H

$27($47)

Регистр захвата таймера/счетчика Т1, старший байт

ICR1L

$26($46)

Регистр захвата таймера/счетчика Т1, младший байт

TCCR2

$25($45)

Счетный регистр таймера/счетчика Т2

TCNT2

$24($44)

Регистр совпадения таймера/счетчика Т2

OCR2

$23($43)

Регистр совпадения таймера/счетчика Т2

OCDR

$22($42)

Регистр внутрисхемной отладки

WDTCR

$21($41)

Регистр управления сторожевым таймером

SFIOR

$20($40)

Регистр специальных функций

EEARH

$1F($3F)

Регистр адреса EEPROM, старший байт

EEARL

$1E($3E)

Регистр адреса EEPROM, младший байт

EEDR

$1D($3D)

Регистр данных EEPROM

EECR

$1C($3C)

Регистр управления EEPROM

PORTA

$1B($3B)

Регистр данных порта А

DDRA

$1A($3A)

Регистр направления данных порта А

PINA

$19($39)

Выводы порта А

PORTB

$18($38)

Регистр данных порта В

DDRB

$17($37)

Регистр направления данных порта В

PINB

$16($36)

Выводы порта В

PORTC

$15($35)

Регистр данных порта С

DDRC

$14($34)

Регистр направления данных порта С

PINC

$13($33)

Выводы порта С

PORTD

$12($32)

Регистр данных порта D

DDRD

$11($31)

Регистр направления данных порта D

PIND

$10($30)

Выводы порта D

SPDR

$0F($2F)

Регистр данных SPI

SPSR

$0E($2E)

Регистр состояния SPI

SPCR

$0D($2D)

Регистр управления SPI

UDR0

$0C($2C)

Регистр данных USART0

UCSR0A

$0B($2B)

Регистр управления и состояния A USART0

UCSR0B

$0A($2A)

Регистр управления и состояния В USART0

UBRR0L

$09($29)

Регистр скорости передачи USART0, младший байт

ACSR

$08($28)

Регистр управления и состояния аналогового компаратора

ADMUX

$07($27)

Регистр управления мультиплексором АЦП

ADCSRA

$06($26)

Регистр управления и состояния АЦП

ADCH

$05($25)

Регистр данных АЦП, старший байт

ADCL

$04($24)

Регистр данных АЦП, младший байт

PORTE

$03($23)

Регистр данных порта Е

DDRE

$02($22)

Регистр направления данных порта Е

PINE

$01($21)

Выводы порта Е

PINF

$00($20)

Выводы порта F


В пространстве регистров ввода-вывода находятся и регистры управления процессором микроконтроллера: регистр состояния, указатель стека, регистр выбора страницы, регистр управления процессором, регистр управления коэффициентом деления частот. Формат этих регистров следующий:

Регистр состояния SREG.

7

6

5

4

3

2

1

0

$3F ($5F)

I

T

H

S

V

N

Z

C

SREG

Исходное значение

0

0

0

0

0

0

0

0

Bit7 – Разрешение всех прерываний. Для разрешения прерываний этот бит должен быть установлен ( =1). Разрешение конкретного прерывания выполняется регистрами маски прерывания EIMSK и TIMSK. Если этот бит очищен ( =0), то ни одно из прерываний не обрабатывается. Бит аппаратно очищается после возникновения прерывания и устанавливается (разрешая последующие прерывания) командой RETI.

Bit 6 – Бит сохранения копии. Команды копирования бита BLD и BST используют этот бит как источник и приемник при операциях с битами. Командой BST бит регистра общего назначения копируется в бит Т, командой BLD бит Т копируется в бит регистра общего назначения.

Bit 5 – Флаг полупереноса. Флаг полупереноса указывает на перенос между тетрадами при выполнении ряда арифметических операций. Более подробная информация приведена в описании системы команд.

Bit 4 – Бит знака. Бит S имеет значение результата операции исключающее ИЛИ (NV) над флагами отрицательного значения (N) и дополнения до двух флага переполнения (V) . Более подробная информация приведена в описании системы команд.


Bit 3 – Дополнение до двух флага переполнения. Этот бит поддерживает арифметику дополнения до двух. Более подробная информация приведена в описании системы команд.

Bit 2 – Флаг отрицательного значения. Этот флаг указывает на отрицательный результат ряда арифметических и логических операций. Более подробная информация приведена в описании системы команд.

Bit 1 – Флаг нулевого значения. Этот флаг указывает на нулевой результат ряда арифметических и логических операций. Более подробная информация приведена в описании системы команд.

Bit 0 – Флаг переноса. Этот флаг указывает на перенос при арифметических и логических операциях. Более подробная информация приведена в описании системы команд.


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

7

6

5

4

3

2

1

0

$3E ($5E)

SP15

SP14

SP13

SP12

SP11

SP10

SP9

SP8

SPH

$3D ($5D)

SP7

SP6

SP5

SP4

SP3

SP2

SP1

SP0

SPL

Исходное

0

0

0

0

0

0

0

0

значение

0

0

0

0

0

0

0

0

Микроконтроллеры AVR оснащены 16-разрядным указателем стека, размещенным в двух регистрах ввода-вывода. Поскольку микроконтроллеры ATmega128 поддерживают объем ОЗУ до 64 Кбайт, то используются все 16 разрядов указателя стека.

Указатель стека указывает на область в ОЗУ данных, в которой размещается стек подпрограмм и прерываний. Начальный адрес указателя должен задаваться программно перед вызовом подпрограмм и разрешением прерываний. Начальное значение должно быть больше $60. Указатель стека декрементируется на единицу при каждом занесении командой PUSH данных в стек, и на две единицы при занесении в стек адреса при вызове подпрограммы или процедуры прерывания.

Указатель стека инкрементируется на единицу при извлечении данных из стека командой POP, и на две единицы при извлечении адреса из стека при возврате из подпрограммы (RET) или возврате из процедуры прерывания (RETI).


Регистр выбора страницы ОЗУ- RAMPZ.

7

6

5

4

3

2

1

0

$3B ($5B)

-

-

-

-

-

-

-

RAMPZ0

RAMPZ

Исходное значение

0

0

0

0

0

0

0

0

Регистр RAMPZ используется обычно для определения страницы ОЗУ данных, к которой возможно обращение посредством указателя Z. Поскольку микроконтроллеры AТmega128 не поддерживают ОЗУ объемом более 64 К, этот регистр используется только для выбора страницы в памяти программ при использовании команды ELPM. Имеются следующие варианты использования единственного значащего бита RAMPZ0:

RAMPZ0 = 0: Команде ELPM доступна память программ с адресами от $0000 до $7FFF (младшие 64 Кбайт)

RAMPZ0 = 1: Команде ELPM доступна память программ с адресами от $8000 до $FFFF (старшие 64 Кбайт).

Отметим, что на команду LPM установки регистра RAMPZ не воздейсвуют.

Регистр управления MCUMCUCR

7

6

5

4

3

2

1

0

$35 ($55)

SRE

SRW

SE

SM1

SM0

-

-

-

MCUR

Исходное значение

0

0

0

0

0

0

0

0