Перейти к содержанию

Порты ввода-вывода ATtiny85: регистры и биты

Каждым портом управляют три регистра: DDRx задаёт направление вывода (1 — выход), PORTx — уровень на выходе, а у входа включает подтяжку к питанию, PINx читает уровни на выводах. Запись единицы в бит PINx переключает соответствующий бит PORTx.

Данные: описание ATtiny85 из пакета Microchip ATtiny_DFP 3.4.278 (Apache-2.0), сверено со сводкой регистров даташита 2586Q.

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

РегистрАдресНазначениеПосле сброса
PINB0x36 (I/O 0x16)Входы порта B—
DDRB0x37 (I/O 0x17)Направление выводов порта B0x00
PORTB0x38 (I/O 0x18)Выходы и подтяжки порта B0x00

Состояния вывода

Что делает вывод Pxn при разных битах DDxn и PORTxn и общем бите PUD в MCUCR (PUD = 1 выключает подтяжки всех портов). Таблица 10-1 даташита 2586Q.

DDxnPORTxnPUDВыводПодтяжкаСостояние
00Xвходнетвысокий импеданс (Hi-Z)
010входдавывод отдаёт ток, если снаружи его тянут к земле
011входнетвысокий импеданс (Hi-Z)
10Xвыходнетнизкий уровень (вывод принимает ток)
11Xвыходнетвысокий уровень (вывод отдаёт ток)

PINB — входы порта B

Адрес 0x36 (I/O 0x16), 8 бит.

Бит76543210
Имя——PINB5PINB4PINB3PINB2PINB1PINB0
ДоступRRR/WR/WR/WR/WR/WR/W
После сброса00N/AN/AN/AN/AN/AN/A

Бит n отвечает за вывод PBn: PB5, PB4, PB3, PB2, PB1, PB0.

DDRB — направление выводов порта B

Адрес 0x37 (I/O 0x17), 8 бит, после сброса 0x00.

Бит76543210
Имя——DDB5DDB4DDB3DDB2DDB1DDB0
ДоступRRR/WR/WR/WR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PBn: PB5, PB4, PB3, PB2, PB1, PB0.

PORTB — выходы и подтяжки порта B

Адрес 0x38 (I/O 0x18), 8 бит, после сброса 0x00.

Бит76543210
Имя——PORTB5PORTB4PORTB3PORTB2PORTB1PORTB0
ДоступRRR/WR/WR/WR/WR/WR/W
После сброса00000000

Бит n отвечает за вывод PBn: PB5, PB4, PB3, PB2, PB1, PB0.

Частые вопросы

Какими командами ассемблера обращаться к регистрам порты ATtiny85?

Командами IN и OUT доступны PINB (0x16), DDRB (0x17) и PORTB (0x18); из них PINB, DDRB и PORTB — ещё и командами SBI, CBI, SBIS и SBIC для отдельных битов. В программе на C разницы нет: компилятор сам выбирает команду по адресу из avr/io.h.

Какие значения у регистров порты после сброса?

Все регистры блока, для которых даташит 2586Q приводит значение после сброса (DDRB и PORTB), после сброса равны нулю.

Источники

  1. Microchip. Atmel. ATtiny25/45/85 datasheet (2586Q) — сводка регистров, диаграммы битов и значения после сброса
  2. Microchip ATtiny_DFP 3.4.278, описание ATtiny85 (ATDF) — регистры, битовые поля и их значения, лицензия Apache-2.0

Нашли ошибку в регистрах?

Другие регистры ATtiny85

Калькуляторы и статьи