Siguiendo aportando algunos ejemplitos sencillos en MKB anexo en este mensaje un programa para encender o apagar el pin0 del puerto B al presionar un boton colocado en el pin1 del mismo puerto:
program Onof1
' El programa enciende LED en pin RB0 del PORTB del F84
' cada vez que se presiona un pulsdor colocado en pin RB1 del PORTB.
' La activación es un cambio de 1 a 0 y espera hasta que se libere el pulsante
' es decir un cambio de 0 a 1.
dim a as byte 'esta variable se emplea solo como una condicion del ciclo While
main:
'******************************************************************************
' INICIALIZACIÓN DE PUERTOS Y PERIFÉRICOS
'******************************************************************************
TRISB.0 = 0 ' Pin 0 del Puerto B salida
TRISB.1 = 1 ' Pin 0 del Puerto B entrada
a = 1
PORTB.0=0 'Esto es para que al encender el circuito tengamos la
'seguridad de que el nivel de pin del puerto es cero
'******************************************************************************
' PROGRAMA PRINCIPAL
'******************************************************************************
while a < 2 'Se cumple condicion siempre que a sea menor que 1
if Button(PORTB,1,100,0) then ' Espera un pulso de 1 a 0
'if Button(port,pin, time, active_state)
'El Parametro port especifica el puerto donde esta el boton;
'el parametro pin es el numero del pin del puerto y va de 0...7;
' el parametro time es el periodo del antirebote en milisegundos;
'el parametro active_state puede ser 0 o 1, y determina si el boton
'esta en activo logico (1) o activo bajo (0).
if PORTB.0 = 0 then
SetBit(PORTB,0) ' Si el LED estaba apagado lo enciende
else
ClearBit(PORTB,0) ' Si estaba prendido lo apaga
end if
while PORTB.1 = 0 ' Espera sin hacer nada hasta que se
' halla liberado el pulsador
a = 1
wend
end if
wend ' Bucle infinito
end.
y la imagen del circuito: