Here's a untested/simplfied version that should work. Compare it to your original to see the changes.
	Code:
	DEFINE OSC 4 ' 4 MHz clock
DEFINE ADC_BITS 10 ' Set number of bits in result
DEFINE ADC_CLOCK 3 ' Set clock source (3=rc)
DEFINE ADC_SAMPLEUS 20 ' Set sampling time in uS
DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 20h ' Enable transmit, BRGH = 0
DEFINE HSER_SPBRG 25 ' 2400 Baud @ 4MHz, 0.17%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
 
TRISA = %000001     ' Set PORTA
TRISB = %01100000   ' Set PORTB
TRISC = %10000000   ' Set PORTC
ADCON1 = %10001110  ' RA0 A/D input. +Vref=Vdd, -Vref=Vss. Right justified for 10-bit
INTCON = %11000000  ' Global & peripheral ints enabled. Not RB0/INT
PIE1 = %00100000
 
'**************** DEFINE VARIABLES ***************************************
relay VAR BYTE 'relay number storage variable
stat VAR BYTE 'relay status ON/OFF variable
POTADC VAR WORD 'ADC Result
RXBYTE var byte
 
'**************** PORT B Setup *******************************************
ANT4 VAR PORTB.3 'ANT4 Relay
ANT3 VAR PORTB.2 'ANT3 Relay
ANT2 VAR PORTB.1 'ANT2 Relay
ANT1 VAR PORTB.0 'ANT1 Relay 
 
'**************** PORT C Setup *******************************************
CCW VAR PORTC.5 'CCW Relay
CW VAR PORTC.4 'CW Relay
 
'****************** PORT SETUP *******************************************
CW=0 ' CW Relay Off
CCW=0 ' CCw Relay Off
ANT1=0
ANT2=0
ANT3=0
ANT4=0
ADCON0=0 ' Set up ADCON1
ON INTERRUPT GOTO RECEIVE
 
MAIN:
  ADCIN 0, POTADC 'convert ADC value to a byte value: 
  HSEROUT [DEC POTADC,32] 'TX DATA on PORTC.6
  PAUSE 300 
  GOTO MAIN
 
DISABLE  ' <-- doesn't matter if DISABLE is before or after the label
         ' just as long as it's before any CODE.
RECEIVE: 
  IF RCSTA.2=1 THEN
     HSERIN [RXBYTE]
  ELSE
     HSERIN 500,IntExit,[relay,stat] 'Serial data in on PortC.7
  ENDIF
 
  ' Simplified version without gosubs, gotos, etc.
  IF relay = 1 THEN CW = Stat.0       ' Process relay#1
  IF relay = 2 THEN CCW = Stat.0      ' Process relay#2
  IF relay = 3 THEN PORTB = %00000001 ' Process relay#3
  IF relay = 4 THEN PORTB = %00000010 ' Process relay#4 
  IF relay = 5 THEN PORTB = %00000100 ' Process relay#5
  IF relay = 6 THEN PORTB = %00001000 ' Process relay#6
 
IntExit:
  RESUME
  ENABLE ' <-- You only need ENABLE if you place more code below
         ' it and you want interrupt checking code there.
  END
 
				
			
Bookmarks