Documentos de Académico
Documentos de Profesional
Documentos de Cultura
FACULTAD DE INGENIERÍA
INGENIERÍA ELECTRÓNICA
PROYECTO:
“RELOJ ANALÓGICO”
SISTEMAS DE COMPUTACIÓN
ETN – 903 LAB
Presentado por:
Grupo:
Richard APAZA MAMANI
Maria Cecilia BALLESTEROS GONZALES
Maria Fernanda VARGAS SAAVEDRA
Docente:
Javier SANABRIA GARCIA
Fecha de entrega: 7 – 12 – 2018
LA PAZ – BOLIVIA
“RELOJ ANALOGICO”
1. Objetivos
Diseñar un sistema en LINUX que lea la hora del sistema y lo despliegue en
la pantalla en forma de un reloj analógico
Utilizar la librería VGA para el dibujo de la interfaz.
Leer el estado del TIC y del teclado.
Estructurar el programa mediante el uso de subrutinas y macros.
Subrutinas.-
Interfaz.- Dibuja la interfaz (círculos del reloj)
initec.- Inicializa el teclado
fintec.- finaliza el teclado
adq_seg.- convierte de segundos a horas, minutos y segundos
punto2.- utiliza funciones matemáticas para encontrar el ángulo en el que se
encuentran posicionados las agujas del reloj.
segund, minut, hors.- encuentran las posiciones en las que se encuentran el
segundero, minutero y horero respectivamente.
Macros.-
_vga_setcolor.- Selecciona el modo de video
_vga_drawline.- Dibuja una linea
_vga_font.- Dibuja los números del reloj en una determinada posición y con un
determinado formato
_vga_circulo,- dibuja círculos
Figura 1. Interfaz
Primero se grafico la interfaz, para lo cual se dibujo primero la circunferencia central,
y las marcas correspondientes a los minutos y segundos. Luego se procedió a
dibujar los números alrededor del reloj.
Para el diseño de las letras y números graficados en la interfaz, se realizo el mapeo
de cada numero y letra en una matriz de 16 bits por 16 bits (variables ‘.short’): ‘0’
no se coloca pixel, ‘1’ se coloca pixel. Se utilizo el macro _vga_font, que contiene
un algoritmo que se fija en el valor de cada bit en la matriz a dibujar, para decidir si
colocar el pixel en una determinada posición, y con un determinado color.
Figura 2. Ejemplo del Mapeo de Letras y Números
Una vez dibujada toda la interfaz, se leyó el estado del teclado y se verifico si se
presionó [ENTER]; si es este el caso se sale inmediatamente del programa, de otra
forma se lee la hora. El servicio 0D de la interrupción 80, nos devuelve el tiempo en
segundos. Para calcular las horas, minutos y segundos, se dividió entre 60 dos
veces: el resto de la primera división nos dio los segundos, el resto de la segunda
división nos dio los minutos y el cociente de esta última nos dio las horas. Con estos
datos, se obtuvo los ángulos (coordenadas polares) para el minutero, segundero y
horero. Con estos ángulos, se calculo las posiciones de cada una de las agujas del
reloj. Con estas posiciones se dibujo las manecillas del reloj actuales,
asegurándonos de borrar el dibujo de las manecillas en la posición anterior.
DIAGRAMA DE FLUJO
3. Conclusiones.