This code is better work ,

'DEVICE 16F84A
DEFINE OSC 10

DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 3
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 2
DEFINE LCD_BITS 4
DEFINE LCD_LINES 2

PLO VAR WORD 'PULS_LOW
PHI VAR WORD 'PULS_HIGH
PWIDTH VAR WORD 'ADD TWO RESULT (PULS_LOW+PULS_HIGH)
DTYCYC VAR WORD 'DIVIDE PULS_HIGH

PULSIN PORTA.0 , 0 , PLO : PULSIN PORTA.0 , 1 , PHI

cutdown2:
PWIDTH = PLO + PHI
if PWIDTH > 655 then 'divide by 2 until 'TEST4' result 3 lines below won't overflow
PLO = PLO / 2 : PHI = PHI / 2 : goto cutdown2
endif

DTYCYC = ( PHI * 100 ) / PWIDTH
'LCDOUT $FE , $80 , "PLO:" , DEC5 PLO 'puls_low
'LCDOUT $FE , $88 , "PHI:" , DEC5 PHI 'puls_high
'LCDOUT $FE , $C0 , "PW:" , DEC5 PWIDTH
'LCDOUT $FE , $C8 , "DC:" , DEC2 DTYCYC

LCDOut $fe, 1
LCDOUT $FE , $84 , "DUTY:" , DEC2 DTYCYC +1 ,"%"
pause 250



http://www.yandanyandan.com/Maxiboost/duty1.avi

video is ~800kb