Interfacing Servo Motor with PIC Microcontroller – MPLAB XC8

Servo Motor Servo Motor is an ordinary geared dc motor equipped with closed loop servo mechanism which uses position feedback to control exact angular position of the rotor. These are commonly used in robotic arms, legs etc. Servo Motors do not rotate continuously, their rotation is limited to fixed angles. Usually these motors have rotation limit from 90º to 180° and some special have limits 360° or more. Servo Motors usually have three wires. RED and BLACK wires are used to...

Interfacing LCD with PIC Microcontroller – MPLAB XC8

In this tutorial we will see How to Interface a 16x2 character LCD module with PIC 16F877A Microcontroller using MPLAB X IDE and MPLAB XC8 C Compiler. 16x2 Character LCD is a very basic and low cost LCD module which is commonly used in electronic products and projects. 16x2 means it contains 2 rows that can display 16 characters. Its other variants such as 16x1 and 16x4 are also available in the market. In these displays, each character is displayed...

Using Push Button Switch – MPLAB XC8

Push Button Switch I hope that you already go through the first tutorial of MPLAB XC8, Getting Started with MPLAB XC8 - LED Blinking. In that tutorial we learn how to use an output pin by driving an LED. In this we will learn how to read an Input pin using a push button switch. We already seen that TRIS register is used to set direction of each IO...

Getting Started with MPLAB XC8 Compiler – LED Blinking

In this tutorial we will learn How to Blink an LED with PIC Microcontroller using MPAB XC8 Compiler. Recently Microchip released a series of development tools including MPLAB X IDE and MPAB XC Compilers. MPLAB X IDE is a software that runs on a computer intended to develop applications for Microchip's Microcontrollers and Digital Signal Controllers. It can be used with Windows, Mac and Linux Operating Systems. It...

Getting Started with PIC 18F Microcontroller – MikroC

In this tutorial we will learn how to program PIC 18F Microcontrollers using MikroC Pro compiler. I hope that you already know the basics of PIC Programming using MikroC compiler. If you are a beginner to this field, please read our first tutorial Blinking LED using PIC Microcontroller - MikroC. There are a lot of advantages for PIC 18F microcontrollers compared to 16F. Some of them are given below. ...

Read Modify Write Problem with Mid-Range PIC Microcontrollers

RMW Problem with PIC 16F Family

Microchip's mid-range PIC Microcontrollers use a sequence of operations : Read, Modify and Write to change output state of a pin. In certain circumstances RMW operations might cause unexpected behavior of outputs. You might have already experienced this issue and struggled with it as you can't find exact reason with microcontrollers unexpected behavior. Mid-Range PIC Microcontroller uses two registers, TRIS and PORT to control the direction and status of an IO pin respectively. When you try...

Generating PWM with PIC Microcontroller using Hi-Tech C

PWM (Pulse Width Modulation) is a powerful technique used to generate analog voltage using digital signals. It has a wide variety of applications such as controlling average power delivered to a load, generating analog voltage level, sine wave generation and DC Motor speed control. PWM signals are ON-OFF signals (hence the name Pulse) whose ON duration are changed (hence Width Modulation) according to our requirements. The fraction of time period for which the signal is ON to total time period is...

Using UART of PIC Microcontroller – Hi Tech C

UART stands for Universal Asynchronous Receiver / Transmitter. It is a serial communication interface which uses two lines for sending (TX) and receiving (RX) data. As its name indicates it is an asynchronous communication interface, which means it doesn't need to send clock along with it as in synchronous communications. UART is the communication standard of our old computer's RS-232 serial port. Most of the Microchip's PIC Microcontrollers have built in USART Module. USART stands for Universal Synchronous Asynchronous Receiver...

>