how does a microcontroller work