8051 stack overflow
8051 is a very elegant cpu, with its bit test instructions,stack, also easy to write small
multitasking kernel in it. Its EASY to think in assembler with the 8051 chip - if you need to connect with standard peripheral i/o (8bit) its the choice. Also in its 40pin form,a EPROM emulator, its the fastest/cheapest dev system (for me). An if you then have some function which only needs some i/o and already have a library of code for 8051, AT89Cxxx are just fantastic choices.
What makes the PIC a choice is the range of on-board functionality, but its instruction set is a dog to learn, its got a RETARDED memory model, and that s**t hardware stack you allways overflow A!@#$$!!.
That also makes it very difficult for a C compiler to generate good code, however if I hadn't found a free C compiler at the time - cc5x (1k limit) - I would never have started using them. PIC18Fxxx improves things, but more expensive chips, and PIC24XXX is a different fish(no comment).
AVR (my experience -ATTINY,AT90xx,AT91xx) chips are easier to program. Atmel are now having a better range with on-board functions too.
So its the on-board functions that select the chip for me - so today I have on hand more varity of PIC chips than any other - but not because i'm in luv with PIC.
And the FED compiler/simulator has helped me cope with the PIC. see
www.fored.co.uk