La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Microcontroladores Subrutinas y retardos. Subrutinas Sin subrutinas Con subrutinas Llamado a subrutina Subrutina Regreso de subrutina.

Presentaciones similares


Presentación del tema: "Microcontroladores Subrutinas y retardos. Subrutinas Sin subrutinas Con subrutinas Llamado a subrutina Subrutina Regreso de subrutina."— Transcripción de la presentación:

1 Microcontroladores Subrutinas y retardos

2 Subrutinas Sin subrutinas Con subrutinas Llamado a subrutina Subrutina Regreso de subrutina

3 Arreglos y Apuntadores APUNTADOR: Variable que su contenido representa la dirección de otra variable. Se utilizan para indicar valores por “referencia”. ARREGLOS: Variables del mismo tipo ordenadas consecutivamente en la memoria.

4 Stack y Stack pointer APUNTADOR DE STACK: Variable que contiene la posición en donde esta la última dirección de retorno que se almacenó en el stack. STACK: Arreglo que almacena las direcciones a las que tiene que regresar el programa después de terminarse una subrutina o una interrupción. También se le conoce como: Pila o FILO (First In Last Out).

5 SALTOS A SUBRUTINAS CALLRUTINA1 Llama a subrutina. RETURNRegresa de subrutina RETLW kRegrese de subrutina con w==k (Uso de Tablas)

6 Ejemplo

7 Ciclos y retardos de tiempo por software Ciclos: Son secciones del programa que se ejecutan varias veces consecutivas debido a un salto a un mismo punto del programa. Bucle……......... Condicional que saca del ciclo........ GOTOBucle Retardos por software: Con secciones de código que tienen la única función de detener el programa durante un tiempo predefinido. Generalmente se hacen con ciclos que se ejecutan un número de veces determinadas.

8 Ciclos y retardos de tiempo por software

9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Rutina de retardo de 1 Segundo. ; Genera un retardo igual a un segundo TR=TRH:TRL <--03:E8 h. ; Utiliza una rutina que retarda 1 milisegundo y la rutina que retarna N milisegundos RETARDO: movlwTRH_AUX movwfTR movlwTRL_AUX movwfTR+1 callRETARDO_NMS return Ejemplo de Retardo Largo

10 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Rutina de retardo programable en milisegundos. ; Genera un retardo igual al numero almacenado en TRH:TRL (TR:TR+1) en milisegundos. ; Utiliza una rutina que retarda 1 milisegundo. ; Retardio máximo es aproximadamente 65 segundos (65535). RETARDO_NMS: movfTR,w;Si (TR):(TR+1) == 00:00, sale de la subrrutina iorwfTR+1,w btfscSTATUS,Z return callRETARDO_1MS;Espera un milisegundo. movlw0xff addwfTR+1;Decrementa en 1 la variable TR = (TR):(TR+1) btfssSTATUS,C decfTR gotoRETARDO_NMS Ejemplo de Retardo Largo

11 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Rutina que produce un retardo de un milisegundo. Asume que se tiene un ciclo ; maquina de un microsegundo. Retardo = 5*N uS RETARDO_1MS: movlwT_4MHZ ; N=200, ciclos con OSC 4MH (ciclo maq 1 uS) nop RET_CICLO1: addlw 0xFF btfscSTATUS,Z return gotoRET_CICLO1


Descargar ppt "Microcontroladores Subrutinas y retardos. Subrutinas Sin subrutinas Con subrutinas Llamado a subrutina Subrutina Regreso de subrutina."

Presentaciones similares


Anuncios Google