Anda di halaman 1dari 15

UNIVERSIDAD EXPERIMENTAL NACIONAL POLITECNICA ANTONIO JOSE DE SUCRE VICE RECTORADO LUIS CABALLERO MEJIAS SISTEMAS DIGITALES II PROFESOR:

: GUILLERMO NARANJO

INTEGRANTES: JESSICA SABUGO EXP: 200410543 ROBERTO NIEVES EXP: 200510645

CARACAS, AGOSTO DE 2011

Cuestionario de PIC

1. Una instruccin que maneja un dato inmediato y que lo contiene en su cdigo OP, adnde lo enva? Cuando una instruccin utiliza un dato inmediato, su valor (literal) lo contiene su cdigo OP y en la ejecucin se carga en el registro W para su posterior procesamiento.

2. Por qu las rutinas deben ubicarse siempre en las 256 primeras posiciones de una pgina? Porque tiene 256 bytes disponibles como mximo la pila

3.

Cundo se carga el PC desde la salida de la ALU? Cuando ocurre un salto relativo los 8 bits de menos peso del PC se cargan desde la salida de la ALU que ha sumado al valor inicial del PC el valor del salto que se halla situado dentro del cdigo OP de la instruccin.

4. Si el valor del PC=E01h, determinar la direccin de la pagina de memoria de programa que apunta Cada pgina direccionada por 11 bits (211 = 2K) tiene un tamao de 07FF. Pgina1= (0005h-07FFh) Pgina3= (1000h-17FFh) Pgina2= (0800h-0FFFh) Pgina4= (1800h-1FFFh)

Si el PC=E01 entonces apuntara a la direccin de pagina que desde 0800h hasta 0FFFh correspondiente a la pagina dos.

5. Cmo afecta el registro estado al contenido del PC? Es similar al PC ya que de igual manera apunta a la prxima instruccin

Cuestionario de PIC

6. Cuando al autoincrementarse el PC traspasa una pgina y pasa a la siguiente, Qu cuidado debe tomar el programador? Cuando el PC apunta la ltima posicin de una pgina y se autoincrementa pasa a direccionar a la siguiente instruccin que estar situada en la primera posicin de la pgina siguiente. Cuando se produce un cambio de pgina, se deben actualizar los bits PA1 y PA0 del Registro de Estado porque, en caso contrario, cuando se ejecute una instruccin de salto, ste seguir controlando la pgina en la que se halla esta instruccin de salto.

7. Dnde apunta el PC despus de un reset? Cuando se genera un reset, los bits PA1 y PA0 del Registro de Estado toman el valor 0. El PC queda apuntando la ltima posicin de la ltima pgina que exista en la EPROM. Si en dicha posicin se coloca una instruccin de GOTO, se pasa a direccionar una posicin de la pgina 0.

8. A qu banco y posicin apunta el FSR si contiene el valor 1100 0000? El bit 7 del registro de estado junto con FSR, direccionan el banco de registros. Ese es el direccionamiento indirecto; es decir, entre el bit 7 del registro de estado y el bit 7 del registro FSR seleccionan el banco en el cual se va a trabajar, y los 6 bits de menor peso restantes del FSR direccionan dentro de ese banco. Entonces segn la tabla de bancos tenemos que el valor C0H (1100 0000) apunta al banco 3 y a la primera posicin del mismo. IRP 0 0 1 1 bit7 FSR 0 1 0 1 banco 0 banco 1 banco 2 banco 3

9. Cmo se puede activar o desactivar el perro guardin? Al iniciarse un programa, el watchdog timer esta activo y configurado por defecto con un intervalo de reset de ~32 [ms]. Para evitar esto el usuario debe configurar o detener el WDT (watchdog timer) antes de la expiracin del intervalo inicial. El watchdog timer (WDT) se configura como watchdog o como temporizador de intervalos con el registro WDTCTL. El registro WDTCTL es de 16 bits, protegido por contrasea y es de lectura y escritura. El acceso

Cuestionario de PIC

de escritura o lectura debe ser manejado por instrucciones de palabras y el acceso a escritura incluir la contrasea 05Ah en el byte superior, en cambio el acceso a lectura es con el valor 069h en el byte superior.

10. Se desea conseguir una temporizacin de 1.024ms en un PIC a 20MHz. Calcular el valor que hay que cargar en TMR0 si en el divisor de frecuencia se ha elegido el rango 1/128.

 

 

     

 

 

