Лан, с Протеусом позже... Всё равно пока гонять там нечего
Возможно пока и можно инициализацию опустить, потому что это ОГОГО какой раздел...
А вот настройка портов - это просто!
Вспомни как Мортон пишет про регистры (там где ящички с руками)...
Ну попробую я, но не думаю что лучше Мортона это будет, однако ужЕ познакомившись с тем ЧТО ты любишь понимать, а что нет - попробую...
Регистры общего назначения (РОН) - это такие ячейки куда можно записать число используя, например, команду LDI.
А затем, любезно предложить микроконтроллеру взять оттуда это число и вывести его на ВЕСЬ порт, например В.
Пример по буквам:
ldi R16,0b00000010 - записываем МЫ в регистр под номером 16 число 2.
Всё, с помощью этой команды число 2 мгновенно записано в регистр16 и сидит там постоянно пока мы либо его оттуда не выгоним...
следующая команда OUT DDRB,R16 - говорит МК что теперь это число будет определять МК где у него на порте В выходы (они обозначены 1-ами), а где входы (они обозначены 0-ами). МК с гордостью читает это число побитам справа на лево (как израильтяне): первый бит 0 - вход, второй бит 1 - выход, третий и остальные тоже 0 - значит входа и назначает вх\вых в сответствии с этим 00000010 числом.
Однако этого мало! Нужно ещё начальные уровни ножек порта В задать (0 или 1, т.е. 0 или +5в).
Для этого используем опять две команды: одна нам уже известна LDI, а вторая OUT.
Т.образом писем:
ldi R16,0b00000000 здесь одни 0, но по необходимости мы можем и 1-цы написать и тогда по команде OUT МК выведет 1-цы (+5в) на соответствующие ножки порта В.
out portb,R16 - все ножки порта В не имеют 1-ц.