Professional Documents
Culture Documents
CARACTERES EN
UN DISPLAY DE 7
SEGMENTOS
INFORME N3
Curso:
Microcomputadoras I
Profesor:
Pinedo
IX Ciclo
Ingeniera Informtica
2014
INDICE
OBJETIVO
I
PLANTEAMIENTO DEL
PROBLEMA.II
MATERIALES
.III
MARCO
TEORICO
....IV
4.1 DESCRIPCION DEL PUERTO PARALELO
ACCESO AL
PUERTO
V
DESARROLLO
.VI
6.1 MONTAJE DEL CIRCUITO
6.2 DIAGRAMA DE FLUJO
6.3 CODIGO ENSAMBLADOR
2|P g i n a
CONCLUSIONES
..VII
I.
OBJETIVOS
OBJETIVOS GENERALES
3|P g i n a
OBJETIVOS ESPECIFICOS
4|P g i n a
Figura 1.
Ahora bien tomando en cuenta, si se trata de un display de nodo
comn hay que alimentar con Vcc= +5 V las dos lneas sealadas como
comunes en la figura, y es preciso poner a tierra la lnea correspondiente
al segmento que se quiere iluminar. Si se trata de un display de
ctodo (que sera el objeto de trabajo) comn, hay que alimentar con
+5 V el segmento que se desea iluminar y poner a tierra las dos lneas
comunes.
As, en un display de ctodo comn, las lneas 1-8 se pueden conectar
directamente a las lneas de datos del puerto (pines 2-9 del conector
DB25), y las dos lneas comunes se pueden conectar a cualquiera de las
patillas de tierra del conector, por ejemplo, la 25.
III. MATERIALES
1.- Protoboard
5|P g i n a
Introduccin
El puerto paralelo se utiliza generalmente para manejar las impresoras.
Sin embargo, puesto que este puerto tiene un grupo de entradas y de
salidas digitales, que podemos hacer experimental prctico de la lectura
de datos y del control de dispositivos. Este trabajo intenta darle ms
relevantes los aspectos del puerto paralelo, de modo que usted pueda
utilizar como un interfaz de la salida de la entrada, que trabaja de una
manera subordinada a las rutinas del software.
6|P g i n a
Hace aos, IBM dise el puerto paralelo para manejar impresoras desde
su gama de microcomputadores PC/XT/AT. Un conector estndar macho
de 25 pines apareca en la parte trasera del PC con el solo propsito de
servir de interfaz con la impresora. El sistema operativo DOS cargado en
dichos PC soporta hasta tres puertos paralelos asignados a los
identificadores LPT1, LPT2 y LPT3, y cada puerto requiere tres
direcciones consecutivas del espacio de E/S (entrada-salida) del
procesador para seleccionar todas sus posibilidades.
Desde el punto de vista del hardware, el puerto consta de un conector
hembra DB25 con doce salidas latch (poseen memoria/buffer
intermedio) y cinco entradas, con ocho lneas de tierra.
Desde el punto de vista del software, el puerto paralelo consta de tres
registros (datos, estado y control) de 8 bits cada uno, que ocupan tres
direcciones de E/S (I/O) consecutivas de la arquitectura x86.
La funcin normal del puerto consiste en transferir datos a una
impresora mediante 8 lneas de salida de datos, usando las seales
restantes como control de flujo. Sin embrago, puede ser usado como un
puerto E/S de propsito general por cualquier dispositivo o aplicacin
que se ajuste a sus posibilidades de entrada/salida.
7|P g i n a
El DB25 tiene para conexin de dispositivos como led y display del pin 2
al 9 que son de D0 a D7, y un pin destinado para tierra que puede ser el
pin 25, los dems que se muestran en el grfico son para conexiones de
impresora ya que el DB25 es un conector usado para la conexin entre
una computadora y su impresora.
En este conector:
V. ACCESO ALPUERTO
El puerto paralelo se identifica por su direccin de E/S (entrada/salida,
I/O) base y se reconoce en sistemas MS-DOS por el nmero LPT (lp en
Unix/Linux). Cuando arranca la mquina, la BIOS (Basic Input Output
System) chequea direcciones especficas de E/S en busca de puertos
paralelos y construye una tabla de las direcciones halladas en la posicin
de memoria 40h:8h (o 0h:0408h) .
Esta tabla contiene hasta tres palabras de 16 bits, cada palabra con el
byte bajo primero seguido por el byte alto. Cada palabra es la direccin
de E/S base del puerto paralelo (que denominaremos LPT_BASE en lo
sucesivo). La primera corresponde a LPT1, la segunda a LPT2 y la tercera
a LPT3. Hay que agregar que, en MS-DOS tenemos el dispositivo PRN
que es un alias a uno de los dispositivos LPT (generalmente es LPT1,
pero se puede cambiar con la orden MODE).
Las direcciones base estndar para los puertos paralelos son:
LPT1: 03BCh
LPT2: 0378h
LPT3: 0278h
Byt
Byt
Identificad
e
Hexadeci Decim
Direccin
e
or DOS
baj
mal
al
alto
o
9|P g i n a
LPT1
0000:0408/
78
9
03
378
888
LPT2
0000:040A/
78
B
02
278
632
00
Objeto de Estudio
Registro de datos (D)
El registro de estado se halla en LPT_BASE. Se puede leer y escribir.
Escribir un dato en el registro causa que dicho dato aparezca en los
pines 2 a 9 del conector del puerto. Al leer el registro, se lee el ltimo
dato escrito (NO lee el estado de los pines; para ello hay que usar un
puerto bidireccional).
VI. DESARROLLO
10 | P g i n a
13 | P g i n a
Aqu nos pedir el nombre del archivo de texto que contiene los
caracteres a leer como se muestra en la figura:
14 | P g i n a
INICIO
ABREARCHIVO
LEE ARCHIVO
Si
DL=1AH
Si
FIN
15 | P g i n a
DL=NUME
RO
Si
DL=LETRA
MAYUSCULA
Si
IMPRME:
NUM/MAY/MIN
DL=LETR
AMINUSC
ULA
LEE ARCHIVO
.MODEL SMALL
.STACK
.DATA
SEGMENTOS
BIN.
,7,6,5,4,3,2, ,: 01111110B
,7, , ,4, , , : 01001000B
, ,6,5,4,3, ,1: 00111101B
,7,6, ,4,3, ,1: 01101101B
16 | P g i n a
NOMARCH DB ?
; A guardar nombre del archivo
HANDLE DW ?
; Manipulador
NOMBRE DB 'NOMBRE DEL ARCHIVO A LEER:',10D,13D,'$'
OEMSG DB 'NO SE PUEDE ABRIR$'
RFMSG DB 'NO SE PUEDE LEER$'
CFMSG DB 'NO SE PUEDE CERRAR$'
17 | P g i n a
FBUFF DB ?
B
DB ?
.CODE
DESP MACRO A
;Macro que despliega caracter en display
MOV DX,378H ;Direccion del puerto paralelO en DX
MOV AL,A
;Se posiciona en AL lo que se va enviar
OUT DX,AL ;Envio de datos a trves OUT
CALL DELAY ;Temporizador
ENDM
;Fin de macro
INICIO:
;Define etiqueta de inicio
MOV AX,@DATA
;Referencia al registro de datos
MOV DS,AX
;Pasa de AX a DS
CALL PIDE
;Llamada al proceso para pedir nombre del archivo
JC FIN
;En caso de no poder pedir nombre salta a la etiqueta FIN
CALL ABREARCH
;Llamada al proceso para abrir archivo
JC FIN
;En caso de no poderse abrir salta a la etiqueta FIN
CALL LEEARCH
;Llamada al preoceso para leer archivo
JC FIN
;En caso de no poderse leer salta a la etiqueta FIN
CALL CIERRARCH ;Llamada al preoceso para cerrar archivo
JC FIN
;En caso de no poderse cerrar salta a la etiqueta FIN
FIN:
MOV AH,4CH
INT 21H
DELAY PROC
MOV CX,54C0H
D1:
PUSH CX
D2:
LOOP D2
POP CX
LOOP D1
RET
DELAY ENDP
;Temporizador
;4FCOH
PIDE PROC
;Proceso que pide el nombre del archivo a leer
LEA DX,NOMBRE
;Pasa a DX la direccion efectica del la cadena a imprimir
MOV AH,9H
;Mensaje que solicita ingresar el nombre del archivo a leer
INT 21H
MOV SI,0
;Inicializa SI
18 | P g i n a
NEXT:
MOV AH,1H
;Entrdada por teclado
INT 21H
MOV NOMARCH[SI],AL;Guarda caracter a caracter en la variable NOMARCH
INC SI
;Incrementa SI
CMP AL,13D
;Compara si AL es igual a [ENTER] 13D
JNE NEXT
;Si no es igual se repite el ciclo NEXT
DEC SI
;Decrementa SI
MOV NOMARCH[SI],0 ;Implementacin de cadena ASCII Z
RET
;Regresa a donde fue llamado el proceso
PIDE ENDP
;Fin de proceso PIDE
ABREARCH PROC
;Proceso que realiza la apertura del archivo
MOV AH,3DH
;Abre archivo. DS:DX;apunta al archivo.AL=0 (slo lectura)
;1 (slo escritura) 2 (escritura/lectura)
LEA DX,NOMARCH ;Da la direccin efectiva del archivo
MOV AL,0
;Atributo del archivo: 0 = Archivo de slo lectura
INT 21H
JC ERRORABR
;Salto en caso de no poderse abrir
MOV HANDLE,AX
;Uso del manipulador para guardar las propiedades del archivo
RET
;Regresa el control a donde fue llamado el proceso
ERRORABR:
LEA DX,OEMSG
;Pasa a DX la direccin efectiva del la cadena a imprimir
MOV AH,9H
;Mensaje de error de apertura
INT 21H
RET
;Regresa a donde fue llamado el proceso
ABREARCH ENDP
;Fin del proceso ABREARCH
LEEARCH PROC
MOV AH,3FH
;Lectura desde archivo. BX:Manejador de archivo
;CX: numero de bytes a leer
;DS=DX=buffer a ser cargado AX:numero de bytes ledos
MOV BX,HANDLE
;Manejador de archivo
LEA DX,FBUFF
;Buffer a ser cragado
MOV CX,1
;Numro de bytes a leer
INT 21H
JC ERRORLEE
;Salto para en caso de no poderse leer
CMP AX,0
;Bytes ledos=0?
JZ EOFF
;Si es igual a cero salta la etiqueta EOFF
MOV DL,FBUFF
;Pasa a DL lo que hay en el bufer
CMP DL,1AH
;Verifica si es fin de archivo
JZ EOFF
;Si es igual salta la etiqueta EOFF
MOV AH,2H
INT 21H
19 | P g i n a
CALL
CALL
CALL
CALL
CALL
COMPARANUM
COMPARAMAY
COMPARAMAY2
COMPARAMIN
COMPARAMIN2
JMP LEEARCH
;Repite el ciclo para pedir el siguiente caracter
ERRORLEE:
LEA DX,RFMSG
MOV AH,9H
;Mensaje de error de lectura
INT 21H
EOFF:
DESP APAGADO
;Llamada al MACRO DESP para apagar display
RET
;Regresa a donde fue llamado el proceso
LEEARCH ENDP
;Fin del proceso LEEARCH
CIERRARCH PROC
;Proceso que cierra el archivo
MOV AH,3EH
;Cierra manejador de archivo. BX; manejador de archivos.
MOV BX,HANDLE
;Manipulador en BX
INT 21H
RET
;Regresa a donde fue llamado el proceso
CIERRARCH ENDP
;Fin del proceso CIERRARCH
COMPARANUM PROC
CMP DL,'9'
CMP DL,'.'
JE IMPRIMEPUN
RET
;Regresa a donde fue llamado el proceso, solo
;en caso de no cumplirse ninguna comparacin
IMPRIME9:
DESP NUEVE
JMP LEEARCH
IMPRIME8:
DESP OCHO
JMP LEEARCH
IMPRIME7:
DESP SIETE
JMP LEEARCH
IMPRIME6:
DESP SEIS
JMP LEEARCH
IMPRIME5:
DESP CINCO
JMP LEEARCH
IMPRIME4:
DESP CUATRO
JMP LEEARCH
IMPRIME3:
DESP TRES
JMP LEEARCH
IMPRIME2:
DESP DOS
JMP LEEARCH
IMPRIME1:
DESP UNO
JMP LEEARCH
IMPRIME0:
DESP CERO
JMP LEEARCH
IMPRIMEPUN:
DESP PUNTO
JMP LEEARCH
COMPARANUM ENDP
COMPARAMAY PROC
CMP DL,'A'
JE IMPRIMEA
CMP DL,'B'
JE IMPRIMEB
CMP DL,'C'
JE IMPRIMEC
21 | P g i n a
CMP DL,'E'
JE IMPRIMEE
CMP DL,'F'
JE IMPRIMEF
CMP DL,'G'
JE IMPRIMEG
CMP DL,'H'
JE IMPRIMEH
CMP DL,'I'
JE IMPRIMEI
CMP DL,'J'
JE IMPRIMEJ
CMP DL,'L'
JE IMPRIMEL
CMP DL,'O'
JE IMPRIMEO
RET
IMPRIMEA:
DESP AM
JMP LEEARCH
IMPRIMEB:
DESP BM
JMP LEEARCH
IMPRIMEC:
DESP CM
JMP LEEARCH
IMPRIMEE:
DESP EM
JMP LEEARCH
IMPRIMEF:
DESP FM
JMP LEEARCH
IMPRIMEG:
DESP GM
JMP LEEARCH
IMPRIMEH:
DESP HM
JMP LEEARCH
IMPRIMEI:
DESP IM
JMP LEEARCH
IMPRIMEJ:
DESP JM
JMP LEEARCH
IMPRIMEL:
DESP LM
JMP LEEARCH
22 | P g i n a
IMPRIMEO:
DESP OM
JMP LEEARCH
COMPARAMAY ENDP
COMPARAMAY2 PROC
CMP DL,'P'
JE IMPRIMEP
CMP DL,'S'
JE IMPRIMES
CMP DL,'T'
JE IMPRIMET
CMP DL,'U'
JE IMPRIMEU
RET
IMPRIMEP:
DESP PM
JMP LEEARCH
IMPRIMES:
DESP SM
JMP LEEARCH
IMPRIMET:
DESP TM
JMP LEEARCH
IMPRIMEU:
DESP UM
JMP LEEARCH
COMPARAMAY2 ENDP
COMPARAMIN PROC
CMP DL,'a'
JE IMPRIMEam
CMP DL,'b'
JE IMPRIMEbm
CMP DL,'c'
JE IMPRIMEcm
CMP DL,'d'
JE IMPRIMEdm
CMP DL,'e'
JE IMPRIMEem
CMP DL,'g'
JE IMPRIMEgm
CMP DL,'h'
JE IMPRIMEhm
23 | P g i n a
CMP DL,'i'
JE IMPRIMEim
CMP DL,'l'
JE IMPRIMElm
CMP DL,'n'
JE IMPRIMEnm
CMP DL,'o'
JE IMPRIMEom
RET
IMPRIMEam:
DESP AMIN
JMP LEEARCH
IMPRIMEbm:
DESP BMIN
JMP LEEARCH
IMPRIMEcm:
DESP CMIN
JMP LEEARCH
IMPRIMEdm:
DESP DMIN
JMP LEEARCH
IMPRIMEem:
DESP EMIN
JMP LEEARCH
IMPRIMEgm:
DESP GMIN
JMP LEEARCH
IMPRIMEhm:
DESP HMIN
JMP LEEARCH
IMPRIMEim:
DESP IMIN
JMP LEEARCH
IMPRIMElm:
DESP LMIN
JMP LEEARCH
IMPRIMEnm:
DESP NMIN
JMP LEEARCH
IMPRIMEom:
DESP OMIN
JMP LEEARCH
COMPARAMIN ENDP
COMPARAMIN2 PROC
CMP DL,'r'
JE IMPRIMErm
24 | P g i n a
CMP DL,'u'
JE IMPRIMEum
RET
IMPRIMEum:
DESP UMIN
JMP LEEARCH
IMPRIMErm:
DESP RMIN
JMP LEEARCH
COMPARAMIN2 ENDP
END INICIO
;Fin etiqueta
VII. CONCLUSIONES
Nos pudimos percatar de la importancia de tener un buen nivel de
conocimiento en lenguaje ensamblador
25 | P g i n a