Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
DAVID GOMES DA S

Matriz de leds

Recommended Posts

OlÁ, pessoal!

Estou fazendo um projeto de matriz de led, estou usando a linguagem c, conseguÍ enviar um caracter para a matriz, gostaria de fazÊ-lo rodar da direita para

esquerda, mas nÃo sei como, podem me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • #include	<16f877.h>
    #device adc=10
    #fuses xt,wdt,noprotect,put,brownout,nolvp,nocpd,nowrt
    #use delay(clock=4000000, RESTART_WDT)
    #include <math.h>

    #use rs232(baud=9600,xmit=PIN_C6,rcv=PIN_C7)
    #define COL_0 PIN_B0
    #define COL_1 PIN_B1
    #define COL_2 PIN_B2
    #define COL_3 PIN_B3
    #define COL_4 PIN_B4
    #DEFINE RDD_DATA PIN_A0
    #DEFINE RDD_CLOCK PIN_A1





    unsigned char letra[5];
    unsigned char col[10];
    unsigned char temp2 = 31;
    unsigned char CARACTER, car;
    int cont, x;
    int8 i,j;
    int32 w;



    #use fast_io(a)
    #use fast_io(
    #use fast_io(c)
    #use fast_io(d)
    #use fast_io(e)

    #byte porta = 0x05
    #byte portb = 0x06
    #byte portc = 0x07
    #byte portd = 0x08
    #byte porte = 0x09
    #define DISPLAY PORTD //porta para displays de sete segmentos
    #define botao input(pin_c0)





    //******************************************************************************
    // Constantes do módulo (tabela para conversão dos caracteres)
    // valores a serem inseridos nos displays da matriz
    //******************************************************************************
    void converter(i)
    {

    letra[0] = 0;
    letra[1] = 0;
    letra[2] = 0;
    letra[3] = 0;
    letra[4] = 0;

    switch(car)
    {
    case 0:
    {
    letra[4] = 0B11000001;
    letra[3] = 0B10000000;
    letra[2] = 0B10110110;
    letra[1] = 0B10101110;
    letra[0] = 0B11000001;

    }
    Break;

    case 1:
    {
    letra[4] = 0B11111111;
    letra[3] = 0B11111111;
    letra[2] = 0B11011111;
    letra[1] = 0B10000000;
    letra[0] = 0B10000000;
    }
    Break;

    case 2:
    {
    letra[4] = 0B11011100;
    letra[3] = 0B10111000;
    letra[2] = 0B10110010;
    letra[1] = 0B10000110;
    letra[0] = 0B11001110;
    }
    Break;






    case 'B':
    {
    letra[4] = 0B10000000;
    letra[3] = 0B10000000;
    letra[2] = 0B10110110;
    letra[1] = 0B10000000;
    letra[0] = 0B11001001;
    }
    Break;


    }



    DISPLAY = letra[i];


    }




    //******************************************************************************
    // Função para escrever na matriz
    // SELECIONA VALOR PARA AS LINHAS
    //
    //******************************************************************************
    void contador_coluna(){

    unsigned char i;


    for (i=0;i<5;i++){
    j = i;


    output_low(COL_0);
    output_low(COL_1); //desliga todos os catodos
    output_low(COL_2);
    output_low(COL_3);
    output_low(COL_4);


    //DISPLAY=0; //zera segmentos (desliga todos)




    switch (j){
    case 0:
    output_high(COL_0);
    break;
    case 1:
    output_high(COL_1);
    break;
    case 2:
    output_high(COL_2);
    break;
    case 3:
    output_high(COL_3);
    break;
    case 4:
    output_high(COL_4);
    break;


    }
    converter(i);

    // printf("\n\r Apertado %ld vezes",rotacao);
    restart_WDT(); //zera WDT
    delay_ms(5); //aguarda
    }

    restart_WDT(); //zera WDT

    }


    void main()
    {

    setup_adc (adc_clock_div_32);
    setup_counters (rtcc_internal, rtcc_div_64);
    setup_timer_1 (t1_external_sync | t1_div_by_1);
    setup_timer_2 (t2_div_by_16,255,1);
    set_adc_channel (0);

    set_tris_a(0b00000000);
    set_tris_b(0b00000000);
    set_tris_c(0b11111111);
    set_tris_d(0b00000000);
    set_tris_e(0b11111111);

    porta = 0x00;
    portb = 0x00;
    portc = 0x00;
    portd = 0x00;
    porte = 0x00;
    enable_interrupts(GLOBAL | INT_RTCC );

    while(TRUE)
    {


    //******************************************************************************
    // FUNÇÃO PARA INCREMENTAR OS CARACTERES DA MATRIZ
    //******************************************************************************
    if(botao){
    x++;

    if(botao)
    delay_ms(200);

    if(x<=0)x+1;
    if(x>2)x=0;
    switch (x)
    {
    case 0:
    car = 0;
    Break;

    case 1:
    car = 1;
    Break;

    case 2:
    car = 2;
    Break;
    }

    }


    //******************************************************************************


    contador_coluna();

    }
    }

    Editado por gandalfnho
    Use a tag CODE

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário

    Entre para seguir isso  





    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×