Hola! Para empezar, ese enunciado con el 8051 no va; este micro (fue con el que me inicié) no tiene ni AD ni PWM.
Busca otro, y personalmente te diría un PIC; piensa en el 16F873, por ejemplo.
Baja la hoja de datos, leela, e intenta hacerlo... no es muy complicado.
Quizá alguien aquí te pueda entragar el programa ya listo, entonces tus conocimientos serán -100. Recuerda lo que dijo un sabio chinito: "si das un pescado a alguien lo alimentalas pol un día, si le enseñas a pescal lo alimentalas pol toda la vida"
Intentalo, y aca estamos para cualquier duda...
Saludos