PIC18F4550 Programming and Tutorial Hardware C

PIC18F4550 Microcontroller Tutorial using  Mplab IDE and C18 Compiler



PIC18F Microcontroller Programming Tutorial

Tutorial Introduction

Welcome, here in this tutorial series we are going to learn some common methodologies for programming a pic18f. The tutorials here must be perfect to get you started with pic18f microcontroller. We are going to learn about the basics and various details that you need to consider while programming a pic18f microcontroller. For making life easy I have also attached relevant coding examples with explanation with each chapter of the tutorials that I am going to show.   Programming a pic18f Microcontroller with Hardware C

This tutorial is compiled for beginners with pic18f microcontrollers, who wish to learn microcontroller coding in Hardware C. We are also going to see the software tools, understand Microcontroller pin diagram, Ports and its relevance, Programming and relevant data sheet of the microcontroller, and I will also explain where and what to look for in a datasheet, as it can be confusing for beginner. Please do to complain if you find the tutorial a bit lengthy, but shortcuts are never good choice. A navigation menu on the Top must be helpful for you to switch between topic and chapters.


There are many ways or styles to code a simple microcontroller program. What is really necessary is to develop a perfect and good coding habit or methodology while you code, to avoid confusion. For doing a same logical operation there can be multiple ways in Hardware C. It will help you to optimize the coding you do.

Here I am going to explain some base line methods and also some common practices that you need to follow while coding a pic18f microcontroller with suitable examples. There can be hundred of ways of writing same code; I will just try to cover some of the basic styles to get you started, from Simple to complex ways. Once you understand the basics then it must be quiet easy for you to navigate your own imagination and make the microcontroller respond according to your wish.  I will try to explain each and every block with simple and easily understandable format. I would also try to avoid Complex terms whenever it is possible.

PIC18F inexpensive programming with hardware C

Pic microcontrollers are comparatively inexpensive and easy to find, there are also other microcontrollers Like Arduino Board which are little bit costly. Unless you want to spend too much for you projects, pic programming kit would be perfect to get you started. PIC18F is easily available and very powerful and quiet capable microcontroller which can easily enable you to add some Logic and Intel to your projects. All you need is a Microcontroller, An IDE and a Microcontroller programmer Like pickit2 or JDM.

Programming a PIC18F microcontroller using Hardware C

For our hardware C programming tutorial we are going to use a PIC18F4550 microcontroller. PIC18F4550 is a 40 pin microcontroller by microchip and it has been a favorite microcontroller in between microcontroller hobbyist. You can easily switch over to pic18f2550 microcontroller as well, with little modification in the code. However we are going to focus on pic18f4550 microcontroller for our tutorial with hardware C. After writing and understanding microcontroller Code we are going to upload the code into the microcontroller using hardware programmer.

If you wish to know in general about microcontroller when you can visit my What is a Microcontroller post. That should get you some basics of Microcontroller itself. For writing out first code we will need a microcontroller IDE and a Compiler to compile the microcontroller program.

Hardware C is similar to the general C software programming language that you compile with a BORLAND C compiler. However the compiler and Coding methods for Hardware C are going to be different. It depends upon the microcontroller. For coding a pic18f4550 you will need an IDE that supports the respective microcontroller and also a Compiler that can compile the code written on the IDE.

What is IDE?  Don’t confuse IDE with “Integrated Device Electronics”, Here IDE is just an abbreviation for Integrated Development Environment which is a software environment for writing codes. IDE makes life really easy for coders.

Before we can Start coding we need our weapons.

There are many IDE available which supports PIC18F microcontrollers,  we are going to focus of those provided by microchip. The older version by microchip was known as “MplabX IDE” with “C18 Compiler”, the latest avatar with better interface is “Mplab X IDE” with “XC8 Compiler”.  There are free and paid versions of the compiler available on microchip, we would be focusing on the free versions, which must be good enough for the tutorials here.

MPLAB IDE will help you with a Software platform where you can write your Hardware Code, ( Just like Eclipse IDE ).  And the Compiler installed with MPLAB IDE will convert the Human written code into Machine language.

Please note that the microcontroller can only understand the machine language (0 and 1). The code [instructions] written in the IDE is converted into “Machine code” by the compiler.  After compilation the output will be generated in .hex format (A filename with .hex) [ AN Example .hex ], all we have to do is just to upload that .HEX file into the microcontroller and then the pic18f4550 is ready for action.

MPLAB IDE and C18 Compiler output hex


There are different types of compiler. Suppose if you working with a PIC30F series microcontroller then the same MPLAB IDE will require a C30 Compiler engine to Compiler your code. C30 and C18 are just the versions of compiler which is capable of Converting your code into machine language (0’s and 1’s) which a microcontroller would understand. Same is the case with Mplab X IDE. For all the PIC18F series of microcontroller you need xc8 compiler, for PIC16F series you need to use XC16, and for pic32F you can use XC32 Compiler.

Now you need to decide a IDE which suits the best for you. Either you can go on with old version or the new Mplab X IDE. All the codes here in our tutorials would work on both the combination ( mplab ide + C18 , and mplabx + xc8 ).

If you wish to use the old version then, a lite version of C18 compiler and MPLAB ide is completely free to download from Microchips website. The last stable version can be download from their website directly.

-DOWNLOAD C18 Lite Version Compiler

The Latest version of MPLAB X IDE and XC8 free version can be downloaded from the link below.  Mplab x supports Windows, Linux and also mac. Depending upon your requirement you can install the tools from the link below. 

-DOWNLOAD  XC8 Compiler

Once you have successfully downloaded and installed the IDE and Compiler then move on to the next section of the tutorial for setting up the first Project.

For Mplab + C18 Refer – C18 Setting and Project Configuration
For Mplab X + XC8 Refer – Mplab x IDE Project setting and Blink led


Chapter 2 pic18f4550 programming , mplab and C18 compiler | Project SettingsChapter 3 for pic18f4550 programming , Source code and program



PIC18F4550 Programming tutorial chapter 4 and method 2 for programmingMplab X IDE Tutorial For blinking an LED and Comparison with Mplab IDE








NEXT Tutorial 2

Tutorial 3 - Blinking an LED Method-1

Tutorial 4- Blink LED Method-2 Header

Tutorial 5- Blink LED - Mplab X IDE - XC8

Tutorial 6- Blink LED - External Oscillator

PIC18F2550 - Blink LED - XC8 Compiler