x2 on the PICs. Far better than and simpler circuit and calcs than SMPS controllers (why use them?).
Light brightness is proportional to the PWM duty cycle (for most typical lighting), hence why they are the common dimmer for mixes of tungsten, halogen and LED lights. Otherwise they are the common dimmer simply for cost, sizing, and heat reasons.
Hence to the use of PICs. Apart from simple applications where the 555 circuit or similar is fine, any time the ramping up or down is required, PICs are the go - eg, dimming of lights instead of turn-off.
And if BOTH rampings are required - eg, the brightening "ON" and then dimming OFF for dome or puddle lights - the PIC IMO is the only answer (the electronic circuitry for that gets quite complex).
PICs are essentially cheaper than the 555 anyway. Plus it's easy to add a full-on for 100% unlike 555 and similar circuits which have a max of 99% or 99.9% etc (without additional circuitry). (Their are various commercial chips that variable PWM with full-on, but they are hard to source if not to pricey and may have limits (eg, minimum 30% duty cycle). PICs overcome such limitations.
All the PICs have PWM outputs.
I finally crossed over (from logic etc circuits and CPUs) to PICs when the $4 8-pin 08M2 with its ~2,000 lines of program space was released. I have several - not that any are used yet (But hey, I finally soldered some SMD 08s to a 30 year old circuit board I had... Now for the voltage regulator, and then...)