Аз го правя по следния начин:
1. Разрешавам прекъсванията от GP-тата ( бит 7 "GPWU" в OPTION го нулирам).
2. Установявам всички GP като входове.
3. Чета състоянието на GP и си го пиша в TEMP регистър.
4. SLEEP
5. При събуждане, проверявам източника на прекъсване, ако е GP сравнявам TEMP със GP (в твоя случай проверявам този вход, който ме интересува) и ако прекъсването е от него - преход нататък
