Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Subrutinas de retardo
de tiempo
Subrutina para retardos de tiempo.
Un ciclo máquina es la unidad de medida de tiempo cuando se
trabaja con microcontroladores.
CALL RETARDO 2 cm
.
(cm: ciclo máquina)
.
.
No salta Salta
GOTO REGRESA (2 cm) x (K-1)
RETURN (2 cm)
CASO 1.
CASO 2.
CALL RETARDO
.
Programa
. Principal
.
NOTAS:
(1) El tiempo de retardo se calcula como: Tiempo K 100 mseg
(2) Sustituir “K” por un valor válido entre 1 y 255.
(3) Deberán definirse las variables CONT1, CONT2 y CONT3 en el
programa principal.
EJEMPLO. Programa que realiza el parpadeo entre los nibbles bajo
y alto del puerto B, cada 500 ms en bucle infinito.
Código: Continuación:
CONT1 EQU 0x0C RETARDO MOVLW D’5’
CONT2 EQU 0x0D MOVWF CONT3
CONT3 EQU 0x0E BUCLE3 MOVLW D’100’
MOVWF CONT2
ORG H’00’ BUCLE2 MOVLW D’249’
BSF STATUS, RP0 MOVWF CONT1
CLRF TRISB BUCLE1 NOP
BCF STATUS, RP0 DECFSZ CONT1, F
GOTO BUCLE1
INICIO MOVLW B’00001111’ DECFSZ CONT2, F
MOVWF PORTB GOTO BUCLE2
CALL RETARDO DECFSZ CONT3, F
MOVLW B’11110000’ GOTO BUCLE3
MOVWF PORTB RETURN
CALL RETARDO
GOTO INICIO END
El código anterior puede reescribirse de la forma siguiente:
CBLOCK: Directiva que se usa para definir
CBLOCK 0x0C
una lista de constantes y asignarles una
CONT1
dirección de memoria.
CONT2
CONT3 Al terminar la lista de constantes, se
ENDC escribe la directiva ENDC.
ORG H’00’
BSF STATUS, RP0
CLRF TRISB
BCF STATUS, RP0
END
EJEMPLO. Programa de parpadeo de nibbles bajo/alto cada 500
mseg y con bucle finito de 4 veces.
Código: Continuación:
Código: Continuación:
END
EJEMPLO. Programa contador binario de 0 a 30, con intervalos de 1
seg y visualización por el puerto B.
Código: Continuación:
ORG H’00’
RETARDO MOVLW D’10’
BSF STATUS, RP0
.
CLRF TRISB
.
BCF STATUS, RP0
.
CLRF CONTADOR
END
INICIO MOVF CONTADOR,W
MOVWF PORTB
CALL RETARDO
INCF CONTADOR,F
PROGRAMA 6. Juego de secuencia de luces, visualizadas por el
puerto B: