SlideShare una empresa de Scribd logo
1 de 26
Descargar para leer sin conexión
Ingeniería de Sistemas e Informática




 IMPLEMENTACION DE UN SISTEMA DE
ALARMA USANDO EL PUERTO PARALELO




              ASIGNATURA:

          Arquitectura del Computador




              INTEGRANTES:


          MEDINA CONGORA Ronald
         QUISPE HUAMAN Victor Antonio
           ZARATE MARQUEZ David




              Huancayo - 2012
TABLA DE CONTENIDO
INTRODUCCIÓN ..............................................................................................................................................3

FUNCIONAMIENTO.........................................................................................................................................4

DIAGRAMA DE FLUJO DEL PROGRAMA....................................................................................................5

DIAGRAMA PICTOGRAFICO .........................................................................................................................6

DIAGRAMA DEL CIRCUITO ...........................................................................................................................7

EXPLICACIÓN DEL PROGRAMA ..................................................................................................................9

CONCLUSIONES .......................................................................................................................................... 24

ANEXOS ......................................................................................................................................................... 25




   Sistema de Alarma usando puerto paralelo                                                                                                      Página Nº 2
INTRODUCCIÓN

Las nuevas tecnologías de información y comunicación que manejamos hoy en día
y que se han vuelto indispensables de alguna forma, tales como los
electrodomésticos de nuestros hogares, los proyectores de las universidades, las
computadoras tanto de escritorio como portátiles hacen que nuestras vidas sean
mas fáciles y tengamos la posibilidad de tener una mayor productividad para
nosotros mismos o para una empresa.


Hay que considerar que algunos artefactos van a depender de la entrada y control
de un ordenador pero esto lo realizan con uso de interfaces como USB inclusive
hoy en día la conexión convencional (cables) está siendo reemplazada por el
empleo de tecnologías inalámbricas.


Dentro de este ámbito proponemos en el presente trabajo mostrar el uso del puerto
paralelo en la creación de un sistema de alarma de 8 puntos, haciendo uso de un
ordenador de escritorio y un protoboard con cables y un multiplexor de 8:1


Haremos uso de los registros de estado, de datos y de control que están presentes
en los pines de nuestra conexión para puerto paralelo.
Para la creación del programa utilizaremos el emu 80x86 sobre el VMWare.


Los sistemas de información tratan el desarrollo, uso y administración de la
infraestructura de la tecnología de la información en una organización. Bajo este
enfoque el presente proyecto de investigación estaría estrechamente relacionado
con los sistemas de información ya que como en este y otros casos proporcionan
herramientas tecnológicas que servirán para el diseño, creación y aplicación de
productos, el sistema de alarma en si, un prototipo que serviría de simulación de
una casa en miniatura para una posterior implementación en un proyecto de mayor
magnitud.




 Sistema de Alarma usando puerto paralelo                                Página Nº 3
FUNCIONAMIENTO

El diseño del proyecto consiste en una maqueta en miniatura que representa un
inmueble de un piso, con una puerta principal y siete ventanas, dándonos en total 8
puntos de alarmas; las ventanas tienen los pulsadores en sus bases, mientras que
la puerta tiene el pulsador en la parte superior, estos pulsadores están conectados
mediante un cable que conforma un circuito prediseñado. Todas las alarmas
comparten el mismo cable a tierra, y para enviar señales envían una señal de 5V al
multiplexor que está instalado en una pequeña placa perforada situada dentro de la
casa.
Para enviar 5 voltios y alimentar el circuito utilizamos un pin del puerto paralelo, al
cual le enviamos el estado 1 de manera permanente.


LO QUE PUEDE HACER:
El usuario puede enviar señales al prototipo en todas las combinaciones posibles
desde todas las ventanas cerradas, hasta que todas estén abiertas.


LO QUE NO PUEDE HACER:
No se pudo realizar el cambio de color del programa mientras esta ejecutándose en
el código del sistema, se tuvo que mantener los colores básicos de blanco y negro
Implementamos el sistema con el sonido de un bip cuando se activan las alarmas,
el cual funcionaba ejecutando el programa en el EMU 80X86 pero al cargar en el
código del sistema no se escuchan estos bips, probablemente es debido al uso de
la maquina virtual.




 Sistema de Alarma usando puerto paralelo                                  Página Nº 4
DIAGRAMA DE FLUJO DEL PROGRAMA
                                                          DECLARACION DE MACROS


                                                         DECLARACION DE VARIABLES



                                                                        INICIO



  Bucle línea vertical izquierda        Bucle línea vertical derecha          Bucle línea horizontal superior    Bucle línea horizontal inferior




                                                                   Selector de alarma 1



                     Imprime alarma 1                                                                           Imprime alarma 1
                                                                          Compara bit
                          activa                                                                                  desactivada

                                                                   Selector de alarma 2



                     Imprime alarma 2                                                                           Imprime alarma 2
                                                                          Compara bit
                          activa                                                                                  desactivada


                                                                  Selector de alarma 3



                     Imprime alarma 3                                                                           Imprime alarma 3
                                                                         Compara bit
                          activa                                                                                  desactivada




                                                                   Selector de alarma 4



                     Imprime alarma 4                                                                           Imprime alarmas 4
                                                                          Compara bit
                          activa                                                                                   desactivada


                                                                   Selector de alarma 5



                      Imprime alarma 5                                                                          Imprime alarma 5
                                                                          Compara bit
                           activa                                                                                 desactivada




                                                                       Selector de alarma 6



                      Imprime alarma 6                                                                          Imprime alarmas 6
                                                                          Compara bit
                           activa                                                                                  desactivada


                                                                   Selector de alarma 7



                      Imprime alarma 7                                                                          Imprime alarma 7
                                                                          Compara bit
                           activa                                                                                 desactivada



                                                                   Selector de alarma 8



                      Imprime alarma 8                                                                          Imprime alarmas 8
                                                                          Compara bit
                           activa                                                                                  desactivada



Sistema de Alarma usando puerto paralelo                                                                                               Página Nº 5
DIAGRAMA PICTOGRÁFICO
Programa en
Asembler

                                 Computador




                                              Conexión a
                                              través de puerto
                                              paralelo



 Protoboard de
 instalación de
 circuito
 electrónico




                                                  Casa donde es
                                                  verificado los 8 puntos




   Sistema de Alarma usando puerto paralelo                      Página Nº 6
