hê hê, xin lỗi mọi người nghe... Đoạn code của em
	Code:
		org		0x0000
	goto	start
;	case1	equ	0x20	;PORTA value = 000 -> the robot is in the air
;	case2	equ	0x21	;PORTA value = 001 -> left hand side
;	case3	equ	0x22	;PORTA value = 011 -> completely in left hand side 
;	case4	equ	0x23	;PORTA value = 100 -> right hand side
;	case5	equ	0x24	;PORTA value = 101 -> center the line
;	case6	equ	0x25	;PORTA value = 110 -> completely in right hand side
;	case7	equ	0x26	;PORTA value = 111 -> 
start
	movlw	d'124'			;set period for PWM=1000Hz
	movwf	PR2
	movlw	b'00000111'		;set prescale = 1:16 and enable TIMER2
	movwf	T2CON
	bcf		TRISC, CCP1
	bcf		TRISB, CCP2
	clrf	PORTB		;initialize PORTB, PORTA
	clrf	TRISB		
	clrf 	PORTA
	clrf	PORTD
	clrf	TRISD
;R_led off <=> PORTB = 11111110
;C_led off <=> PORTB = 11111101
;L_led off <=> PORTB = 11111011
	;configure PORTA	
	movlw	b'00000110'	;set all PORTAs as digital input
	movwf	ADCON1
	
	movlw	0xff
	movwf	TRISA		;set portA as input
	
	movf	PORTA,0		;read from PORTA and store it to W_reg
	movwf	PORTB	
loop
	movf	PORTA,0
	movwf	PORTB
	goto	case2
s1							;special case of robot when it turning right and get out of the line
	movlw	b'00000000'
	cpfseq	PORTA				;if equal skip
	goto	loop				;if equal goto case1
	call	RIGHT_WHEEL_FAST
	call	LEFT_WHEEL_SLOW
	goto	loop	
	
s2							;special case of robot when it turning left and get out of the line
	movlw	b'00000000'
	cpfseq	PORTA				;if equal skip
	goto	loop				;if equal goto case1
	call	LEFT_WHEEL_FAST
	call	RIGHT_WHEEL_SLOW
	goto	loop
;s3							;robot will stop while it follow the center and suddenly did not sence anything
;	movlw	b'00000111'
;	cpfseq	PORTA				;if equal skip
;	goto	loop				;if equal goto case1
	
;	call	LEFT_WHEEL_STOP	
;	call	RIGHT_WHEEL_STOP
case2							;in left hand side
	movlw	b'00000001'
	cpfseq	PORTA				;if equal skip
	goto	case3
	
	call	LEFT_WHEEL_FAST
	call	RIGHT_WHEEL_NORM
	goto	loop
case3							;completely in left hand side
	movlw	b'00000011'
	cpfseq	PORTA
	goto	case4
	
	call	LEFT_WHEEL_FAST
	call	RIGHT_WHEEL_SLOW
	
	goto	s2
	
case4							;right hand side
	movlw	b'00000100'
	cpfseq	PORTA
	goto	case5
	
	call	RIGHT_WHEEL_FAST
	call	LEFT_WHEEL_NORM
	goto	loop
case5							;center
	movlw	b'00000101'
	cpfseq	PORTA
	goto	case6
	
	call	RIGHT_WHEEL_NORM
	call	LEFT_WHEEL_NORM
	goto	loop
case6							;completely in right hand side
	movlw	b'00000110'
	cpfseq	PORTA
	goto	loop
	call	RIGHT_WHEEL_FAST
	call	LEFT_WHEEL_SLOW
	goto	s1