PIC (usually pronounced as [phɪk]) is a family of microcontrollers made by Microchip Technology, derived from the PIC1650 originally developed by General Instrument's Microelectronics Division. The name PIC initially referred to Peripheral Interface Controller, and is currently expanded as Programmable Intelligent Computer.
The first parts of the family were available in 1976; by 2013 the company had shipped more than twelve billion individual parts, used in a wide variety of embedded systems.
The PIC was originally intended to be used with the General Instrument CP1600, the first commercially available single-chip 16-bit microprocessor. The CP1600 had a complex bus that made it difficult to interface with, and the PIC was introduced as a companion device offering ROM for program storage, RAM for temporary data handling, and a simple CPU for controlling the transfers. While this offered considerable power, GI's marketing was limited and the CP1600 was not a success. When the company spun off their chip division to form Microchip in 1985, sales of the CP1600 were all but dead. By this time, the PIC had formed a major market of its own, and it became one of the new company's primary products.
Early models only had mask ROM for code storage, but with its spinoff it was soon upgraded to use EPROM and then EEPROM, which made it possible for end-users to program the devices in their own facilities. All current models use flash memory for program storage, and newer models allow the PIC to reprogram itself. Since then the line has seen significant change; memory is now available in 8-bit, 16-bit, and, in latest models, 32-bit wide. Program instructions vary in bit-count by family of PIC, and may be 12, 14, 16, or 24 bits long. The instruction set also varies by model, with more powerful chips adding instructions for digital signal processing functions. The hardware implementations of PIC devices range from 6-pin SMD, 8-pin DIP chips up to 144-pin SMD chips, with discrete I/O pins, ADC and DAC modules, and communications ports such as UART, I2C, CAN, and even USB.