Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
0
Добавлен:
26.02.2023
Размер:
262.57 Кб
Скачать

3

 

USBS

Количество стоп-битов. Этот бит определяет

 

 

 

 

количество стопбитов, посылаемых передат-

 

 

 

 

чиком. Если бит сброшен в 0, передатчик по-

 

 

 

 

сылает один стоп-бит, если установлен в 1,

 

 

 

 

то два стоп-бита. Для приемника содержимое

 

 

 

 

этого бита безразлично

 

 

 

 

 

 

 

 

2,1

UCSZ1:UCSZ0

Формат посылок. Совместно с битом UCSZ2

 

 

 

 

регистра UCSRB эти биты определяют коли-

 

 

 

 

чество битов данных в посылках (размер сло-

 

 

 

 

ва)

 

 

 

 

 

 

 

 

 

 

 

0

UCPOL

Полярность тактового сигнала. Значение этого

 

 

 

 

бита определяет момент выдачи и считывания

 

 

 

 

данных на выводах модуля. Бит используется

 

 

 

 

только при работе в синхронном режиме. При

 

 

 

 

работе в асинхронном режиме он должен быть

 

 

 

 

сброшен в 0

 

 

 

 

 

 

 

 

 

 

 

 

Определение размера слова данных:

 

 

UCSZ2

UCSZ1

UCSZ0

Размер слова данных

 

 

 

 

 

 

 

 

 

 

 

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 бит

 

 

 

 

 

 

 

 

 

Скорость приема/передачи. В асинхронном режиме, а также в синхронном режиме при работе в качестве ведущего скорость приема и передачи данных задается контроллером скорости передачи, работающим как делитель системного тактового сигнала

11

с программируемым коэффициентом деления. Коэффициент определяется содержимым регистра контроллера UBRR. В блок приемника сформированный сигнал поступает напрямую, а в блок передатчика — через дополнительный делитель, коэффициент деления которого (2, 8 или 16) зависит от режима работы модуля USART.

Регистр UBRR является 12-битным и физически размещается в двух регистрах ввода/вывода. UBRRH:UBRRL. Регистр UBRRH размещается по тому же адресу, что и регистр управления UCSRC. Поэтому при обращении по этим адресам необходимо выполнить ряд дополнительных действий для выбора конкретного регистра. При записи регистр определяется состоянием старшего бита записываемого значения URSEL. Если этот бит сброшен в 0, изменяется содержимое регистра UBRRH. Если же старший бит значения установлен в 1, изменяется содержимое регистра управления UCSRC. Приведенные ниже фрагменты программ иллюстрируют сказанное:

Пример на ассемблере ; Записать 2 в UBRRH

ldi

r16, 0х02

 

out

UBRRH, rl6

 

; Установить биты USBS и UCSZ1

регистра UCSRC

ldi

rl6, (l«URSEL) | (1«USBS)

| (1«UCSZ1)

out

CSRC, rl6

 

Для выбора регистра при чтении используется временная последовательность. При первом обращении по указанным адресам возвращается значение регистра UBRRH. При повторном обращении по этим адресам в следующем такте возвращается значение регистра UCSRC, как показано в приведенном ниже примере. Прерывания при выполнении этой последовательности команд должны быть запрещены.

12

Пример на ассемблере USART_ReadUCSRC:

; Прочитать регистр UCSRC in r16,UBRRH

in r16,UCSRC

ret ; Значение регистра UCSRC возвращается ; в регистре г16

При работе в асинхронном режиме скорость обмена определяется не только содержимым регистра UBRR, но и состоянием бита U2X регистра UCSRA. Если этот бит установлен в 1, коэффициент деления предделителя уменьшается в два раза, а скорость обмена соответственно удваивается. При работе в синхронном режиме этот бит должен быть сброшен. Итак, скорость обмена определяется следующим образом:

асинхронный режим (обычный, U2X = 0)

F

BAUD = 16(UBRR + 1)

асинхронный режим (ускоренный, U2X = 1)

F

BAUD = 8(UBRR + 1)

.

Ниже приведен простейший пример подпрограммы передачи по интерфейсу USART. Эта подпрограмма ждет очистки буфера передатчика, а затем загружает в него новое значение.

Пример на ассемблере USART_Transmit:

;Ждать очистки буфера передатчика sbis UCSRA,UDRE

rjmp USART_Transmit

;Скопировать 9-й бит данных из r17 в TXB8 cbi UCSRB.TXB8

13

sbrc r17,0

sbi UCSRB,TXB8

;Загрузить младший байт данных в буфер,

;начать передачу,

out UDR,rl6 ret

Пример подпрограммы приема по интерфейсу USART. Как и в предыдущем примере, здесь используется опрос флага прерывания.

Пример на ассемблере USART_Receive:

;Ждать загрузки данных в буфер приемника sbis UCSRA,RXC

rjmp USART_Receive

;Прочитать 9-й бит данных и флаги состояния in r18, UCSRA

in r17, UCSRB

; Прочитать младший байт данных in r16,UDR

;Выделить 9-й бит данных lsr r17

Andi r17, 0x01 ret

ЛАБОРАТОРНАЯ РАБОТА «ВЗАИМОДЕЙСТВИЕ С КОМПЬЮТЕРОМ ПО ИНТЕРФЕЙСУ USART»

Описание лабораторного макета

Лабораторная работа выполняется с использованием макета, блок-схема которого изображена на рис. 1.

14

Рис. 1. Блок-схема лабораторного макета

Макет состоит из двух микроконтроллеров Atmega8, обозначенных номерами 1 и 2. Интерфейс UART первого микроконтроллера через преобразователь уровней MAX232 может подключаться к СОМ порту компьютера. Преобразователь необходим для согласования уровней сигналов ТТЛ, используемых в микроконтроллере с уровнями сигналов СОМ порта.

К линиям 2–5 порта D микроконтроллера 1 подключены светодиоды красного цвета. С их помощью можно выдавать сигналы об успешном или безуспешном обмене данными с компьютером. К линиям 0–3 порта C присоединены четыре кнопки с «подтягивающими» к +5В резисторами (на рисунке не показаны). Это означает, что при отпущенных кнопках на линии порта С подаётся напряжение +5В — уровень логической единицы. В нажатом состоянии кнопки на линию подаётся напряжение 0В — уровень логического нуля.

Микроконтролееры питаются от источника +5В и тактируются внешним тактовым генератором с частотой 3,6864 МГц. Выбор тактовой частоты обусловлен удобством задания скорости передачи данных по интерфейсу USART.

15

Внешний вид лабораторного макета показан на рис. 2 и рис. 3.

Рис. 2. Внешний вид лабораторного макета спереди

Варианты заданий

1.Напишите программу для микроконтроллера, реализующую следующие функции. Микроконтроллер находится в режиме ожидания до прихода команды от персонального компьютера. После прихода команды микроконтроллер подтверждает её приём и выполняет какое-нибудь действие, например, включает светодиод. Реализуйте несколько возможных команд.

2.Напишите программу для микроконтроллера, реализующую следующие функции. Микроконтроллер находится в режиме ожидания до нажатия одной из кнопок макета. Номер нажатой кнопки передаётся персональному компьютеру по интерфейсу USART.

3.Напишите программу для микроконтроллера, реализующую функции генератора случайных чисел. Числа передаются компьютеру по интерфейсу USART.

16

Рис. 3. Внешний вид лабораторного макета сверху

4.Напишите программу для микроконтроллера, реализующую следующие функции. Микроконтроллер находится в режиме ожидания до прихода команды от персонального компьютера. Микроконтроллер подсчитывает количество обработанных запросов и передаёт компьютеру количество запросов.

5.Напишите программу для микроконтроллера, которая реализует функции терминального режима. Пользователь на персональном компьютере набирает текстовые команды, которые передаются микроконтроллеру в виде последовательности символов. Каждой команде поставлено в соответствие действие, которое выполняет микроконтроллер. При этом он выдаёт ответ компьютеру, отображаемый в командной строке.

17

ЛИТЕРАТУРА

1.Баранов В.Н. Применение микроконтроллеров AVR : схемы, алгоритмы, программы / В.Н. Баранов. — М. : Додэка-XXI, 2004. — 288 с.

2.Белов А.В. Создаём устройства на микроконтроллерах / А.В. Белов. — СПб. : Наука и Техника, 2007. — 304 с.

3.Гребнев В.В. Микроконтроллеры семейства AVR фирмы Atmel / В.В. Гребнев. — М. : РадиоСофт, 2002. — 176 с.

4.Евстифеев А.В. Микроконтроллеры AVR семейств Tiny и Mega фирмы «ATMEL» / А.В. Евстифеев. — М. : ДодэкаXXI, 2004. — 560 с.

5.Трамперт В. AVR-RISC микроконтроллеры : пер. с нем. / В. Трамперт. — Киев : МК-Пресс, 2006. — 464 с.

18

E

E

!" #"$" % &'( )*+")

"$,-)%, '%:!&/ 9 -)'")% ,

"!$,-!,%! !-,"'7 )% , !"# /%9 4&*-/&")%

&-8,"/ . . -'F!8%!-

"%$-!" ) #-,7 11.08.2014. "/2-, 60×84 1/16.$'. # . '. 1,2. %/-6 20 D8+. -8-+ 588.

+&-, '7$8%9 &"2 394000, 5. "/"! 6, #'. !%!-, 10

,#-,-!" $ 5",")"5" "/%5%!-'-2-8 ,- ) ,%#"5/-0%% +&-, '7$8"5" &"2- 394000, 5. "/"! 6, *'. *B8%!$8-(, 3

Соседние файлы в папке новая папка 1