DIAGRAMA DEL CIRCUITO




Sistema de Alarma usando puerto paralelo      Página Nº 7
Sistema de Alarma usando puerto paralelo   Página Nº 8
EXPLICACIÓN DEL PROGRAMA

El programa para el control del sistema de alarmas está escrito en assembler,
utilizando los puertos de salida y entrada de un puerto paralelo, el código se explica
por bloques en las siguientes líneas:
El programa eta dividido en 4 bloques, el primero es el bloque de macros, luego el
bloque de modelo y segmento de pila, el bloque de datos y el bloque de códigos.




El primer bloque de macros está compuesto por todas las macros utilizadas en el
programa.
La macro mensaje, se utiliza para mostrar en pantalla un mensaje, utilizando la
función 09h de la interrupción 21h.




 Sistema de Alarma usando puerto paralelo                                  Página Nº 9
La macro cursor, se utiliza para determinar la ubicación del cursor, en un punto
determinado de la pantalla, utilizando la función 02h de la interrupción 10h.
La macro lectura, se utiliza para capturar los datos del puerto 379h y guardarlos en
el registro bl, luego utilizamos el comando and para filtrar los datos ingresados y
solo utilizar los bits de datos del puerto paralelo, que en este caso son los unos de
la línea de bits 01111000b.
La macro control, se utiliza para enviar datos al puerto 378h, para que el puerto
paralelo controle el multiplexor 8:1 y este controle el estado de los 8 puntos.




La macro mover, se utiliza para mover datos entre registros.
La macro publicar, se utiliza para mostrar los mensajes del nombre de las puertas y
de las alarmas activadas de los puntos, utilizando otras macros definidas
anteriormente, además de incrementar una variable, que en este caso es del
número de ventana que tenemos en el sistema.
Las macros ubicar y ubicar1, son utilizadas para determinar la posición del cursor y
para dibujar las líneas que simbolizan ventana abierta o cerrada y para incrementar
una variable.


Sistema de Alarma usando puerto paralelo                                   Página Nº 10
Las macros lineg y lineg1, son utilizadas para dibujar las líneas horizontales y
verticales de la casa.




El bloque 2 determina el modelo y el segmento de pila a utilizar en el programa.
En el bloque 3 se definen las variables utilizadas en el programa, constantes como
las mens, mensa1, mensa2, mensa3 y mensa5 y las variables v, línea, a, b.




Sistema de Alarma usando puerto paralelo                                Página Nº 11
El bloque de código define las instrucciones que se utilizan en el programa para
controlar las alarmas de los 8 puntos establecidos en el proyecto.
Se mueven los datos al registro de ax a ds, se ubica el símbolo ASCII a utilizar para
dibujar el perímetro de la casa que para nuestro proyecto es B1h “▒”, se ubica el
cursor para escribir el mensaje título del proyecto, se ubica el punto de inicio para
comenzar a dibujar las líneas verticales luego las horizontales.
Se ubica el cursor, luego se empieza a dibujar la línea comparando el límite inferior
que es la línea 21, y de la misma forma, se dibujan las demás líneas.




Sistema de Alarma usando puerto paralelo                                 Página Nº 12
El bucle1 permite el ingreso a la verificación de las alarmas en la ventana uno de
los 8 puntos, 7 ventas y una puerta.
Movemos al registro bl el byte 10000000b, que será enviado al puerto de salida
378h utilizando la macro control, utilizamos el bit más significativo, para mantener
un punto con 5V en el circuito implementado, que será utilizado para mandar los 5V
en el caso que la ventana este abierta, los últimos 3 bits del grupo de bytes, se
utilizaran para el control del multiplexor de 8:1, de acuerdo a la siguiente
configuración:


Sistema de Alarma usando puerto paralelo                                Página Nº 13
1000000b → Control de Ventana 1
1000001b → Control de Ventana 2
1000010b → Control de Ventana 3
1000011b → Control de Ventana 4
1000100b → Control de Ventana 5
1000101b → Control de Ventana 6
1000110b → Control de Ventana 7
1000111b → Control de la Puerta
Una vez enviado el control para verificar el punto 000 del multiplexor, que es en
nuestro caso para verificar la puerta número 1, captamos el puerto de entrada del
puerto paralelo, el 379h a través del registro de estado E3, de donde capturamos el
estado del bit número 4 00000000b o 00001000b, y luego lo comparamos con el
byte almacenado en bl, para determinar si el punto está activado o desactivado,
luego de la comparación, pasara al mensaje 1 o mensaje 2.
El mensaje 1 se ejecuta si es que el bit está en 0, que nos indica que la ventana
está cerrada, ubicamos el símbolo a dibujar en la línea de la ventana, que indique
ventana cerrada, para esto utilizamos el caracter ASCII CCh “╠” para las ventanas
1 y 5 y el caracter ASCII 0Fh “☼” para las ventanas 2, 3, 4, 6 y 7, para la puerta se
utilizara el carácter ASCII B0h “░”.
Ubicamos el puntero para dibujar las líneas de las ventanas o la puerta, utilizamos
la macro ubicar para realizar esta función, luego volvemos a ubicar el cursor para
borrar en primer lugar lo que este escrito en la línea y para luego escribir el mensaje
de la ventana “V-1”, y utilizamos una variable para ir incrementando el número de
ventanas hasta la numero 7.
El mensaje 2 se ejecuta si es que el bit de comparación es igual a 1, entonces se
ubica el caracter a imprimir para este caso utilizamos el ASCII 1Ah “→” que nos
indicara que la ventana está abierta(para las otras ventanas y la puerta utilizaremos
respectivamente el 18h “↓”, 19h “↑”), ubicamos el cursor, y luego imprimimos el
símbolo en una línea, luego ubicamos el cursor para borrar el mensaje antes escrito
y escribir el mensaje de alarma “Alarma V-1”, luego pasa a la segunda ventana, a la
tercera y hasta el final termina con la puerta para luego volver a verificar en un
bucle cerrado. Este procedimiento se repite con cada uno de los puntos a verificar,
de manera permanente.


Sistema de Alarma usando puerto paralelo                                  Página Nº 14
Programa en Assembler
;=======================================================
;PROGRAMA PARA VERIFICAR LAS ALARMAS DE UNA CASA
;AUTORES: -Quispe Huaman,Victor
           ; -Zarate Marquez, David
           ; -Medina Congora, Ronald
