Programar un Retardo
Un programa retardo es nada mas un programa de bucles dentro de bucles con la finalidad de "Perder tiempo", precisamente para que nosotros podamos ver el parpadeo de un led por ejemplo u otras aplicaciones que no requieren una gran velocidad como a la que corre el microcontrolador, varias aplicaciones requieren el calculo de un tiempo determinado tiempo y la precisión del mismo
; - - - - - - - - - - - - - - - - - - - - - - -
; retardo
; - - - - - - - - - - - - - - - - - - - - - - -
retardo:
mov r5,#0aeh
buc0: mov r6,#0aeh
buc1: mov r7,#005h
buc2: djnz r7,buc2
djnz r6,buc1
djnz r5,buc0
ret
El Calculo de un retardo
; * * * * * * * * * * * * * * * * * * * * * * * *
; retardo de 500 micro segundos (500us)
; * * * * * * * * * * * * * * * * * * * * * * * *
; tiempo = sec * 12 periodos
; 12MHz 1 ciclo de maquina
; * * * * * * * * * * * * * * * * * * * * * * * *
; tiempo = 0.5 s = 500000us
; ciclos de maquina
; * * * * * * * * * * * * * * * * * * * * * * * *
seg05: ;(2) = 2
mov r6,#0fah ;(1) = 1
xx: mov R7,#0f9h ;(1)*r6[250] = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
xxx: nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
djnz R7,xxx ;(2)*r6[250]*r7[249] = 124500
djnz r6,xx ;(2)*r6[250] = 500
ret ;(2) = 2
; ----------------------------------
; 500005 * 1us = 500005us = 0.5seg
end
Set de Instrucciones del 8051 con Numero de Ciclos
¿Que es un Retardo? Como se ha visto hasta ahora, el microcontrolador corre un programa a una velocidad alta y es apreciable al ser manejado con lenguaje ASSEMBLER, Para poder por ejemplo mostrar el parpadeo de un led a un tiempo de 0.5 seg es necesario generar un código para producir ese tiempo de "retardo" o delay como se lo conoce en el ingles, para cada calculo de retardo en el microcontroladore es necesario realizar este programa, la forma de calcular y diseñar el programa se explicara en este capitulo del curso de microcontroladores 8051.
Aplicación de los retardos
; Programa: Retardos
; calculo de retardo
org 0000h
inicio:
cpl a
mov P0,a
call seg05
ajmp inicio
; * * * * * * * * * * * * * * * * * * * * * * * *
; retardo de 500 micro segundos (500us)
; * * * * * * * * * * * * * * * * * * * * * * * *
; tiempo = sec * 12 periodos
; 12MHz 1 ciclo de maquina
; * * * * * * * * * * * * * * * * * * * * * * * *
; tiempo = 0.5 s = 500000us
; ciclos de maquina
; * * * * * * * * * * * * * * * * * * * * * * * *
seg05: ;(2) = 2
mov r6,#0fah ;(1) = 1
xx: mov R7,#0f9h ;(1)*r6[250] = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
nop ;(1)*r6(250) = 250
xxx:
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
nop ;(1)*r6[250]*r7[249] = 62250
djnz R7,xxx ;(2)*r6[250]*r7[249] = 124500
djnz r6,xx ;(2)*r6[250] = 500
ret ;(2) = 2
; ----------------------------------
; 500005 * 1us = 500005us = 0.5seg
end
Video Tutorial
Comentar
Deja tu comentario
Compartir
Compartir
Descargar