ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Programación de retardos


Enviado por   •  24 de Noviembre de 2020  •  Tutoriales  •  1.208 Palabras (5 Páginas)  •  85 Visitas

Página 1 de 5

[pic 1]

PROGRAMACION DE RETARDOS

El poder programar el tiempo que se activará o desactivará un evento controlado por el PIC es una tarea recurrente en la programación con microcontroladores.

En esta guía de ejercicio veremos cómo programar un retado simple mediante la siguiente lógica:

  1. Se define en la memoria del PIC una posición a la que se le da un nombre por ejemplo CONT (contador). El contenido de esta celda de memoria será una variable del programa.

Por ejemplo:

CONT EQU H’10’  ; indica que la posición hexadecimal H10 (“16” en decimal) contendrá el

; valor de la variable denominada CONT.

  1. Se podrá cargar esta la variable creada con un número cualquiera, este número puede ser desde 0 a 255 en decimal ( el número binario 00000000 al 1111 1111 ). Este será el valor inicial de la variable CONT en este caso
  2. Luego se procede a decrementar el valor de CONT en pasos de a 1 hasta, repitiendo la decrementación hasta  que llegue a 0. Esto hace que el programa no avance hasta que se alcance el valor final 0 para la variable decrementada. Así se introduce un tiempo antes de la ejecución del siguiente paso de programa.
  3. El programa de decrementación o retardo generalmente se establece como una subrutina que se puede invocar cuantas veces se desee en el programa usando el comando CALL.
  4. Las subrutinas son trozos de programa, se escriben con algún nombre (Ej. DELAY) y pinalizan siempre con la instrucción RETURN. Al ejecutarse RETURN desde una subrutina el programa salta a la instrucción siguiente a la instrucción CALL que llamó a esa subrutina.

A continuación se muestra un programa que permite el parpadeo de un Led conectado por el ánodo al pin de PORTB,0:

; programa, inicio

; *****************************************************************

LIST P=16F628A, R=DEC   ; Usar el PIC16F628 y sistema decimal INCLUDE P16f628a.inc ; Incluye archivo cabecera PIC16F628A

    CONFIG _CP_OFF & _WDT_OFF & _LVP_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT & _MCLRE_OFF

;*******************************************************************

; CONFIGURACION

;*******************************************************************

CONT EQU H'10'        ; establece que la posición H10 de memoria será la variable CONTl ORG    0x000        ; El programa empieza en 0x000[pic 2]

;*******************************************************************

; Se inhiben entradas de comparadores deñl pic

;******************************************************************* movlw 7

movwf CMCON        ; CMCON=7 inhibir los comparadores

;*******************************************************************

; Inicializa Puertos A y B - configuras cuales pin son entradas y cuales son salidas

;*******************************************************************

bsf

STATUS,RP0

; Direcciona a Pág 1 RAM, donde se configuran

; los registros especiales y , los puertos del PIC

movlw

b'11111111'

movwf

TRISA

; PortAA,0 hasta PORTA,7 serán entradas

movlw

b'00000000'

movwf

TRISB

; ; RB0 a RB7 serán salidas

bcf STATUS,RP0 ; direcciona para volver a a pag 0 de RAM (donde está

;  el programa principal)

; ******************************************************************

; lazo principal -, enciende y apaga en forma cíclica el Led de PORTB,0

;******************************************************************* INICIO:

clrf PORTB        ;Limpia PORTB

ledon   bsf PORTB,0        ; Led_0 ON, activa Led conectado con el ánodo B0 call delay        ; llama a subrutina de retardo

ledoff   bcf PORTB,0        ; Led_0 OFF

call delay        ; llama a subrutina de retardo

goto ledon        ; vuelve para encender el LED

delay:


movlw b'11111111'        ; carga w=255 (en decimal)

movwf CONT        ; se carga contenido de w (255) en la variable CONT

bucle        decfsz CONT,1        ; decrement CONT_1,

goto bucle        ; repite el bucle ( mientras CONT_1 no sea cero return        ; Sale de surutina cuando CONT_! llega a cero)

end

Actividad 1.- Led n/Off con el siguiente circuito:

[pic 3]

  1. Diseñe en Proteus el siguiente circuito para verificar el parpadeo del Led mediante program del controlador.
  2. Realice en MPLAB el programa propuesto anterior (Defina su nombre como led_1) y compile para obtener su correspondiente archive objeto led_1.hex
  3. Cargue el microcontrolador,en el simulador Proteus, con el archive led_1.hex
  4. Verifique que el microcontrolador opera produciendo un tren de pulsos on/off sobre el led en PORTB,0

Observaciones

Pregunta        Respuesta

1        ¿El circuito funciona de acuerdo a lo esperado?

2    Cual de o oscil

es la duración de on y ff según el

oscopio?

3 Que tene de o oscil

explicación podría

r la duración de on y ff observada en el oscopio?

Cálculo de la duración de l ejecución de un programa

Si consideramos que la frecuencia del reloj del PIC es de 4 Mhz y que un ciclo de trabajo (un ciclo de funcionamiento de máquina) ocupa 4 ciclos de reloj, entonces un ciclo de máquina es de 1 microsegundo.

...

Descargar como (para miembros actualizados)  txt (7.4 Kb)   pdf (197.5 Kb)   docx (105.1 Kb)  
Leer 4 páginas más »
Disponible sólo en Clubensayos.com