Hi,
I am trying to make a BCD seven segment display which takes input from 4 bits (port d) and gives output at port b for lsb and port c for msb what I am tryin to do is I take the input and I will subtract it with a value which I stored in w register if the result is zero than accordingly I will turn on or turn off those pins at port b and c. Every time I will change values every time in w register here is my code i make it for only showing 14 and 15. but its not working can any one help me.

RES_VECT CODE 0x0000 ; processor reset vector
GOTO START ; go to beginning of program

; TODO ADD INTERRUPTS HERE IF USED
FIXED EQU 20h
;INPUT EQU 21h
;output_LSB EQU 22h
;output_MSB EQU 23h
MAIN_PROG CODE ; let linker place main program
START

BSF STATUS,RP0
MOVLW b'00000000' ;making all pins of port b as output
MOVWF TRISB
MOVLW b'00000000' ;making all pins of port c as output
MOVWF TRISC
MOVLW b'00001111' ;making first 4 pins of port d as input
MOVWF TRISD
BCF STATUS,5
;MOVF PORTD,W
;MOVWF PORTB
;CLRF PORTD
MAIN_LOOP
BCF STATUS, 2 ;CLEAR STATUS REGISTER PIN 2
CLRF PORTD ;CLEARING ALL PORT D PINS
MOVF PORTD, W ;TAKING VALUES FROM PORTD AND STORING IN W REGISTER
MOVWF FIXED ;MOVING VALUE FROM W REGISTER TO VARIABLE FIXED
MOVF b'00001111',W ;MOVING 15('F') TO W REGISTER
SUBWF FIXED, 0 ;SUBTRACTING VALUE OF W REGISTER FROM FIXED AND STORING RESULT IN W REGISTER
BTFSS STATUS,2 ;BIT TEST IF ZERO REGISTER OF STATUS REGISSSTER IF IT IS SET. SKIP NEXT LINE
MOVLW b'00000101' ; TRANSFERING 5 ON PORT B "WHICH IS LSB OF OUTPUT"
MOVWF PORTB
MOVLW b'00000001' ;TRANSFERING 1 ON PORT C "WHICH IS MSB OF OUTPUT"
MOVWF PORTC
GOTO LINEAR_1 F
GOTO MAIN_LOOP

LINEAR_1
MOVF PORTD ,W
MOVF b'00001110',W ;MOVING 14('E') TO W REGISTER
SUBWF FIXED, 0 ;SUBTRACTING VALUE OF W REGISTER FROM FIXED AND STORING RESULT IN W REGISTER
BTFSS STATUS, 2 ;BIT TEST IF ZERO REGISTER OF STATUS REGISSSTER IF IT IS SET. SKIP NEXT LINE
GOTO LINEAR_2
MOVLW b'00000100' ;TRANSFERING 4 ON PORT B "WHICH IS LSB OF OUTPUT"
MOVWF PORTB
MOVLW b'00000001' ;TRANSFERING 1 ON PORT C "WHICH IS MSB OF OUTPUT"
MOVWF PORTC
BSF PORTD,7
GOTO MAIN_LOOP

END