Learn more about PICmicro® programming

Getting started

What is a PIC?

The names PIC® and PICmicro® refer to a family of low-cost microcontrollers made by Microchip Technology (www.microchip.com). Microcontrollers are single-chip computers that can be built into circuits and programmed to accomplish specific tasks.

Why use the PICmicro®?

PIC microcontrollers are simple, fast, inexpensive, and available from a number of suppliers and distributors. Microchip is one of the top vendors, by volume, of embedded microcontrollers and related ICs.

What do I need?

To get started using PICmicros you will need: a PIC-based project circuit, such as the CHRP or WAND; the free MPLAB-X IDE (integrated development environment, or another IDE, PIC assembler or compiler); and, a programmer such as the PICkit-3.

Are Siriusmicro products like an Arduino?

Yes, and no. Arduino boards are popular, expandable and are programmed in a C-style language. They're great if you want a ready-to-go circuit to control things.

Siriusmicro products are designed to teach you about electronics and how to program PIC microcontrollers using either low-level assembly code or the C language. Our goal is to teach you about enough about electronics, microcontrollers and programming to prepare you to design and build your own microcontroller-based circuits using low-cost PICmicro chips.

Boards like the CHRP offer similar functionality to an Arduino, and the CHRP includes extra circuitry on-board to make it easy to expand its functionality (and your programming skills) without having to breadboard circuits or buy additional plug-in 'shields'.

Which circuit should I use?

To learn the most about programming in the most flexible and versatile circuit, you'll want to use the CHRP. Other boards, such as the WAND and BMP have more limited I/O options, but can also be used to effectively learn about basic hardware and a range of PIC programming skills.

Here are some of the projects each board is suitable for:

CHRP - line-following, light-seeking, object-sensing or TV remote-controlled robots using either DC or servo motors, animatronics, temperature or voltage sensing and data logging projects, alarm systems, IR transmitter and receiver applications, USB interfacing, user-interface code, and more.

WAND - message wand, temperature or analogue sensor, poster lighting controller, simple IR remote, timer, and more.

BMP - simple line-following or light-seeking robot, locker alarm, cricket, and more.

Programming

Can I program?

Probably. Programming is all about giving a computer the correct sequence of instructions to accomplish a task. Try programming a mouse to find the cheese in our simple mouse programming simulator game.

How are PICs programmed?

Programs, know as source code, are written on a personal computer. Next, the programs are assembled or compiled into object code by personal computer-based assemblers (for assembly code) and compilers (for C code). Finally, the programs are downloaded into a microcontroller using a programmer (a hardware device that allows your computer to program a microcontroller) or downloader (a computer program that communicates with a bootloader program running in your target microcontroller).

What software do I need?

The examples on this website are written for Microchip's (www.microchip.com) free MPLAB X and older MPLAB IDEs (Integraded Development Environment). MPLAB includes a source code editor, assembler, C compiler and program simulator. In addition, MPLAB can program microcontrollers using either Microchip programmers or many third party programmers.

What kind of programmer should I use?

The CHRP, WAND and BMP circuit boards have been designed to be programmed using Microchip's PICkit-2 or PICkit-3 programmers. These low-cost programmers connect from a computer's USB port to the in-circuit serial programming (ICSP) header on the circuit boards making them easy to use, but any PIC programmer that supports the PIC16 and PIC18 families should work.

What is assembly code?

Assembly code is a human-readable form of the machine code instructions that control microcontrollers and microprocessors. Assembly code is considered a low-level language because it lets you program the microcontroller hardware directly, using few resources and memory to produce high performance code. While powerful and flexible, assembly code has a reputation for being difficult to learn. In reality, it can be considered more awkward than difficult, and it provides a good basis for understanding the interaction between hardware and software in interfacing control applications.

See more on assembly code programming.

What is C?

C is a compiled language that provides more powerful and flexible programming functions than assembly code while maintaining the ability to easily control hardware.