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  
Vinicius Picciani

Programação PIC16f877a

Recommended Posts

boa tarde seus *****,

estou fazendo uma programação do meu tcc, e não está dando certo, já deu certo na primeira vez, mas depois que remontei o circuito, o pic não executa mais a programação, procurei algumas soluções, e testei eu dois pics, um deles tinha acabado de comprar pela net. pelo q eu vi aqui no site pode ser a programação, eu mudei ela um pouco, depois de testar a primeira vez, vou mandá-la aqui, se alguém puder ajudar eu agradeço.

 

 

 

// lcd configuração dos pinos
sbit lcd_rs at rc2_bit;
sbit lcd_en at rc3_bit;
sbit lcd_d4 at rc4_bit;
sbit lcd_d5 at rc5_bit;
sbit lcd_d6 at rc6_bit;
sbit lcd_d7 at rc7_bit;

// pin direction  definindo os pinos
sbit lcd_rs_direction at trisc2_bit;
sbit lcd_en_direction at trisc3_bit;
sbit lcd_d4_direction at trisc4_bit;
sbit lcd_d5_direction at trisc5_bit;
sbit lcd_d6_direction at trisc6_bit;
sbit lcd_d7_direction at trisc7_bit;


        //variáveis

int stop = 0;
int conta = 0;  //botão
int conta2 = 0; //tezoura
int conta3 = 0; //pinça
int conta4 = 0; //afastador

void main() {

 cmcon =0x07;// desabilita os coparadores do pic  (recomendado quando não utilizar os comparadores)

  lcd_init(); //inicia o display
  lcd_cmd(_lcd_clear);// limpa o display
  lcd_cmd(_lcd_cursor_off);// desliga o cursor do display

  lcd_out(1,5,"semic" );

  delay_ms(1000);

  lcd_cmd(_lcd_clear);// limpa o display

  //saídas

  //bisturi
  //led verde sensor 1
  portb.b0 = 0;
  trisb.b0 = 0;

  //led amarelo sensor 1
  portb.b1 = 0;
  trisb.b1 = 0;

  //led vermelho sensor 1
  portb.b2 = 0;
  trisb.b2 = 0;

  //pinça
  //led verde sensor 2
  portb.b3 = 0;
  trisb.b3 = 0;

  //led amarelo sensor 2
  portb.b4 = 0;
  trisb.b4 = 0;

  //led vermelho sensor 2
  portb.b5 = 0;
  trisb.b5 = 0;

  //afastador
  //led verde sensor 3
  portb.b6 = 0;
  trisb.b6 = 0;

  //led amarelo sensor 3
  portb.b7 = 0;
  trisb.b7 = 0;

  //led vermelho sensor 3
  portd.b0 = 0;
  trisd.b0 = 0;


//entradas

//botão inicia/para cirurgia
 trisd.b4 = 1;

//sensor1
 trisd.b7 = 1;
//sensor2
 trisd.b6 = 1;
//sensor3
 trisd.b5 = 1;

 while(1){

  ///bisturi: antes de começar a cirurgia
  if ( stop == 0 && conta2 == 0 && portd.b7 == 1 ) {
  portb.b0 = 1;
  portb.b1 = 0;
  portb.b2 = 0;
  }
  if ( conta == 0 && conta2 == 0 && portd.b7 == 0 ) {
  portb.b0 = 0;
  portb.b1 = 0;
  portb.b2 = 1;
  lcd_out(1,3,"bisturi" );
  lcd_out(2,3, "em falta");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  }

  //pinça: antes de começar a cirurgia
  if ( stop == 0 && conta2 == 0 && portd.b6 == 1 ) {
  portb.b3 = 1;
  portb.b4 = 0;
  portb.b5 = 0;
  }
  if ( conta == 0 && conta2 == 0 && portd.b6 == 0 ) {
  portb.b3 = 0;
  portb.b4 = 0;
  portb.b5 = 1;
  lcd_out(1,3,"pinça" );
  lcd_out(2,3, "em falta");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  }

  //alaragador: antes de começar a cirurgia
  if ( stop == 0 && conta2 == 0 && portd.b5 == 1 ) {
  portb.b6 = 1;
  portb.b7 = 0;
  portd.b0 = 0;
  }
  if ( conta == 0 && conta2 == 0 && portd.b5 == 0 ) {
  portb.b6 = 0;
  portb.b7 = 0;
  portd.b0 = 1;
  lcd_out(1,3,"afastador" );
  lcd_out(2,3, "em falta");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);// limpa o display
  }


   //botão liga/desliga
  if (portd.b4 == 1 && stop == 0 ){
  stop = 1;
  }
  if (portd.b4 == 0 && stop == 1 ){
  conta++;
  stop = 0;
  }

  if (conta == 1 && portd.b7 == 0 || portd.b6 == 0 || portd.b5 == 0){
  conta = 0;

  }

  //display liga/desliga
  if( conta == 1 && conta2 == 0 ){
  lcd_out(1,3,"cirurgia" );
  lcd_out(2,3, "iniciada");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  conta2 = 1;
  }

   //bisturi
  if (conta2 == 1 && portd.b7 == 1 ) {
  portb.b0 = 1;
  portb.b2 = 0;
  portb.b1 = 0;
  }

  if( conta2 == 1 &&  portd.b7 == 0 ){
  portb.b0 = 0;
  portb.b1 = 1;
  lcd_out(1,3,"tezoura" );
  lcd_out(2,3,"em uso");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  }

  //pinça
  if (conta2 == 1 && portd.b6 == 1 ) {
  portb.b3 = 1;
  portb.b4 = 0;
  portb.b4 = 0;
  }
  if( conta2 == 1 &&  portd.b6 == 0 ){
  portb.b3 = 0;
  portb.b4 = 1;
  lcd_out(1,3,"pinca" );
  lcd_out(2,3,"em uso");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  }

  
  
  //afastador
  if (conta2 == 1 && portd.b5 == 1 ){
  portb.b6 = 1;
  portb.b7 = 0;
  portb.b7 = 0;
  }
  if (conta2 == 1 && portd.b5 == 0 ){
  portb.b6 = 0;
  portb.b7 = 1;
  lcd_out(1,3,"afastador");
  lcd_out(2,3,"em uso");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  }

  //fim da cirurgia
  if( conta == 2 ) {
  lcd_out(1,3,"cirurgia" );
  lcd_out(2,3,"finalizada");
  delay_ms(1000);
  lcd_cmd(_lcd_clear);
  conta = 0;
  conta2 = 0;
  }


  }


  }

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

×