PIC Tutorial Hardware
The hardware required consists of a number of small boards (built on Veroboard), which connect together via ten pin leads using Molex connectors. The first board (Main Board) carries the PIC16F628 processor and 5V regulator - the board can be fed from a simple 9V battery. Some of the later tutorials will require two processor boards, this is the reason for the second connector on PortB - the two processors will communicate with each other over a standard 9600 baud serial bus, the second board can be either powered from the first (using a four wire connection lead), or powered from it's own supply (using a three wire connection lead). The lead consists of a ground wire, RB1 to RB2, RB2 to RB1, and an optional 5V wire. RB1 and RB2 cross over so we can experiment with the built-in hardware USART as well as software serial communications.
I've added a second processor board, based on the PIC16F876, this adds a third port, and includes 5 channels of 10 bit analogue input - the existing tutorials based on the PIC16F628 should work with a few slight changes, these are explained on the changes page, as I'm running the 16F876 at 20MHz (5 times faster than the 16F628) the delay routines will need altering as well.
The second board (LED Board) carries eight LED's with associated series resistors, and is used in the first series of tutorials. The third board (Switch Board) provides a row of four switches, and four LED's (so you can do some exercises without needing the previous LED board). The fourth board (LCD Board) only has a variable resistor (contrast) and a single resistor (pull-up for RA4), the actual LCD module is mounted off board and connected via another 10 way Molex connector, this allows you to plug different LCD's in. The fifth board (Joystick Board) provides an interface for a standard PC analogue joystick, giving access to the two analogue controls and the two buttons. The sixth board (IR Board) has an Infrared transmitter and receiver, using two of them with two processor boards we can experiment with Infrared communication. The seventh board (I2C EEPROM Board) uses a standard EEPROM 24Cxx series (I used a 24C04 and a 24C256). With I2C there are a great many components you can connect to the bus, the basic software interface remains pretty well the same, except that some chips (like the 24C256) use an extended addressing mode to access more memory, the standard addressing mode can only access 2kB (8 x 256 byte pages). I'll be adding some other I2C based boards later, they will use the same basic I2C routines as the existing I2C EEPROM board does. The eighth board (I2C Clock Board) implements a battery backed clock, using a PCF8583P chip, and the ninth one (I2C A2D Board) introduces analogue to digital conversion, using a PCF8591P chip. The tenth board (I2C Switch Board) is very simple, it provides four push button switches for use with the other I2C boards. The eleventh board is the PIC16F876 processor board, and the twelfth is an RS232 interface board using the standard MAX232 chip. The thirteenth board is the stepper motor driver board, a simple board consisting of 4 small NPN driver transistors and associated components, it's intended for use with stepper motors removed from old 5.25 inch floppy drives or similar. The board includes a link to feed the motor from the processor 5V supply, or with that removed you can feed it from an external 12V supply to get more power from the motor - but for demonstrating how to use a stepper motor the 5V supply works fine. The fourteenth board is the keypad interface board, an extremely simple board to connect a 4x4 HEX keypad (or a 4x3 numeric keypad) to one port of a PIC. The fifteenth board is the 7 segment LED board, this uses a couple of PNP transistors to multiplex the two 7 segment sections - I've used BC177's, but it's not critical, and small signal PNP transistor should be fine. The sixteenth board is the PIC16F877 processor board. The seventeenth board is the Analogue Board, this provides two analogue inputs of 0-10.23V, and a 2.5V precision voltage reference IC. Boards number eighteen and nineteen comprise a matching pair of Wireless Boards, one containing a licence free wireless transmitter module, and the other a licence free wireless receiver module. The twentith board is the LED Matrix Board, the largest board so far containing an 8x8 matrix of 64 LED's - basically a larger example of multiplexing that the previous 7 Segmant LED Board.
I obtained the Molex connector parts from RS Components, for the PCB part there are two options, the first has fully open pins, the second has plastic locking guides at the back, which means you can't get it on the wrong way round or out of step - use which ever you prefer, I initially used the open ones, but used locking ones on my second processor board and the IR Board. You can buy an expensive crimping tool for fitting the Socket Terminals to the wire, but I simply soldered them in place - it's a little fiddly, but reasonably easy - once the terminals are fitted on the wire they are easily pushed into place in the socket housing. I used a blue wire to mark pin one, and the rest were all white. I made a number of leads up, about 12cm long, with connectors at both ends, and a single ended one which solders to the LCD module. A special longer one, with only 4 wires (two of them crossed over) was made for cross connecting the two processor boards.