Académique Documents
Professionnel Documents
Culture Documents
En informtica, un men est conformado por una serie de opciones que el usuario puede elegir
para realizar determinadas tareas.
Los mens se organizan siguiendo el principio de los rboles, esto quiere decir que un men puede
tener mens hijos y mens padres. [1]
En el presente informe, se realiza el planteamiento del problema y el diseo del algoritmo, as como
un avance en la implementacin del cdigo en lenguaje C.
El algoritmo tendr que ser capaz de guardar los movimientos y poder reproducirlos mediante la
eleccin de dichas opciones en un men enviado por el mdulo USART del microcontrolador.
Las pruebas se realizan con el simulador PROTEUS DESIGN SUITE 8.5, utilizando el microcontrolador
PIC16F877A y el programa terminal HTerm para la comunicacin serial.
DESARROLLO
RESPONSABLES
CDIGO APELLIDO, Nombre
1310174 CALIXTO LPEZ, Marcos Bernard
1320996 ROMERO AGUIRRE, Rodolfo Junior
DESCRIPCIN:
Para este objetivo se determin la utilizacin de mens informticos, debido a la capacidad de estos
de poder separar tareas distintas en un mismo entorno.
Men Principal:
1. Modo entrenamiento.
2. Modo comando.
3. Salir.
1.1. Avanzar.
1.2. Retroceder.
1.3. Girar derecha.
1.4. Girar izquierda.
1.5. Salir modo comando.
2.1. Entrenar.
2.2. Reproducir.
2.3. Borrar.
2.4. Salir modo entrenamiento.
Men Entrenar:
2.1.1. Avanzar.
2.1.2. Retroceder.
2.1.3. Girar derecha.
2.1.4. Girar izquierda.
2.1.5. Terminar entrenamiento.
Para el desarrollo del algoritmo se utiliza el software PSeInt, que cuenta con la capacidad de crear
diagramas de bloque automticos a partir del pseudocdigo desarrollado, en primera instancia se
crearon los mens respectivos.
Men Principal:
Debido a que el software PSeInt no cuenta con la capacidad de crear variables globales para los
buffers de movimientos y tiempos, se opt por crear una funcion que permita seleccionar una de
las 3 opciones enviadas por el Men Modo entrenamiento.
Funcin:
Entrenar_reproducir_borrar(1):
Figura 1.9. Diagrama de bloques para el men de entrenamiento - opcin 1 (parte 2).
Entrenar_reproducir_borrar(2):
Entrenar_reproducir_borrar(3):
El desarrollo de las funciones de movimiento est desligado del objetivo de este informe, debido a
esto, su contenido no va ms all de mostrar al usuario que se ingres a dicha funcin mediante
un mensaje de consola.
El desarrollo del algoritmo entrenamiento permiti darnos cuenta que poda implementarse en una
sola funcin, ahorrando a los futuros procesadores un espacio de memoria extra.
Para la implementacin se utiliza el compilador XC8 de Microchip para poder generar el cdigo de
mquina que ser grabado en el microcontrolador, el link del cdigo se adjunta en la adenda.
Con una correcta configuracin de los distintos componentes se establece una comunicacin serial
mediante el microcontrolador y el HTerm.
Para los buffers de guardado de movimientos se opt por la definicin de tipo estatic char, lo cual
permite que su tiempo de vida se extienda a lo largo de toda la ejecucin del programa y evitando
el gran problema de reiniciarse en cuanto salga de la funcin contenedora. [2]
De la tabla 1.0 se puede observar que la etapa queda concluida hasta un 65%.
En las pruebas con el software PSeInt solo se puede llegar hasta el modo guardado de
movimientos correctamente, sin embargo, el pseudocdigo es correcto para un lenguaje
que no borre las variables al salir de la funcin (variables globales o estticas).
El software PSeInt no tiene la capacidad de declarar variables globales, siendo esto un
impedimento en algunos casos para la creacin de algoritmos.
El uso de variables estticas permite la implementacin de algoritmos ms complejos.
El uso de estructuras switches otorga una mayor versatilidad al momento de crear mens.
Para un grabado ms eficiente podran utilizarse memorias ROM externas, ya que un
buffer creado en la RAM no sera til en caso de reinicio del sistema.
CONCLUSIONES
Pseudocdigo PSeInt:
https://drive.google.com/file/d/0Byrcuosb-lsQbUxSdmtKTHp0QmM/view?usp=sharing
Programa XC8:
https://drive.google.com/file/d/0Byrcuosb-lsQNk1vVE1rcEdSc2M/view?usp=sharing
https://drive.google.com/file/d/0Byrcuosb-lsQNjA4b0RiUGp1VU0/view?usp=sharing