;FECHA: 07/12/12
;CURSO: Arquitectura del Computador
;DOCENTE: Ing. Marquez Solis, Yuri
;=======================================================
;1. BLOQUE DE MACROS
;=======================================================
mensaje MACRO texto ;Macro de mensajes
   mov ah,09h
   mov dx,offset texto
   int 21h
ENDM

cursor MACRO p,x,y ;Macro de ubicación del cursor
  mov ah,p
  mov dh,x
  mov dl,y
  int 10h
ENDM

lectura MACRO x ;Macro de captura de datos del registro 379h
   mov dx,x
   in ax,dx
   mov bl,al
   mov cl,01111000b
   and bl,cl
ENDM

control MACRO y    ;Macro de envio de datos al puerto de salida
  mov dx,y
  mov al,bl
  out dx,al
ENDM

mover MACRO h,v     ; Macro de mover datos entre registros
  mov a,h
  mov b,v
ENDM

publicar MACRO dato ;Macro para publicar el mensaje sobre las ventanas
  mensaje dato
  mensaje v
  inc v
ENDM

ubicar MACRO j
  cursor 02h,a,b
  mensaje linea ;Macro para publicar el mensaje sobre las ventanas
  inc a
  cmp a,j
ENDM

ubicar1 MACRO m      ;Macro para ubicar el punto de inicio de la linea y del mensaje sobre las ventanas



Sistema de Alarma usando puerto paralelo                                                                  Página Nº 15
cursor 02h,a,b
  mensaje linea
  inc b
  cmp b,m
ENDM

lineg MACRO c        ;Macro para dibujar las lineas verticales
  mensaje linea
  inc a
  cmp a,c
ENDM

lineg1 MACRO k       ;Macro para dibujar las lineas horizontales
  mensaje linea
  inc b
  cmp b,k
ENDM

;2. BLOQUE DE MODELO Y SEGMENTO DE PILA
;=======================================================
.MODEL small
org 100h
;3. BLOQUE DE DATOS
;=======================================================
.DATA
;Declaracion de variables usadas en el programa
mens db 'Programa para verificar Alarmas de una Casa','$'
mensa1 db 'V-','$'
v db ?
linea db ?
borrar db '     ','$'
mensa2 db 'Alarm V-',7,'$'
mensa3 db ' PUERTA','$'
bor db '         ','$'
mensa5 db 'Alarm',7,'$'
a db ?
b db ?

;4. BLOQUE DE CODIGO
;=======================================================
.CODE
start:
Inicio:
mov ax,@data
mov ds, ax

mov linea, 7Fh     ;Ubicacion del simbolo para imprimir en pantalla
add linea, 51
cursor 02h,1,18
mensaje mens

mover 5,10
;Dibujo del perimetro de la casa
Buclelinev:

 cursor 02h,a,b
 lineg 21      ;Bucles para el dibujo de la linea vertical
 jl Buclelinev
 mover 5,70



Sistema de Alarma usando puerto paralelo                              Página Nº 16
jge Buclelinev2

Buclelinev2:
 cursor 02h,a,b
 lineg 21
 jl Buclelinev2
 mover 5,30
 jge Buclelinev3

Buclelinev3:
 cursor 02h,a,b
 lineg 16
 jl Buclelinev3
 mover 10,52
 jge Buclelinev1

Buclelinev1:
 cursor 02h,a,b
 lineg 21
 jl Buclelinev1
 mover 5,10
 jge Buclelineh

Buclelineh:
 cursor 02h,a,b
 lineg1 71 ;Bucles para el dibujo de la linea horizontal
 jl Buclelineh
 mover 21,10
 jge Buclelineh1

Buclelineh1:
 cursor 02h,a,b
 lineg1 71
 jl Buclelineh1

;Inicio del bucle de verificacion de las alarmas
;Este conjunto de bucles se repiten permanentemente para mantener verificado el estado de las alarmas de la casa
;==========================================================================
Bucle1:
mov v,31h
mov bl, 10000000b ;Senal para el selector del mux
             ;Direccion del mux 000 y el bit mas significativo habilitado en 1 para alimentar al circuito de control
control 378h ;macro de salida de datos
jmp primero

;Verificacion de Alarma ventana 1
         primero:

       lectura 379h
       cmp bl,00000000b ; Comparacion del estado del bit de entrada
       je mensaje1
       cmp bl,00001000b ; Comparacion del estado del bit de entrada
       je mensaje2

       mensaje1:
       mov linea, 7Fh ;Ubicacion del simbolo a imprimir
       add linea, 79
       mover 9,10
       ventana12:



Sistema de Alarma usando puerto paralelo                                                                  Página Nº 17
ubicar 17     ;Bucle para dibujar la linea que representa la ventana
       jle ventana12

       cursor 02h,13,0
       mensaje bor ;Mensaje para borrar el mensaje anterior
       cursor 02h,13,7
       publicar mensa1 ;Escribe el nombre de la ventana
       jmp Bucle2

       mensaje2:
        mov linea,1Ah
       mover 9,10
       ventana13:
       ubicar 17     ;Dibuja la linea con flechas que indicaran el estado de alarma
       jle ventana13

       cursor 02h,13,0
       mensaje bor ;Imprime el mensaje de alarma activa
       cursor 02h,13,1
       publicar mensa2
       jmp Bucle2

;En las lineas siguientes se repiten los procesos anteriores con diferentes puntos de coordenadas para la ubicacion de las
diferentes ventanas y de la puerta

;Verificacion de Alarma ventana 2
;==========================================================================

Bucle2:
mov bl, 10000001b
control 378h
jmp segundo

       segundo:
       lectura 379h

       cmp bl,00000000b
       je mensaje13
       cmp bl,00001000b
       je mensaje14

       mensaje13:
       mov linea,0Fh
       mover 4,18
       ventana:
       ubicar1 22
       jle ventana

       cursor 02h,3,16
       mensaje borrar
       cursor 02h,3,19
       publicar mensa1
       jmp Bucle3

       mensaje14:
       mov linea,19h
       mover 4,18
       ventana1:
       ubicar1 22



Sistema de Alarma usando puerto paralelo                                                                Página Nº 18
jle ventana1
          cursor 02h,3,16
         mensaje borrar
         cursor 02h,3,16
         publicar mensa2
         jmp Bucle3
