ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 23.01.2025
Просмотров: 3650
Скачиваний: 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:
Флаг и прерывание по завершению приема.
Флаг завершения приема RXCх в регистре UCSRxA сигнализирует о наличии несчитанных данных в приемном буфере. Данный флаг равен 1, если имеются несчитанные данные, и равен 0, если буфер приемника свободен (т.е. не содержит каких-либо несчитанных данных). Если приемник отключается (RXEN = 0), то приемный буфер будет сброшен и флаг RXC примет нулевое значение.
Если установлен бит разрешения прерывания по завершению приема RXCIEx в регистре UCSRxB, то при установке флага RXCx программа переходит на вектор обработки данного прерывания (при условии, что активно общее разрешение прерываний).
Описание регистров usart.
Таблица 6.1 - Адреса используемых в приемопередатчиках UART0 и UART1 регистров.
|
|
UDRx |
UCSRxA |
UCSRxB |
UCSRxC |
UBRRxH |
UBRRxL |
|
USART0 (х=0) |
$0C ($2C) |
$0B ($2B) |
$0A ($2A) |
($95) |
($90) |
$09 ($29) |
|
USART1 (х=1) |
($9C) |
($9B) |
($9A) |
($9D) |
($98) |
($99) |
Буферные регистры данных передатчика и приемника USART расположены по одному и тому же адресу в области ввода-вывода, обозначенной как регистр данных UDRx. Если выполнять запись по адресу регистра UDRx, то записываемые данные помещаются в буферный регистр данных передатчика. По аналогии, при чтении регистра UDRx извлекается содержимое буферного регистра данных приемника.
Запись в буфер передатчика можно выполнять, если установлен флаг UDREx в регистре UCSRxA. Данные записанные в UDRx при сброшенном флаге UDREx будут игнорированы передатчиком.
Регистр А управления и статуса USART - UCSRxA
|
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
RXCx |
TXCx |
UDREx |
FEx |
DORx |
UPEx |
U2Xx |
MPCMx |
UCSRxA |
|
Чтение/запись |
Чт. |
Чт./Зп. |
Чт. |
Чт. |
Чт. |
Чт. |
Чт./Зп. |
Чт./Зп. |
|
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Разряд 7 - RXCx: Флаг завершения приема
Данный флаг устанавливается, если в приемном буфере содержатся несчитанные данные и сбрасывается, когда приемный буфер свободен (т.е., не содержит несчитанных данных).
Разряд 6 - TXCx: Флаг завершения передачи
Данный флаг устанавливается, если вся посылка из сдвигового регистра передатчика полностью передана и в передающем буфере UDRx нет новых данных для передачи.
Разряд 5 - UDREx: Флаг освобождения регистра данных USART
Флаг UDREx индицирует о готовности приемного буфера UDRx к приему новых данных.
Разряд 4 - FEx: Ошибка посылки
Данный бит устанавливается, если при приеме посылки, была определена ошибка в структуре посылки. Под ошибкой структуры в данном случае понимается нулевое значение первого стоп-бита в этой посылке. Флаг FEx принимает нулевое значение, если принятый стоп-бит имел правильное единичное значение.
Разряд 3 - DORx: Флаг переполнения данных
Данный бит устанавливает, если выявлено условие переполнения. Переполнение данных возникает, если заполнен приемный буфер.
Разряд 2 - UPEx: Ошибка паритета
Данный бит устанавливается, если принятые данные характеризуется ошибкой паритета, при условии, что был разрешен контроль паритета (UPMх1 = 1).
Разряд 1 - U2Xx: Удвоение скорости связи
Данный бит оказывает влияние только в асинхронном режиме связи. Запись в данный бит лог. 1 уменьшает в два раза значение коэффициента деления скорости связи с 16 до 8, тем самым, удваивая скорость передачи данных в асинхронном режиме.
Разряд 0 - MPCMx: Режим многопроцессорной связи
Данный бит разрешает режим многопроцессорной связи. Если в бит MPCMx записать лог. 1, то все входящие данные, принимаемые приемником USART, будут игнорироваться, если они не содержат адресной информации. Состояние бита MPCMx не влияет на работу передатчика.
Регистр B управления и статуса - UCSRxB
|
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
RXCIEx |
TXCIEx |
UDRIEx |
RXENx |
TXENx |
UCSZx2 |
RXB8x |
TXB8x |
UCSRxB |
|
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт. |
Чт./Зп. |
|
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Разряд 7 - RXCIEx: Разрешение прерывания по завершению приема
Запись в данный бит лог. 1 разрешает прерывание по флагу RXCx.
Разряд 6 - TXCIEx: Разрешение прерывания по завершению передачи
Запись в данный бит лог. 1 разрешает прерывание по флагу TXCx.
Разряд 5 - UDRIEx: Разрешение прерывания по освобождению регистра данных USART
Установка данного флага разрешает прерывание по флагу UDREx.
Разряд 4 - RXENx: Разрешение работы приемника
Запись в данный бит лог. 1 приводит к разрешению работы приемника USART.
Разряд 3 - TXENx: Разрешение работы передатчика
Запись в данный бит лог. 1 разрешает работу передатчика USART.
Разряд 2 - UCSZx2: Формат данных
Бит UCSZx2 вместе с битами UCSZx1:0 в регистре UCSRxC задают количество бит данных в посылке, как для приемника, так и для передатчика.
Разряд 1 - RXB8x: Значение 8-ого разряда принятых данных
RXB8x содержит значение 9-го бита принятой посылки с 9-битным форматом. Данный бит необходимо считать прежде, чем будут считаны младшие 8 бит из регистра UDRx.
Разряд 0 - TXB8x: 8-ой разряд передаваемых данных
TXB8x содержит значение 9-ого бита данных для передачи посылки с 9-битным форматом. Данный бит необходимо записать перед тем, как будут записаны младшие разряды данных в UDRx.
Регистр С управления и статуса USART - UCSRxC
|
Разряд |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
- |
UMSELx |
UPMx1 |
UPMx0 |
USBSx |
UCSZx1 |
UCSZx0 |
UCPOLx |
UCSRxC |
|
Чтение/запись |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
Чт./Зп. |
|
|
Исх. значение |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
Разряд 7 - Зарезервированные биты
Разряд 6 - UMSELx: Выбор режима USART
Данный бит позволяет переключаться между асинхронным (UMSELx=0) и синхронным (UMSELx=1) режимами последовательной связи.
Разряды 5:4 - UPMx1:0: Режим паритета
Данные бита разрешают и устанавливают тип генерируемого и контролируемого паритета. После разрешения паритета передатчик автоматически генерирует и передает бит паритета в каждой посылке. Приемник генерирует бит паритета для принятых данных и сравнивает его со значением принятого в этой посылке бита паритета, а по результату сравнения устанавливает флаг ошибки паритета UPEx в регистре UCSRxA.
Таблица 6.2. Установки бит UPMx
|
UPMx1 |
UPMx0 |
Режим паритета |
|
0 |
0 |
Отключен |
|
0 |
1 |
(Резерв) |
|
1 |
0 |
Четность |
|
1 |
1 |
Нечетность |
Разряд 3 - USBSx: Выбор числа стоп-бит
Данный бит определяет, сколько стоповых бит вставляет передатчик при генерации посылки. Приемник игнорирует эту настройку.
Таблица 6.3. Установки бита USBSx
|
USBSn |
Число стоп-бит |
|
0 |
1 бит |
|
1 |
2 бита |
Разряды 2:1 - UCSZx1:0: Формат данных
Биты UCSZx1:0 вместе с UCSZx2 в регистре UCSRxB задают количество бит данных в посылке, как для приемника, так и для передатчика.
Таблица 6.4. Установки бит UCSZx
|
UCSZx2 |
UCSZx1 |
UCSZx0 |
Формат данных |
|
0 |
0 |
0 |
5 бит |
|
0 |
0 |
1 |
6 бит |
|
0 |
1 |
0 |
7 бит |
|
0 |
1 |
1 |
8 бит |
|
1 |
0 |
0 |
Резерв |
|
1 |
0 |
1 |
Резерв |
|
1 |
1 |
0 |
Резерв |
|
1 |
1 |
1 |
9 бит |