Ir ao conteúdo
  • Cadastre-se

SIDNEI RODRIGUES DO SANTOS

Membro Júnior
  • Posts

    3
  • Cadastrado em

  • Última visita

Reputação

0
  1. RESOLVI ACHEI UM NA NET E MODIFIQUEI DO MEU JEITO ERA PARA DISPLAY DE 6 DIGITOS MODIFIQUEI PARA 4 OK 100% MUITO OBRIGADO PELA ATENÇÃO. E SERVE PARA VARIOS PICS 16F873A,16F877A,16F882 E MAIS ALGUNS unsigned short num; //num = numeros 0 ,1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ; unsigned short mask(unsigned short num)//mask mostra os numeros de 0 a 9 (num) { switch (num)//indentifica os numeros de 0 a 9 { case 0 : return 0x40; //define e mostra os numeros dec para hexa 0 = 0x40 case 1 : return 0x79; case 2 : return 0x24; case 3 : return 0x30; case 4 : return 0x19; case 5 : return 0x12; case 6 : return 0x02; case 7 : return 0x78; case 8 : return 0x00; case 9 : return 0x10; } } char valor; // unsigned short shifter; unsigned short j; unsigned short portd_index; unsigned int i; unsigned short portc_array[4]; float temino,temp; void interrupt() { PORTB = 0; PORTC = portc_array[portd_index]; PORTB = shifter; TMR0 = 0; INTCON = 0x20; shifter <<= 1; if (shifter > 32u) shifter = 1; portd_index++ ; if (portd_index > 5u) portd_index = 0; } void main() { OPTION_REG = 0x80; TMR0 = 0; INTCON =0xA0; ADCON1 =0x80; CMCON = 0x07;// desliga os comparadores TRISA = 0x01; TRISB = 0; TRISC = 0; PORTA = 0; PORTB = 0; PORTC = 0; portd_index = 0; shifter = 1; i = 0; j = 0; while (1) { temp = ADC_Read(0); //seleciona a entrada a ser lida RA0/AN0 =(lm35) temp = temp*5.0/1023.0;//temperatura a ser lida em bits(150) *5 / 1023(10bits) temino = temp*1000.0; // i= temino;// numero (27) a ser mostrado em graus celsius j = i / 100u; // divid 27 por 100 = 0,27 valor = mask(j); portc_array[3] = valor;//mostra o numero (2) da temperatura no diplay 1 j = (char)(i / 10u)% 10u; valor = (mask(j)|0x80); portc_array[2] = valor; //mostra o numero (7) de temperatura no diplay 2 portc_array[1] = 0x1C;//mostra no display 3 a bolinha da grau celsius portc_array[0] = 0x46;//mostra no display 4 o C do grau celsius delay_ms(1000); //tempo de reinicialização ou atualização do programa } while (1); }
  2. qual o passo a passo para fazer .dicas como devo começar já vi vários vídeos mais não sei como começo. converte adc configurar comcon ,port, já sei configurar os port a,b,c,d tris
  3. Boa tarde me ajudem por favor to ficando louco , há uma semana to tentando fazer um termômetro com pic16f877a lm35 display de 7segmentos não consigo fazer a programação em mikro c ele não mostra os números no display, se alguém puder corregir eu agredece sou novo no clube e espero ficar por muito tempo. int lm35; float temp; int uni=0; int dez=0; void main() { TRISA = 1; TRISB = 0; TRISC = 0; PORTB = 0; PORTC = 0; PORTA.RA1 =0; ADC_Init(); while(1) { lm35 = ADC_read(0); temp = (lm35/150); { if(temp==6.82) PORTC = 0x06; PORTB = 0x3F; } { if(temp==13.64) PORTC = 0x5B; PORTB = 0x3F; } { if(temp==20.46) PORTC = 0x4F; PORTB = 0x3F; } { if(temp==28.28) PORTC = 0x66; PORTB = 0x3F; } { if(temp==34.1) PORTC = 0x6d; PORTB = 0x3F; } { if(temp==40.92) PORTC = 0x7d; PORTB = 0x3F; } { if(temp==47.74) PORTC = 0x07; PORTB = 0x3F; } { if(temp==54.56) PORTC = 0x7f; PORTB = 0x3F; } { if(temp==61.38) PORTC = 0x67; PORTB = 0x3F; } { if(temp==68.2) PORTC = 0x3F; PORTB = 0x06; } } }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...