Thursday, December 04, 2014

Create Blinking LED Project Using PIC Microcontroller [ PIC18F2550 ] [ step by step ]


Hi,
If you are a beginner  , it is perfect to start with blinking led .This is a very simple project and we need 7 LED and PIC 18F2550 microcontroller .In this project we will use MikroC compiler  to code.


Now we are going to Create this project  >>

Proteus Project  :



*Open Proteus and Create new project 

 You will see as below :
 

 After finishing those step ,You need to follow as below:



Pick all parts from library :

 


In  this way , pick from Library  "PIC 18F2550", "crystal" , " 22pf capacitor" , "green LED" ,"Power" and "Ground" .

 [ Note :If  you are absolutely a new with PIC 18f2550 microcontroller , you need to see Introduction with PIC 18f2550  to understand all ports and pin]
Create  Blinking LED Project Using PIC Microcontroller [ PIC18F2550 ]  [step by step ]
Create  Blinking LED Project Using PIC Microcontroller [ PIC18F2550 ]  [step by step ]



Now  we need the main hex file to operate .Here you need to take a look on here , we selected RB0-RB7 pins and made connection with GND port of  each LED .So if portB is 1 , those LED will be on .


MikroC Code :

Open MikroC and Create a new Project :








Now Write the source code given below :
Source Code
//////////////////////////////////////////////////////////////////////

void main(){
TRISB=0x00;
while(1){
 PORTB=0x01;
 delay_ms(400);
  PORTB=0x02;
 delay_ms(400);
   PORTB=0x04;
 delay_ms(400);
      PORTB=0x08;
 delay_ms(400);
      PORTB=0x10;
 delay_ms(400);
   PORTB=0x20;
 delay_ms(400);
    PORTB=0x40;
 delay_ms(400); 
 PORTB=0x80;
 delay_ms(400);
 }  }
////////////////////////////////////////////////////////////////////

TRISB is used for selecting PORTB as Input or Output . Here  1 for input and 0 for Output .
If we write TRISB=0xFF; and 0xFF will be in binary "11111111" .By applying this we get portb for input .
 If we write TRISB=0x00; and 0xFF will be in binary "00000000" .By applying this we get portb for output.  [if  you don't understand pinout of PIC 18f2550 please follow the link]
We used delay_ms(400) function .That means microcontroller stop for 400ms .
0x01 is hexadecimal number and in binary "00000001" .Means first pin or RB0 pin of  PORTB will be 1 .In this condition 1 means this pin gets +5v[VDD] and 0 means ground(GND) .It is said computer understand 0 and 1 .But it is just an electronic device which calculate something according to instruction.

So,
 0x00 <--------------> "all zero" <--------------> RB0,RB1,RB2,RB3,RB4,RB5,RB6,RB7 remain OFF
 0x01 <--------------> "00000001" <--------------> Only RB0 is +5v & allothers remain GND 
 0x02 <--------------> "00000010" <--------------> Only RB1 is +5v & all others remain GND  
 0x04 <--------------> "00000100" <--------------> Only RB2 is +5v &all others remain GND 
 0x08 <--------------> "00001000" <--------------> Only RB3 is +5v &all others remain GND  
 0x10 <--------------> "00010000" <--------------> Only RB4 is +5v &all others remain GND 
 0x20 <--------------> "00100000" <--------------> Only RB5 is +5v &all others remain GND 
 0x40 <--------------> "01000000" <--------------> Only RB2 is +5v &all others remain GND  
 0x80 <--------------> "10000000" <--------------> Only RB2 is +5v &all others remain GND 
Why  TRISB ?
Listen , A microcontroller can be used for many purposes and the specific purpose we need can be defined by the source code  . Basically in blinking led , each led will be on or off   in one after one way .That means each pin of PORTB will be on or off .For this purpose we need to initialize PORTB as output.
So we have to use TRISB to define PORTB as Input or Output .
When TRISB=0x00; all pins for OUTPUT.
When TRISB=0xFF; all pins for INPUT.
If in case PORTA , we will have to use TRISA .





Thank You!


3 comments:

  1. Small correction: "If we write TRISB=0x00; and 0xFF will be in binary "00000000" .By applying this we get portb for output."
    It should be " RISB=0x00; and 0x00 will be in binary "00000000".

    ReplyDelete
  2. Currently a single Bitcoin (shown as 1.0000000) is worth £573 or $935. You can purchase Bitcoins at any of the 8 decimal places so for example 0.0100000 would cost you £5.70 and 0.1000000 would cost you £57.00, no surprise where Bitcoin got its name! fake bitcoin sender

    ReplyDelete

Ain't getting any visitors!
Please Share and Bookmark posts.

Tags

: (1) 18F2550 (1) 36KHz (3) and (1) arduino (1) Based (1) battery (1) Bipolar (1) Blinking (1) blinks (1) Bluetooth (1) bluetooth device interfacing (1) bluetooth module (1) button (1) circuit (1) clock (1) control (1) crystal oscillator (3) Db9 (1) DC Motor (2) digital (2) Digital Voting Machine (1) digital voting machine using pic (1) display (2) DS1307 (1) electronic (1) embedded c programming tutorial (11) embedded c tutorial (11) experiment kit (4) external interrupt (4) flash (1) flashing (1) Gas Leakage detector (1) HC-06 (1) home (1) how (1) How to (10) i2c tutorial (1) in (1) indicator (1) infrared Connection (3) interface (8) interfacing (3) Interrupt (3) Introduction (1) IR Connection (3) IR Receiver (4) IR Transmitter (4) key pad (1) keyboard (1) keypad (1) lavel (1) Lcd 16x2 (2) lcd 2x16 (2) led (1) lm35 (2) LPG (1) machine (1) make (1) Make bootloader (1) making (1) matrix (1) max232 (1) membrane keyboard (2) meter (2) Micocontroller (1) microchip (4) microchip pic (2) microchips (3) microcontroller (9) microcontroller based (3) microcontroller programming (3) Microcontroller Project (4) Microcontroller Projects (1) microcontroller_project (2) microcontrollers (4) Microprocessor (2) mikroC (5) mikroc code to start and stopstart and stop dc motor (1) mikroc pro for pic (2) Motion detector (1) MQ-9 Gas Sensor (1) musical (1) NEC Protocol (4) pcb (5) PIC (3) pic controller (11) pic microcontroller (11) pic microcontroller tutorial (11) pic programming (1) pic programming in c (12) pic proteus (1) Pic Tutorial (12) pic18 (2) pic18f2550 (11) picmicrocontroller (4) picRFモジュール (1) PIR Motion Sensor (1) printed circuit board (1) proteus (6) pulse width modulation (1) push (1) push button (1) PWM (1) real (1) rf transmitter (3) Rs 232 (1) Rs232 (1) scroll (1) scrolling (1) Serial communication (1) Serial Connection (1) Serial Port (1) serial port rs232 (1) Servo Motembedded c programming tutorial (1) simulation (2) Soil Moisture Meter (1) speed control (1) step by step (7) step bystep (1) Stepper Motor (2) text (2) Thief Detector (1) time (1) timer (4) timer0 (4) tone (1) TSOP38236 Receiver (4) tutorial (2) Unipolar (1) USART Connection (1) USB (1) usb 1.0 (1) USB bootloadere (1) USB HID (1) using (9) voltmeter (1) voting (1) water level indicator (3) with (2) work (1)

Traffic Feed


Live Traffic Feed
Visitor Tracking

Leave Your Message Here

Name

Email *

Message *

Like on Facebook