Programaçao PIC 16F628

deepshoot

Power Member
Boas people!
Sou novo aqui no forum e preciso mesmo da vossa ajuda!!
O meu problema é k tenho k fazer um trabalho pa disciplina de microprocessadores...k consiste em ter um pic 16F628 em que tem um led ligado e um interruptor!! quando se carrega no interruptor o led pisca de 0,5 em 0,5segundos! e quando se carrega outra vez o led apaga! Utiliza-se interrupções! e a programaçao é feita em Assembley!! o meu maior problema é k nao percebo nada disso, eu e o resto do pessoal da turma, visto k o professor nao ensina bem o pessoal...como isto é um curso à noite ele ta-se a lixar po pessoal... tenho apenas umas pequenas luzes... o que pedia a alguns de voces k percebm disso é k me dessem uma ajuda...as vezes até pode ser que alguém ja tenha feito este trabalho e tenha por ai...
OBRIGADAO AO PESSOAL!!!!
espero k me ajudem!!!
thanks
fikembem
 
Viva

So conheço o set de instruçoes em assembly para MIPS e INTEL.

Programação de PICs só em C e o uso de assembly é muito raro.

Fazer o trabalho ninguem te vai fazer. Começa tu a fazer e á primeira duvida coloca-a aqui que obtens ajuda mais rapido do que julgas...

Este topico fico subscrito e assim que haja uma actualização eu venho ver. Existe por aí muita gente que trabalha/trabalhou em Assembly e decerto que esse trabalho fica feito.

em termos genericos o programa é muito simples:

inicialização variaveis/registos/portos...

void main(void)
{
while( interrupt)
pisca_pisca;
}

-----------
void pisca_pisca (void)
{
time(0,5s); // activas um dos portos de saida durante 0,5s
}
 
Última edição:
Boas!
Eu queria começar a fazer, mas não tenho a minima idedia de como começar...isto como é um curso nocturno o prof ta-se a caga* pa se o pessoal passa ou não...mas de qualquer das maneiras tenho k fazer o modulo!! E nao tenho nenhumas bases de programaçao!!! a programaçao tem k se feita em assembley...infelizmente, pk tou a ver k é mais dificil k em C!! CAPRR, nao faço a minima ideia do k significa o k escreves-t...o prof simplesmente disse-nos pa fazer o k descrevi em cima...agr como é a minha dúvida!! mas obrigado na mesma!!
fikembem
 
1º que tudo axo que devias ler o datasheet desse PIC e ver todas as informações importantes.

Esse problema aparentemente não parece ser mt complicado, no entanto axo que o interesse seria tu chegares à solução.

Nunca trabalhei com esse microcontrolador, mas julgo que seja semelhante ao msc-51.

Tu basicamente o que tens de fazer é considerar esse interruptor como uma interrupção externa, sendo que o código associado a esta terá de efectuar um determinado nº de ciclos(ter em conta a frequência do cristal) até que active um porto(led).

Quanto ao código em si, isso agora depende da arquitectura desse microcontrolador(que eu não conheço a fundo), e só vendo o manual é que te safas.

Espero ter ajudado,
cumps.
 
floyd disse:
1º que tudo axo que devias ler o datasheet desse PIC e ver todas as informações importantes.

Esse problema aparentemente não parece ser mt complicado, no entanto axo que o interesse seria tu chegares à solução.

Nunca trabalhei com esse microcontrolador, mas julgo que seja semelhante ao msc-51.

Tu basicamente o que tens de fazer é considerar esse interruptor como uma interrupção externa, sendo que o código associado a esta terá de efectuar um determinado nº de ciclos(ter em conta a frequência do cristal) até que active um porto(led).

Quanto ao código em si, isso agora depende da arquitectura desse microcontrolador(que eu não conheço a fundo), e só vendo o manual é que te safas.

Espero ter ajudado,
cumps.
epa, ajudas-te. Mas é k o tempo é pouco!! e não tenho tempo pa ler isso...porque trabalho de dia e ha noite tou no curso...e o tempo é mesmo pouco...até k não me importava de aprender, mas agora não tenho mesmo tempo para isso...tipo, saio de casa as 8h e saio do trabalho as 18h, depois o curso ocupa-me das 19h30 ate as 23h10!! nao tenho mesmo tempo para nada...se ouver alguém k me ajude mesmo, agradeço mesmo mt!! se for necessário até posso retribuir com dinheiro, visto k alguém dispendeu do seu tempo para me ajudar...o meu problema é mesmo a falta de tempo e nao ter bases de programaçao...
obrigado na mesma!
fikembem
 
