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’’’


  • Example code in C (including PID and heater control) here
  • A phase shifted PWM algorithm here with PIC asm code here

I/O Expansion

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