Descargado y comprobado.
En los ficheros que has adjuntado has cambiado las entradas a los pines que te dije.
sigues utilizando temporizaciones para detectar las acciones sobre el pulsador. Por eso no va bien el programa. Si realizas repetidas pulsaciones de forma rápida veras que si te cambian las pantallas.
Por este motivo para evitar esos problemas te aconseje que usaras las interrupciones en RB0. Asi evitas también el uso de los delay y te funcciona todo de maravilla.
En el fichero que te adjunte en el post anterior tienes el ejemplo completo de Proteus y el fichero de Niple. En proteus puedes ver que en la fila 4 del LCd ve el valor de la conversión A/D. En valor numérico. Luego si quieres realizar un vúmetro debes de cambiar eso.
¡¡¡¡Revisa el ejemplo que te puse!!!!

F.