Mostrando postagens com marcador assembly. Mostrar todas as postagens
Mostrando postagens com marcador assembly. Mostrar todas as postagens

quarta-feira, 6 de junho de 2012

Curso de PIC - Iniciando no mundo PIC - Robotizando.com.br

Material do site robotizando.com.br que é lá apresentado como "Curso de PIC - Iniciando no mundo PIC".

Particularmente, acho meio pretensioso demais chamar de curso, mas é um bom material de consulta, e sempre se aprende alguma coisa nova!


Fonte da imagem: Captura de tela do curso no site www.robotizando.com.br



quinta-feira, 31 de maio de 2012

CICLO DE INSTRUÇÃO (para os microcontroladores PIC)


Para a família PIC, cada ciclo de instrução dura quatro pulsos de clock. Os microcontroladores PIC fazem uso do pipeline para aumentar a velocidade de execução das instruções. Pipeline é uma técnica utilizada pelos processadores mais modernos e consiste em dividir a execução das instruções em partes e cada uma destas partes pode ser executada em paralelo em um formato semelhante a uma linha de montagem de carros. No caso dos microcontroladores PIC pode-se visualizar a execução das instruções como sendo dividida em dois estágios: busca (fetch) e executa (execute), onde cada estágio gasta 4 ciclos de clock.

O pipeline permite que quase todas as instruções possam ser executadas em um ciclo de máquina, com exceção das que alteram o contador de programa, como chamadas de rotinas e seus retornos. Nestes casos, o pipeline sofre uma penalidade de um ciclo de clock devendo descartar (flush, na figura 8) a instrução que já havia sido buscada para então carregar a instrução no endereço correto, consumindo, portanto, dois ciclos de instrução (SOUZA, 2000, pg 6).

A figura 1 (MATIC, 2000, pg 18) mostra o fluxo das instruções no pipeline em um pequeno trecho de um programa escrito em assembly.

Figura 1: Pipeline de um trecho de código


No ciclo 0, o código da instrução MOVLW 55h é buscado da memória (desconsiderando a instrução que é executada neste ciclo). No ciclo 1, a instrução MOVLW 55h é executada e a instrução MOVWF PORTB é buscada da memória. No ciclo 2 a instrução MOVWF PORTB é executada e é buscada da memória a instrução CALL SUB_1. A chamada da sub-rotina SUB_1 e a leitura da instrução BSF PORTA, BIT3 são feitas no ciclo 3. Como a instrução BSF PORTA, BIT3 não é a que será executada no momento e sim a primeira instrução da sub-rotina SUB_1, deve ser feita outra busca de instrução. Esta situação mostra porque as instruções de chamada de sub-rotina consomem dois ciclos de máquina, já que a instrução BSF PORTA, BIT3 terá que ser lida novamente ao término da sub-rotina. O ciclo 4 é usado somente para ler a primeira instrução da sub-rotina e nenhuma instrução é executada. A primeira instrução da sub-rotina é então executada no ciclo 5.


Fonte:
Duarte, Rafael Lindemann. SISTEMA INTELIGENTE DE MONITORAMENTO E CONTROLE DE IRRIGAÇÃO. São José: UNIVALI, 2006. (TCC Ciência da Computação)


quarta-feira, 30 de maio de 2012

PROJETO COMPLETO - Repetidor de Sinal de Controle Remoto com PIC

Projeto completo de um repetidor de sinal de controle remoto com microcontrolador PIC Apresentado no site Eletromaniacos.com. Na forma em que ele é apresentado pode ser usado para aumentar o alcance de um controle remoto. 
Até aí, nada demais... :-/

Fonte da imagem: Eletromaniacos.com

Mas, como este projeto implementa a recepção E o envio de informação (recebe e repete) pode ser facilmente adaptado para ser o controle de algum dispositivo, ou ainda ser o receptor para poder controlar outro projeto com um controle remoto de TV, por exemplo.

Vale a pena conferir!!

No site do projeto, estão disponíveis:
- Código fonte em assembly para os PICs 12F629, 12F675 e 12F683;
- Arquivos HEX para estes mesmos microcontroladores;
- Esquema elétrico;
- Desenhos da placa (em pdf).


quarta-feira, 23 de maio de 2012

Projeto completo - MICROCONTROLADORES PIC – CONTROLE DE MOTOR DE PASSO - ArneRobotics


Mais um projeto completo do Arne, com esquemas e programa. Como de costume, absurdamente bem explicado!!!

Este projeto se trata de um controlador de motor de passo com microcontrolador PIC. Muito legal para entender como fazer o controle de posição, velocidade, sentido de giro (etc...) pelo microcontrolador.



Fonte da imagem: arnerobotics.com.br


quinta-feira, 17 de maio de 2012

MODO SLEEP


“Os microcontroladores possuem um modo de operação exclusivo para economia de energia, o modo sleep. Ao executar a instrução ‘SLEEP’ o microcontrolador praticamente é posto para "dormir". Este modo de operação é utilizado em sistemas que podem ficar paralisados temporariamente, principalmente quando alimentado por pilhas ou baterias (SOUZA, 2000, pg 126).

O microcontrolador possui um driver interno para tratar o sinal que recebe do oscilador. Quando entra em modo sleep, este driver é desligado, deste modo, o sinal do oscilador chega ao pino de entrada do PIC mas não chega à CPU e o processamento é paralisado. O WDT não é paralisado (SOUZA, 2000, pg 126) porque este timer possui um oscilador independente que não é afetado pela função ‘SLEEP’.

As portas de E/S mantêm o estado em que se encontravam antes da execução da instrução SLEEP (MICROCHIP, 2003, pg 100), ou seja, as portas que estavam configuradas como entrada continuam como entrada e as portas configuradas como saída mantêm seu nível lógico (SOUZA, 2000, pg 126).

O consumo de energia do PIC, que pode chegar a 300mA no modo de operação normal (MICROCHIP, 2003, pg 117), pode cair para até 2uA em modo sleep (SOUZA, 2000, pg 126). Para garantir o mínimo consumo de energia em modo sleep é recomendável configurar todas as portas de E/S como entrada quando isto for possível (SOUZA, 2000, pg 126).

O microcontrolador pode ser "acordado" de três formas diferentes (MICROCHIP, 2003, pg 100) (SOUZA, 2000, pg 126):
-          Por um reset externo (no pino /MCRL);
-          Estouro do Watchdog Timer;
-          Interrupção externa ou mudança do estado dos pinos RB0, RB4, RB5, RB6 OU RB7.”


Fonte:
Duarte, Rafael Lindemann. SISTEMA INTELIGENTE DE MONITORAMENTO E CONTROLE DE IRRIGAÇÃO. São José: UNIVALI, 2006. (TCC Ciência da Computação)

quinta-feira, 10 de maio de 2012

PROJETO COMPLETO - IRRIGADOR DE JARDIM COM MICROCONTROLADOR PIC – ArneRobotics


Um dos projetos completos que o Arne publicou na revista Mecatrônica Fácil e disponibilizou na íntegra no seu site.

Este projeto é muito interessante para estudantes e hobbystas, utiliza um microcontrolador PIC16F870 e está descrito em todos seus detalhes no site.

Estão disponíveis também os desenhos de placa e a programação (em assembly).


A figura abaixo mostra o protótipo criado pelo autor. 


Fonte da imagem: ArneRobotics