It worked perfectly thank you for explaining. I wanted to ask another question I thought I would just keep it in this thread since its small.

I am thinking of ways to hook up a 3 digit seven segment display to my pic, it has a common cathode. I was wondering if it would work to hook up each anode to lets say portc.0 through to portc.7 (the dot) and connect the cathode for each digit to a different port say portb.4 through to say portb.6. That way when I want to write something to the first digit I set portb.4 low and set portb.5 and portb.6 to high. When I tried to connect it up this way, the numbers appeared very dim. I think I have the right idea because I can decrease the pause between switching to each digit and to the human eye it would appear like they are all on at the same time? I am new to both electronics and microcontrollers so i apologise if it's a stupid question I will post the code I was fiddling with:

Code:
define OSC 4

LEDTOP         var     PORTC.0   
LEDTOPLEFT     var     PORTC.1
LEDTOPRIGHT    VAR     PORTC.2

LEDMIDDLE      VAR     PORTC.3

LEDBOTTOMRIGHT VAR     PORTC.4
LEDBOTTOM      VAR     PORTC.5
LEDBOTTOMLEFT  VAR     PORTC.6

SEG1 VAR PORTB.4
SEG2 VAR PORTB.5
SEG3 VAR PORTB.6

TRISC = %00000000       
TRISB = %00000000

ADCON1=%00000111
ANSELH=0
ANSEL=0
CM1CON0=0
CM2CON0=0


       
loop:   
       gosub Selseg1
       gosub DisNo5
       pause 500
       
       goto Selseg2
       goto DisNo5
       pause 500
       
       goto Selseg3
       goto DisNo5
       pause 500
        
       goto loop  

Selseg1:
     seg1 = 0
     seg2 = 1
     seg3 = 1
     RETURN
     
Selseg2:
     seg1 = 1
     seg2 = 0
     seg3 = 1
     Return
     
Selseg3:
     seg1 = 1
     seg2 = 1
     seg3 = 0
     RETURN
     
DisNo1:
     LEDTOP = 0
     LEDTOPLEFT = 0
     LEDTOPRIGHT = 1
     LEDMIDDLE = 0
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 0
     LEDBOTTOMLEFT = 0
     return

     
DisNo2:
     LEDTOP = 1
     LEDTOPLEFT = 0
     LEDTOPRIGHT = 1
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 0
     LEDBOTTOM = 1
     LEDBOTTOMLEFT = 1      
     return
     
DisNo3:
     LEDTOP = 1
     LEDTOPLEFT = 0
     LEDTOPRIGHT = 1
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 1
     LEDBOTTOMLEFT = 0      
      return
      
 DisNo4:
     LEDTOP = 0
     LEDTOPLEFT = 1
     LEDTOPRIGHT = 1
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 0
     LEDBOTTOMLEFT = 0      
     return
     
DisNo5:
     LEDTOP = 1
     LEDTOPLEFT = 1
     LEDTOPRIGHT = 0
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 1
     LEDBOTTOMLEFT = 0      
     return
     
 DisNo6:
     LEDTOP = 0
     LEDTOPLEFT = 1
     LEDTOPRIGHT = 0
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 1
     LEDBOTTOMLEFT = 1      
     return
     
  DisNo7: 
      LEDTOP = 1
     LEDTOPLEFT = 0
     LEDTOPRIGHT = 1
     LEDMIDDLE = 0
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 0
     LEDBOTTOMLEFT = 0      
     return
     
 DisNo8:
      LEDTOP = 1
     LEDTOPLEFT = 1
     LEDTOPRIGHT = 1
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 1
     LEDBOTTOMLEFT = 1      
     return
     
 DisNo9: 
     LEDTOP = 1
     LEDTOPLEFT = 1
     LEDTOPRIGHT = 1
     LEDMIDDLE = 1
     LEDBOTTOMRIGHT = 1
     LEDBOTTOM = 0
     LEDBOTTOMLEFT = 0              
     return        
End