Ir ao conteúdo
  • Cadastre-se

cava107

Membro Júnior
  • Posts

    8
  • Cadastrado em

  • Última visita

Reputação

0
  1. Olá pessoal! Boa noite. Tudo bem com vocês? Então pessoal, eu estava realizando um projeto no Mikro C com um amigo meu, e fizemos um ordenador de números, que na verdade ordena apenas uma sequência complexa que estabelecemos (6,5,1,7,4,3,2,0) de forma crescente (0,1,2,3,4,5,6,7). A lógica que trabalhamos foi de utilizar 2 "ponteiros" (P0 e P1), que "iriam andar de dois em dois" na sequência complexa inicial que estabelecemos e, cada vez que eles "andassem" uma unidade "iria ser perguntado": O valor que P0 está apontando é maior que o valor que P1 está apontando? Se sim, troca-se o valor no qual P0 está apontando para o valor que P1 estava apontando e vice-versa. Caso contrário, P0 e P1 andariam, ambos, uma unidade, para o próximo número. Realizando este processo 7 vezes, teríamos a sequência de forma crescente (testamos várias vezes na prática, utilizando um papel e tudo ocorreu perfeitamente, a sequência foi ordenada). Sabemos que esta forma não é a mais eficaz para ordenar esta sequência, mas não podemos alterar de lógica neste momento. Estamos praticamente com o programa finalizado, mas ao colocar no Proteus (utilizando um LCD para visualizar) não conseguimos de forma alguma ordenar a sequência. Alguém teria uma solução para este problema? Já verifiquei este código muitas e muitas vezes, mas não sei qual é problema. Se alguem puder me ajudar, ficaria imensamente agradecido. //Ordenador -> Cava e Raul //variaveis globais//Lcd pinou settingssbit LCD_D7 at RD7_bit;sbit LCD_D6 at RD6_bit;sbit LCD_D5 at RD5_bit;sbit LCD_D4 at RD4_bit;sbit LCD_EN at RD3_bit;sbit LCD_RS at RD2_bit;// Pin directionsbit LCD_D7_Direction at TRiSD7_bit;sbit LCD_D6_Direction at TRiSD6_bit;sbit LCD_D5_Direction at TRiSD5_bit;sbit LCD_D4_Direction at TRiSD4_bit;sbit LCD_EN_Direction at TRiSD3_bit;sbit LCD_RS_Direction at TRiSD2_bit;unsigned char K; //ciclounsigned char G; //ciclo 2unsigned char p0 = 0, p1 = 1 ; //ponteirounsigned char V[8] = {6,5,1,7,4,3,2,0};unsigned char aux;//------------------------------------------------------------------------------void troca_posicao(void){ aux = V[p0]; V[p0] = V[p1]; V[p1] = aux;}//------------------------------------------------------------------------------void inicializa_LCD(void){ PORTD= 0x00; TRISD= 0x00; // "&PORTD" nao È mais passado como par‚metro Lcd_Init(); // inicializa o LCD Lcd_Cmd(_LCD_CLEAR); Lcd_Cmd(_LCD_CURSOR_OFF);}//------------------------------------------------------------------------------void mostra_posicao(void){ for(G=0 ; G<8 ; G++) Lcd_Chr(1, 2*G+1, V[G]+48); Lcd_Chr(2, 2*p0+1,'^'); Lcd_Chr(2, 2*(p0+1)+1,'^'); Delay_ms(1000);}//------------------------------------------------------------------------------void main(void){ inicializa_LCD(); mostra_posicao(); for (K = 0; K < 7; K++) // for de ciclos { for (p0 = 0; p0 < 7; p0++) // for para incrementar posiÁ„o if (V[p0] > V[p0+1]) troca_posicao(); mostra_posicao(); } while(1);}
  2. Fala Galera!! Tava estudando num livro aqui de modulação digital e cheguei numa dúvida. Por que é necessário o emprego da modulação nos modem’s e rádios digitais? Alguém pode me explicar? Ficaria extremamente grato!! Obrigado!
  3. Olá amigos, tudo bem??? Então pessoal, estava dando uma estudada em alguns livros de eletrônica, e cheguei numa grande dúvida, podem me ajudar? Qual a relação entre desvio padrão e valor eficaz de UM SINAL? Obrigado!!!!!!
  4. cava107

    Série Numérica

    Galera, preciso fazer um programa em C, apenas usando OU for OU while, conforme está na foto do anexo... O máximo que conseguir fazer foi isso abaixo, e ainda está com problemas... Podem me ajudar? =D Valeu! #include<stdio.h> #include<math.h> //programa com problemas int main() { float nzao,n1,n2,d,s; int c; s=0; n1=37; n2=38; nzao=1406; d=1; for(c=0;c<3;c++){ printf("c=%d nzao=%f n1=%f n2=%f d=%f s=%f\n",c,nzao,n1,n2,d,s); n1--; n2--; nzao=n1*n2; d++; s=s+nzao*(1/d); } printf("a soma total vale s = %f.\n",s); return 0;
  5. E aí galera! Tudo bem? Então, estou com uma duvida bem grande!! Poderia me ajudar? Qual é a diferença entre o decodificador CD4511 e o CI9368? O que eu sei é que o circuito integrado CD4511 é um decodificador BCD-8421 para 7 Segmentos... Também sei que o CD4511 usa a tecnologia CMOS... Já o CI9368 a única coisa que sei é que ele utiliza a tecnologia TLL (não tenho tanta certeza disso), e também é um decodificador BCD pra 7 segmentos. Enfim, o que mais podem me dizer sobre esses decodificadores? Obrigado! Cava 107

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...