Ir ao conteúdo
  • Cadastre-se

Tutorial de PIC - Programação em Assembly


Posts recomendados

oi tudo bem eu so novo aqui e queria q vocês me ajudassem estou tentando programar um pic 16f628a com codigo mais sempre aparece o erro(de verificação no endereço 0x000000 verificando:0x3ff lendo:0x0000 o que fazer?gostaria muito se vocês podesem me ajudar !obrigado pela atenção o codigo é o seguinte:

O problema deve ser no gravador, quai são as suas caracteristicas?

O teu codigo está muito extenso, nem me dei o trabalho de verificar, mas será que voce tentou simular?

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...
Estou fazendo um estacionamento inteligente para meu TCC de Eletrônica mas estou em duvida como colocar no programa os sensores. Estou fazendo em Assembly. Se alguém puder me da uma dica eu agradeço.

crie um tópico para esta pergunta vai achar resposta mais fácil dificilmente acharas resposta nesse tópico que tem outra finalidade

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...
  • 2 semanas depois...
  • 4 semanas depois...

Mulder_Fox, a muitos milenos atrás (na verdade foi em 2010) eu comecei um tutorial em quatro volume (acho que você lembra, pois você me ajudou muito com ele) mas tive que parar o projeto porque, perdi o computador (deu o maior rebu conseguir recuperar os dados do HD) depois andei meio adoentado, em fim...

Hoje vi sua iniciativa e lembrei do meu material, a principio pensei em retoma-lo, mas me ocorreu que ele seria mais util para você, caso queira posso te mandar tudo que criei (fontes Latex, figuras, pdf's) e quem sabe participar do seu tutorial.

Qualquer coisa, estou a disposição, basta me mandar uma mp.

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...

Boa noite pessoal. Estou necessitando urgentemente programar um pic 16F84 portanto não me resta tempo para estudar e programar eu preciso por um projeto de trabalho no qual um teclado ao receber uma senha de 6 digitos e após confirmar a senha ele opere um solenoide para abrir uma portinha. Alguem poderia me socorrer ? programando o pic para min ? Grato, abraço a todos e estou ansioso por uma resposta.

Link para o comentário
Compartilhar em outros sites

  • 2 meses depois...

Obrigada!Foi muito bom ter a oportunidade de tirar minhas dúvidas.

Obrigado pelo apoio pessoal.

Bcpetronzio, obrigado por ter adicionado no tópico de tutoriais de programação.

Quem tiver sugestão ou crícita também esteja à vontade para escrever.

Nem te conheço mas bacana a humildade.

Pessoal, há muito tempo que vinha planejando elaborar um tutorial de programação Assembly para microcontroladores PIC da Microchip e agora finalmente comecei a fazê-lo.

A primeira parte está pronta, tratando-se de um pisca LED.

Conforme as próximas partes forem ficando prontas irei atualizando o post.

Espero que gostem.

http://www.4shared.com/file/TWPgxQNx/Tutorial_de_Programao_Assembly.html

Edit: Parte 8 incluída.

Faz programação em outras linguagens?

Link para o comentário
Compartilhar em outros sites

  • 4 meses depois...

Mulder_fox boa noite .

sou iniciante na área de programação baixei o IDE do MPLab X acho que é o mais recente aquele tutorial que você disponibilizou vale também para essa vesão?

eu tenho que baixar o compilador separado??

se outra pessoa puder me ajudar também agradeço!!

Link para o comentário
Compartilhar em outros sites

Baixei o MPLABX 1.81, a interface é totalmente diferente, a forma de criação de projectos também é diferente mas com quase todas as mesmas opções. Os ficheiros gerados são armazenados em pastas por categoria. Quanto ao código não muda nada (afinal ainda é assembly), apenas alguns aspectos gráficos como cor dos registros.

Não testei a simulação.

Link para o comentário
Compartilhar em outros sites

Mulder,

Descontinou, e na minha humilde opiniao mandou para o espaço um dos melhores simuladores de MCU que eu conhecia...

O simulador do MPLABX é fraco, possui recursos de interação limitados...fora que a interface mesmo da release é cheia de bugs. E não suporta mais debug pelo ICD2 nem pelo PICKIT2...

A unida coisa boa é que ela desenvolveu seus proprios compiladores, e agora prove arquivos startup do assembly para economia de tempo na programação dos fuses por exemplo.

Abs

Link para o comentário
Compartilhar em outros sites

A linha CX,continua sendo o mais usado ainda.

Ainda bem que programo bem em ASM e consigo,ainda,programar 100% em ASM até alinha 24.

Descontinou, e na minha humilde opiniao mandou para o espaço um dos melhores simuladores de MCU que eu conhecia...

O simulador do MPLABX é fraco, possui recursos de interação limitados...fora que a interface mesmo da release é cheia de bugs. E não suporta mais debug pelo ICD2 nem pelo PICKIT2...

Concordo que para a linha da Microchip,este compilador ,(C18 etc),é perfeito.

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...

Olá MULDER FOX, quero parabenizá-lo pelo excelente trabalho que vem sendo realizado nesse tópico, aprendi e muito com as aplicações que você ensinou nesse tutorial... Gostaria de tirar uma dúvida com você a respeito do terceiro exemplo onde você utiliza uma interrupção pelo TIMER0, que na verdade não é referente ao TIMER0 e sim ao TIMER1, eu compreendi perfeitamente o que você explicou quanto ao código inteiro, dai surgiu uma dúvida referente ao TIMER1;

No caso do TIMER0 antes de qualquer ação a ser realizada dentro da interrupção, a Microchip recomenda uma maneira eficaz para salvar os registradores W e STATUS, conforme você explicou, a pergunta é a seguinte: caso eu utiliza-se o TIMER1 para qualquer aplicação que seja, eu deveria realizar os mesmos procedimentos com os registradores W e STATUS, ou precisaria acrescentar algo a mais, nesse comecinho de interrupção?

Desde já agradeço, se não for fugir muito do assunto ^_^!

Link para o comentário
Compartilhar em outros sites

Olá, Lipextreme.

Desculpe-me pela demora para responder. Estive muito ocupado nos últimos dias.

Obrigado pelos elogios.

Você deve salvar os registradores W e STATUS qualquer que seja a fonte de interrupção.

A razão de salvar os valores desses registradores é que eles são alterados dentro da rotina de interrupção.

O que muda quando se usa a interrupção do Timer1 é que deve-se testar se o bit TMR1IF está setado para confirmar que a interrupção foi gerada pelo Timer1 e depois zerá-lo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Olá, Lipextreme.

Desculpe-me pela demora para responder. Estive muito ocupado nos últimos dias.

Obrigado pelos elogios.

Você deve salvar os registradores W e STATUS qualquer que seja a fonte de interrupção.

A razão de salvar os valores desses registradores é que eles são alterados dentro da rotina de interrupção.

O que muda quando se usa a interrupção do Timer1 é que deve-se testar se o bit TMR1IF está setado para confirmar que a interrupção foi gerada pelo Timer1 e depois zerá-lo.

Perfeito, vou realizar uns testes aqui com TIMER1 então, muito obrigado mesmo pela ajuda Mulder_Fox! Mudando um pouco o assunto estamos no aguardo da Part 9 do tutorial, estou aprendendo demais Assembly com esse tutorial, no próximo passo vou tentar montar um relógio com pic, estou pesquisando o hardware no momento, depois vou pesquisar a respeito do software unindo as informações que eu já tenho do seu tutorial^_^!

Link para o comentário
Compartilhar em outros sites

Olá Mulder_Fox, não estou abusando da sua boa vontade, mas preciso tirar uma dúvida referente a oitava parte do seu tutorial, entendi perfeitamente como funciona o modo capture e também como realizar os cálculos, porém nesse trecho de subtração ocorre que:

CALC_INC

MOVF REG1A,W ;W = REG1A
SUBWF REG1B,F ;REG1B = REG1B -REG1A
BTFSC STATUS,C ;RESULTADO NEGATIVO?
GOTO SEG_SUB ;NÃO
DECF REG2B,F ;SIM, DECREMENTA REG2B
MOVLW .255 ;W = 255
XORWF REG2B,W ;W = REG2B XOR 255
BTFSS STATUS,Z ;REG2B = 255?
GOTO SEG_SUB ;NÃO

Se por acaso o STATUS constar que o valor é negativo, ele decrementa o REG2B e verifica se o mesmo é igual a zero para posteriormente se for necessário decrementar o REG3B, porém não deveríamos somar 10 na unidade (REG1B), conforme fazemos no método decimal?

Não estou dizendo que o programa esta errado, muito pelo contrário, pois montei na prática e funcionou perfeitamente e também na simulação do MPLAB, a minha dúvida é onde é realizado esse (acréscimo de 10) para tornar possível uma subtração positiva?

Analisei um pouco aqui mais não sei se estou falando besteira, se eu estiver me corrija por favor, ao realizar o teste do STATUS,C ele mesmo se encarregará dessa função de acréscimo para tornar a subtração positiva?

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!