;Verificacion de Alarma ventana 3
;==========================================================================

Bucle3:

mov bl, 10000010b
control 378h
jmp tercero

          tercero:
          lectura 379h
          cmp bl,00000000b
          je mensaje3
          cmp bl,00001000b
          je mensaje4

          mensaje3:
          mov linea,0Fh
          mover 4,38
          ventana2:
          ubicar1 42
          jle ventana2

          cursor 02h,3,36
          mensaje borrar
          cursor 02h,3,39
          publicar mensa1
          jmp Bucle4

          mensaje4:
          mov linea,19h
          mover 4,38
          ventana3:
          ubicar1 42
          jle ventana3

          cursor 02h,3,36
          mensaje borrar
          cursor 02h,3,36
          publicar mensa2
          jmp Bucle4

;Verificacion de Alarma ventana 4
;==========================================================================
Bucle4:
mov bl, 10000011b
control 378h
jmp cuarto

          cuarto:
          lectura 379h
          cmp bl,00000000b
          je mensaje5



Sistema de Alarma usando puerto paralelo                                      Página Nº 19
cmp bl,00001000b
     je mensaje6

     mensaje5:
     mov linea,0Fh
     mover 4,58
     ventana4:
     ubicar1 62
     jle ventana4

     cursor 02h,3,56
     mensaje borrar
     cursor 02h,3,59
     publicar mensa1
     jmp Bucle5

     mensaje6:
     mov linea,19h
     mover 4,58
     ventana5:
     ubicar1 62
     jle ventana5

     cursor 02h,3,56
     mensaje borrar
     cursor 02h,3,56
     publicar mensa2
     jmp Bucle5

;Verificacion de Alarma ventana 5
;==========================================================================
Bucle5:
mov bl, 10000100b
control 378h
jmp quinto

     quinto:
     lectura 379h
     cmp bl,00000000b
     je mensaje15
     cmp bl,00001000b
     je mensaje16

     mensaje15:
     mov linea, 7Fh
     add linea, 79
     mover 9,70
     ventana14:
     ubicar 17
     jle ventana14

     cursor 02h,13,72
     mensaje borrar
     cursor 02h,13,72
     publicar mensa1
     jmp Bucle6

     mensaje16:



Sistema de Alarma usando puerto paralelo                                      Página Nº 20
mov linea,1Bh
     mover 9,71
     ventana15:

     ubicar 17
     jle ventana15
     cursor 02h,13,72
     mensaje borrar
     cursor 02h,13,72
     mensaje mensa5
     inc v
     jmp Bucle6

;Verificacion de Alarma ventana 6
;==========================================================================
Bucle6:
mov bl, 10000101b
control 378h
jmp sexto

     sexto:
     lectura 379h
     cmp bl,00000000b
     je mensaje11
     cmp bl,00001000b
     je mensaje12
     mensaje11:
     mov linea, 0Fh
     mover 22,58
     ventana10:
     ubicar1 62
     jle ventana10

     cursor 02h,23,56
     mensaje borrar
     cursor 02h,23,59
     publicar mensa1
     jmp Bucle7

     mensaje12:
     mov linea,18h
     mover 22,58
     ventana11:

     ubicar1 62
     jle ventana11
      cursor 02h,23,56
     mensaje borrar
     cursor 02h,23,56
     publicar mensa2
     jmp Bucle7

;Verificacion de Alarma ventana 7
;==========================================================================
Bucle7:
mov bl, 10000110b
control 378h
jmp septimo




Sistema de Alarma usando puerto paralelo                                      Página Nº 21
septimo:
     lectura 379h
     cmp bl,00000000b
     je mensaje9
     cmp bl,00001000b
     je mensaje10

     mensaje9:
     mov linea,0Fh
     mover 22,38
     ventana8:

     ubicar1 42
     jle ventana8
     cursor 02h,23,36
     mensaje borrar
     cursor 02h,23,39
     mensaje mensa1
     mensaje v
     jmp Bucle8

     mensaje10:
     mov linea,18h
     mover 22,38
     ventana9:
     ubicar1 42
     jle ventana9

     cursor 02h,23,36
     mensaje borrar
     cursor 02h,23,36
     mensaje mensa2
     mensaje v
     jmp Bucle8

;Verificacion de Alarma de la Puerta
;==========================================================================
Bucle8:
mov bl, 10000111b
control 378h
jmp octavo

     octavo:
     lectura 379h

     cmp bl,00000000b
     je mensaje7
     cmp bl,00001000b
     je mensaje8

     mensaje7:
     mov linea,07Fh
     add linea, 49
     mover 22,16
     ventana6:
     ubicar1 27
     jle ventana6

     cursor 02h,23,16



Sistema de Alarma usando puerto paralelo                                      Página Nº 22
mensaje bor
     cursor 02h,23,18
     mensaje mensa3
     jmp Bucle1

     mensaje8:
     mov linea,18h
     mover 22,16
     ventana7:
     ubicar1 27
     jle ventana7

     cursor 02h,23,16
     mensaje bor
     cursor 02h,23,16
     mensaje mensa5
     mensaje mensa3
     jmp Bucle1

;FIN DEL PROGRAMA
;==========================================================================
fin:
mov ah,4ch
int 21h
END start




Sistema de Alarma usando puerto paralelo                                      Página Nº 23
CONCLUSIONES

    Identificamos y aprendimos a hacer uso del puerto paralelo y sus pines
     reconociendo los registros de estado, de datos y de control para enviar y
     recibir señales desde y hacia la computadora.

    Para la creación del programa utilizamos el assembler y realizar la
     programación en bajo nivel, haciendo uso de dos puertos 378 y 379 para
     envio y captación de datos.

    Descubrimos que no era necesario el uso del protoboard para la
     implementación ya que bastaba con una pequeña placa perforada para el
     montaje del circuito.

    El objetivo incial era hacer un sistema de alarma con minimo 4 puntos y si
     era posible extendarlo a 6, esta barrera fue superada, ya que haciendo uso
     del multiplexor pudimos extenderlo hasta 8 puntos. Dejando la puerta abierta
     a poder inclusive llegar a implementar un sistema con 16 o mas puntos.

    Cabe resaltar que en una de nuestras pruebas al poner todas las alarmas
     apagadas el programa en ejecución mostraba lo contrario como si todas
     estuvieran encendidas. El problema identificado era que las resistencias
     (1kΩ) eran el problema ya que al estar instaladas en paralelo la unión de 8
     reducía la resistencia en general, y esto al comparar con la resistencia del
     multiplexor, era menor, entonces el sistema elegía el camino de menor
     resistencia y enviaba 5V como si todo estuviera activo, para esto cambiamos
     las resistencias por otras de 10kΩ y el programa nos dio el resultado
     esperado.




