20
CHAPTER 2 PIC 16F887 MICROCONTROLLER Eng. Hazem W. Marar

C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

Embed Size (px)

Citation preview

Page 1: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

CHAPTER 2PIC 16F887 MICROCONTROLLEREng. Hazem W. Marar

Page 2: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

PIC 16F887

Page 3: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

PORTS

Page 4: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

ANALOG PINS

Page 5: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

IN MIKROC

Page 6: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

ANSEL AND ANSELH

Page 7: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

TURN LED ON

void main(){TRISB = 0 ; // set PORTB as OUTPUTPORTB = 0xff; // turn all LEDs ON}

Page 8: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

WRITE A CODE TO TOGGLE AN LED

Page 9: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

DELAYS void main( )

{TRISB = 0 ; // set PORTB as OUTPUT

While(1) // forever{PORTB = 0xff ; // turn all LEDs ON

Delay_ms(500) ; // wait 500 ms

PORTB = 0 ; // turn all LEDs OFF

Delay_ms(500) ; // wait 500 ms}}

Page 10: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

USE AN INPUT SIGNAL (PUSH BUTTON) TO CONTROL AN LED

Page 11: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

INPUT SIGNAL void main( )

{TRISB = 0x01 ; // set 1st bit of PORTB as INPUT

While(1) // forever{

if(PORTB.F0 ==1){

PORTB.F1 = 1;}

if(PORTB.F0 ==0){

PORTB.F1 = 0;}

}}

Page 12: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

USE AN INPUT SIGNAL (PUSH BUTTON) TO TOGGLE AN LED

Page 13: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

TOGGLE

unsigned short LastButton =0;

void main(){

TRISC = 0x01 ;

PORTC=0x00;

while(1) {

if(PORTC.F0 ==1 && LastButton ==0)

{PORTC.F1=~PORTC.F1;

LastButton=1;}

else

{LastButton = PORTC.F0;

} } }

Page 14: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

BOUNCING EFFECT

unsigned short current;

unsigned short debounce ( )

{ current = PORTB.F0; if( LastButton != current) { delay_ms(5); current = PORTB.F0;} return current;}

Page 15: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

USE PUSH BUTTONS TO CHANGE FLASHING DELAYS

Page 16: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

USE A SINGLE PUSH BUTTON TO CHANGE FLASHING DELAYS

Page 17: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

MANAGING INDIVIDUAL BITS

Page 18: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

USE AN INPUT SIGNAL (PUSH BUTTON) TO CONTROL A LED MATRIX

Page 19: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

USE PUSH BUTTONS TO CONTROL MULTIPLE LED MATRICES

Page 20: C HAPTER 2 PIC 16F887 M ICROCONTROLLER Eng. Hazem W. Marar

LAB EXERCISEChapter 2