Microcontroladores.pdf

Bom dia! Gostaria de saber se alguem poderia me ajudar a resolver essa lista de exercicios que tem como base o micro. 8051? estou tendo um pouco de dificuldade e qualquer ajuda seria muito importante!! Obrigada!!!

Exibições: 1567

Responder esta

Respostas a este tópico

Não tem férias onde vc estuda ???

Oi Eduardo!

hahaha nao, 2013 ainda nao acabou para a gente...

temos que resolver essa lista, eu ate tenho algum coisa ja resolvida, porem coloquei no forum na tentativa de alguem ajudar para podermos comparar as respostas, ja que nao temos uma base de 8051.

Ahhh, entendi.

São muitas questoes, posso tentar ajudar em algumas, cite uns exemplos de duvidas crueis, pq fazer toda ela seria mto, ninguem aqui toparia.

Ainda, seria interessante ver um programa ˜estruturado˜ como ele fala. Assembler eh algo meio bagunçado, nao sei o que ele chama de estrutura.

Tb, para programação de timers, etc, vc pode usar ferramentas prontas como o Config2 da Silabs: 

http://www.silabs.com/products/mcu/Pages/8-bit-microcontroller-soft...

Nela por ex vc liga uma caixa INT0 e já aparece o comando para habilitar a INT0, etc.

Eduardo, boa tarde! Obrigada pela resposta! Citarei minhas duvidas maiores, tentei anexar as figuras com todas as resolucoes que possui, porem devido ao tamanho limite, tive que colocar no 4shared. Nesse arquivo as resolucoes seguem a ordem do nome das fotos.

http://www.4shared.com/zip/ObkIItv4ba/Arquivar.html 

-> questao 7 eu tive duvida de como calcular a quantidade de numeros 03h armazenados no intervalo estipulado. um amigo resolveu e a foto é da resolucao dele, porem tenho essa duvida. 

-> questao 9, 12, 13, 14 eu tive duvida nela inteira, ninguem da turma conseguiu resolve-la. Nao consegui racionar para comecar a programacao.

-> as demais questoes eu compreendi e acredito que a resolucao esteja correta.

Muito obrigada pela atencao e ajuda!!!

Na 7 entendi que ele quer contar a quantidade (e nao calcular) de 03h. Seria um loop com cjne para contar o intervalo. 

Pode ser uma pegadinha..

Se vc quiser mesmo de 26h a 7fh precisa:

Iniciar um registrador com 25h ;, por ex. (mov. Pode usar R0 e R1)

Iniciar outro registrador (contador) com 0h ; (pode ser o A, R3, o proprio P0)

Loop: Incrementa Registrador ; Agora ele tem 26h

           Verifica se é 03h (cjne), se nao for vai para naoé

           Incrementa o contador

naoé: pula se nao for 7Fh para loop. (cjne).

; Se vc começar pelo 26 e incrementar antes ele perde o 26. Se incrementar depois vc perde o 7Fh.

         joga o valor de contador no P0 ;(mov)

Na 8 ta esquisito. Nao pode ser 10% e 20% ao mesmo tempo num bit só. ou ele quer 10 ou quer 20!

Mal formulado, diria. Poderia intercalar... 

Para gerar PWM de uma forma meio simplista mas que atende a necessidade vc poderia fazer um simples loop contando o tempo:

Loopgrande: Zera o bit (clr P2.3)

Loop de contagem regressiva (djnz) contando até 10;

seta o bit

Loop de contagem regressiva contanto até 90;

Zera o bit

Loop de contagem regressiva contando até 20;

zera o bit

loop de contagem regressiva contando até 80;

Pula para loopgrande

Meio mais ou menos, mas faz um PWM deformado, com 10 e 20%... Outra seria fazer um botao que seleciona entre um e outro.

Vou fechar a mensagem aqui para nao ficar muito longa, depois comento as outras.

Lembrando que isso é o que acho, não levem como absolutamente certo. Existem interpretações envolvidas. Seu professor provavelmente é bastante metódico, na duvida faça do jeito dele (melhor não contrariar).

Eduardo, boa tarde!

Nossa, muito obrigada pela sua ajuda!

A maneira como você racionou e explicou foram ótimas e com toda certeza levarei em consideração todos os seus pontos. Obrigada novamente!!

Encaminharei o e-mail para você.

Abraços,

Ariella.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço