Gracias maunix...
Creo que debería apuntarme a un cursillo de assembler...
Mira la idea es ampliar el programa, pero quiero empezar e ir arreglandolo mientras vaya aprendiendo cosas.
En un principio el programa esperará a que en RC0 le llegue un "1" con un pulsador. Si no le llega un 1 estará quieto, y cuando le llegue un "1" ejecute unas instrucciones. En este caso por ejemplo sería activar todo el puerto A y B.
He cogido un programa de encender 1 led y lo quiero ir modificando para aprender.
Mi nivel es 0 de momento.
LIST P=16F877, ; usar PIC 16F877
#include <p16f877.inc>
__CONFIG _CP_OFF&_PWRTE_ON&_WDT_OFF&_XT_OSC ; code protec off
; power up timer on
; watchdog off
; osc XT
ORG 0
BSF STATUS,5 ; activa la pagina 1
MOVLW B'000000' ; carga 00000 en W
MOVWF TRISA ; puerto a todos salidas
MOVLW B'00000000' ; carga 00000000 en W
MOVWF TRISB ; puerto b todos salidaS
MOVLW B'11111111' ; cargo 11111111 en W
MOVWF TRISC ; PUERTO C TODO ENTRADAS.
MOVLW B'11111111' ; cargo 11111111 en W
MOVWF TRISD ; PUERTO D TODO ENTRADAS.
MOVLW B'11111111' ; cargo 11111111 en W
MOVWF TRISE ; PUERTO E TODO ENTRADAS.
BCF STATUS,5 ; volvemos a la pagina 0
BCF PORTA,0 ; ponemos a 0 RA0
BCF PORTA,1 ; ponemos a 0 RA1
BCF PORTA,2 ; ponemos a 0 RA2
BCF PORTA,3 ; ponemos a 0 RA3
BCF PORTA,4 ; ponemos a 0 RA4
BCF PORTA,5 ; ponemos a 0 RA5
BCF PORTB,0 ; ponemos a 0 RB0
BCF PORTB,1 ; ponemos a 0 RB1
BCF PORTB,2 ; ponemos a 0 RB2
BCF PORTB,3 ; ponemos a 0 RB3
BCF PORTB,4 ; ponemos a 0 RB4
BCF PORTB,5 ; ponemos a 0 RB5
BCF PORTB,6 ; ponemos a 0 RB6
BCF PORTB,7 ; ponemos a 0 RB7
_ESPERAR
btfss PORTC,0 ; espera a que haya un 1 en RC0
goto _ESPERAR
BSF PORTA,0 ; pone a 1 RA0
BSF PORTA,1 ; pone a 1 RA1
BSF PORTA,2 ; pone a 1 RA2
BSF PORTA,3 ; pone a 1 RA3
BSF PORTA,4 ; pone a 1 RA4
BSF PORTA,5 ; pone a 1 RA5
BSF PORTB,0 ; pone a 1 RB0
BSF PORTB,1 ; pone a 1 RB1
BSF PORTB,2 ; pone a 1 RB2
BSF PORTB,3 ; pone a 1 RB3
BSF PORTB,4 ; pone a 1 RB4
BSF PORTB,5 ; pone a 1 RB5
BSF PORTB,6 ; pone a 1 RB6
BSF PORTB,7 ; pone a 1 RB7
END ; fin de programa
Segurisimo que se puede hacer con menos funciones...
Con ese código y el circuito, al activar pulsador solo me activa todo el puerta B...
Saludos