segmentos de display (7 segmentos) y contador numérico
Post on 25-Jul-2015
275 Views
Preview:
TRANSCRIPT
UNIVERSIDAD FRANCISCO DE PAULA SANTANDERFACULTAD DE INGENIERIAS
ARQUITECTURA DE COMPUTADORES
Presentado A:
Ingeniero. Sergio Iván Quintero
INFORME DE LABORATORIOSegmentos de Display (7 Segmentos) y Contador Numérico
IntegrantesDayana Galvis Villamizar 1160105
Jessica Eliana Cuellar Jaimes 1160036
RESUMEN
Por medio del software especializado para el modulo E24 se trabajandos programas, para la primera partese implementa un contador para el display siete segmentos del móduloDL3155E24D´LORENZO, y para la segunda parte se encienden de forma aleatoria los segmentos del display del mismo.
INTRODUCCION
Para la primera parte del laboratorio se ejecuta el programa de ejemplo que viene como ayuda del software E24, a partir de esto se propone un nuevo código para el mismo fin y se descarga al modulo; para la segunda parte se requiere un código para encender aleatoriamente los segmentos del display y cargarlo en el modulo, para esto será necesario
recurrir a la base teórica del funcionamiento básico del modulo y las herramientas del software especializado para implementar en el modulo los programas a trabajar
BASE TEORICA
Modulo E24
El Módulo E24 contiene en su propio interior un programa (BIOS) que provee la gestión del mismo, la introducción de programas por parte del usuario, y su ejecución y test.Como para el BIOS del Personal Computer, también el del Módulo E24, proporciona al programador las funciones útiles en el desarrollo de los programas. Estas funciones permiten al programador escribir programas que utilizan una cualquiera de las periféricas del módulo, sin conocer los detalles de carácter hardware de las mismas.
En lo corresponde a su estructura física el modulo se compone de:
El microprocesador 80386EX La memoria EPROM de
sistema M4 (32KB) El espacio para una memoria
EPROM usuario M3 (32KB) Las memorias RAM M1+M2
(64 KB) El teclado (KEYBOARD) El display LCD La interfaz de serie RS-232 La interfaz paralela El pulsador de reset del
microprocesador El display de 7 segmentos Las sondas lógicas El conector de interrupciones,
timer, bus de serie El convertidor A/D El convertidor D/A
Teclado y Mando de Modulo E24
El teclado es el dispositivo con el queel usuario se comunica con el sistema.Contiene las teclas relativas a los caracteres hexadecimales (0-F) y lasteclas para los mandos para impartir al sistema
Esta tecla es utilizada, con la modalidad de mando, para examinar y modificar el
contenido de la memoria.
Utilizada, con la modalidad de mando, para examinar y modificar el contenido de uno
de los registros del microprocesador.
Utilizada, con la modalidad de mando, para examinar y modificar el contenido de
uno de los registros del segmento del microprocesador.
Utilizada para arrancar la ejecución de un programa, a partir de un determinada
dirección de memoria.
Las siguientes teclas son utilizadas cuando se está visualizando el
contenido de la memoria, de los registros o de los break-points
la primera ubicación de memoria RAM: 0000:0000
el primer registro: EAX el primer registro de segmento:
CS el primer break-point (N.1)
la última ubicación de memoria RAM: 0000:FFFF
el último registro: EFL el último registro de segmento:
GS el último break-point (N.8)
la sucesiva ubicación de memoria RAM
el sucesivo registro el sucesivo registro de
segmento el sucesivo break-point.
la precedente ubicación de memoria RAM
el precedente registro el precedente registro de
segmento el precedente breakpoint.
Utilizada para introducir un break-point en el programa en la memoria RAM.
Esta tecla está activa cuando se está visualizando un break-point y sirve para
cancelar el break-point mismo.
Permite efectuar un programa con la modalidad de paso-paso.
Utilizada para arrancar la ejecución de un programa, a partir de un determinada
dirección de memoria 0100:0000 (es decir 1000h).
Teclas Libres:
Esta tecla es utilizada para terminar una sesión de edit, convalidar el dato
modificado, y volver a la modalidad de mandos.
Esta tecla mueve el cursora la izquierda en la modalidad de edit.
Esta tecla mueve el cursor a la derecha en la modalidad de edit.
Esta tecla es utilizada iniciar una sesión de edit cuando el sistema está en la modalidad
de mandos.
Registros de Segmento
Son utilizados para generar las direc-ciones de memoria donde residen las instrucciones y los datos,en combina-ción con otros registros. Para su fun-cionamiento específico se ven las pr-óximas dospáginas relativas a las problemáticas de dirección.
CScodeIndividua una sección de me-moria donde está presente el código relativo a los programasy procedimientos que el microproce-sador debe efectuar.
El registro CodeSegment individua la dirección de inicio de esta sección de memoria.
En las operaciones de modo-real la sección de memoria puede ser larga 64K máxim-os. Enlas operaciones de modo-protegido puede llegar a 4GB.
DAdataIndividua una sección de me-moria donde son presentes los datos utilizados por elprograma.
El registro Data Segment individua la dirección de inicio de esta sección de memoria.
Los datos en el interior de la sección son después individuados por una di-rección (offset)que puede ser un nú-mero fijo o contenido con otro regis-tro.
En las operaciones de modo-real la sección de memoria puede ser larga 64K máximos. Enlas operaciones de modo-protegido puede llegar a 4GB.
ESextraIndividua un segmento de da-tos adicional, a menudo útil en las operaciones como en lascadenas.
SSStackIndividua el área de memoria utilizada para el stack del microproce-sador.Las locaciones en el interior de esta area son después individuadas por el contenido delStack Pointer (SP).
FS eGSRegistros de segmento adi-cionales para poder acceder contem-poráneamente a dossegmentos adi-cionales.
Software Especializado E24idepara PC a Modulo
Este software nos permite programar el modulo en lenguaje ensamblador y facilita en gran manera a la hora de introducir datos, como se ve en los pantallazos nos ofrece varias herramientas como DumpEXE File para listado impreso del contenido de memoria del programa a ejecutar,
Verificar errores de compilación del ensamblador, conexión y transferencia con el modulo, opciones para poner en lista el código fuente, entre otros que ayuda al trabajo con el modulo de manera más sencilla
DESARROLLO DE TRABAJO
Parte I
A.
Contador en Display Siete Segmentos
Para esta primera parte se trabajo con el programa de prueba que consiste en encender y apagar un led, para introducir los datos se hace directamente con el teclado y mando del modulo, el programa se introduce en lenguaje maquina utilizando básicamente la tecla CMND para activar las teclas de comando y tecla ADDR para introducir la direccion en la memoria donde vamos a guardar los datos del programa, que va desdeAddress 0100:000; para introducir el cogido de programacion en la direccion correspondiente de 8 bits cada dato con la misma tecla CMND se introduce el dato y guarda, ya terminado de introducir los datos correspondientes se corre.
B.
Para esta parte del laboratorio se implementa la interfaz paralela para transferir datos desde el PC al modulo, esta interfaz se encarga de alimentar el modulo por tanto no se necesita la fuente de alimentación de 5v utilizada para en la primera parte para introducir el código con el teclado de mando de la tarjeta; Con el código del programa de prueba que tiene el E24ide Ex7segse transfiere y se corre
CODE SEGMENTASSUME CS:CODE, DS:CODEORG 0HPROGR: MOV AL,0FFH ;data for ;segments OFFMOV DX,0010H ;7-segment ;ad-dressOUT DX,AL ;out dataMOV AX,1000 ;1000 millisec-ondsINT 1CH ;waitMOV AL,00H ;data for seg-ments ;ONMOV DX,0010H ;7-segment ;ad-dressOUT DX,AL ;out dataMOV AX,1000 ;1000 millisec-ondsINT 1CH ;wait
JMP PROGR ;loopCODE ENDSEND PROGR
En base al programa de ejemplo, se propone el siguiente para código para el contador:
CODE SEGMENTASSUME CS: CODE, DS: CODEORG 0H
PROGR:MOV AL, 0C0HMOV DX, 0010HOUT DX, AL
MOV AX,100INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,100INT 1CH
UNO: MOV AL, 0F9HMOV DX, 0010HOUT DX, AL
MOV AX,200INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,200INT 1CH
DOS: MOV AL, 0A4HMOV DX, 0010HOUT DX, AL
MOV AX,300INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
TRES:MOV AL, 0B0HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
CUATRO:
MOV AL, 099HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
CINCO:MOV AL, 092HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
SEIS:MOV AL, 082HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
SIETE:MOV AL, 0F8HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
OCHO:MOV AL, 080HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
NUEVE:MOV AL, 090HMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
DECIMALPOINT:MOV AL, 07FHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
MOV AL, 0FFHMOV DX, 0010HOUT DX, AL
MOV AX,1000INT 1CH
JMP PROGR
CODE ENDS
END PROGR
Este codigo trabaja basicamente con tres instrucciones de transferencia de datos,MOV, TransfiereINT , EntradaOUT, Salida
Y una instruciion de pruebaJMP, Salto
E identificadores de segmentos para definir, longitud y ubicación en la memoria destinada para programar
Tabla de Verdad del Contador
DEC BINARIO DECODIFICADOR C.C HEX a b c d e f g dp
0 0 0 0 0 0 0 0 0 0 0 1 1 401 0 0 0 1 1 0 0 1 1 1 1 1 F92 0 0 1 0 0 0 1 0 0 1 0 1 523 0 0 1 1 0 0 0 0 1 1 0 1 D04 0 1 0 0 1 0 0 1 1 0 0 1 995 0 1 0 1 0 1 0 0 1 0 0 1 946 0 1 1 0 0 1 0 0 0 0 0 1 147 0 1 1 1 0 0 0 1 1 1 1 1 F18 1 0 0 0 0 0 0 0 0 0 0 1 109 1 0 0 1 0 0 0 1 1 0 0 1 91
Parte II
Se requiere crear un codigo para encender aleatoriamente los segmentos de un display siete segmentos, para lo cual utilizamos la instrucción especial ROTAR, que corresponde a una rutina de rotacion de dato inicial,tambien utilizamos un ciclo de retardo (LOOP L1) para darle continuidad al proceso de encendido de segmentos, con las respectivas instrucciones de ubicación y longitud de segmentos para trabajar el programa acontinuacion,
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
ORG 0H
PROGR: MOV AL,11111110B MOV DX,0010H OUT DX,AL
ROTAR:
MOV CX,0FFFFH
L1: LOOP L1
ROL AL,01H
OUT DX,AL
JMP ROTAR
CODE ENDS END PROGR
Tabla de verdad para Segmentos dedisplay
DEC BINARIO DECODIFICADOR A .C HEX dp g f e d c b a
0 0 0 0 0 1 1 1 1 1 1 1 0 FE1 0 0 0 1 1 1 1 1 1 1 0 1 FD2 0 0 1 0 1 1 1 1 1 0 1 1 FB3 0 0 1 1 1 1 1 1 0 1 1 1 F74 0 1 0 0 1 1 1 0 1 1 1 1 DF5 0 1 0 1 1 1 0 1 1 1 1 1 BF6 0 1 1 0 1 0 1 1 1 1 1 1 BF7 0 1 1 1 0 1 1 1 1 1 1 1 FF8 1 0 0 0 1 1 1 1 1 1 1 1 FF9 1 0 0 1 1 1 1 1 1 1 1 1 FF
CONCLUSONES
El software especializado nos facilita en gran parte el trabajo de extensión con la programación, y muchos
procesos para ejecución y compilación del mismo.
Hay que tener especial cuidado a la hora de introducir el código con el teclado de mando, porque es muy sensible a cambios inesperados que se traducen en bloqueo del módulo.
Existen registros que trabajan de forma simultánea, o se asumen de igual manera (CS, DS), por lo cual se debe tener especial cuidado ya que corresponde a ubicación y longitud de segmentos de datos para el programa a trabajar
Se pueden implementar varias formar diseñar un código para programar x o y mismo periférico con diferentes registros, instrucciones y rutinas.
BIBLIOGRAFIA
Guía Práctica–Laboratorio TIME, microprocesador de 32 bits
Guía Teórica–Laboratorio TIME, microprocesador de 32 bits
Software Especializado E24ide – Documentos de ayuda – teclado y mandos.
top related