8-bit RISC microcontrollers. You get cpu, RAM, flash, eeprom, and IO on a single chip. Down to 8 pins! Can write in assembly, C (supported by GCC), or Basic (BASCOM-AVR).
'''Building USB devices using a PIC'''
- some basics
- USB microphone project
- IgorPlug-USB - a USB implementation for the AVR - homepage avrfreaks
- Example code in C (including PID and heater control) here
- A phase shifted PWM algorithm here with PIC asm code here
One way to get increased inputs and outputs is to use external chips that do serial->parallel (for output) and parallel->serial (for input). You use a small number of pins on the micro to talk serial to the external chips. Some of the chips can be cascaded to get more inputs/outputs.
- Serial-input parallel-output latch: 74LS595, 74HC595
- Mini SSC II - 12 channel serial servo controller for $44