Is an ADC always necessary between 8051 and zero crossing detector?
No you don't need an ADC in between the ZCD and the 8051.  

You must have your simulation setup incorrectly, as it should work as shown. the only think I can think of is that SPICE does not like floating parts of the circuit, so the voltage source on the other side of the transformer may need a high resistance connection to the secondary, in order to keep SPICE happy. This is at least the case for LTSpice, I don't know about Multisim.  

Anyway, here is the circuit simulated in LTSpice, it seems to work fine. Note the high value resistance between primary and secondary (R1)



Simulation



EDIT

It seems as though you have not given us all the detail - you mention an LED not lighting up though (unless I'm missing something) there is no LED shown on the schematic. Also, though I am no 8051 assembly expert, if the code you have posted is the entire firmware, then I'm not sure how you expect it to do anything useful. There is no SETB or MOV instruction which could be used to set an output pin.