Yes I guess i needed the default it worked better alone but when i added it to the main code the button works when its pressed and also when its released! according to the code (the two pwm should be off and the lcd should be clear too)

another thing is when i simulate it the pwm works only 30% duty cycle whatever the voltage is

Here's the main code
Code:
DEFINE OSC 8           'LCD CONFIGURATION
DEFINE LCD_DREG PORTB      'Define PIC port used for LCD Data lines
DEFINE LCD_DBIT 4          'Define first pin of portb connected to LCD DB4
DEFINE LCD_RSREG PORTB     'Define PIC port used for RS line of LCD
DEFINE LCD_RSBIT 3         'Define Portb pin used for RS connection Communication
DEFINE LCD_EREG PORTB      'Define PIC prot used for E line of LCD
DEFINE LCD_EBIT 0          'Define PortB pin used for E connection
DEFINE LCD_BITS 4          'Define the 4 bit communication mode to LCD
DEFINE LCD_LINES 2         'Define using a 2 line LCD
DEFINE LCD_COMMANDUS 2000  'Define delay between sending LCD commands
DEFINE LCD_DATAUS 50       'Define delay time between data sent.
           'PWM CONFIGURATION
DEFINE CCP1 REG PORTC      'Port to be used by HPWM1
DEFINE CCP1_BIT 2          'Pin to be used by Hpwm1
DEFINE CCP2 REG PORIIC     'Port to be used by HPWM2
DEFINE CCP2_BIT 1          'Pin to be used by hwmp2
            'ADC CONFIGURATION
Define ADC_BITS 10          '10 bit result
define ADC_clock 3         '8mhz external clock
define ADC_Samplus 50
trisA= 255      'all PORTA pins are inputs
adcon1= %10000010 ' Set PORTA analog and right justify
   trisc=0 
   portc=0


   Temp var word     'Temp out of Lm35
   Vp var word       'Voltage out of Pressure Sensor
   Vl var word       'Voltage out of Level Sensor
   char var byte
    
   main:
   Serin portc.7,2,char           'Receive data sent from the transmitting pic 
if (char == "A" ) then            'if data is character A
   
   pause 50
   Adcin 0, Temp                            ' Read channel 0 to Temp (0-1023)
   Temp = (Temp */ 500)>>2                  ' Equates to: (Temp * 500)/1024
   LCDOut ,$fe,$80,"Temp= ",DEC2 Temp       'Display Temp On The First Line 
   
   Adcin 1, Vp                                                     'Read channel 1 to Vp (0-1023)
   Vp = (Vp */ 500)>>2                                             'Equates to: (Vp * 500)/1024
   LCDOut $fe,$c0 ,"Pressure = ",DEC (Vp/100),".", DEC2 Vp," volt" 'Display Voltage out of pressure sensor on second line
   
   Adcin 2, Vl                                                     'Read channel 2 to Vl (0-1023)
   Vl = (Vl */ 500)>>2                                             'Equates to: (Vl * 500)/1024
   LCDOut $fe,$94 ,"Level= ",DEC (Vl/100),".", DEC2 Vl," volt"     'Display Voltage out of Level sensor on third line    


   if portd.0==0 then               'Soil Moisture is lower than preset value 
    if  Vp<3 then                   'Voltage From Pressure Sensor is Less than preset value (3 volt)
       Hpwm 2, 179,5000             'Solenoid is on with 70% duty cycle at 5 khz 
       if Vl<3 then                 'If voltage of Level sensor is Less than preset value (3 volt) 
       hpwm 1,179,5000              'Pump is on with 70% duty cycle at 5 khz
       elseif Vl>=3 then            'If voltage of Level sensor is more than or equal preset value
       hpwm 1,77,5000               'Pump is on with 30% duty cycle at 5 khz
       ENDIF
    elseif Vp>=3 then                'Voltage From Pressure Sensor is more than or equal preset value (3 volt)
       hpwm 2,77,5000                'Solenoid is on with 30% duty cycle at 5 khz
       if Vl<3 then                  'If voltage of Level sensor is less than preset value (3 volt)
       hpwm 1,179,5000               'Pump is on with 70% duty cycle at 5 khz
       elseif Vl>=3 then             'If voltage of Level sensor is more than or equal preset value
       hpwm 1,77,5000                'Pump is on with 30% duty cycle at 5 khz
       endif
    endif
   elseif portd.0!=0 then            'Soil Moisture is high or equal to preset value
       hpwm 1,0,5000                 'Turn off Pump
       hpwm 2,0,5000                 'Turn off Solenoid
   endif
elseif char!="A" then
   lcdout $fe,1                       'Clear LCD
   hpwm 1,0,5000                      'Turn off Pump
   hpwm 2,0,5000                      'Turn off Solenoid
endif


   


   Goto main                          'Do it forever



   End