Assembly

736 palavras 3 páginas
2. Elaborar um programa em que todos os leds do PORTB se acendam e apaguem no período de 1ms, e depois aumente esse tempo para 100ms.

R: Agora utilizaremos o mesmo hardware proposto , porém não utilizaremos o botão, pois estaremos nos familiarizando com a rotina de DELAY. Na rotina principal teremos a instrução CALL DELAY, que será o responsável por chamar a rotina delay de 1 ms, isso só é possível fazendo o microcontrolador perder um tempo decrementando alguns registradores, que serão criados pelo usuário, pois cada instrução no PIC é executada muito rapidamente (1us com clock de 4MHz) e nesse exemplo o delay será de 1ms, tempo ainda muito baixo para ver os Leds acenderem e apagarem (só é possível verificar usando o osciloscópio), mas a intenção é compreender como essa rotina é executada e dentro dela é encontrado o seguinte código

DELAY MOVLW .249 MOVWF TEMPO
DELAY1

NOP DECFSZ TEMPO, F GOTO DELAY1

RETURN

No label DELAY a variável tempo criada pelo usuário (para isso declare-a dentro do da diretiva CBLOCK 0x20) irá conter o valor 249 e em DELAY1 a instrução NOP gasta um ciclo de máquina sem fazer nada e então a instrução DECFSZ irá decrementar a variável TEMPO, gastando mais um ciclo e a instrução GOTO irá gastar dois ciclos de máquina e irá para o label DELAY1, assim até quando o registrador TEMPO for decrementado e o valor nele contido for zero então nesse momento gasta-se mais 2 ciclos de máquina pois haverá um salto que pula uma linha encontrando a instrução RETURN que irá voltar para o programa principal. Nota-se que o programa irá ficar no loop DELAY1 que gasta 4 ciclos x249, que é o valor contido em tempo gerando aproximadamente 1ms.
Lembrando que cada instrução é executada em 1 ciclo de máquina e instruções que provocam desvio no programa irão gastar 2 ciclos e então com um oscilador de 4 MHz, cada instrução levará 1us para ser executada.

Na internet encontra-se o

Relacionados

  • Assembly
    699 palavras | 3 páginas
  • Assembly
    730 palavras | 3 páginas
  • Assembly
    3699 palavras | 15 páginas
  • Assembly
    5068 palavras | 21 páginas
  • Assembly
    27928 palavras | 112 páginas
  • Assembly
    378 palavras | 2 páginas
  • Assembly
    739 palavras | 3 páginas
  • assembly
    4756 palavras | 20 páginas
  • Assembly
    636 palavras | 3 páginas
  • Assembly
    4080 palavras | 17 páginas