6
PROGRAMACION EN ENSAMBLADOR DEL MICROPROCESADOR Procedimiento 1. Seguimos las instrucciones dadas por el profesor y desarrollamos los códigos como prueba de escritorio 2. Una vez realizado el primer paso procedimos a pasar dichos códigos al simulador JP-1 ensamblador del microprocesador. 3. Comprobamos su funcionamiento y guardamos los resultados. Problema 1 Escribir un programa en ensamblador que realice una secuencia en el registro R0 según lo indicado a continuación. Un ‘1’ lógico aparece en el bit menos significativo mientras que los otros siete bits están en ‘0’, luego este ‘1’ se desplaza hacia la izquierda hasta llegar a la posición del bit más significativo (bit 7). Al llegar el ‘1’ a la posición 7, debe entonces desplazarse hacia la derecha hasta llegar al bit menos significativo otra vez. La secuencia se debe repetir por siempre. Problema 2 Una bomba sumergible se utiliza para sacar agua de un pozo profundo y enviarla a través de tuberías para utilizarla en distintas actividades. La bomba siempre debe estar sumergida en el agua, para que la lubricación sea efectiva. Si la bomba llegara a funcionar fuera del agua, corre el peligro de quemarse. Por esta razón se coloca un sensor ligeramente arriba de la bomba que al quedar fuera del agua envía una señal (0 lógico) a un microprocesador y este ordena detener la bomba. Para que la bomba vuelva a arrancar se ubica otro

Lab#4programacion en Ensamblador Del Microprocesador

Embed Size (px)

DESCRIPTION

Microprocesadores

Citation preview

PROGRAMACION EN ENSAMBLADOR DEL MICROPROCESADOR

Procedimiento1. Seguimos las instrucciones dadas por el profesor y desarrollamos los cdigos como prueba de escritorio 2. Una vez realizado el primer paso procedimos a pasar dichos cdigos al simulador JP-1 ensamblador del microprocesador.3. Comprobamos su funcionamiento y guardamos los resultados.

Problema 1Escribir un programa en ensamblador que realice una secuencia en el registro R0 segn lo indicado a continuacin. Un 1 lgico aparece en el bit menos significativo mientras que los otros siete bits estn en 0, luego este 1 se desplaza hacia la izquierda hasta llegar a la posicin del bit ms significativo (bit 7). Al llegar el 1 a la posicin 7, debe entonces desplazarse hacia la derecha hasta llegar al bit menos significativo otra vez. La secuencia se debe repetir por siempre.

Problema 2

Una bomba sumergible se utiliza para sacar agua de un pozo profundo y enviarla a travs de tuberas para utilizarla en distintas actividades. La bomba siempre debe estar sumergida en el agua, para que la lubricacin sea efectiva. Si la bomba llegara a funcionar fuera del agua, corre el peligro de quemarse. Por esta razn se coloca un sensor ligeramente arriba de la bomba que al quedar fuera del agua enva una seal (0 lgico) a un microprocesador y este ordena detener la bomba. Para que la bomba vuelva a arrancar se ubica otro sensor muy arriba de la bomba que al quedar dentro del agua enva una seal de un (1 lgico) al microprocesador y el micro ordena encender la bomba. El sensor inferior lo llamaremos sensor L (low) se conectar al bit 0 del puerto de entrada del micro; el sensor superior que llamaremos sensor H (high) se conecta el bit 7 del micro, y la orden de salida para encender la bomba ser el bit 0 del puerto de salida.

Resultados 1. CdigosSecuencia en el registro R00 LDI,11 STA,R02 ROTL,R03 LDI,1284 CMP,R05 JNZ,36 ROTR,R07 LDI,18 CMP,R09 JNZ,710 HALT

Bomba sumergible0 LDI,01 STA,R02 LDI,13 STA,R14 LDI,1295 STA,R26 IN7 CMP,R08 JZ,139 JMP,1210 LDI,111 OUT12 JMP,613 LDI,014 OUT15 IN 16 CMP,R117 JZ,1318 JMP,10

Tabla #1PROGRAMA ENSAMBLADORDESCRIPCIN DE FUNCIONAMIENTO

1. Secuencia para el registro R0Para realizar este programa desarrollamos un cdigo cuyo funcionamiento es: empieza al cargar el acumulador del micro con el numero 1 (00000001) el cual es nuestra referencia 1, luego escribimos el registro R0 con este mismo valor para guardarlo, rotamos este registro hacia la izquierda, cargamos el acumulador con un nuevo valor, 128 (10000000), nuestra referencia 2, el cual nos permitir hacer una comparacin para establecer hasta dnde puede llegar la rotacin del registro R0, cuando esta comparacin pone la z en 1 se le indica al programa que debe empezar a rotar este registro hacia la derecha, si colocamos el acumulador en el valor de referencia 1 al comparar nuevamente y z sea 1 el programa debe detenerse.

2. Bomba sumergibleEsta bomba debe ser controlada por dos sensores H (high) y L (low) la explicacin de funcionamiento se describe a continuacin: nuestro programa para la bomba empieza por establecer un valor para el cual el motor de la bomba est funcionando y un valor que indique al micro que el motor de la bomba debe apagare, sabiendo que el sensor H debe estar conectado al bit 0 del puerto de entrada y el sensor L al bit7 del puerto de entrada. Cargamos el acumulador con un valor de referencia 0 (00000000), (el indica que ninguno de los dos sensores estn cubiertos por agua) para luego guardarlo en el registro R0, luego cargamos el acumulador con un nuevo valor de referencia 1 (00000001), (indica que solo el sensor H est cubierto por el agua) para guardarlo en un nuevo registro R1, se vuelve a cargar el acumulador con un nuevo valor 129 (10000001), (indica que ambos sensores estn cubiertos por el agua) para guardarlo en otro registro R2, se mantiene un monitoreo a travs del puerto de entrada a travs de dichos sensores, de manera que si ningn sensor est bajo el agua se debe enviar al bit 0 de la salida un 0 que indica que la bomba se mantiene apagada, si solo el sensor H est bajo el agua, debe mandarse tambin un 0 al bit 0 del puerto de salida (esto para evitar daos en el motor de la bomba por el hecho de que antes de cubrir el agua al sensor L vuelva a bajar el nivel), luego cuando ambos sensores estn cubiertos por el agua se debe enviar al puerto de salida un 1 en el bit 0 indicando q el motor est funcionando.

Cdigo introducido al simuladorImg. Cdigo fuente para la simulacin del primer problema propuesto, muestra una secuencia en el registro R0

Img. Cdigo fuente para la simulacin del una bomba sumergible controlada a travs de dos sensores