segmentos de display (7 segmentos) y contador numérico

13
UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERIAS ARQUITECTURA DE COMPUTADORES Presentado A: Ingeniero. Sergio Iván Quintero INFORME DE LABORATORIO Segmentos de Display (7 Segmentos) y Contador Numérico Integrantes Dayana 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

Upload: valeria-villalobos

Post on 25-Jul-2015

277 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Segmentos de Display (7 Segmentos)  y Contador Numérico

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.

Page 2: Segmentos de Display (7 Segmentos)  y Contador Numérico

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

Page 3: Segmentos de Display (7 Segmentos)  y Contador Numérico

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.

Page 4: Segmentos de Display (7 Segmentos)  y Contador Numérico

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

Page 5: Segmentos de Display (7 Segmentos)  y Contador Numérico

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.

Page 6: Segmentos de Display (7 Segmentos)  y Contador Numérico

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

Page 7: Segmentos de Display (7 Segmentos)  y Contador Numérico

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

Page 8: Segmentos de Display (7 Segmentos)  y Contador Numérico

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

Page 9: Segmentos de Display (7 Segmentos)  y Contador Numérico

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

Page 10: Segmentos de Display (7 Segmentos)  y Contador Numérico

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.