prácticas de informática industrial curso 2009-2010

Anuncio
I. T. I. en Electrónica Industrial. Prácticas de Informática Industrial. Curso 2009-10. Escuela Politécnica Superior. Universidad de Córdoba (España)
PRÁCTICAS DE INFORMÁTICA INDUSTRIAL
CURSO 2009-2010
PRÁCTICA Nº1
Sea un sistema sobre el que se desea controlar su temperatura. La lectura de una sonda de
temperatura se puede realizar leyendo el puerto 125 de E/S, de modo que su valor es la
temperatura en grados centígrados (entero con signo). Existe un calefactor y un refrigerador
que pueden activarse o desactivarse poniendo a uno o a cero, los bits 0 y 1, respectivamente,
del puerto 127 de E/S.
a) Realícese un procedimiento en lenguaje ensamblador 8086 que se encargue de monitorizar
permanentemente la temperatura del sistema, manteniéndola a un valor de TC ºC. La
técnica de control será la siguiente:
-
Estando desactivados tanto el calefactor como el refrigerador, existirá un ciclo de histéresis
de valor H, de manera que si la temperatura baja de TC–H entonces se activará el
calefactor hasta que la temperatura alcance TC. Y si estando desactivados tanto el
calefactor como el refrigerador la temperatura supera TC+H entonces se activará el
refrigerador hasta que alcance TC.
-
Estando desactivados tanto el calefactor como el refrigerador, permanecerán así mientras
la temperatura T cumpla que TC–H ≤ T ≤ TC+H.
Al procedimiento se le pasará por el registro DL la temperatura de consigna, TC, como un
entero con signo cuya magnitud representa el valor de TC en grados centígrados, y a través de
DH se le pasará el valor de la histéresis, H, como entero sin signo. Diséñese el procedimiento
como uno que no tiene fin una vez llamado (no hay retorno). Deberá diseñarse el código de
manera que se trabaje con tres variables locales implantadas en registros internos: una para la
temperatura de consigna, otra para la consigna más la histéresis, y otra para la consigna
menos la histéresis.
b) Aunque en este caso no es estrictamente necesario recurrir a ello, modifíquese el
procedimiento anterior de manera que en lugar de variables locales implantadas en registros
internos se usen tres variables implantadas en la memoria.
c) Modifíquese el procedimiento realizado en el primer apartado suponiendo ahora que la
temperatura de consigna y la histéresis se han pasado por la pila (TC primero, en forma de
palabra cuyo octeto alto es despreciable, y a continuación lo mismo con H).
Objetivos de la práctica:
•
Comprender el paso de parámetros por valor a través de registros y de la pila del sistema.
•
Implementación de variables locales en registros internos y en la memoria.
•
Implementar en ensamblador la toma de decisiones.
•
Uso de instrucciones lógicas para controlar bits individuales de operandos.
•
Realización de procesos básicos de E/S.
•
Implementación de un algoritmo básico de control de temperatura.
•
Apreciar que ciertos procesos de control de periféricos no tienen necesariamente por qué
ser complejos, al menos en el plano puramente lógico.
© Octubre 2009, Antonio Moreno Fdez.-Caparrós.
Depto. Arquitectura de Computadores E. y T. Electrónica. Área de A. y T. C. (UCO, España)
1
I. T. I. en Electrónica Industrial. Prácticas de Informática Industrial. Curso 2009-10. Escuela Politécnica Superior. Universidad de Córdoba (España)
ºC
1= marcha
0= paro
CALEFACTOR
Lectura
REFRIGERADOR
7
0
1= marcha
0= paro
10
TEMPERATURA
PUERTO 127
PUERTO 125
© Octubre 2009, Antonio Moreno Fdez.-Caparrós.
Depto. Arquitectura de Computadores E. y T. Electrónica. Área de A. y T. C. (UCO, España)
2
I. T. I. en Electrónica Industrial. Prácticas de Informática Industrial. Curso 2009-10. Escuela Politécnica Superior. Universidad de Córdoba (España)
PRÁCTICA Nº2
Sea un motor paso a paso unipolar cuyo control del movimiento se realiza actuando sobre tres
bobinas, pudiéndose excitar o no. El campo magnético generado por la excitación de éstas, en
el orden adecuado, consigue el movimiento del rotor del motor. El siguiente diagrama muestra
la manera en que hay que secuenciar la magnetización para conseguir el movimiento en el
sentido deseado, horario o antihorario. Cada patrón de excitación, ofrecido al intervalo
oportuno, permite definir no sólo el sentido sino la velocidad.
MOVIMIENTO ANTIHORARIO
FASE 3
FASE 2
FASE 1
A
B
C
D
( A…)
MOVIMIENTO HORARIO
Al presentar la excitación A el motor avanza en sentido horario una posición, si de aquí se pasa
a excitar con la B se vuelve a avanzar otra posición, y lo mismo al ir avanzando en la secuencia
C D
A B C D A y así cíclicamente. Si la secuenciación se realiza en el orden
inverso entonces el motor va moviéndose en sentido antihorario. Es decir, si la última
excitación aplicada al motor paso a paso ha sido la D, entonces si se desea avanzar una
posición será necesario aplicar la excitación A, pero si lo que se desea es retroceder una
posición entonces la excitación a aplicar será la C.
Sabiendo que cada arrollamiento (en la figura, FASE) del motor paso a paso se excita
mediante un bit del puerto 7 (bit 0 a la fase uno, el 1 la dos, y el 2 la tres, nivel activo a alta), y
que cada cambio de excitación hace avanzar –o retroceder– el motor un lapso de 11’25º
(360º/32), diséñese un procedimiento que permita mover el motor un cierto número de
posiciones o pasos en el sentido deseado. El número de pasos se le pasará al procedimiento a
través del registro CL, y el sentido a través de la bandera de acarreo (C
0 para sentido
horario, y C
1 para el antihorario). Supóngase que existe una subrutina DEMORA_20ms, ya
diseñada (véase como caja negra), a la que hay que llamar cada vez que se excita el motor
paso a paso para que tenga tiempo a responder a las excitaciones que se le van presentando.
Objetivos de la práctica:
•
Manejo de tablas de datos y su recorrido secuencial cíclico.
•
Manejo de las instrucciones de E/S.
•
Definición y manejo de variables locales.
•
Apreciar cómo una bandera del registro de estado puede utilizarse como variable booleana.
•
Apreciar que ciertos procesos de control de periféricos no tienen necesariamente por qué
ser complejos, al menos en el plano puramente lógico.
Consejos para la realización de la práctica
No debe olvidarse que la rutina deberá conocer cuál ha ido la última excitación aplicada al
motor paso a paso (variable local), para poder seguir secuenciando la excitación en el orden
oportuno. Lo que no hay que hacer es excitar siempre partiendo en el mismo punto, puesto que
la rutina que se pide diseñar podría formar parte de una aplicación superior desde la que en
distintos momentos se la llame. En definitiva, deberá definirse y mantenerse una variable local
que tenga la información sobre la última excitación aplicada al motor paso a paso.
© Octubre 2009, Antonio Moreno Fdez.-Caparrós.
Depto. Arquitectura de Computadores E. y T. Electrónica. Área de A. y T. C. (UCO, España)
3
I. T. I. en Electrónica Industrial. Prácticas de Informática Industrial. Curso 2009-10. Escuela Politécnica Superior. Universidad de Córdoba (España)
CRITERIO DE ELABORACIÓN DE LOS GUIONES DE PRÁCTICAS
Deben realizarse al menos cinco prácticas, a elegir libremente de entre las propuestas; dos de
ellas son voluntarias y su realización se valorará como un extra. El guión de cada práctica
realizada debe responder a la siguiente estructura:
-
Enunciado.
-
Explicación sobre el enfoque utilizado, tanto genérico (algoritmo) como de planificación de
los recursos (variables abstractas definidas y su implementación concreta en ensamblador:
registros, memoria, etcétera).
-
Diagrama ASM, si fuese preciso por la complejidad del algoritmo planteado. El diagrama o
diagramas que se planteen deben responder a un criterio coherente desde el punto de vista
del nivel de abstracción. Si algún proceso de un diagrama ASM se cree necesario
especificar con mayor nivel de detalle, puede realizarse sin necesidad de re-incardinarlo en
todo el diagrama completo.
-
Listado del código fuente, que deberá haberse escrito con los comentarios oportunos (del
estilo de los utilizados en los ejemplos del libro o de los ejercicios de examen resueltos);
esto es, un comentario nunca debe reflejar lo evidente sino aspectos de un nivel de
abstracción superior al que refleja cada instrucción o grupo de instrucciones.
SOBRE LA DEFENSA DE LAS PRÁCTICAS
Cada práctica realizada, cuyo orden de realización no tiene por qué coincidir con el
reflejado en estos enunciados, deberá ser mostrada al profesor. Esto se podrá realizar de
alguna de las siguientes maneras:
•
A medida que se vayan finalizando. Esta es la manera recomendada. No obstante,
debido al elevado número de grupos y dada la limitación del tiempo disponible en cada
sesión de trabajo en el Centro de Cálculo, puede suceder que no se pueda atender a todos
los que lo soliciten. Si éste fuese el caso, pueden enseñarse las prácticas en el despacho
del profesor, preferiblemente en horario de tutorías.
•
Por lotes. En este caso, se enseñarán en el despacho del profesor, preferiblemente en
horario de tutorías, o en cualquier otro horario que se haya acordado ex profeso.
•
Una vez finalizado el período lectivo del cuatrimestre. En este caso cabe distinguir dos
casos:
- Se tiene la intención de presentarse al examen ordinario del 1er cuatrimestre.
En este caso deberá entregarse al profesor los guiones con una antelación de
al menos cuatro días con respecto a la fecha de defensa, la cual será acordada
entre alumno y profesor. Esta fecha de defensa no podrá ser posterior al
viernes 19 de febrero de 2010.
-
No se tiene intención de presentarse al examen ordinario de febrero: en este
caso puede presentarse el guión y hacer la defensa en cualquier instante que
se considere oportuno y se acuerde con el profesor. La fecha tope de entrega
de los guiones será el viernes día 3 de septiembre de 2010, y la defensa no
podrá ser posterior al martes 10 de septiembre de 2010.
Para la defensa en el despacho, o para cualquier consulta en él, se deberá venir con el
correspondiente disquete –o memoria USB– con el código fuente oportuno. Este código fuente
deberá estar escrito en código ASCII puro y no en el formato de documento DOC utilizado para
la elaboración de los guiones (texto con formato, que no resulta apto para ser utilizado por un
programa ensamblador).
© Octubre 2009, Antonio Moreno Fdez.-Caparrós.
Depto. Arquitectura de Computadores E. y T. Electrónica. Área de A. y T. C. (UCO, España)
4
Descargar