Ir ao conteúdo
  • Cadastre-se

Botoes com 16F628A


CIS

Posts recomendados

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;

}

}

}

Link para o comentário
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...

Link para o comentário
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.

Link para o comentário
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...

Link para o comentário
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.

Link para o comentário
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...

Link para o comentário
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ç.

Link para o comentário
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...

Link para o comentário
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....

Link para o comentário
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.
}
}

Link para o comentário
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!!!

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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