UNIDAD 5
5.1.- Introducción.
5.2.- Subrutinas de retardo.
5.1.- Introducción
•
Una subrutina o subprograma
es una parte de programa que
realiza una acción concreta y se
repite amenudo, para ahorrar
memoria y esfuerzo y para
hacer el programa mas
comprensible.
•
Una subrutina se debe ejecutar
siempre llamándola con la
instrucción CALL y al final de
dicha subrutina debe habersiempre un RETURN. El
esquema siguiente muestra
como funcionan las subrutinas:
CALL SUBR
……………………..
……………………..
……………………..
CALL SUBR
……………………….
……………………….
SUBR
……………………….
……………………….
RETURN
5.2.-Subrutinas de retardo
• Ciclo maquina: Es la unidad basica de tiempo que utiliza el
microcontrolador. Para el PIC 16F84A el ciclo maquina es la
equivalencia de 4 ciclos de reloj, por lo tanto, el tiempoque
tarda en producirse un ciclo maquina es igual a 4 veces el
periodo del oscilador.
• Las instrucciones en el PIC 16f84A necesitan 1
ciclo maquina para ejecutarse, excepto las de
salto (goto, call,btfss, btfsc,return,etc) que
necesitan de dos ciclos maquina.
• El tiempo que tarda el microcontrolador en
ejecutar una tarea viene fijado por la formula
siguiente: T 4 cm
f
f frecuencia deloscilador
cm ciclos maquina
Ejemplos
1.- Calcular la duración de 1 ciclo maquina para
un PIC 16F84A que utiliza un cristal de cuarzo
de 4MHz
Solución:
4
4
T cm
1cm 1seg
f
4 MHz
2cm 2 seg
2.-En un sistema con un microcontrolador
PIC16F84A y cristal de cuarzo de 4MHz se
desea generar un retardo de 1.5 mseg.
Calcular el numero de ciclos maquina
necesarios.
Solución:
Tf
(1.5mseg )(4 MHz )cm
1500cm 1.5mseg
4
4
• Retardo mediante lazo simple
Un ejemplo tipico de subrutina de retardo puede ser el siguiente fragmento
de programa:
;la llamada CALL aporta 2cm
Sg1ms
movlw 249
;aporta1 cm. Este es el valor de k
movwf contA ;aporta 1 cm
Ciclo
nop
;aporta k x 1 cm
decfsz contA,f ;(k-1)x1cm (cuando no salta) + 2 cm (al saltar)
goto ciclo
;aporta (k-1)x2 cm
return
En total=1 mseg...
Regístrate para leer el documento completo.