Интерфейсы микропроцессорных систем. Воробьева Г.С - 32 стр.

UptoLike

Регистр SREG является регистром контроля и статуса AVR, это
аналог регистра STATUS в PIC-контроллерах. В регистре SREG содержатся
биты состояния АЛУ, бит глобального разрешения/запрещения прерываний
I и бит пользователя T.
Регистры портов ввода-вывода
Работа с каждым из портов (A,B,C,D) ведется одинаково. Для каждого
из портов существует три регистра. Вместо х подставляется буква одного из
имеющихся портов (A, B, C или D).
- DDRx регистр для настройки направления передачи информации
битов порта х;
- PORTxрегистр-защелка собственно данных порта х;
- PINxрегистр для чтения данных непосредственно с выводов порта х.
Примечание. PINx не физический регистр. Это адрес, который дает
доступ к физическому значению напряжения на указанном выводе порта х.
Используется только для чтения данных с выводов порта, а записать в PINx
ничего нельзя, для записи в порт надо посылать данные в регистр-защелку
PORTx.
Рассмотрим регистры портов на примере порта А.
DDRAрегистр направления передачи битов порта А.
Чтобы настроить какой-либо бит порта А на ввод/вывод, надо
сбросить/ установить соответствующий бит регистра DDRA. Например,
если записать в DDRA число 00000011
2
, то биты 0 и 1 порта А будут
настроены на вывод, а остальные биты на ввод. Регистр DDRA
доступен для чтения и записи.
PORTAрегистр-защелка порта А.
Сюда записываются данные, которые надо получить на выходе порта
А. Биты также могут устанавливаться/сбрасываться по отдельности.
Например, чтобы появилась « на 4-м выводе порта А, надо
установить 4-й бит регистра PORTA. PORTA доступен для чтения и
записи.
PINАдля чтения реального логического уровня на выводах порта А.
PINA доступен только для чтения.
Кроме этих существуют такие регистры:
DDRB, PORTB, PINB – для порта B;
DDRC, PORTC, PIND – для порта C;
DDRD, PORTD, PINDдля порта D.
Каждый порт может иметь одновременно биты с разным
направлением передачи. Кроме того, направление передачи конкретного
бита порта и само значение этого бита могут быть изменены отдельно от
остальных командами установки/сброса бита SBI или CBI (формат см. в
системе команд).
Следует отметить, что возможна такая ситуация: на вывод, например,
3, порта В была послана «1» (Н уровень) установкой 3-го бита PORTВ.
Однако к этому выводу подключено нечто сильнопотребляющее, и поэтому
реально на выходе L-уровень, или «0» который и получаем при чтении из
PINВ3. А при чтении из PВ3 (PORTB,3) получаем «1». Происходит это
потому, что в регистре-защелке осталась записанная нами «1», которую МК
«пытается» выставить на 3-м выводе порта B. Но не может из-за большой
нагрузки. Из этого понятно, что PORTх не сам порт, а лишь регистр для
посылки данных в порт х (можно и прочитать из PORTx ранее посланные
данные). Реальный уровень на выводе порта можно прочитать, только
используя PINx.
4.3. UART В МИКРОКОНТРОЛЛЕРЕ AVR AT90S8535
Модуль UART использует следующие выводы микроконтроллера:
Линия Вывод МК
RxD PC7
TxD PC6
Для настройки UART и работы с ним предусмотрено 4 регистра:
1) UCR регистр управления UART содержит биты настройки, а также
(при 9-битовой передаче) 9-й бит передаваемых и принятых данных;
2) USR регистр состояния UART содержит информация о текущем
состоянии UART;
3) UDR регистр собственно данных UART сюда помещаются данные
для передачи и считываются отсюда при приеме;
4) UBRR – регистр скорости обмена UART.
Передатчик UART
Передача данных инициируется записью передаваемых данных в
регистр ввода/вывода данных UART UDR. Данные пересылаются из UDR
в сдвиговый регистр передатчика, когда:
- новый символ записывается в UDR после того, как был выдвинут
стоповый бит для предыдущего символа. При этом сдвиговый регистр
загружается сразу;