You are on page 1of 12

Escuela Politcnica Superior de Elche

4 Ingeniera Industrial

EXAMEN DE SISTEMAS ELECTRNICOS Y AUTOMTICOS 2 Parte: Microcontroladores + Instrumentacin


Nombre:

______________________________________________________________________ 29 de junio de 2007

PROBLEMA 1 (3 puntos)
El contenido de la memoria de programa del PIC16F84A a partir de la posicin 0000h es el siguiente:

Deduce con ayuda del manual el programa all almacenado. Si el programa anterior se ejecuta sobre un microcontrolador con el conexionado que muestra la figura 1, qu carcter aparecer en el display 7 segmentos si todas las lneas de PORTA (RA3:RA0) se conectan a tierra?

a b c d e f g

Figura 1. Microcontrolador gobernando un display 7 segmentos

Figura 2. Display 7 segmentos

SOLUCIN:

ORG Inicio bsf clrf salida. movlw entrada. movwf bcf Principal movf andlw call movwf goto

0 STATUS,RP0 PORTB b'00011111' PORTA STATUS,RP0 PORTA,W b'00001111'

; El programa comienza en la direccin 0. ; Acceso al Banco 1. ; Las lneas del Puerto B se configuran como ; Las 5 lneas del Puerto A se configuran como ; Acceso al Banco 0. entrada Mscara para quedarse con el valor de las entradas correspondientes al nibble bajo. Convierte cdigo binario a 7segmentos. Resultado se visualiza por el puerto de salida.

; Lee la ; ; Binario_a_7Segmentos ; PORTB ; Principal

; Subrutina "Binario_7Segmentos" ------------------------------------------------------; Binario_a_7Segmentos ; Tabla para display de 7 segmentos. addwf PCL,F Tabla retlw 3Fh ; El cdigo 7 segmentos para el "0". retlw 06h ; El cdigo 7 segmentos para el "1". retlw 5Bh ; El cdigo 7 segmentos para el "2". retlw 4Fh ; El cdigo 7 segmentos para el "3". retlw 66h ; El cdigo 7 segmentos para el "4". retlw 6Dh ; El cdigo 7 segmentos para el "5". retlw 7Dh ; El cdigo 7 segmentos para el "6". retlw 07h ; El cdigo 7 segmentos para el "7". retlw 7Fh ; El cdigo 7 segmentos para el "8". retlw 67h ; El cdigo 7 segmentos para el "9". retlw 77h ; El cdigo 7 segmentos para el "A". retlw 7Ch ; El cdigo 7 segmentos para el "B". retlw 39h ; El cdigo 7 segmentos para el "C". retlw 5Eh ; El cdigo 7 segmentos para el "D". retlw 79h ; El cdigo 7 segmentos para el "E". retlw 71h ; El cdigo 7 segmentos para el "F".

En un display de 7 segmentos conectado al Puerto B se visualiza la cantidad leda por el Puerto A. Si por la entrada se lee "---0000", en el display se visualiza "0".

PROBLEMA 2 (2 puntos)
Si el siguiente programa se ejecuta sobre un PIC16F84A montado sobre la tarjeta de simulacin EasyPIC (fclock=8MHz), qu ocurrir?. Justifica tu respuesta mediante la interpretacin del programa, indicando que funcin realiza cada instruccin o bloque de instrucciones (No se valorar la descripcin de cada instruccin por separado). Recuerda que en la placa EasyPIC todas las lneas de entrada/salida del PIC estn conectadas a pulsadores y leds luminosos.
; ZONA DE DATOS ********************************************************************** __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _XT_OSC LIST P=16F84A INCLUDE <P16F84A.INC> ; ZONA DE CDIGOS ******************************************************************** ORG Inicio bsf movlw movwf clrf bcf clrf clrf Principal movf movwf goto END STATUS,RP0 b'00111000' OPTION_REG TRISB STATUS,RP0 TMR0 PORTB TMR0,W PORTB Principal 0

SOLUCIN:
;************************* Timer0_contador.asm ************************************ ; ; Este programa comprueba el funcionamiento del Timer 0 como contador de los impulsos ; aplicados a la lnea RA4/T0CKI, donde se ha conectado un pulsador. Cada vez que ;presiona el pulsador se incrementa el contenido del TMR0 y la cuenta se visualiza en ;binario en los LEDS conectados a PORTB. ; ; Como es un incremento por cada impulso aplicado al pin TOCKI no es necesario asignarle ; divisor de frecuencia al TMR0, por tanto, el Prescaler se asigna al Watchdog. ; ; ZONA DE DATOS ********************************************************************** __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_OFF & _XT_OSC LIST P=16F84A INCLUDE <P16F84A.INC> ; ZONA DE CDIGOS ******************************************************************** ORG 0 Inicio bsf STATUS,RP0 ; Acceso al Banco 1. movlw b'00111000' ; TMR0 como contador por flanco descendente movwf OPTION_REG ; RA4/T0CKI. Prescaler asignado al Watchdog. clrf TRISB ;configura todos los bits de PORTB como salidas bcf STATUS,RP0 ; Acceso al Banco 0. clrf TMR0 ; Inicializa el contador. clrf PORTB ; Inicializa PORTB ; La seccin "Principal" es de mantenimiento. Slo se dedica a visualizar el Timer 0. Principal movf TMR0,W ; Lee el Timer 0. movwf PORTB goto Principal END

