• Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   13-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 ao formulário 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  
Seguidores 0
CIS

[Resolvido] Botoes com 16F628A

61 posts neste tópico

o que sera preciso para usar botões e leds com o 16F628A ?? não consigo nada meu codigo esta assim

void main()

{

trisa = 0xFF;

trisb = 0x00;

porta = 0x00;

portb = 0x00;

while(1)

{

if(porta.f0 == 1) {

portb.f0 = 0 ;

}

else {

portb.f0 = 0;

}

if(porta.f1 == 1) {

portb.f1 = 1;

}

else {

portb.f1 = 0;

}

}

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você deve desativar o comparador analógico do PIC:

CMCON = 7;

Esse trecho do código não tem nenhuma função:

if(porta.f0 == 1) {

portb.f0 = 0 ; //Não teria que ser igual a 1?

}

else {

portb.f0 = 0;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
Você deve desativar o comparador analógico do PIC:

CMCON = 7;

Esse trecho do código não tem nenhuma função:

if(porta.f0 == 1) {

portb.f0 = 0 ; //Não teria que ser igual a 1?

}

else {

portb.f0 = 0;

}

desculpa, errei ao digita-lo aqui, mas vou corrigir quando for tentar de novo...

vou configurar o comparador, mas uma duvida, todos os pics que possuem comparadores analogicos são desabilitados com o numero decimal 7 ?? pergunto isso porque ja brinquei um pouco com o 12F675...

Além do código,voce precisa do Hardware...

tenho o hardware aqui, vou verificar sobre o comparador, o restante fiz tudo certo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não tenho certeza, mas acredito que todos os pics que possuem comparadores analogicos são desabilitados setando os últimos 3 bits do registrador CMCON. Alguns você deve também colocar todas as portas do conversor ad como digital.

Para ter certeza, é só dar uma olhada no datasheet.

Compartilhar este post


Link para o post
Compartilhar em outros sites

agora uma duvida gritante para um iniciante... Vdd , Vcc, e Vss...

Vss e sempre o massa, terra, nivel logico zero certo???

Vdd e Vcc são sempre tensão positiva, nivel logico 1 ???

sera que estou certo ??? e que as vezes me confundo....

Compartilhar este post


Link para o post
Compartilhar em outros sites

valeu, obrigado!!!

alguem sabe onde baixar gratis o livro "Desbravando o pic 16F628A"...

ja tentei varios links que dão erro quando vou abrir o arquivo... alguem tem um link que realmente de certo?

Editado por Bcpetronzio
Unir Post seguidos em menos de 24 horas, use a opção editar

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu tenho o "Conectando o PIC16F877":

Conectando o PIC

valeu cara!!! e que esse eu ja tenho, optei ate por imprimi-lo... obrigado pela dica

Compartilhar este post


Link para o post
Compartilhar em outros sites
valeu cara!!! e que esse eu ja tenho, optei ate por imprimi-lo... obrigado pela dica

agora outro desafio!!! escrever no lcd com o pic 16F628A, ja tentei alguns codigos mas não obtive sucesso... to agora com o kit de desenvolvimento ACEPIC18 ... se alguem puder me ajudar

Compartilhar este post


Link para o post
Compartilhar em outros sites
Eu tenho um código, mas está em asm.

não sei quase nada em assembly... acho que to com mais duvida mesmo na inicialização do pic e do lcd...

tipo assim: a inicialização do lcd não é igual para todos os pics???

e quanto ao 16F628A, o que fazer para trabalhar com ele e o lcd...

Compartilhar este post


Link para o post
Compartilhar em outros sites

A inicialização do LCD é igual apara qualquer microcontrolador. Já quebrei muito a cabeça com drivers para LCD. Eu fiz um em assembly no modo 4-bits de comunicação, e foi o único que não me deu dor de cabeça.

Dependendo do compilador que você usa, ele já tem uma biblioteca para o controle do LCD.

Compartilhar este post


Link para o post
Compartilhar em outros sites
http://www.4shared.com/office/ABA5B2ow/Desbravando_o_PIC_8_Edio_16f62.html

ai esta a apostila que disse que não achava do 628

mas surge um problema pra você ele ensina em assembly que você disse que não sabe quase nada

baixa a apostila do mulder fox

valeu mister, a apostila do mulder eu tenho, ja peguei aqui mesmo no forun a alguns dias... to recorrendo muito a ela , mas com dificuldades devido ser em assembly, agora o link citado por você não retornou nada sobre o 628...

to usando o mickro c versão 5.40, acho que a versão mais recente... o programa principal em assembly eu ate consigo ler e passar pra C, mas a inicialização do lcd, no mickroC que ta me esquentando a cabeça... e a inicialização do controlador, porque o programa que montei, compilou sem erros, gravou tudo ok, mas no kit (to usando um ACEPIC 18, ja ouviu falar??? )não executou nada... eis o codigo:

// LCD module connections

sbit LCD_RS at RA0_bit;

sbit LCD_EN at RA1_bit;

sbit LCD_D4 at RB4_bit;

sbit LCD_D5 at RB5_bit;

sbit LCD_D6 at RB6_bit;

sbit LCD_D7 at RB7_bit;

sbit LCD_RS_Direction at TRISA0_bit;

sbit LCD_EN_Direction at TRISA1_bit;

sbit LCD_D4_Direction at TRISB4_bit;

sbit LCD_D5_Direction at TRISB5_bit;

sbit LCD_D6_Direction at TRISB6_bit;

sbit LCD_D7_Direction at TRISB7_bit;

// End LCD module connections

char txt1[] = "Cristiano";

char txt2[] = "PIC 16F628A";

void main(){

CMCON = 0X07;

Lcd_Init(); // Inicialização do LCD

Lcd_Cmd(_LCD_CLEAR); // limpando o display

Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off desligado

Lcd_Out(1,1,txt1); // linha 1 , coluna 1 , primeiro texto

Lcd_Out(2,1,txt2); // linha 2 , coluna 1 , segundo texto

Delay_ms(2000);

}

tem erros no codigo???

obrigado pessoal...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

Delay_ms(200);//Dá um delay de 200ms antes de iniciar o display

Lcd_Init(); // Inicialização do LCD

Lcd_Cmd(_LCD_CLEAR); // limpando o display

Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off desligado

Lcd_Cmd(_LCD_TURN_ON);//Liga o display

Compartilhar este post


Link para o post
Compartilhar em outros sites
mas a inicialização do lcd, no mickroC que ta me esquentando a cabeça... e a inicialização do controlador, porque o programa que montei, compilou sem erros, gravou tudo ok, mas no kit (to usando um ACEPIC 18, ja ouviu falar??? )não executou nada... eis o codigo:

Não vi erro no código, mas esqueceu um detalhe.

Onde está a configuração do TRISA e TRISB logo depois do CMCON, dizendo se os pinos serão entradas ou saídas :confused::confused::confused:

Tente aí e retorne com os resultados.

Abç.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Não vi erro no código, mas esqueceu um detalhe.

Onde está a configuração do TRISA e TRISB logo depois do CMCON, dizendo se os pinos serão entradas ou saídas :confused::confused::confused:

Tente aí e retorne com os resultados.

Abç.

beleza, vou fazer isso e retorno os resultados sim

valeu!!!!

beleza, vou fazer isso e retorno os resultados sim

valeu!!!!

não obtive resultados positivos... mas vou continuar tentando...

Editado por Bcpetronzio
Unir Post seguidos em menos de 24 horas

Compartilhar este post


Link para o post
Compartilhar em outros sites
Já tentou o que eu disse no post anterior?

ja tentei sim, tambem não funcionou, mas como disse vou continuar tentando...

eu chego la.... vou gravar o codigo e tentar na protoboard com outro display...

Compartilhar este post


Link para o post
Compartilhar em outros sites

pessoal, to precisando muito de ajuda, tava ate indo bem com o 16F877A, mas o 16F628A ta complicado pra mim... coisas tipo.... o 16F628A tem oscilador interno?? como usa-lo no mickroC ???

como trabalhar o comparador, habilitando e desabilitando...

to voltando para os leds e to tendo problemas com a inicalização do PIC16F628A... preciso da ajuda de vocês, uso o compilador MICKROC... a quem puder me ajudar, muito obrigado, quero iniciar pelos leds mesmo....

Compartilhar este post


Link para o post
Compartilhar em outros sites
... o 16F628A tem oscilador interno??

Perfeitamente.

como usa-lo no mickroC ???

Pressione CTRL + Shift + E (com o aplicativo aberto e um novo projeto iniciado com o PIC16F628A e clock em 4MHz... este é o editor dos fuses)

Na opção "Oscillator Selection" escolha:

INTOSC oscillator: I/O function on RA6/OSC2/CLOCKOUT pin, I/O function on RA7/OSC1/CLOCKIN

como trabalhar o comparador, habilitando e desabilitando...

CMCON |= 0x07;

to voltando para os leds e to tendo problemas com a inicalização do PIC16F628A... preciso da ajuda de vocês, uso o compilador MICKROC... a quem puder me ajudar, muito obrigado, quero iniciar pelos leds mesmo....

Tente iniciar com o pedaço abaixo. Não esqueça do MCLR no editor dos fuses, se deixar ativado será necessário um resistor de pullup neste pino.

void main() {
CMCON |= 0x07; //desativa os comparadores
TRISA = 0x00; //tudo saidas no portA
TRISB = 0x00; //tudo saidas no portB
PORTA = 0; //portA desligado inicialmente
PORTB = 0; //portB desligado inicialmente
while(1){
//escreva algum código aqui.
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou tentar aqui e retorno os resultados... você ja me ajudou muito com o 12F675, lembra???

agora é o 16F... eu tava lendo algo sobre PCON, mas você não comentou nada, então acho que isso vai estar um pouco mais a frente né, e é melhor eu não apressar muito...kkkk

valeu obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

pcon é um registrador

O registo PCON contém flags para diferenciar qual reset ira acontecer tipo diferenciar o que esta resetando o pic nunca usei ele nunca vi alguem usalo e acho que você também não vai usar não ele diferencia entre um Power-on reset, Reset MCLR externo,

WDT Reset ou um Reset Brown-out.

agora o link citado por você não retornou nada sobre o 628...

eu upei ele no 4shared é pra ta ai sim vou repostar o link depois

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
Seguidores 0