Tuesday 22 January 2013

PIC Tutorial Series -Basics of PIC Programming

ANSEL=0;   //INPUT AND OUTPUT ARE MADE DIGITAL
ANSELH=0; //INPUT AND OUTPUT ARE MADE DIGITAL

PORTB=0XFF; //RESET PORTB
TRISB=0; //ALL PINS OF PORTB ARE MADE AS OUTPUT.
Delay_ms(milliseconds); //USED TO MAKE DELAY IN LOOP EXECUTION OR HOLD THE PROCESS OF MICROCONTROLLER.
PORTB=0; //INITIAL STATE ASSIGNED AS 0 FOR PORTB.
PORTB=%10000001; //PINS OF PORTB SUCH AS RB0 AND RB7 ARE MADE AS HIGH AND OTHERS ARE MADE LOW.
PORTB=~PORTB;  OR PORTB= not PORTB; //INVERT THE STATE OF PORTB.



Sidharthan G
Electrical Miracles.

Tags:syntax,syntax for pic programming,basic syntax of pic,basics for pic programming.

PIC Tutorial Series-LCD Interfacing

This Program makes the LCD Display to interface with the PIC micro controller and display the characters.
// LCD module connections

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;
// End LCD module connections

char txt1[] = "Electrical Miracles";   
char txt2[] = "PIC LCD Tutorial";
char txt3[] = "Lcd4bit";
char txt4[] = "example";

char i;                              // Loop variable

void Move_Delay() {                  // Function used for text moving
  Delay_ms(500);                     // You can change the moving speed here
}

void main(){
  ANSEL  = 0;                        // Configure AN pins as digital I/O
  ANSELH = 0;
  C1ON_bit = 0;                      // Disable comparators
  C2ON_bit = 0;
 
  Lcd_Init();                        // Initialize LCD

  Lcd_Cmd(_LCD_CLEAR);               // Clear display
  Lcd_Cmd(_LCD_CURSOR_OFF);          // Cursor off
  Lcd_Out(1,6,txt3);                 // Write text in first row

  Lcd_Out(2,6,txt4);                 // Write text in second row
  Delay_ms(2000);
  Lcd_Cmd(_LCD_CLEAR);               // Clear display

  Lcd_Out(1,1,txt1);                 // Write text in first row
  Lcd_Out(2,5,txt2);                 // Write text in second row

  Delay_ms(2000);

  // Moving text
  for(i=0; i<4; i++) {               // Move text to the right 4 times
    Lcd_Cmd(_LCD_SHIFT_RIGHT);
    Move_Delay();
  }

  while(1) {                         // Endless loop
    for(i=0; i<8; i++) {             // Move text to the left 7 times
      Lcd_Cmd(_LCD_SHIFT_LEFT);
      Move_Delay();
    }

    for(i=0; i<8; i++) {             // Move text to the right 7 times
      Lcd_Cmd(_LCD_SHIFT_RIGHT);
      Move_Delay();
    }
  }
}


Sidharthan G
Electrical Miracles.

Tags:PIC tutorial,pic basics,introduction to pic basics,microcontroller programmimg,lcd interfacing,lcd interfacing with microcontroller,lcd interfacing with pic.

PIC Tutorial Series-Led Blinking Project For PIC Microcontrollers

It turns on/off LEDs connected to
     PORTA, PORTB, PORTC and PORTD
void main() {

  ANSEL  = 0;            // Configure AN pins as digital
  ANSELH = 0;
  C1ON_bit = 0;          // Disable comparators
  C2ON_bit = 0;

  TRISA = 0x00;          // set direction to be output
  TRISB = 0x00;          // set direction to be output
  TRISC = 0x00;          // set direction to be output
  TRISD = 0x00;          // set direction to be output
 
  do {
    PORTA = 0x00;        // Turn OFF LEDs on PORTA
    PORTB = 0x00;        // Turn OFF LEDs on PORTB
    PORTC = 0x00;        // Turn OFF LEDs on PORTC
    PORTD = 0x00;        // Turn OFF LEDs on PORTD
    Delay_ms(1000);      // 1 second delay
   
    PORTA = 0xFF;        // Turn ON LEDs on PORTA
    PORTB = 0xFF;        // Turn ON LEDs on PORTB
    PORTC = 0xFF;        // Turn ON LEDs on PORTC
    PORTD = 0xFF;        // Turn ON LEDs on PORTD
    Delay_ms(1000);      // 1 second delay
  } while(1);            // Endless loop
}