Ec501 - - Chp 3 Ppt Notes

Embed Size (px)

DESCRIPTION

input and output programmes

Citation preview

  • CHP 3

    INPUT OUTPUT PORTS PROGRMMING

  • Lesson Learning Outcomes :

    At the end of this topic, students should be able to:

    Identify input and output (I/O) pins and their function

    Code PIC instruction for I/O handling

    Code I/O bit-manipulation programs for the PIC

    Examine the bit addressability of PIC ports

  • Input and Output (I/O) pins

    PIC18 Pin Diagram

  • Input and Output (I/O) pins

    PIC18 has many ports Depending on the family member

    Depending on the number of pins on the chip

    Each port can be configured as input or output.

    Bidirectional port Each port has some other functions

    Such as timer , ADC, interrupts and serial communication.

  • Input and Output (I/O) pins

    Each port has three registers for its operation. These registers are:

    TRIS register (data direction register)

    If the corresponding bit is 0 Output

    If the corresponding bit is 1 Input

    PORT register (reads the levels on the pins of the device)

    LAT register (output latch)

  • Input and Output (I/O) pins

    Consist of :

    PORTA (RAx) - 6 pins PORTB (RBx) 8 pins PORTC (RCx) 7 pins PORTD (RDx) 8 pins PORTE (REx) 4 pins VUSB Vdd (Vcc) Vss (GND) OSC1,OSC2 MCLR( reset)

  • PORTA, TRISA and LATA Registers

    PORTA is an 8-bit wide, bidirectional port.

    The corresponding data direction register is TRISA.

    Setting a TRISA bit (= 1) will make the corresponding PORTA pin an input

    Clearing a TRISA bit (= 0) will make the corresponding PORTA pin an output.

    The Data Latch register (LATA) is also memory

    mapped.Useful for read-modify-write operations on the value driven by the I/O pins.

  • PORTA, TRISA and LATA Registers

    Registers associated with Port A

  • Port A as Input

    Port A as Output

  • PORT B, PORT C, PORT D and PORT E

    PORTB is 8 pins

    PORTC is 7 pins

    PORTD is 8 pins

    PORTE is 4 pins

  • PORTB, TRISB and LATB Registers

    PORTB is an 8-bit wide, bidirectional port.

    The corresponding data direction register is TRISB.

    Setting a TRISB bit (= 1) will make the corresponding PORTB pin an input

    Clearing a TRISB bit (= 0) will make the corresponding PORTB pin an output.

    The Data Latch register (LATB) is also memory

    mapped.Useful for read-modify-write operations on the value driven by the I/O pins.

  • PORTC, TRISC and LATC Registers

    PORTC is an 7-bit wide, bidirectional port.

    The corresponding data direction register is TRISC.

    Setting a TRISC bit (= 1) will make the corresponding PORTC pin an input

    Clearing a TRISC bit (= 0) will make the corresponding PORTC pin an output.

    The Data Latch register (LATC) is also memory

    mapped.Useful for read-modify-write operations on the value driven by the I/O pins.

  • PORTD, TRISD and LATD Registers

    PORTD is an 7-bit wide, bidirectional port.

    The corresponding data direction register is TRISD.

    Setting a TRISD bit (= 1) will make the corresponding PORTD pin an input

    Clearing a TRISD bit (= 0) will make the corresponding PORTD pin an output.

    The Data Latch register (LATD) is also memory

    mapped.Useful for read-modify-write operations on the value driven by the I/O pins.

  • PORTE, TRISE and LATE Registers

    PORTE is an 4-bit wide, bidirectional port.

    The corresponding data direction register is TRISE.

    Setting a TRISE bit (= 1) will make the corresponding PORTE pin an input

    Clearing a TRISE bit (= 0) will make the corresponding PORTE pin an output.

    The Data Latch register (LATE) is also memory

    mapped.Useful for read-modify-write operations on the value driven by the I/O pins.

  • I/O Bit Manipulation Programming

    Single Bit Instructions for PIC18

  • BSF (bit set fileReg) BCF (bit clear fileReg)

    BSF fileReg, bit_num

    - to set HIGH a single bit of a given fileReg.

    BCF fileReg, bit_num

    - to clear a single bit of a given fileReg.

    Example:

    BSF PORTD,2 ;Set bit RD2

    BCF PORTD,5 ;Clear bit RD5

  • EXAMPLE

    An LED is connected to each pin of Port D. Write a program to turn ON each LED from pin D0 to pin D7.Call a delay module before turning ON the next LED.

  • Answer

  • BTFSS (bit test fileReg, skip if set) BTFSC (bit test fileReg, skip if clear)

  • EXAMPLE

  • EXAMPLE

  • EXAMPLE