11. Si se desean contar siete impulsos con el TMR0 sin emplear el divisor de frecuencia, indicar el valor binario que hay que cargar en l. TMR0 se debe cargar con el valor de los impulsos que se desean contar restados de 256 el cual es el valor de desbordamiento, entonces: 256-7=249 Numero de pulsos a contar: 710 = b 00001010 Numero a cargar: 25610-710= 24910=b 11111001

12. Cul es el mximo rango del divisor de frecuencias para el TMR0 y para el perro guardin? El registro TMR0, por su estructura de 8 bits, el mximo de la cuenta est en 256 (podemos contar hasta  (entre 0 y 255). Y el del perro guardin es de 128.

Cuestionario de PIC

13. Cul es el mximo temporizacin que puede obtenerse con el Perro guardin al usar el mayor rango posible en el Divisor de frecuencia?

La temporizacin nominal con la que se halla programado el Perro guardin es de 18 ms, pero puede aumentarse utilizando el Divisor de frecuencia, con el cual, trabajando en el rango mayor, puede alcanzar hasta 2,3 segundos.

14. Si se carga en el registro TRISB el valor binario 1111 0000 desde el registro W, cmo quedan configuradas las lneas de la Puerta B? Tomando como premisa que para configurar la los pines como entrada, hay que cargar un 1 en el biestable de control de E/S mientras que hay que cargar un 0 si se desea que sea salida. Quedara PA7=PA6=PA5=PA4=Entradas y PA3=PA2=PA1=PA0=Salidas

15. Un PIC que funciona con un cristal de cuarzo de 10MHz ha tardado en 6 ms en realizar un programa y se sabe que tiene un 50% de instrucciones de salto Cuntas instrucciones tiene el programa en total? Frecuencia de reloj= 1/(10MHz) = 0.1 s, Ciclo de instruccin es de 0.1 x 4 = 0.4 s Instrucciones que realiza el programa. 6x10-3/0.4x10-6= 15000 Sabiendo que el 50% son instrucciones de salto y el otro 50% son instrucciones normales, entonces 5000 instrucciones serian normales y 5000 instrucciones serian de salto, teniendo en cuenta que estas ltimas utilizan dos ciclos de instruccin seria el doble de instrucciones. En resumen el programa tiene 10000 instrucciones.

16. Un programa en cuya ejecucin se realiza 500 instrucciones normales y 50 de salto es aplicado a un PIC a 20MHz Cunto tiempo tarda en completarlo?

Cuestionario de PIC

2ms 17. Si se supone que todo los registros del microcontrolador estn cargados con el dato 3A h, Cual es el registro que se modifica y con qu valor cuando se ejecuta la instruccin MOVLW 01010101b? SOLO EL REGISTRO W Y CON 55H

18. Partiendo del mismo estado de los registros que en el ejemplo anterior, Cual es el registro que se modifica y con qu valor cuando se ejecuta la instruccin DECFSZ TMRO? INTCON Y OPTION

19. El registro PCL tiene almacenado el valor F5h. Cmo queda afectado al ejecutar la instruccin BCF PC, 7? Pcl usa los bit 0 al 7 del registro pc Pcl= 1111 0101 si modificamos el bit 7 del pc entonces Pcl= 0111 0101 por lo tanto ahora ser 75h.

20. Se est manejando el cdigo OP correspondiente a una instruccin COMF, que tiene el siguiente formato: 0010 0100 0100. Si inicialmente todos los registros se supone que tiene almacenado el valor AAh, indicar como operan esta instruccin y que registro ve afectado su contenido Complementa los bits del registro 44h que es un registro de propsito en general y el resultado es almacenado en W Es decir si el registro tiene AAh=1010 1010 su resultado ser 0101 0101 =55h y ser guardado en W

Cuestionario de PIC

Op code D registro 00 1001 d fff ffff 0010 0 100 0100

21. Una instruccin DECF tiene el cdigo OP 0000 1110 0001. Si todos los registros tienen el valor 33h inicialmente, Cual queda afectado? DECF f,d (Decrementa f en 1 ), cdigo op= 00 0011 d fff ffff Esta pregunta esta mal formulada ya que el codico op es como se muetra anteriormente Ahora si el cdigo op del decf fuera 00 0011 1 110 0001 entonces estara decrementado un registro de propsito en general que es el 61h y su resultado se almacena en el registro 61h Y es decir que decrementa el valor 33h y el valor se almacena en la direccin 61h

22. Qu admisin puede tener una instruccin MOVF TMRO, 1(d=1)? Transferir el valor del contador TMR0 directamente en el registro 1.

23. Cmo se activa la generacin de interrupcin externa? Las interrupciones externas pueden ser activadas por nivel o por flanco (MCUC)

24. Qu sucede cuando se produce un fallo en la alimentacin de los PIC de la gama media? Ocurre un (brownout), se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentacin (VDD) es inferior a un voltaje mnimo (brownout). Mientras el voltaje de alimentacin sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor.

Cuestionario de PIC

25. Qu ocurre con los bits GIE cuando se acepta una interrupcin? El bit GIE del registro INTCON es puesto a cero, lo que prohbe cualquier otra interrupcin.

26. Cmo se averigua la causa que ha provocado una interrupcin? Para conocer que causa ha provocado la interrupcin se exploran las banderas, tres de las cuales se ubican en el registro INTCON y la cuarta, EEIF, que se pone a 1 cuando finaliza la escritura de la EEPROM, se halla en el bit 4 del registro EECON1

27. Qu utilidad tiene el modulo de tensin de referencia? Este modulo est disponible en los microcontroladores PIC16C62X y consiste en una cadena de 16 resistencias de precisin, que proporcionan 16 valores distintos de tensin en dos rangos posibles (en total 32 valores de tensin). La tensin de referencia seleccionada puede obtenerse en el exterior de la cpsula en la patita RA2, cuando el bit<2> (VROE) del registro VRCON est en 1. Con los 4 bits de menos peso de dicho registro se selecciona uno de los 16 valores posibles. El bit<5> (VRR) de VRCON selecciona el rango (bajo o alto) y el bit de ms peso activa o desactiva el funcionamiento de todo el modulo. En la figura 6-6 se muestra el esquema electrnico y la funcin de los bits del re Los valores de tensin obtenidos en este modulo, adems de ser accesibles externamente, tambin se utilizan internamente como tensin de referencia de los comparadores analgicos. Tras un Reset se borran todos los bits de VRCON, quedando desconectado del modulo. En modo de Reposo es conveniente desconectar este modulo para reducir el consumo al mximo registro VRCON.

28. Cul es la misin de un comparador analgico? Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que acta como comparador entre una seal _ja de referencia y otra variable que se aplica por una de las patitas de la cpsula. La salida del comparador proporciona un nivel lgico 1 0 segn una seal sea mayor o menor que la otra. Tambin hay modelos de microcontroladores con un mdulo de tensin de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

Cuestionario de PIC

29. Por qu el TMR1 puede utilizarse para la implementacin de un reloj en tiempo real?. El temporizador TMR1 que hay en esta gama tiene un circuito oscilador que puede trabajar asncronamente y que puede incrementarse aunque el microcontrolador se halle en el modo de reposo (sleep), posibilitando la implementacin de un reloj en tiempo real. 30. Para qu sirve el temporizador TMR2?

El TMR2 solo est incorporado en unos pocos modelos de la gama media porque se trata de un temporizador de 8 bits diseado para usarse conjuntamente con el circuito de Mo-dulacin de Anchura de Impulsos (PWM). Se incrementa al ritmo de los impulsos que se le aplican (4.TOSC), que pueden ser dividi-dos por 1, por 4 o por 16 mediante un Predivisor. Cuando el valor de TMR2 coincide con el del PR2 (Registro de Periodo) se genera un impulso en la salida EQ y TMR2 pasa a 00h. Figura 6-11. PR2 es un registro especfico de lectura y escritura que cuando hay un Reset se carga con el valor FFh. Los impulsos producidos por EQ se aplican a un Post-divisor que puede dividirlos hasta 1:16, activando su salida al sealizador TMR2IF. El re-gistro T2CON regula los principales parmetros de este temporizador. El reset borra al Predivisor y al Post-divisor. Tambin lo hace al TMR2 cuando se ha ge-nerado como consecuencia del WDT, POR o MCLR. Cada vez que se escribe sobre el TMR2 o el TCON se borran el Predivisor y el Post-divisor. La salida EQ se puede utilizar como seal de reloj para el modulo de interfaz serie SSP 31. Definir el modelo I2C en la Puerta Serie Sncrona Este tipo de interfaz serie ha sido desarrollado por Phillips y utiliza solo dos hilos trenza-dos y una masa comn para la interconexin de los diversos dispositivos, que han tenido que ser diseados para soportar este protocolo, asegurando una gran fiabilidad en la comunicacin que llega a tolerar una velocidad mxima de 400 Kbps. Es capaz de interconectar hasta 128 dispositivos situados a gran distancia, por lo que resulta muy usado en edificios inteligentes, control de distribuciones de electricidad, agua y gas, piscifactoras, etc. El master es el que inicia y termina la transferencia general y provee de la seal de reloj. El esclavo (slave) es el dispositivo direccionado por el master, mediante 7 bits, lo que limita el nmero de componentes a 128.

Cuestionario de PIC

El inicio de la transmisin se determina con el bit de inicio (S) y el final con otro bit de stop (P). El bus serie de 2 hilos utiliza uno de ellos para transferir datos (SDA) y el otro para la seal de reloj (SCL). En el protocolo I2C cada dispositivo tiene asignada una direccin de 7 o de 10 bits que enva el mster cuando comienza la transferencia con uno de ellos. Tras la direccin se aade el bit de recepcin/transmisin o lectura/escritura (R/W). Los datos se transmiten con longitud byte y al finalizar cada uno se inserta un bit de reconocimiento ACK. Debe existir un modulo de arbitraje que gestione que solo hay un maestro en cada instante so-bre el bus compartido. 32. Cundo se produce una interrupcin desde el Conversor A/D? En cada momento la conver-sin solo se realiza con la entrada de uno de sus canales, depositando el resultado de la misma en el registro ADRES y activndose el sealizador ADIF, que provoca una inte-rrupcin si el bit de permiso correspondiente esta activado. Adems, al terminar la con-versin el bit GO/DONE se pone a 0. La tensin de referencia puede provenir de la ten-sin interna VDD o de la externa que se introduce por la patita AN3/Vref.

33. Qu hace la instruccin BTFSS WREG, 4? Salta si el bit 4 del registro es 1 34. Qu hace la instruccin BTFSS WREG, 2? Salta si el bit 2 del registro es 1 35. Si el TMROL = 11100110 y el sealizador = 0, Cmo quedan afectados estos elementos y el registro TMROL despus de ejecutar DAW TMROL, 0? La instruccin DAW lo que realiza es un ajuste decimal del registro. Antes de ejecutar la instruccin DAW DC=0 C=0 TMR0L= 1110 0110 C=1 TMR0L= 0100 0110 1110 + 0110 = 0100 DC=0 C=1

Despus de ejecutar la instruccin DAW

Cuestionario de PIC

36. Cmo queda afectado el registro TMROH = 0 x 53 si sobre el se ejecuta la instruccin SWAPF TMROL despus de ejecutar DAW TMROL, 0? Antes de la instruccin TMR0H = 0X53 = 0101 0011 Como los dos nmeros se encuentran en la base decimal, no se le suma 6 y permanece igual. Pero al tener la instruccin SWAPF se invierten los bucles, entonces: TMR0L = 0011 0101

37. Si WREG = 0 X A5, C = 0 Y DC = 0, Cmo quedan afectados estos elementos y el registro TMROL despus de ejecutar DAE TMROL, 0? Antes de instruccin REGW= 0xA5 = 1010 0101 C=0 1010 + 0110 =0000 Despus de instruccin TMR0L = 0000 0101 C=1 DC=0 DC=0 C=1

38. Cuando se concatenan TMR2:TMR1 y se usa como registro de periodo PR2:PR1, Cul es el sealizador que indica la vuelta al valor 0000 h? El sealizador que indica la vuelta al valor 0000h cuando se concatenan TMR2:TMR1 usando el registro de perodo (PR2:PR1) es timer1 cuando se encuentra en modo de 16 bits (T16 = 1). 39. Por qu deben ser inicializadas las variables que son parte de una estructura de bucle finito? Porque as aseguramos que no tenga un valor no deseado la variable que usaremos para controlar el bucle 40. Cundo necesita dos ciclos la instruccin DECFSZ? Cundo necesita solo uno? La Instruccin DECFSZ se ejecuta en 1 ciclo si slo decrementa y 2 ciclo si decrementa y salta la instruccin siguiente en el flujo del programa.

Cuestionario de PIC

41. Describir cmo afecta a las banderas C y Z la operacin SUBWF, segn el resultado Si Z esta activo quiere decir que ambos nmeros son iguales y por lo mismo el resultado fue cero Si C esta activo es que el resultado es positivo y F>W, si C es cero entonces el resultado fue negativo y F<W 42. Escribir otro segmento de cdigo que cambie un bit determinado a 0 usando la instruccin ANDLW En la instruccin ANDLW se aplica la operacin lgica AND entre la literal de 8 bits K y el registro W, dicho resultado ser colocado en el registro W. Teniendo en cuenta el valor K, debe tener en sus bits un 0 para que el resultado de la operacin AND con W sea 0 en el bit ya modificado. Entonces si se le agrega el valor de K 1101 1111 en el bit 5 siempre habr un 0 en el contenido de W, por ende el otro segmento agregado al cdigo seria: ANDLW b1101 1111 43. Por qu es necesario que cada subrutina que llamemos posea una instruccin RETURN? Esta instruccin retorna de una subrutina al programa principal en la instruccin siguiente a la llamada de la subrutina, tomando el valor almacenado en el stack para continuar. Es necesaria ya que con ella declaramos el fin de la subrutina 44. Puede una subrutina tener ms de una instruccin RETURN? Explique la respuesta SI; ya que solo la instruccin return es para salir de la sub rutina y depende tambin de la lgica usada es decir se pueden usar infinitos return pero solo basta uno para salirse de la sub rutina 45. Cules son los lmites de llamadas de una subrutina a otra subrutina? Podemos hacer hasta 8 llamadas a subrutinas una dentro de otra. A esto se le llaman subrutinas anidadas. 46. En qu se diferencian las instrucciones RETLW y RETURN? La diferencia con RETLW es que RETURN regresa sin cambiar a W. Este se utiliza para terminar una rutina y no se necesite ningn dato 47. Describa que hace el programa ensamblador cuando encuentra una directiva include Esta directiva indica que archivos debern tomarse en cuenta a la hora de compilar el cdigo. Normalmente se usa para incluir el archivo de PIC que el ensamblador tiene entre sus archivos,

Cuestionario de PIC

con el cual el compilador ser capaz de reconocer todos los registros especiales y sus bits. Esta lnea debe colocarse al principio, y tiene la siguiente sintaxis: #INCLUDE ; Lista de etiquetas de microchip 48. Explique cules son los sucesos que pueden producir una interrupcin? 1. Interrupcin externa provocada al activar la patita RB0/INT 2. Desbordamiento del TMR0 3. Cambio de estado en las lneas del Puerto B 4. Cambio de estado en el comparador analgico 49. Cul es la respuesta del microcontrolador a una interrupcin? Se expone ordenadamente la secuencia de acciones que se llevan a cabo cuando se atiende a una interrupcin. 1. Se activa una posible causa de interrupcin. El sealizador de dicha causa, el bit de permiso correspondiente y el global para todas las interrupciones (GIE) estn a nivel alto. 2. Para evitar que se produzca otra interrupcin mientras dura el tratamiento de la que se ha aceptado, el bit GIE se pone a 0. 3. El valor actual del PC se guarda en la Pila. 4. El PC se carga con el valor 0004h, que es el del vector de interrupcin. 5. La rutina de interrupcin comienza explorando el valor de los sealizadores, para de-terminar la causa que la ha provocado. 6. Segn la causa de la interrupcin, la rutina se bifurca a la subrutina correspondiente. 7. Se borran los sealizadores por software, antes de realizar el retorno. 8. Cuando se llega a la ultima instruccin de la rutina de interrupcin, que es la de RE-TURN, se carga en el PC el valor que inicialmente se guardo en la Pila y se pone el bit GIE = 1. 50. Cmo se habilita las interrupciones? Con los registro pie1 y pie2 51. Explique las diferencias entre las instrucciones RETURN y RETFIE En las instrucciones RETFIE y RETURN se realiza un retorno al programa principal despus de ejecutarse una subrutina. En la instruccin RETFIE se realiza un retorno despus de haber

Cuestionario de PIC

realizado una subrutina de interrupcin y se habilitan las interrupciones con el seteo del bit GIE del registro INTCON. En cambio el RETURN realiza el retorno de una subrutina

52. Describa las funciones de las rutinas de servicio de interrupcin RSI La rutina de servicio de interrupcin se encarga de efectuar la gestin del perifrico luego que la CPU deja de ejecutar la secuencia de instrucciones en la que se encontraba, todo esto sucede cuando ocurre una interrupcin en el microcontrolador.

Cuestionario de PIC

BIBLIOGRAFA

SISTEMAS ELECTRNICOS DIGITALES, Curso 2003-2004, Primer Curso de Ingeniera de en Automtica y Electrnica Industrial, Escuela Superior de ingenieros

PROGRAMACIN DE CONTROLADORES PIC- MICROCHIP, Araujo Diaz David, Mexico DF 20041 LOS PIC DE LA GAMA MEDIA, ARQUITECTURA Y TCNICAS DE PROGRAMACIN, Santiago Salamanca Mio, David Arroyo Muoz, Octubre 2003

INTRODUCCIN AL MICROCONTROLADOR, Paul Aguayo S., 10 de noviembre de 2004 Duque, Edison C., Curso Avanzado de Microcontroladores PIC, CEKIT, 1998