Hola:
Me alegro que tre decidieras a unirte a esta GRAN COMUNIDAD...
aqui te pongo algo de codigo que hara lo que quieres...

Codigo:
device 16f84a "pic a utilizar
xtal 4 "cristal
TRISB=%00111000 " configuramos el puerto como entradas y salidas
PORTB=0 "enceramos el puerto b
loop:
if PORTB.3 = 0 then "preguntamos el estado de uno de los pulsantes
high 0:low 1:low 2 " si se presiono se enciende un led y los otros
endif "se apagan
if PORTB.4 = 0 then " ocurre lo mismo para los otros casos
high 1:low 0:low 2
endif
if PORTB.5 = 0 then
high 2:low 0:low 1
endif
goto loop
end
Sobre los comando if then end if.... este es un comando... que hace una accion solo si se cumple lo deseado...
por ejemplo:
Codigo:
if PORTB.5 = 0 then
high 2:low 0:low 1
endif
hara lo que esta entre el if y end if solo si portb.5 es 0 si es otro valor no lo hace, el endif es para decir donde termina el if.... todo esto esta en la ayuda de proton.... cualquier cosa que no lo tengas claro siempre revisa la ayuda... alli estan todos los parametros de cada funcion y para que te sirve cada una de ellas... si no te queda claro aqui estamos para ayudar... 
Suerte....
Hola:
Rubens, no te sorprendas con lo que hace el PIC recuerda que el obedece a tus ordenes mediante la programacion... ji ji ji
el problema radica aqui:
Codigo:
ADCON1=%111 ,se cambian a salidas digitales el porta
trisa=%111111 ,se definen entradas y salidas porta
trisd=%000000 ,se definen entradas y salidas portd
pulsador1:
if PORTa.0 = 0 then
high portd.0
print $Fe, 1
delayms 30
print $fe,128,"- hola "
endif
goto pulsador1
Nunca va a avanzar a otra linea ya que se queda en este bucle.... goto pulsador uno hace que sea un bucle infinito y no haga nada mas que eso... para lo que tu quieres hacer podrias utilizar una sola etiqueta y al final goto etiqueta y dentro de eso preguntar por el estado de los pulsantes como en el primer ejemplo, es decir algo como esto:
Codigo:
ADCON1=%111 ,se cambian a salidas digitales el porta
trisa=%111111 ,se definen entradas y salidas porta
trisd=%000000 ,se definen entradas y salidas portd
INICIO:
if PORTa.0 = 0 then
high portd.0
print $Fe, 1
delayms 30
print $fe,128,"- hola "
endif
if PORTa.1 = 0 then
high portd.1
print $Fe, 1
delayms 30
print $fe,128,"-como andas?"
endif
if PORTa.2 = 0 then
high portd.2
print $Fe, 1
delayms 30
print $fe,128,"-todo bien?"
endif
if PORTa.3 = 0 then
high portd.3
print $Fe, 1
delayms 30
print $fe,128,"-Donde estas? "
endif
if PORTa.4 = 0 then
high portd.4
print $Fe, 1
delayms 30
print $fe,128,"-con quien estas? "
endif
if PORTa.5 = 0 then
high portd.5
print $Fe, 1
delayms 30
print $fe,128,"Quien mato al sr burns?"
endif
goto INICIO
Con eso conseguiras obtener el estado de todos los pulsantes ya que tienes una sola etiqueta y dentro de ella preguntas los estados de los pulsantes... 
Suerte....!
Hola:
if port (PORTa.0=X) and (PORTd.0=X) then
-
-
-
-
-
endif
Asi seria lo que tu quieres hacer...
con respecto al tiempo mira la ayuda de proton:
Example
XTAL = 4
DIM VAR1 as BYTE
DIM WRD1 as WORD
VAR1 = 50
WRD1= 1000
DELAYMS 100 " Delay for 100ms
DELAYMS VAR1 " Delay for 50ms
DELAYMS WRD1 " Delay for 1000ms
DELAYMS WRD1+ 10 " Delay for 1010ms
Puedes poner un delayms 60000 que seria un minuto pero toma en cuenta que el micro se quedaria en un bucle hasta que termine el tiempo y luego ejecutaria lo que sigue en tu programa.
Otra opcion es que hagas un bucle y alli utilices un tiempo mas corto y puedes preguntar por el estado de un pulsante por si quiere cancelar la operacion algo asi:
Codigo:
for i=0 to 60
delayms 100
if PORTD.0 = 0 then
break
endif
next i
donde D0 seria un boton para cancelar la accion... 
Suerte...!