ВУЗ:
Составители:
Регистр 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 – регистр-защелка порта А.
Сюда записываются данные, которые надо получить на выходе порта
А. Биты также могут устанавливаться/сбрасываться по отдельности.
Например, чтобы появилась «1» на 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 после того, как был выдвинут
стоповый бит для предыдущего символа. При этом сдвиговый регистр
загружается сразу;
Страницы
- « первая
- ‹ предыдущая
- …
- 30
- 31
- 32
- 33
- 34
- …
- следующая ›
- последняя »