Não quero parecer desanimador. Mas se não tens tempo para fazer os trabalhos tens de repensar a tua vida. É sempre complicado trabalhar e estudar simultâneamente, mas já que optaste por essa via, tens que te consciencializar que secalhar o curso e vez de x tempo, demora x+y.
Tenta fazer o trabalho e expôe a tua situação ao Professor. Se ele vir que tens alguma coisa feita, pode ser que seja sensível ao teu problema.
Boa sorte ;)
 
http://www.warburtech.com/compilers/picbasic/ usa um programa tipo isto pra programar e depois vê se no proprio programa ele mostra o codigo em assembler... se mostrar, dás a volta ao prof, se não mostrar, tás a ser autodidata e o prof qsafd@


isto é apenas um programa para programar pics em basic, é muito facil e intuitivo. eu usei um para um picaxe28x e aquilo era mesmo cagativo, mas quer o pic quer o software eram praticamente educativos
 
Eu já programei num pic para uma cadeira de microprocessadores.

Se não sabes nada de programação estás entalado.
Mas há esperança!
Os PICs têm um conjunto reduzido de instruções, umas 40 no máximo, têm um único registo, o W e têm duas ou três memórias, RAM, flash e E-PROM. Isto comparado com um PC é uma amostra.
O programa que fazes reside na flash. A RAM está dividida em bancos. A E-PROM necessita de um procedimento específico para a ler ou escrever, é uma questão de consultar a datasheet do PIC.
Aliás, toda a informação sobre o PIC está na sua datasheet. Todos os trabalhos que eu fiz foi com a datasheet ao lado.

Tu provavelmente tens o LED ligado a um pino de um dos ports (porta de saída), talvés o PORTB. Os ports, e a maior parte das outras coisas do PIC estão mapeados em memória.
Para acender o LED basta escrever um 1 na morada de RAM correspondente ao PORT onde está ligado o LED. Apagar é escrever um 0. Para acender e apagar temporizadamente basta fazer um ciclo de espera com "nop"s e ir trocando de 1's para 0's e viceversa. Para fazer um ciclo terás que usar instruções do tipo "goto". Para mais promenores terás que ver o manual do compilador, normalmente incluído no CD que vem com o PIC, lá terás também exemplos de código para o PIC que estás a usar, em que são utilizadas as várias capacidades o PIC incluindo interrupções.
Vê o site para obteres as datasheets, compiladores e outros manuais.
http://www.microchip.com

Espero que isto possa ser útil a alguém.
 
epa, ajudas-te. Mas é k o tempo é pouco!! e não tenho tempo pa ler isso...porque trabalho de dia e ha noite tou no curso...e o tempo é mesmo pouco...até k não me importava de aprender, mas agora não tenho mesmo tempo para isso...tipo, saio de casa as 8h e saio do trabalho as 18h, depois o curso ocupa-me das 19h30 ate as 23h10!! nao tenho mesmo tempo para nada...se ouver alguém k me ajude mesmo, agradeço mesmo mt!! se for necessário até posso retribuir com dinheiro, visto k alguém dispendeu do seu tempo para me ajudar...o meu problema é mesmo a falta de tempo e nao ter bases de programaçao...
obrigado na mesma!
fikembem

Esse programa é bastante fácil de fazer,...........já vi ke não prestas-te atenção ás Aulas,.......os
Pics usam um Set de intruções de 35 instruções apenas,.........primeiro tens ke dizer em ke PORT é Ligado os Leds,..........possivelmente como em kuase todos projectos no PORTB e os Switchs no PORTA,........mas tens ke ser mais especifico se keres ke alguem te Ajude,......ke sabes tu realmente fazer num PIC?? para fazer esse programa nem precisas de Utilizar Interrupções,...........mas se a kestão do projecto for mesmo fazer uso das interrupções tb não tem dificuldade,............sê mais especifico se keres ajuda
 
