I very often get the question that what is the difference since both the microprocessor and microcontroller looks same.
One of the main difference between microprocessor and microcontroller is that the microcontrollers are designed to perform a small set of specific functions, for example as in the case of a Digital Signal Processor which performs a small set of signal processing functions, whereas microprocessors tend to be designed to perform a wider set of general purpose functions.
For example, microcontrollers are widely used in modern cars where they will each perform a dedicated task, i.e. a microcontroller to regulate the brakes on all four wheels, or a microcontroller to regulate the car air conditioning, or a microcontroller responsible for the cruise control. These microcontrollers will perform few other tasks (if any) other than those specified. Compare this on the other hand to a microprocessor in a PC which performs a wide range of tasks related to the general requirements of a PC, i.e. performing the necessary calculations for a very wide set of software applications, peforming I/O for the main sub-systems, peripheral control etc.