ejemplo comunicasion spi

7
 7-segment LED displays are used in front panel to indicate numbers in many applications such as pocket calculators, microwave ovens, frequency counters. A 7-segment LED display contains 7 separate LEDs arranged in a pattern to form posible number from 0 - 9. It can be catagorized as either common cathode or common anode. Fig 1 shown the segment identification and equivalent circuit, with decimal point. In operation for common cathode, the individual segment anodes are each connected to separate current limiting resistors or LED drivers while common cathode is grounded.

description

comunicasion spi

Transcript of ejemplo comunicasion spi

  • 5/21/2018 ejemplo comunicasion spi

    1/7

    7-segment LED displays are used in front panel to indicate numbers in many applications such as pocket calculators, microwave ovens, frequency

    counters. A 7-segment LED display contains 7 separate LEDs arranged in a pattern to form posible number from 0 - 9. It can be catagorized as either

    common cathodeor common anode. Fig 1 shown the segment identification and equivalent circuit, with decimal point.

    In operation for common cathode, the individual segment anodes are each connected to separate current limiting resistors or LED drivers while common

    cathode is grounded.

  • 5/21/2018 ejemplo comunicasion spi

    2/7

    The figure above shown connection between MCU and 7-segment display. To display number '1' is to set b and c segments or 0x06. Table below is shown

    display code for common cathode LED display.If more than one display is needed, scaning technique program code is used.

    dp g f e d c b a number CC hex code

    0 0 1 1 1 1 1 1 0 0x3F

    0 0 0 0 0 1 1 0 1 0x06

    0 1 0 1 1 0 1 1 2 0x5B0 1 0 0 1 1 1 1 3 0x4F

    0 0 1 1 0 1 1 0 4 0x66

    0 1 1 0 1 1 0 1 5 0x6D

    0 1 1 1 1 1 0 1 6 0x7D

    0 0 0 0 0 1 1 1 7 0x07

    0 1 1 1 1 1 1 1 8 0x7F

    0 1 1 0 1 1 1 1 9 0x6F

    /*

    * Project name:

    7-segment LED display sample

    * Copyright:Nicholas Sirirak

    * Description:

    Display number from 0 - 9; and then loop, increase every 1 second

    * Test configuration:

    MCU: PIC16F886

    Dev.Board: -

    Oscillator: HS, 20.0000 MHz

    Ext. Modules: -

    SW: mikroC v8.1.0.0

    * NOTES:

    */

    char DSP_code[10]= {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

    void main(){

    char i;ANSELH = 0;

    TRISB = 0;

    PORTB = 0;

    while(1){

    for(i=0; i

  • 5/21/2018 ejemplo comunicasion spi

    3/7

    MC14489 is a 7-segment display driver chip. One chip can drive

    5-digit display of common cathode LEDs. It compatible with

    Motorola SPI and National MICROWIRE serial data ports.Established serial comunication with MCU, send one byte tochange configulation or 3 bytes to display with no address. The

    bit stream starts with the MSB and it shifted in on the low-to-

    high of Clock signal. The DATA IN is the input pin. The low-to-

    high on CLOCK pin shift bit available at DATA IN.To transfer

    data to MC14489 Enable pin must be held to low state (normallyit's high). With MC14489 7-segment driver, we can reduce

    sevral pins of MCU to 3 pins -- Data, Clock and Enable, to

    control up to 5 7-segment display LEDs.

    Figure (a) shown the timing diagram of configuration register.

    Figure (b) shown the timing diagram of display register

  • 5/21/2018 ejemplo comunicasion spi

    4/7

  • 5/21/2018 ejemplo comunicasion spi

    5/7

    Example.

  • 5/21/2018 ejemplo comunicasion spi

    6/7

    /*

    * Project name:

    4 digit 7-segment LED display sample with MC14489 driver

    * Copyright:

    Nicholas Sirirak

    * Description:

    Display number from 0000 to 9999, number increase every 200 ms

    Using PIC16F886 SPI module

    * Test configuration:

    MCU: PIC16F886

    Dev.Board: -

    Oscillator: HS, 20.0000 MHz

    Ext. Modules: -

    SW: mikroC v8.1.0.0

    * NOTES:

    Pin connected

    MCU MC14489

    ------------------------

    RC0 Enable

    RC3 Clock

    RC5 DATA IN

    */

    #define Mc_Enable PORTC.F0

    void main(){

    char i,j;

    TRISC = 0;

    PORTB = 0;

    Spi_Init();

    delay_ms(100);

    // initial MC14489

    Mc_Enable = 0;

    Spi_Write(0b00000001); // config code

    Mc_Enable = 1;

  • 5/21/2018 ejemplo comunicasion spi

    7/7

    delay_ms(100);

    // end initial MC14489

    while(1){

    for(j=0; j