The PIC Midrange-14Core Target for XPad includes:

Supports 14core midrange devices, such as PIC16F84, PIC12F675, PIC16F628, PIC16F877
Hardware configuration editor: specify how you want to use the pins of your PIC-device
(customizable to match the PIC14core midrange device of your choice)
Low level control of PIC-registers
Low level IO library (discretes)
Serial RS232 library
I2C library
1-wire (Dallas) library
LCD-control library (6 pin interface; 4bit databus)
Timer library
Functional simulator allowing you to monitor and control all IO-pins
Inline assembly
Easy to add built-in libraries yourself!
Easy use of EEPROM (persistent variables)
Optimizing compiler generating fully commented assembly
Custom multi-tasking executive for PIC to drive STDs with small memory-footprint

Now includes assembly-libraries for:
U(S)ART on PIC16F628 and PIC16F877
PWM on PIC16F628 and PIC16F877
ADC on PIC12F675, PIC16C715 and PIC16F877


 Why a midrange device, like the PIC 16F84, 16F628, 16F877 or 12F675?

The PIC 16F84 or the newer 16F628 is an 18 pin, 8 bit microcontroller which requires a minimum of external components to operate. The PIC has a risc-architecture performing at 1 instuction per 4 cycles for all but branch-instructions and requires almost no external components. Most of its external pins are available for interaction with the outside world and some versions have several kbytes of program-space as well as over 100 bytes of ram. Also included are timers and interrupt-capability. The PIC is ideal for fast "close-to-the-action" tasks, making it almost ridiculous to ever use traditional logic ICs again! Because some versions have EEPROM memory to store program-code and allow for serial in-circuit programming it has become very popular in many hobby/prototype/robotic environments. When you surf the web, it is amazing what some people have accomplished with these tiny race-horses!

Some features of the PIC16F84 are:
operates from 2-6V DC
clock from 0 to 10mHz
68 bytes ram
64 bytes data EEPROM (non-volatile data)
1024 program-instructions serial EEPROM programmable
only 35 instructions to learn, most of which are 1 cycle (4 clock-cycles).
13 I/O pins programmable in software, of which:
4 external pins can interrupt on change
1 external pin can interrupt on a selectable edge
low power-consumption sleep-mode, wake-up by external interrupt or  watchdog timer
one programmable 8 bit timer which optionally can count an external pin
8 level hardware-stack
clock type selectable: crystal, resonator or RC-network (resistor/capacitor)


Because of its speed and risc-architecture it is very easy to "bit-bang" additional functions in software, like:
I2C (i.e. for serial communication with additional EEPROM)
1 Wire protocols like for the Dallaschips
asynchronous RS232 etc.

 The screenshot below shows the configuration editor for the PIC16F84 MCU. You can assign  protocols to each I/O pin as well as the clock-configuration. After assiging protocols to the pins, the involved driver-libraries and driver-handles (Bus-variables) to access the pins are automatically available in XPad's editors. When you change the clock-speed here, the compiler will automatically re-calculate the right delays to comply to the specification of any supported protocols.