Каждый микроконтроллер содержит порты ввода-вывода, к которым, можно подключить какое либо устройство, будь это светодиод или кнопка. В некоторых AVR микроконтроллерах некоторые порты ввода-вывода можно сконфигурировать как аналоговые порты ввода-вывода, например АЦП (Аналого-цифровой преобразователь ), ШИМ (Широтно-импульсная модуляция).
Порты ввода-вывода AVR микроконтроллера Attiny13:
Как мы видим на картинке выше, у микроконтроллера Attiny13, 6 портов ввода-вывода (PB0 – PB5) и 2 ножки по питанию (VCC, GND). Но, первая ножка микроконтроллера Attiny13 (порт PB5), по умолчанию не порт ввода-вывода, а сброс (Reset) микроконтроллера. Его можно переключить в порт ввода-вывода специальным фьюз битом (RSTDISBL), но тогда микроконтроллер не будет поддерживать внутрисхемное программирование (по SPI интерфейсу).
Внимание! Не устанавливаете без надобности фьюз бит RSTDISBL, в противном случае ваш микроконтроллер перестанет программироваться по SPI интерфейсу (внутрисхемное программирование).
В цифровой порт вывода можно записать два значения: логический «0» (низкий уровень) и логическую «1» (высокий уровень).
Но для начала надо сконфигурировать ножку микроконтроллера как порт вывода командой:
Config Port(Порт) = Output
Где «порт» необходимо указать имя порта, например:
Config PORTB.2 = Output
Так мы сконфигурируем 7 ножку (PB2) микроконтроллера Attiny13 как порт вывода.
Также мы можем, сконфигурировать целую группу портов A, B или C (и.д.). Обычно в одной группе портов, несколько портов ввода-вывода. Пример конфигурирования группы портов как порты вывода:
Config Port(Группа портов) = Output
Где «группа портов» необходимо указать букву группы, например:
Config PORTB = Output
Так мы сконфигурируем группу портов B как порты вывода.
Теперь, когда порт сконфигурирован как порт вывода, можно записать в него два значения (логический «0» и логическую «1»), например:
Port(Имя порта) = (Значение)
Где «Имя порта» необходимо указать имя порта, а где «значение» 1 или 0, например:
PortB.2 = 1
В группу портов можно записать значение 1 или 255, например:
PortB = 255
Автор: Яковлев Александр Вячеславович (г.Витебск, Беларусь)