Sistema de Alarma usando puerto paralelo                             Página Nº 24
ANEXOS
Muestra de la ventana con el programa ejecutándose con todas las ventanas y la puerta
cerradas.




Alarma activa en la puerta cuando esta se abre.




Alarma activa en la puerta, y en las ventanas 6 y 7 cuando están abiertas.




Sistema de Alarma usando puerto paralelo                                       Página Nº 25
Enlace del video en youtube.

http://www.youtube.com/watch?v=9LwV-ETiMc4&feature=youtu.be




Sistema de Alarma usando puerto paralelo                      Página Nº 26

Más contenido relacionado

Último

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 

Último (10)

pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 

Destacado

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 

Destacado (20)

Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 

Proyecto sistema de alarmas

  • 1. Ingeniería de Sistemas e Informática IMPLEMENTACION DE UN SISTEMA DE ALARMA USANDO EL PUERTO PARALELO ASIGNATURA: Arquitectura del Computador INTEGRANTES: MEDINA CONGORA Ronald QUISPE HUAMAN Victor Antonio ZARATE MARQUEZ David Huancayo - 2012
  • 2. TABLA DE CONTENIDO INTRODUCCIÓN ..............................................................................................................................................3 FUNCIONAMIENTO.........................................................................................................................................4 DIAGRAMA DE FLUJO DEL PROGRAMA....................................................................................................5 DIAGRAMA PICTOGRAFICO .........................................................................................................................6 DIAGRAMA DEL CIRCUITO ...........................................................................................................................7 EXPLICACIÓN DEL PROGRAMA ..................................................................................................................9 CONCLUSIONES .......................................................................................................................................... 24 ANEXOS ......................................................................................................................................................... 25 Sistema de Alarma usando puerto paralelo Página Nº 2
  • 3. INTRODUCCIÓN Las nuevas tecnologías de información y comunicación que manejamos hoy en día y que se han vuelto indispensables de alguna forma, tales como los electrodomésticos de nuestros hogares, los proyectores de las universidades, las computadoras tanto de escritorio como portátiles hacen que nuestras vidas sean mas fáciles y tengamos la posibilidad de tener una mayor productividad para nosotros mismos o para una empresa. Hay que considerar que algunos artefactos van a depender de la entrada y control de un ordenador pero esto lo realizan con uso de interfaces como USB inclusive hoy en día la conexión convencional (cables) está siendo reemplazada por el empleo de tecnologías inalámbricas. Dentro de este ámbito proponemos en el presente trabajo mostrar el uso del puerto paralelo en la creación de un sistema de alarma de 8 puntos, haciendo uso de un ordenador de escritorio y un protoboard con cables y un multiplexor de 8:1 Haremos uso de los registros de estado, de datos y de control que están presentes en los pines de nuestra conexión para puerto paralelo. Para la creación del programa utilizaremos el emu 80x86 sobre el VMWare. Los sistemas de información tratan el desarrollo, uso y administración de la infraestructura de la tecnología de la información en una organización. Bajo este enfoque el presente proyecto de investigación estaría estrechamente relacionado con los sistemas de información ya que como en este y otros casos proporcionan herramientas tecnológicas que servirán para el diseño, creación y aplicación de productos, el sistema de alarma en si, un prototipo que serviría de simulación de una casa en miniatura para una posterior implementación en un proyecto de mayor magnitud. Sistema de Alarma usando puerto paralelo Página Nº 3
  • 4. FUNCIONAMIENTO El diseño del proyecto consiste en una maqueta en miniatura que representa un inmueble de un piso, con una puerta principal y siete ventanas, dándonos en total 8 puntos de alarmas; las ventanas tienen los pulsadores en sus bases, mientras que la puerta tiene el pulsador en la parte superior, estos pulsadores están conectados mediante un cable que conforma un circuito prediseñado. Todas las alarmas comparten el mismo cable a tierra, y para enviar señales envían una señal de 5V al multiplexor que está instalado en una pequeña placa perforada situada dentro de la casa. Para enviar 5 voltios y alimentar el circuito utilizamos un pin del puerto paralelo, al cual le enviamos el estado 1 de manera permanente. LO QUE PUEDE HACER: El usuario puede enviar señales al prototipo en todas las combinaciones posibles desde todas las ventanas cerradas, hasta que todas estén abiertas. LO QUE NO PUEDE HACER: No se pudo realizar el cambio de color del programa mientras esta ejecutándose en el código del sistema, se tuvo que mantener los colores básicos de blanco y negro Implementamos el sistema con el sonido de un bip cuando se activan las alarmas, el cual funcionaba ejecutando el programa en el EMU 80X86 pero al cargar en el código del sistema no se escuchan estos bips, probablemente es debido al uso de la maquina virtual. Sistema de Alarma usando puerto paralelo Página Nº 4
  • 5. DIAGRAMA DE FLUJO DEL PROGRAMA DECLARACION DE MACROS DECLARACION DE VARIABLES INICIO Bucle línea vertical izquierda Bucle línea vertical derecha Bucle línea horizontal superior Bucle línea horizontal inferior Selector de alarma 1 Imprime alarma 1 Imprime alarma 1 Compara bit activa desactivada Selector de alarma 2 Imprime alarma 2 Imprime alarma 2 Compara bit activa desactivada Selector de alarma 3 Imprime alarma 3 Imprime alarma 3 Compara bit activa desactivada Selector de alarma 4 Imprime alarma 4 Imprime alarmas 4 Compara bit activa desactivada Selector de alarma 5 Imprime alarma 5 Imprime alarma 5 Compara bit activa desactivada Selector de alarma 6 Imprime alarma 6 Imprime alarmas 6 Compara bit activa desactivada Selector de alarma 7 Imprime alarma 7 Imprime alarma 7 Compara bit activa desactivada Selector de alarma 8 Imprime alarma 8 Imprime alarmas 8 Compara bit activa desactivada Sistema de Alarma usando puerto paralelo Página Nº 5
  • 6. DIAGRAMA PICTOGRÁFICO Programa en Asembler Computador Conexión a través de puerto paralelo Protoboard de instalación de circuito electrónico Casa donde es verificado los 8 puntos Sistema de Alarma usando puerto paralelo Página Nº 6
  • 7. DIAGRAMA DEL CIRCUITO Sistema de Alarma usando puerto paralelo Página Nº 7
  • 8. Sistema de Alarma usando puerto paralelo Página Nº 8
  • 9. EXPLICACIÓN DEL PROGRAMA El programa para el control del sistema de alarmas está escrito en assembler, utilizando los puertos de salida y entrada de un puerto paralelo, el código se explica por bloques en las siguientes líneas: El programa eta dividido en 4 bloques, el primero es el bloque de macros, luego el bloque de modelo y segmento de pila, el bloque de datos y el bloque de códigos. El primer bloque de macros está compuesto por todas las macros utilizadas en el programa. La macro mensaje, se utiliza para mostrar en pantalla un mensaje, utilizando la función 09h de la interrupción 21h. Sistema de Alarma usando puerto paralelo Página Nº 9
  • 10. La macro cursor, se utiliza para determinar la ubicación del cursor, en un punto determinado de la pantalla, utilizando la función 02h de la interrupción 10h. La macro lectura, se utiliza para capturar los datos del puerto 379h y guardarlos en el registro bl, luego utilizamos el comando and para filtrar los datos ingresados y solo utilizar los bits de datos del puerto paralelo, que en este caso son los unos de la línea de bits 01111000b. La macro control, se utiliza para enviar datos al puerto 378h, para que el puerto paralelo controle el multiplexor 8:1 y este controle el estado de los 8 puntos. La macro mover, se utiliza para mover datos entre registros. La macro publicar, se utiliza para mostrar los mensajes del nombre de las puertas y de las alarmas activadas de los puntos, utilizando otras macros definidas anteriormente, además de incrementar una variable, que en este caso es del número de ventana que tenemos en el sistema. Las macros ubicar y ubicar1, son utilizadas para determinar la posición del cursor y para dibujar las líneas que simbolizan ventana abierta o cerrada y para incrementar una variable. Sistema de Alarma usando puerto paralelo Página Nº 10
  • 11. Las macros lineg y lineg1, son utilizadas para dibujar las líneas horizontales y verticales de la casa. El bloque 2 determina el modelo y el segmento de pila a utilizar en el programa. En el bloque 3 se definen las variables utilizadas en el programa, constantes como las mens, mensa1, mensa2, mensa3 y mensa5 y las variables v, línea, a, b. Sistema de Alarma usando puerto paralelo Página Nº 11
  • 12. El bloque de código define las instrucciones que se utilizan en el programa para controlar las alarmas de los 8 puntos establecidos en el proyecto. Se mueven los datos al registro de ax a ds, se ubica el símbolo ASCII a utilizar para dibujar el perímetro de la casa que para nuestro proyecto es B1h “▒”, se ubica el cursor para escribir el mensaje título del proyecto, se ubica el punto de inicio para comenzar a dibujar las líneas verticales luego las horizontales. Se ubica el cursor, luego se empieza a dibujar la línea comparando el límite inferior que es la línea 21, y de la misma forma, se dibujan las demás líneas. Sistema de Alarma usando puerto paralelo Página Nº 12
  • 13. El bucle1 permite el ingreso a la verificación de las alarmas en la ventana uno de los 8 puntos, 7 ventas y una puerta. Movemos al registro bl el byte 10000000b, que será enviado al puerto de salida 378h utilizando la macro control, utilizamos el bit más significativo, para mantener un punto con 5V en el circuito implementado, que será utilizado para mandar los 5V en el caso que la ventana este abierta, los últimos 3 bits del grupo de bytes, se utilizaran para el control del multiplexor de 8:1, de acuerdo a la siguiente configuración: Sistema de Alarma usando puerto paralelo Página Nº 13
  • 14. 1000000b → Control de Ventana 1 1000001b → Control de Ventana 2 1000010b → Control de Ventana 3 1000011b → Control de Ventana 4 1000100b → Control de Ventana 5 1000101b → Control de Ventana 6 1000110b → Control de Ventana 7 1000111b → Control de la Puerta Una vez enviado el control para verificar el punto 000 del multiplexor, que es en nuestro caso para verificar la puerta número 1, captamos el puerto de entrada del puerto paralelo, el 379h a través del registro de estado E3, de donde capturamos el estado del bit número 4 00000000b o 00001000b, y luego lo comparamos con el byte almacenado en bl, para determinar si el punto está activado o desactivado, luego de la comparación, pasara al mensaje 1 o mensaje 2. El mensaje 1 se ejecuta si es que el bit está en 0, que nos indica que la ventana está cerrada, ubicamos el símbolo a dibujar en la línea de la ventana, que indique ventana cerrada, para esto utilizamos el caracter ASCII CCh “╠” para las ventanas 1 y 5 y el caracter ASCII 0Fh “☼” para las ventanas 2, 3, 4, 6 y 7, para la puerta se utilizara el carácter ASCII B0h “░”. Ubicamos el puntero para dibujar las líneas de las ventanas o la puerta, utilizamos la macro ubicar para realizar esta función, luego volvemos a ubicar el cursor para borrar en primer lugar lo que este escrito en la línea y para luego escribir el mensaje de la ventana “V-1”, y utilizamos una variable para ir incrementando el número de ventanas hasta la numero 7. El mensaje 2 se ejecuta si es que el bit de comparación es igual a 1, entonces se ubica el caracter a imprimir para este caso utilizamos el ASCII 1Ah “→” que nos indicara que la ventana está abierta(para las otras ventanas y la puerta utilizaremos respectivamente el 18h “↓”, 19h “↑”), ubicamos el cursor, y luego imprimimos el símbolo en una línea, luego ubicamos el cursor para borrar el mensaje antes escrito y escribir el mensaje de alarma “Alarma V-1”, luego pasa a la segunda ventana, a la tercera y hasta el final termina con la puerta para luego volver a verificar en un bucle cerrado. Este procedimiento se repite con cada uno de los puntos a verificar, de manera permanente. Sistema de Alarma usando puerto paralelo Página Nº 14
  • 15. Programa en Assembler ;======================================================= ;PROGRAMA PARA VERIFICAR LAS ALARMAS DE UNA CASA ;AUTORES: -Quispe Huaman,Victor ; -Zarate Marquez, David ; -Medina Congora, Ronald ;FECHA: 07/12/12 ;CURSO: Arquitectura del Computador ;DOCENTE: Ing. Marquez Solis, Yuri ;======================================================= ;1. BLOQUE DE MACROS ;======================================================= mensaje MACRO texto ;Macro de mensajes mov ah,09h mov dx,offset texto int 21h ENDM cursor MACRO p,x,y ;Macro de ubicación del cursor mov ah,p mov dh,x mov dl,y int 10h ENDM lectura MACRO x ;Macro de captura de datos del registro 379h mov dx,x in ax,dx mov bl,al mov cl,01111000b and bl,cl ENDM control MACRO y ;Macro de envio de datos al puerto de salida mov dx,y mov al,bl out dx,al ENDM mover MACRO h,v ; Macro de mover datos entre registros mov a,h mov b,v ENDM publicar MACRO dato ;Macro para publicar el mensaje sobre las ventanas mensaje dato mensaje v inc v ENDM ubicar MACRO j cursor 02h,a,b mensaje linea ;Macro para publicar el mensaje sobre las ventanas inc a cmp a,j ENDM ubicar1 MACRO m ;Macro para ubicar el punto de inicio de la linea y del mensaje sobre las ventanas Sistema de Alarma usando puerto paralelo Página Nº 15
  • 16. cursor 02h,a,b mensaje linea inc b cmp b,m ENDM lineg MACRO c ;Macro para dibujar las lineas verticales mensaje linea inc a cmp a,c ENDM lineg1 MACRO k ;Macro para dibujar las lineas horizontales mensaje linea inc b cmp b,k ENDM ;2. BLOQUE DE MODELO Y SEGMENTO DE PILA ;======================================================= .MODEL small org 100h ;3. BLOQUE DE DATOS ;======================================================= .DATA ;Declaracion de variables usadas en el programa mens db 'Programa para verificar Alarmas de una Casa','$' mensa1 db 'V-','$' v db ? linea db ? borrar db ' ','$' mensa2 db 'Alarm V-',7,'$' mensa3 db ' PUERTA','$' bor db ' ','$' mensa5 db 'Alarm',7,'$' a db ? b db ? ;4. BLOQUE DE CODIGO ;======================================================= .CODE start: Inicio: mov ax,@data mov ds, ax mov linea, 7Fh ;Ubicacion del simbolo para imprimir en pantalla add linea, 51 cursor 02h,1,18 mensaje mens mover 5,10 ;Dibujo del perimetro de la casa Buclelinev: cursor 02h,a,b lineg 21 ;Bucles para el dibujo de la linea vertical jl Buclelinev mover 5,70 Sistema de Alarma usando puerto paralelo Página Nº 16
  • 17. jge Buclelinev2 Buclelinev2: cursor 02h,a,b lineg 21 jl Buclelinev2 mover 5,30 jge Buclelinev3 Buclelinev3: cursor 02h,a,b lineg 16 jl Buclelinev3 mover 10,52 jge Buclelinev1 Buclelinev1: cursor 02h,a,b lineg 21 jl Buclelinev1 mover 5,10 jge Buclelineh Buclelineh: cursor 02h,a,b lineg1 71 ;Bucles para el dibujo de la linea horizontal jl Buclelineh mover 21,10 jge Buclelineh1 Buclelineh1: cursor 02h,a,b lineg1 71 jl Buclelineh1 ;Inicio del bucle de verificacion de las alarmas ;Este conjunto de bucles se repiten permanentemente para mantener verificado el estado de las alarmas de la casa ;========================================================================== Bucle1: mov v,31h mov bl, 10000000b ;Senal para el selector del mux ;Direccion del mux 000 y el bit mas significativo habilitado en 1 para alimentar al circuito de control control 378h ;macro de salida de datos jmp primero ;Verificacion de Alarma ventana 1 primero: lectura 379h cmp bl,00000000b ; Comparacion del estado del bit de entrada je mensaje1 cmp bl,00001000b ; Comparacion del estado del bit de entrada je mensaje2 mensaje1: mov linea, 7Fh ;Ubicacion del simbolo a imprimir add linea, 79 mover 9,10 ventana12: Sistema de Alarma usando puerto paralelo Página Nº 17
  • 18. ubicar 17 ;Bucle para dibujar la linea que representa la ventana jle ventana12 cursor 02h,13,0 mensaje bor ;Mensaje para borrar el mensaje anterior cursor 02h,13,7 publicar mensa1 ;Escribe el nombre de la ventana jmp Bucle2 mensaje2: mov linea,1Ah mover 9,10 ventana13: ubicar 17 ;Dibuja la linea con flechas que indicaran el estado de alarma jle ventana13 cursor 02h,13,0 mensaje bor ;Imprime el mensaje de alarma activa cursor 02h,13,1 publicar mensa2 jmp Bucle2 ;En las lineas siguientes se repiten los procesos anteriores con diferentes puntos de coordenadas para la ubicacion de las diferentes ventanas y de la puerta ;Verificacion de Alarma ventana 2 ;========================================================================== Bucle2: mov bl, 10000001b control 378h jmp segundo segundo: lectura 379h cmp bl,00000000b je mensaje13 cmp bl,00001000b je mensaje14 mensaje13: mov linea,0Fh mover 4,18 ventana: ubicar1 22 jle ventana cursor 02h,3,16 mensaje borrar cursor 02h,3,19 publicar mensa1 jmp Bucle3 mensaje14: mov linea,19h mover 4,18 ventana1: ubicar1 22 Sistema de Alarma usando puerto paralelo Página Nº 18
  • 19. jle ventana1 cursor 02h,3,16 mensaje borrar cursor 02h,3,16 publicar mensa2 jmp Bucle3 ;Verificacion de Alarma ventana 3 ;========================================================================== Bucle3: mov bl, 10000010b control 378h jmp tercero tercero: lectura 379h cmp bl,00000000b je mensaje3 cmp bl,00001000b je mensaje4 mensaje3: mov linea,0Fh mover 4,38 ventana2: ubicar1 42 jle ventana2 cursor 02h,3,36 mensaje borrar cursor 02h,3,39 publicar mensa1 jmp Bucle4 mensaje4: mov linea,19h mover 4,38 ventana3: ubicar1 42 jle ventana3 cursor 02h,3,36 mensaje borrar cursor 02h,3,36 publicar mensa2 jmp Bucle4 ;Verificacion de Alarma ventana 4 ;========================================================================== Bucle4: mov bl, 10000011b control 378h jmp cuarto cuarto: lectura 379h cmp bl,00000000b je mensaje5 Sistema de Alarma usando puerto paralelo Página Nº 19
  • 20. cmp bl,00001000b je mensaje6 mensaje5: mov linea,0Fh mover 4,58 ventana4: ubicar1 62 jle ventana4 cursor 02h,3,56 mensaje borrar cursor 02h,3,59 publicar mensa1 jmp Bucle5 mensaje6: mov linea,19h mover 4,58 ventana5: ubicar1 62 jle ventana5 cursor 02h,3,56 mensaje borrar cursor 02h,3,56 publicar mensa2 jmp Bucle5 ;Verificacion de Alarma ventana 5 ;========================================================================== Bucle5: mov bl, 10000100b control 378h jmp quinto quinto: lectura 379h cmp bl,00000000b je mensaje15 cmp bl,00001000b je mensaje16 mensaje15: mov linea, 7Fh add linea, 79 mover 9,70 ventana14: ubicar 17 jle ventana14 cursor 02h,13,72 mensaje borrar cursor 02h,13,72 publicar mensa1 jmp Bucle6 mensaje16: Sistema de Alarma usando puerto paralelo Página Nº 20
  • 21. mov linea,1Bh mover 9,71 ventana15: ubicar 17 jle ventana15 cursor 02h,13,72 mensaje borrar cursor 02h,13,72 mensaje mensa5 inc v jmp Bucle6 ;Verificacion de Alarma ventana 6 ;========================================================================== Bucle6: mov bl, 10000101b control 378h jmp sexto sexto: lectura 379h cmp bl,00000000b je mensaje11 cmp bl,00001000b je mensaje12 mensaje11: mov linea, 0Fh mover 22,58 ventana10: ubicar1 62 jle ventana10 cursor 02h,23,56 mensaje borrar cursor 02h,23,59 publicar mensa1 jmp Bucle7 mensaje12: mov linea,18h mover 22,58 ventana11: ubicar1 62 jle ventana11 cursor 02h,23,56 mensaje borrar cursor 02h,23,56 publicar mensa2 jmp Bucle7 ;Verificacion de Alarma ventana 7 ;========================================================================== Bucle7: mov bl, 10000110b control 378h jmp septimo Sistema de Alarma usando puerto paralelo Página Nº 21
  • 22. septimo: lectura 379h cmp bl,00000000b je mensaje9 cmp bl,00001000b je mensaje10 mensaje9: mov linea,0Fh mover 22,38 ventana8: ubicar1 42 jle ventana8 cursor 02h,23,36 mensaje borrar cursor 02h,23,39 mensaje mensa1 mensaje v jmp Bucle8 mensaje10: mov linea,18h mover 22,38 ventana9: ubicar1 42 jle ventana9 cursor 02h,23,36 mensaje borrar cursor 02h,23,36 mensaje mensa2 mensaje v jmp Bucle8 ;Verificacion de Alarma de la Puerta ;========================================================================== Bucle8: mov bl, 10000111b control 378h jmp octavo octavo: lectura 379h cmp bl,00000000b je mensaje7 cmp bl,00001000b je mensaje8 mensaje7: mov linea,07Fh add linea, 49 mover 22,16 ventana6: ubicar1 27 jle ventana6 cursor 02h,23,16 Sistema de Alarma usando puerto paralelo Página Nº 22
  • 23. mensaje bor cursor 02h,23,18 mensaje mensa3 jmp Bucle1 mensaje8: mov linea,18h mover 22,16 ventana7: ubicar1 27 jle ventana7 cursor 02h,23,16 mensaje bor cursor 02h,23,16 mensaje mensa5 mensaje mensa3 jmp Bucle1 ;FIN DEL PROGRAMA ;========================================================================== fin: mov ah,4ch int 21h END start Sistema de Alarma usando puerto paralelo Página Nº 23
  • 24. CONCLUSIONES  Identificamos y aprendimos a hacer uso del puerto paralelo y sus pines reconociendo los registros de estado, de datos y de control para enviar y recibir señales desde y hacia la computadora.  Para la creación del programa utilizamos el assembler y realizar la programación en bajo nivel, haciendo uso de dos puertos 378 y 379 para envio y captación de datos.  Descubrimos que no era necesario el uso del protoboard para la implementación ya que bastaba con una pequeña placa perforada para el montaje del circuito.  El objetivo incial era hacer un sistema de alarma con minimo 4 puntos y si era posible extendarlo a 6, esta barrera fue superada, ya que haciendo uso del multiplexor pudimos extenderlo hasta 8 puntos. Dejando la puerta abierta a poder inclusive llegar a implementar un sistema con 16 o mas puntos.  Cabe resaltar que en una de nuestras pruebas al poner todas las alarmas apagadas el programa en ejecución mostraba lo contrario como si todas estuvieran encendidas. El problema identificado era que las resistencias (1kΩ) eran el problema ya que al estar instaladas en paralelo la unión de 8 reducía la resistencia en general, y esto al comparar con la resistencia del multiplexor, era menor, entonces el sistema elegía el camino de menor resistencia y enviaba 5V como si todo estuviera activo, para esto cambiamos las resistencias por otras de 10kΩ y el programa nos dio el resultado esperado. Sistema de Alarma usando puerto paralelo Página Nº 24
  • 25. ANEXOS Muestra de la ventana con el programa ejecutándose con todas las ventanas y la puerta cerradas. Alarma activa en la puerta cuando esta se abre. Alarma activa en la puerta, y en las ventanas 6 y 7 cuando están abiertas. Sistema de Alarma usando puerto paralelo Página Nº 25
  • 26. Enlace del video en youtube. http://www.youtube.com/watch?v=9LwV-ETiMc4&feature=youtu.be Sistema de Alarma usando puerto paralelo Página Nº 26