La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

BUCLES – SUBRUTINAS – RETARDOS MICROCONTROLADORES.

Presentaciones similares


Presentación del tema: "BUCLES – SUBRUTINAS – RETARDOS MICROCONTROLADORES."— Transcripción de la presentación:

1 BUCLES – SUBRUTINAS – RETARDOS MICROCONTROLADORES

2 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO BUCLES INFINITOS INICIOCODIGO CODIGO_1 CODIGO_2 IR A INICIO INICIO CODIGO CODIGO_1 CODIGO_2 Realizar un programa que visualice a través de un puerto de 8 líneas un contador que comience desde cero (TAREA)

3 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO BUCLES FINITOS Realizar un programa que revise y visualice el estado de tres sensores de proximidad (TAREA) INICIO CODIGO CODIGO_1 CODIGO_2 ? TERMINAR NO SI INICIOCODIGO CODIGO_1 SI CUMPLE CONDICION, IR A INICIO SI NO CUMPLE CONDICION CODIGO_2 TERMINAR

4 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO BUCLES ANIDADOS El número total de ciclos de instrucción es igual al producto de los ciclos de instrucción del bucle interno por las del bucle externo

5 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO

6 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO DIRECTIVAS CBLOCK (Define a Block of Constants) ENDC (End Constant Block) Asigna direcciones de la memoria RAM de datos CBLOCK 0x20;Las variables se posicionan a partir de esta posición en la RAM VAR1;VAR1 ocupa la posición 0x20 de la RAM VAR2;VAR2 ocupa la posición 0x21 de la RAM RESUL;RESUL ocupa la posición 0x22 de la RAM ENDC

7 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO CBLOCK ;Las variables se posicionan a partir de la última posición de RAM ;definida por el último bloque CBLOCK MAYOR;MAYOR ocupa la posición 0x23 de la RAM MENOR;MENOR ocupa la posición 0x24 de la RAM IGUAL;IGUAL ocupa la posición 0x25 de la RAM ENDC Si en el primer CBLOCK no se define el comienzo, los valores asignados comienzan con el cero (NO ES CORRECTO)

8 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO #DEFINE (Define a Text Substitution Label) : define una cadena de sustitución de texto #DEFINE [ ] #DEFINELEDONPORTB,0 #DEFINEBANCO1BSF STATUS,5 #DEFINEBANCO0BCF STATUS,5..... BANCO1 BCF LEDON BANCO0 BSF LEDON

9 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO SALTOS INDEXADO : Dirección de salto = suma de un registro base (PCL) con un valor cargado en el registro trabajo W equivalente a un registro índice o valor de desplazamiento (offset)

10 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO _CONFIG _CP_OFF&_WDT_OFF&_PWRTE_ON&_XT_OSC LIST P = 16F877 INCLUDE ORG 0x00 CALL PUERTOS;configuración de puertos CICLO MOVF PORTB,0;lee varlor de variable de entrada ANDLW B’00000011’;deja los dos bits de entrada ADDWF PCL,1;va al salto adecuado TABLA GOTO SALTO0 GOTO SALTO1 GOTO SALTO2 GOTO SALTO3 SALTO0 MOVLW B’11110000’;Salto 0 GOTO SALIDA SALTO1 MOVLW B’10101010’;Salto 1 GOTO SALIDA SALTO2 MOVLW B’01010101’; Salto 2 GOTO SALIDA SALTO3 MOVLW B’00001111’; Salto 3 GOTO SALIDA SALIDA MOVWF PORTD;Visualiza por el puerto de salida GOTO CICLO PUERTOS BSF STATUS,5;Banco 1 CLRF TRISD;PortD como salida MOVLW B’00000011’:2 primeros bits PortB - entrada MOVWF TRISB BCF STATUS,5;Banco0 RETURN END

11 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO TAREA 1 Como se puede incluir un programa dentro de otro programa. Revisar la directiva INCLUDE. Explique con un ejemplo

12 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO TABLAS ADDWF PCL,1 RETLW DIRECTIVA ‘DT’ : Define tabla, sustituye el uso repetitivo de retlw DT “MICROCONTROLADORES”,0x08,.30

13 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO TAREA 2 Explique con un ejemplo que hacen las siguientes directivas : MESSG ERROR IF Y ENDIF

14 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO RETARDOS Qué es un ciclo de máquina? Cuánto tiempo tarda en ejecutarse una instrucción bsf con un cristal de 4 Mhz? Cuánto tiempo tarda en ejecutarse una instrucción call con un cristal de 4 Mhz? Cuántos ciclos de máquina se necesitan para generar un retardo de 1.5 ms con un cristal de 4 Mhz?

15 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO MPLAB : los tiempos se miden con el stopwatch. –Dubugger Stopwatch Instrucción NOP (No operación): 1 ciclo de máquina o de instrucción. No altera registros ni banderas

16 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO Retardo Lazo Simple Algoritmo 1.Carga contador con un valor inicial 2.Tiempo de espera 3.Decrementa contador 4.Contador llego a cero A. Si Termina B. No vuelve a 2

17 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO Ret_1ms;el llamado aporta 2 cm movlw d’249’;1 cm. Carga K movwf cont;1 cm Ciclo_1ms nop;1cm * K decfsz cont,1;(K-1)*1cm(No salta) + 2 cm (Salta) goto Ciclo_1ms;(K-1)*2cm return;2cm Tiempo = 2 + 1 +1 + (K*1) + (K-1)*1 + 2 + (K-1)*2 +2 Con K = 249 Tiempo = 1001 cm

18 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO Retardo Lazo anidado Algoritmo 1.Carga contador2 con un valor inicial 2.Carga contador1 con un valor inicial 3.Tiempo de espera 4.Decrementa contador1 5.Contador1 llego a cero A. Si va a 6 B. No vuelve a 4 6. Decrementa contador2 7. Contador2 llego a cero A. Si Termina B. No vuelve a 2

19 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO Ret_1ms;el llamado aporta 2 cm movlw d’1’;1 cm. Carga N movwf cont2;1 cm Ciclo_Ext movlw d’249’;N*1 cm. Carga K movwf cont1;N*1 cm Ciclo_Int nop;1cm * K *N decfsz cont1,1;(K-1)*N*1cm(No salta) + N*2 cm (Salta) goto Ciclo_Int;(K-1)*N*2cm decfsz cont2,1;(N-1)*1cm(No salta) + 2 cm (Salta) goto Ciclo_Ext;(N-1)*2cm return;2cm Tiempo = 2 + 1 + 1 + (N*1) + (N*1) + (K*N*1) +[(K-1)*N*1] +(N*2) + [(K-1)*N*2] + [(N-1)*1] +2 + [(N-1)*2] +2 Tiempo = 8+N+N+KN+KN-N+2N+2KN-2N+N-1+2N-2 Tiempo = 5 + 4N + 4KN = 1005 cm

20 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO TAREA 3 Cómo se conectan al microcontrolador los siguientes periféricos y que voltajes y corrientes pueden soportar? -Interruptores -Pulsadores -Entradas con optoacopladores -Sensores(óptico, infrarrojo, pasivo de luz,proximidad, realice la busqueda con 5 tipos de sensores) -Diodo Led -Display de 7 segmentos -Zumbador -Motor paso a paso -Motor de corriente continua -Servomotor -Relé -Fototriac -Triac

21 NAYIBE CHIO CHONCHIO@UNAB.EDU.CO


Descargar ppt "BUCLES – SUBRUTINAS – RETARDOS MICROCONTROLADORES."

Presentaciones similares


Anuncios Google