допустим, к PORTA у вас подключены 8 кнопок, прерывания по изменению уровня пина этого порта аппаратно не поддерживаются. вы хотите, чтобы МК спал все время, а при нажатии кнопки просыпался и обрабатывал ее. соединяете кнопки вместе, резистором подтягиваете их к земле или питанию и подключаете к INT0 (например, или к любому входу, инициирующему прерывание - ICP, вход компаратора и т.п.), в PORTА выводите все единички или нолики (это уж как вы впоследствии алгоритмом реализуете) - главное, чтобы уровень "подтяжки" кнопок (т.е. входа INT) был противоположным уровню на пинах PORTA. все, теперь можете усыплять МК.
что будет, если нажать любую кнопку? естественно, уровень с PORTA поступит на вход INT, что непременно сгенерирует прерывание, пробудит МК - вам останется только резво считать PINA, чтобы узнать, какая именно кнопка нажата - в соответствующем бите будет "не тот" уровень, что на остальных
по этому принципу работают практически все пульты ДУ - пока кнопки не нажаты, там все усыплено и практически не кушает батарейки


