I've chosen the 16F676 for size and cost and it also has an ADC which I also need. I need to use all the I/Os and I need to use PORTA.3 (MCLR) as a digital input to be used with a button. The "big" program isn't working so I've broken it down into smaller parts to make sure everything is working correctly. Below is the code to use the button to toggle an LED on and off. The start up works and the button turns the LED on, but only one time. Once the LED is toggled on for the first time, it gets stuck. What am I doing wrong?

Code:
#config 
    __CONFIG _CP_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF
#endconfig


TRISA = 001000


LED var PORTA.1
PUSHBUTTON var PORTA.3


'***********************start up just to make sure LED is working**************************
led = 1
pause 100
led = 0
pause 100
led = 1
pause 100
led = 0
'***************************************************************************************
main:


    if PUSHBUTTON = 0 then 
        
        toggle led
        pause 25
        
    endif
    
goto main
end