PROBLEMA 3 (2 puntos)
El programa Pulsadores.asm, para el PIC16F877A, realiza la siguiente tarea: Cada vez que se presionan los pulsadores conectados a las lneas RB7 y RB6, en el mdulo LCD se visualizar el nombre del pulsador activado: Pulsador RB7 o Pulsador RB6. En el programa Pulsadores.asm se utiliza la tcnica de polling o por sondeo para la lectura de las entradas. Modifica el cdigo del programa Pulsadores.asm para que realice la misma tarea, pero esta vez, utilizando las interrupciones RBI para detectar el cambio de nivel en las entradas RB7 y RB6. Puedes utilizar el cuadro de la pgina 5 para escribir tu programa

;************************************ pulsadores.asm ********************************** ; ; A las lneas RB7 y RB6 se conectan dos pulsadores. ; En el mdulo LCD se visualizar el nombre del pulsador activado: "RB7" o "RB6". ; ; ZONA DE DATOS ********************************************************************** __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC LIST P=16F877A INCLUDE <P16F877A.INC> CBLOCK 0x20 Contador ENDC #DEFINE #DEFINE EntradaRB7 EntradaRB6 PORTB,7 PORTB,6

; ZONA DE CDIGOS ******************************************************************** ORG goto Inicio call movlw call bsf bsf bsf bcf Principal btfsc call btfsc call goto LCD_Inicializa MensajeInicial LCD_Mensaje STATUS,RP0 EntradaRB7 EntradaRB6 STATUS,RP0 EntradaRB7 VisualizaRB7 EntradaRB6 VisualizaRB6 Principal ; Visualiza el mensaje inicial. ; Acceso al Banco 1. ; Las lneas se configuran como entrada. ; Acceso al Banco 0. ; Est presionado el pulsador RB7? ; Est presionado el pulsador RB6? 0 Inicio

; Subrutinas "VisualizaRB7" y "VisualizaRB6" -------------------------------------------VisualizaRB7 call LCD_Borra movlw MensajeRB7 call LCD_Mensaje return VisualizaRB6 call LCD_Borra movlw MensajeRB6 call LCD_Mensaje return

; Visualiza el mensaje para RB7.

; Visualiza el mensaje para RB6.

; "Mensajes" ---------------------------------------------------------------------------; Mensajes addwf PCL,F MensajeInicial DT "Editorial Ra-Ma", 0x00 MensajeRB7 DT " Pulsador RB7 ", 0x00 MensajeRB6 DT " Pulsador RB6 ", 0x00 INCLUDE INCLUDE INCLUDE END <LCD_EASY.INC> <LCD_MENS.INC> <RETARDOS.INC>

; SOLUCION DEL PROBLEMA 2 ; ZONA DE DATOS ********************************************************************** __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC LIST P=16F877A INCLUDE <P16F877A.INC> CBLOCK 0x20 Contador ENDC #DEFINE EntradaRB7 PORTB,7 #DEFINE EntradaRB6 PORTB,6 ; ZONA DE CDIGOS ******************************************************************** ORG goto ORG goto Inicio call movlw call bsf bsf bsf bcf movlw movwf Principal sleep goto LCD_Inicializa MensajeInicial LCD_Mensaje STATUS,RP0 EntradaRB7 EntradaRB6 STATUS,RP0 b'10001000' INTCON Principal 0 Inicio 4 ServicioInterrupcion

; Visualiza el mensaje inicial. ; Acceso al Banco 1. ; Las lneas se configuran como entrada. ; Acceso al Banco 0. ; Activa interrupcin por cambio en las ; lneas del Puerto B (RBIE) y la general (GIE). ; Pasa a modo bajo consumo esperando las ; interrupciones.

; Subrutina "ServicioInterrupcion" -----------------------------------------------------; ; Subrutina de atencin a la interrupcin. Detecta qu ha producido la interrupcin y ; ejecuta la subrutina correspondiente. ServicioInterrupcion call Retardo_20ms btfsc EntradaRB7 call VisualizaRB7 btfsc EntradaRB6 call VisualizaRB6 bcf INTCON,RBIF retfie ; Espera se estabilicen niveles. ; Est presionado el pulsador RB7? ; Est presionado el pulsador RB6? ; Retorna y rehabilita las interrupciones, GIE=1.

; Subrutinas "VisualizaRB7" y "VisualizaRB6" -------------------------------------------VisualizaRB7 call LCD_Borra movlw MensajeRB7 call LCD_Mensaje return VisualizaRB6 call LCD_Borra movlw MensajeRB6 call LCD_Mensaje return

; Visualiza el mensaje para RB7.

; Visualiza el mensaje para RB6.

; "Mensajes" ---------------------------------------------------------------------------Mensajes addwf PCL,F MensajeInicial DT "Editorial Ra-Ma", 0x00 MensajeRB7 DT " Pulsador RB7 ", 0x00 MensajeRB6 DT " Pulsador RB6 ", 0x00 INCLUDE <LCD_EASY.INC> INCLUDE <LCD_MENS.INC> INCLUDE <RETARDOS.INC> END

TEST(1.5 puntos. Resp Correcta = 0.15 puntos. Resp Incorrecta = -0.15 puntos)
Indica si los siguientes enunciados son verdaderos (V ) o falsos (F):

Los materiales que se utilizan para la fabricacin de sensores de efecto Hall son muy buenos conductores como el platino y el cobre.

F V

Las galgas extensiomtricas se basan en la variacin de la resistencia elctrica de un conductor o semiconductor cuando es sometido a un esfuerzo mecnico.

Los sensores capacitivos se basan en la variacin de la capacidad entre dos o ms conductores entre los que se encuentra un dielctrico en respuesta a la variacin de una magnitud fsica.

Las principales aplicaciones de los termistores son la medida de luz (fotometra) y la deteccin de cambios de luz en Domtica.

F V F V F

Los LVDTs son sensores utilizados para medir desplazamientos.

El sensor Pt100 es un sensor de temperatura de tipo resistivo, cuyo modelo de comportamiento es muy no lineal (es de tipo exponencial)

El efecto piezoelctrico consiste en la aparicin de una cierta carga elctrica cuando el material es sometido a algn tipo de deformacin.

Los microcontroladores PIC utilizan una arquitectura Von Neumann que se caracteriza por utilizar el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos.

El contador de programa (PC) es un registro interno que se utiliza para direccionar las instrucciones del programa de control que estn almacenadas en la memoria de programa. Este registro contiene la direccin de la prxima instruccin a ejecutar y se incrementa automticamente.

10

El registro de trabajo W (o acumulador) participa en la mayora de las instrucciones. Se localiza dentro de la memoria de datos en la zona de los registros de funciones especiales (SFR)

PROBLEMA 4 (1.5 puntos)

Un sensor potenciomtrico de valor nominal 100 , se encuentra conectado remotamente a un medidor, que se puede modelar como una impedancia resistiva de 300 k , y a una fuente de alimentacin de 5V mediante un esquema de 3 hilos tal como se muestra en la figura 1.

SENSOR POTENCIOMTRICO REMOTO

Rcable
R=100

R2=R(1-x) Rcable R1=Rx Vo L Rcable

Alimentacin Vi MEDIDOR

resistencia de los cables de conexin

200 m

Figura 3

a)Calculad la tensin en el medidor en el caso ideal que la resistencia del cableado sea despreciable (Rcable=0) . b) Calculad la tensin en el medidor si la resistividad de los cables es 60 /km y el sensor se encuentra a unos 200 m. c)Cmo se podra mejorar el funcionamiento del circuito de medida de la Figura 3 para que la tensin medida se asemeje al caso ideal?

10

SOLUCIN:
a)Calculad la tensin en el medidor en el caso ideal que la resistencia del cableado sea despreciable (Rcable=0) . Si despreciamos la resistencia de los cables y consideramos que la resistencia del medidor es muy alta (300k ) en comparacin con las del resto del circuito (decenas de ), el circuito resultante es el siguiente:

Vi R(1-x)

VOL = Vi

Rx = Vi x = 5x (V ) R(1 x ) + Rx VOL = 5x (V )

Rx

+ VOL
-

b) Calculad la tensin en el medidor si la resistividad de los cables es 60 /km y el sensor se encuentra a unos 200 m. Considerando la resistencia de los cables, el circuito resultante del esquema de medida de 3 hilos es el siguiente:

Vi Rcable
Rcable = 200m 60 = 12 1000m

R(1-x)
VOL = Vi Rx + Rcable 100 x + 12 =5 = 4.0323x + 0.4839 2 Rcable + R 24 + 100 (V )

Rx

+ VOL

VOL = 4.0323x + 0.4839 (V )

Rcable

11

c)Cmo se podra mejorar el funcionamiento del circuito de medida de la Figura 3 para que la tensin medida se asemeje al caso ideal?

El esquema de medida de 4 hilos, elimina la tensin de offset pero sigue teniendo una sensibilidad inferior a la ideal.
Considerando la resistencia de los cables, el circuito resultante del esquema de medida de 4 hilos es el siguiente:

Vi Rcable
60 = 12 1000m

Rcable = 200m

R(1-x)

VOL = I Rx =

2 Rcable + R

Vi

Rx =

5 100 x = 4.0323x 24 + 100

(V )

Rx

+ VOL
-

VOL = 4.0323 x (V )

Rcable

Para corregir el error de sensibilidad (previa correccin del error de offset mediante la utilizacin del circuito de 4 hilos) amplificaramos la seal con una ganancia G = (5/4.032)=1.24:

SENSOR POTENCIOMTRICO REMOTO

Rcable

R2 =R(1-x) Rcable R 1=Rx Vo L Rcable

Alimentacin Vi M EDIDOR

5x (V)

Rcable

resistencia de los cables de conexin

12

You might also like