Esse programa é bastante fácil de fazer,...........já vi ke não prestas-te atenção ás Aulas,.......os
Pics usam um Set de intruções de 35 instruções apenas,.........primeiro tens ke dizer em ke PORT é Ligado os Leds,..........possivelmente como em kuase todos projectos no PORTB e os Switchs no PORTA,........mas tens ke ser mais especifico se keres ke alguem te Ajude,......ke sabes tu realmente fazer num PIC?? para fazer esse programa nem precisas de Utilizar Interrupções,...........mas se a kestão do projecto for mesmo fazer uso das interrupções tb não tem dificuldade,............sê mais especifico se keres ajuda
Boas! Não é uma questão de estar atento as aulas...é uma questao de tempo, trabalho e estudo a noite...mt dificil conciliar as duas coisas...enfim, e dps com aquelas aulas k o professor dá...nem te digo nada...pois, em relacçao ao trabalho, isso esse k falei era um trabalho para a nota ks minima (11 - numa escala de 0-20), se contiver algum erro é mt dificil...o trabalho mesmo k vamos ter k fazer agora usa interrupçoes...é o seguinte, temos um PIC 16F628, temos um teclado de 1 a 9 e um LCD....quandi pressionado um dos numeros, aparecerá o respectivo número no LED....tou a tentar safar-me com livros e isso tudo...vamos la ver como corre...

abraço
e mt OBRIGADO por te disponibilizares

Marcelo
 
Eu já programei num pic para uma cadeira de microprocessadores.

Se não sabes nada de programação estás entalado.
Mas há esperança!
Os PICs têm um conjunto reduzido de instruções, umas 40 no máximo, têm um único registo, o W e têm duas ou três memórias, RAM, flash e E-PROM. Isto comparado com um PC é uma amostra.
O programa que fazes reside na flash. A RAM está dividida em bancos. A E-PROM necessita de um procedimento específico para a ler ou escrever, é uma questão de consultar a datasheet do PIC.
Aliás, toda a informação sobre o PIC está na sua datasheet. Todos os trabalhos que eu fiz foi com a datasheet ao lado.

Tu provavelmente tens o LED ligado a um pino de um dos ports (porta de saída), talvés o PORTB. Os ports, e a maior parte das outras coisas do PIC estão mapeados em memória.
Para acender o LED basta escrever um 1 na morada de RAM correspondente ao PORT onde está ligado o LED. Apagar é escrever um 0. Para acender e apagar temporizadamente basta fazer um ciclo de espera com "nop"s e ir trocando de 1's para 0's e viceversa. Para fazer um ciclo terás que usar instruções do tipo "goto". Para mais promenores terás que ver o manual do compilador, normalmente incluído no CD que vem com o PIC, lá terás também exemplos de código para o PIC que estás a usar, em que são utilizadas as várias capacidades o PIC incluindo interrupções.
Vê o site para obteres as datasheets, compiladores e outros manuais.
http://www.microchip.com

Espero que isto possa ser útil a alguém.
Parabéns!! aprendi mais neste pequeno resumo do k em 1 mes de aulas de microprocessadores!!!

mesmo mt obrigado!!

abraço
 
Então o projecto já mudou??,..........agora já é para visualizar num LCD e Operar apartir de um Teclado Decimal??,...........grandes Evoluções,..............Muito Bem,........estás um Mestre na Programação
 
Então o projecto já mudou??,..........agora já é para visualizar num LCD e Operar apartir de um Teclado Decimal??,...........grandes Evoluções,..............Muito Bem,........estás um Mestre na Programação
para o outro trabalho tive ajuda de um colega k me fez quase o trabalho todo, apenas me deu uma explicação!! este trabalho é de outro módulo!!
se nao queres ajudar ta calado e deixa ajudar quem quer! não entupas o forum com exterco (nao fales)!!!

cumps e obrigado aos k me ajudam
 
OK,.....você é kem Sabe,........por mim está sempre tudo Optimo,............mas um Teclado decimal e um LCD a Apenas um PIC16F628?? COMPLICADO no MINIMO,.......Vais precisar de toda a Ajuda ke Arranjares,.....principalmente de Kem percebe bem de Programação de PICs,......Isso é um Projecto Ambicioso Acredita,.........mas Prontos já ke fui Dispensado,.........Toda a Sorte do Mundo pra Ti
 
OK,.....você é kem Sabe,........por mim está sempre tudo Optimo,............mas um Teclado decimal e um LCD a Apenas um PIC16F628?? COMPLICADO no MINIMO,.......Vais precisar de toda a Ajuda ke Arranjares,.....principalmente de Kem percebe bem de Programação de PICs,......Isso é um Projecto Ambicioso Acredita,.........mas Prontos já ke fui Dispensado,.........Toda a Sorte do Mundo pra Ti
eu nao dispenso a ajuda...dispenso as bocas!!
obrigado pela sorte!
Cumps
 
Back
Topo