Ir ao conteúdo
  • Cadastre-se

Philippe Henrique

Membro Pleno
  • Posts

    92
  • Cadastrado em

  • Última visita

Tudo que Philippe Henrique postou

  1. @Mestre88 Pode me dizer a versão do seu multisim?
  2. @Isadora Ferraz Ah entendi, esse " ^= " seria o mesmo que " ~ " ?
  3. @Isadora Ferraz o que esse for(;;) faz? E qual significado disso? ^=
  4. @Magno Rubem Bom trabalho! em C também sou meio iniciante, caso meu projeto funcione na prática pretendo me aprofundar na linguagem.
  5. @DIEGO LOPES Eu uso gravador ICD2, nunca usei o PICKIT3, mas quando acorre esse erro comigo é porque eu conectei o PIC de uma forma errada, da uma verificada nisso
  6. Que legal kkk, uma dúvida parecida com a minha asahushua, na vdd n é tão diferente n
  7. @Rafael Del Pino ata, muito obrigado. Então ali em cima quando eu declaro que contador é uma variável, está correto?
  8. @Rafael Del Pino Estou usando o MikroC. O erro é que o led n apaga. Não sei se escrevi de forma certa, se ta faltando alguma coisa.
  9. Bom, eu aqui de novo. Resolvi fazer meu um projeto meu que fiz em assembly em C. Porém não sou muito bom em C. estou com muita dificuldade para fazer um contador. O Código: #define s1 RB1_bit #define s2 RB2_bit #define led RB3_bit int contador = 0; void main() { CMCON = 7; TRISB = 0x06; PORTB = 0x00; while(1) { if(s1 == 1 && s2 == 0){ contador++; delay_ms(300); led = 1; } if(s2 == 1 && s1 == 0){ contador--; } if(contador = 0){ delay_ms(300); led = 0; } } } Queria saber se estou fazendo o contador da maneira correta? Quero que quando o s1 = 1 e s2 = 0, o contador incremente, assim ligando o led. E quando o s1 = 0 e s2 = 1, quero que aconteça um decremento no contador, porém não desligue o led. O led só irá desligar se o contador = 0. Me ajudem pls
  10. @Rafael Del Pino valeu! @Isadora Ferraz obrigado. Eu consultei o d.s. porém nao achei, não sei em qual parte fica essas infos, sou bem iniciante ainda. Mas vou dar mais uma checada.
  11. Bom, queria saber quando o pic entende que a entrada está em nível lógico alto? quando a entrada está recebendo 1V? mais que 1V ? acima de 0V?
  12. @Isadora Ferraz Vou dar uma verificada nessas coisas, n tenho certeza se o resistor de pullup está ligado corretamente, depois posto o resultado aqui, obrigado
  13. Bom.. O sensor seria o de feixe de luz mas eu não estou utilizando sensores por enquanto, como disse substituí por botões. Mas valeu pela ideia do sensor de presença, vai ajudar bastante. adicionado 3 minutos depois Vou tentar o capacitor em paralelo com o botão, tem ideia de qual valor seria o capacitor? Sobre o oscilador estou utilizando o interno do pic, mas n utilizo nenhum pino do PORTA. E o que seria push pull?
  14. Estou programando em assembly um projeto para a mostra tecnológica do meu curso. O projeto: A ideia, quando uma pessoa entrar na sala, o programa deverá ligar todo o sistema da sala, e somente quando a ultima pessoa sair da sala ele irá ser desligado. Este projeto funciona com 2 sensores, sendo que dependendo se eles forem acionados ou não cada um realiza uma tarefa: ;-- Condições dos sensores: ; sensor1 sensor2 ; 0 0 nada acontece ; 0 1 alguém saiu da sala ; 1 0 alguém entrou na sala ; 1 1 nada acontece O problema: Como ainda estou testando o projeto, substituí os sensores por botões, e a saída que seria o sistema da sala por um led. No proteus funciona perfeitamente, porém na prática não funciona, só funciona se eu tirar a call delay, mesmo assim o led não fica aceso. código: ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* list p=16f627A ;Listagem do Microcontrolador utilizado ;-- Arquivos incluidos -- #include <p16f627a.inc> ;Inclusão dos arquivos do 16f627a ;-- Configurações / Fuse bits -- __CONFIG _WDT_OFF & _PWRTE_ON & _CP_OFF & _INTOSC_OSC_CLKOUT & _BOREN_OFF ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ;-- Entradas -- #define sensor1 PORTB,1 ;Sensor1 ligado em RB1 (pino 7) #define sensor2 PORTB,2 ;Sensor2 ligado em RB2 (pino 8) ;-- Saídas -- #define led1 PORTB,3 ;Led1 ligado em RB3 (pino 9) ;-- Paginação de memória -- #define bank0 bcf STATUS,RP0 ;Cria um Mnemônico para o banco de memória 0 #define bank1 bsf STATUS,RP0 ;Cria um Mnimônico para o banco de memória 1 ;-- Registradores de uso especial -- cblock H'20' contador d1 d2 d3 endc ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ;-- Vetor de reset -- ORG 0x00 ;Endereço inicial de processamento goto inicio ;pula para label 'inicio' ;-- Vetor de Interrupção -- ORG 0x04 retfie ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ;-- Sub Rotinas -- delay: movlw 0x08 movwf d1 movlw 0x2F movwf d2 movlw 0x03 movwf d3 Delay_0: decfsz d1, f goto $+2 decfsz d2, f goto $+2 decfsz d3, f goto Delay_0 ;3 cycles goto $+1 nop return ; Generated by htt ;*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ;-- Início do programa -- inicio: bank1 ;Seleciona o banco 1 de memória movlw B'00000000' ;Carrega '00000000' em Work movwf TRISA ;Carrega o conteúdo de Work em TRISA movlw B'00000110' ;Carrega '00000110' em Work movwf TRISB ;Carrega o conteúdo de Work em TRISB bank0 ;Seleciona o banco 0 de memória movlw H'07' movwf CMCON ;Desativa os comparadores virtuais no CMCON movlw H'00' ;Carrega '00000000' em Work movwf PORTA ;Inicia todas as portas em low movwf PORTB ;Inicia todas as portas em low movwf contador ;Inicia o contador em '0' ;-- Condições dos sensores: ; sensor1 sensor2 ; 0 0 nada acontece ; 0 1 alguém saiu ; 1 0 alguém entrou ; 1 1 nada acontece entrar: btfss sensor1 ;Sensor1 =1? goto entrar ;Não/ Retorna para o primeiro teste 'entrar' goto teste_sensor2 ;Sim/ Pula para o teste do sensor2 teste_sensor2: btfss sensor2 ;Sensor2 =1? goto entrou ;Não/ Pula para 'entrou' (significa que alguém entrou) goto entrar ;Sim/ Retorna para 'entrar' capeta (para verificar se alguem entrou) ;-- Correção do erro que se mais de uma pessoa entrasse ; continuaria ligando o circuito. Quando entramos nesse ; loop, garantimos que se alguém a mais entrar não irá ; ligar novamente. e este loop também significa que tem ; alguém dentro da sala. entrou: call delay ;Delay incf contador,F ;Incrementa o contador, e guarda o resultado nele próprio call liga ;Pula para 'liga' teste1: btfss sensor1 ;Sensor1 =1? goto teste2 ;Não/ Pula para 'teste2' goto ts2 ;Sim/ Pula para 'ts2' teste2: btfss sensor2 ;Sensor2 =1? goto teste1 ;Não/ Retorna para 'teste1' goto ts1 ;Sim/ Pula para 'ts1' ts1: btfss sensor1 ;Sensor1 =1? goto decremento ;Não/ Pula para 'decremento' goto teste1 ;Sim/ Pula para 'teste1' ts2: btfss sensor2 ;Sensor2 =1? call only_inc ;Não/ Pula para 'only_inc' goto teste1 ;Sim/ Retorna para 'teste1' decremento: call delay decfsz contador,F ;Decrementa o cont, se for = 0 vai para 'desliga' goto teste1 ;Retorna para 'teste1' goto desliga only_inc: ;Somente incrementa (Não liga o circuito) call delay incf contador,F ;Incrementa o cont, guarda o resultado nele mesmo return liga: bsf led1 ;Liga o Led return desliga: bcf led1 ;Desliga o Led goto entrar ;Retorna ao loop inicial end

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

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!