Обязательно настраиваем ножку 1 порта Р[0] как показано на рисунке, это связано с тем, что мы не где программно не настраиваем ее больше, а только указываем, что будем ее использовать на вход :
Как видим, мы настроили вход с подтяжкой резистора к питанию, это значит, что микроконтроллер будет реагировать на нажатие кнопки, когда на входе появится логический ноль.
В нашем микроконтроллере мы реализуем реакцию на нажатие кнопки в виде изменения свечения светодиодов. Определять нажатие на кнопку мы будем с помощью маски:
У нас ножка 1 настроена на вход, если она не нажата на ней логическая единица (так как у нас подтяжка к питанию), таким образом если считать значения всего порта и наложить маску 0b00000010 по логическому и мы получим:
0bxxxxxx1x & 0b00000010 ->1
При нажатии на кнопку у нас на входе будет логический ноль, и наложив все туже маску мы получим на выходе логический ноль.
Таким образом, накладывая соответствующую маску пол логическому И, мы определяем состояние того или иного бита.
У нас выходит при нажатии кнопки логический ноль, при отжатой кнопки у нас будет логическая единица.