Lo que te pasa es que cuando pulsas el botón se cumplen las dos condiciones:
- la primera, porque Var es 0 y está pulsado.
- la segunda, porque Var es 1 y sigue pulsado. Por muy rápido que quites el dedo, el PIC ya habrá llegado a esta instrucción
Y para colmo le pones un delay de 1s., con lo cual, siempre se dará la situación de que quites el dedo durante ese delay.
Te recomiendo que quites ese delay y que añadas esto a tu programa, justo detrás de cada cambio de estado del PIN_B7:
while (!input(PIN_C0));
Por cierto, ¿tienes una pullup en RC0?. Si no la tienes, la entrada no alternará entre 0 y 1 cuando liberes el pulsador, y por lo tanto no leerás ningún cambio de estado.