PIC16F877 peripherals

Each block of the PIC16F877: what it is, the registers that control it and the pins it uses.