jueves, 7 de abril de 2011

Experimentos con Microprocesadores

En una entrada anterior comenté sobre mis experiencias con el Kit de desarrollo MEK-6800 de Motorola (ver Fig. 2) que permitía realizar toda clase de desarrollos tanto en el terreno del hardware como del software. Permitía comprender en plenitud la estructura de una computadora basada en la arquitectura de Von Neumann, programarla y desarrollar interfaces para conectarla con el mundo exterior.

Fig. 1 Entrenador Heathkit ET-3400

Debido a esta versatilidad es que en las universidades de todo el mundo, en especial en carreras de ingeniería, aún hoy se utilizan kits similares para el aprendizaje acabado de técnicas digitales y programación de bajo nivel. El Kit de Motorola consistía básicamente de dos placas (bastante grandes) una de las cuales contenía el uP 6800, las memorias ROM y RAM, una PIA (chip de bus paralelo) y una ACIA (chip de interface serie); la otra placa contenía un robusto conjunto de teclas 16 de valores hexadecimales y 8 de control y el display de 7 segmentos con 6 dígitos.

En futuros artículos voy a extenderme sobre algunas particularidades de estos sistemas, pero ahora, vamos “a las cosas” como aleccionaba Ortega y Gasset, porque cómo señalé en otras oportunidades, la propuesta de estos artículos es que los estudiantes y ocasionales lectores puedan llevar a la práctica los conceptos y se animen a experimentar un poco de lo que pueden encontrar en textos tecnicos, desarrollado en forma muy completo y detallada.

Ya expliqué en el artículo Recursion and Machine Language de este blog, cómo implementar la recursividad en lenguaje de máquina. Entonces: ¿Cuál es el objetivo?

Fig. 2 El Kit MEK6800 de Motorola


¡El objetivo es dar pautas simples para poder reproducir estas actividades!

Se preguntarán cómo pueden realizar las experiencias sin contar con el Kit entrenador MEK-6800 (que Motorola denominó Exorcicer, aludiendo humorísticamente a la película “El Exorcista”). Pues bien, el primer paso lo podemos realizar empleando un EMULADOR que corre bajo Windows. Claro está que con el emulador no tendremos la posibilidad de realizar los experimentos de electrónica digital, pero podremos tener un entendimiento completo de la estructura de un uP. A partir de ese conocimiento, pueden acceder al trabajo con Microcontroladores que tienen todas las funciones mencionadas en un solo chip, por lo que son muy económicos y fáciles de usar. El emulador que conseguí está basado en otro Kit que desarrolló la firma Heathkit, se trata del ET-3400 (en este caso no remite a la película ET sino que prosaicamente corresponde a ENTRENADOR).


Fig. 3 Emulador del ET-3400

Primera Experiencia

Al iniciar nuestro EMULADOR, el programa, replica el funcionamiento del ET-3400, muestra en el display de 7 segmentos el mensaje "CPU UP" que indica que el sistema esta listo para recibir instrucciones. El primer botón que vamos a oprimir es RESET. Este botón nos será útil cada vez que el sistema se cuelque porque hay alguna falla en el código que ingresamos.

Operaciones Con Registros y memoria

Para comenzar, vamos a realizar una serie de prácticas para familiarizarnos con el EMULADOR, y emplearemos las siguientes instrucciones: LDAA, STAA, LDAB, STAB, TAB y HLT. Si bien el uP 6800 dispone de diversos modos de direccionamiento, vamos a dejar ese tema para una discusión futura y nos limitaremos al modo de direccionamiento inmediato, es decir que luego de la instrucción pondremos un valor literal.

La instrucción LDAA permite cargar un valor en el ACUMULADOR A. Buscamos en la tabla de instrucciones que muestra que esta instrucción con direccionamiento inmediato tiene el código de máquina 86 exadecimal. También vamos a poner la instrucción HLT (halt o detener) que ordena al uP a detenerse. HLT que corresponde al código de máquina 3El.

Ahí vamos

Cargar el Acumulador A con un dato

1) Hacemos clic en el botón EXAM (letra E) e ingresamos 0000 (cuatro ceros), el emulador nos mostrará el contenido de la posición de memoria 0000.
2) Hacemos clic en el botón CHANGE (letra C).
3) Ingresamos el 86 que es el código de máquina de la instrucción LDAA.
4) Hacemos clic en el botón FORWARD (letra F) ahora estamos en 0001.
5) Hacemos clic en el botón CHANGE (letra C).
6) Ingresamos el valor FF (es el que queremos cargar en el Acumulador A).
7) Hacemos clic en el botón FORWARD (letra F) ahora estamos en 0003.
8) Hacemos clic en el botón CHANGE.
9) Ingresamos 3E que es el código de máquina de la instrucción HLT.
10) Hacemos clic en el botón DO (la letra D) que es la orden para ejecutar el programa.
11) Ingresamos 0000 que es la dirección de inicio de nuestro programa, y ¡voilá!

PERO...

¡SE PONE NEGRO EL DISPLAY!

Eso está bien ya que le dimos la instrucción HLT y el procesador (emulador) se detuvo.

12) Hacemos clic en el botón RESET y luego clic en el botón ACCA (el número 1).

Allí observamos en el display el valor "Acca FF"

¡El programa cumplió su cometido que era cargar el acumulador A con el valor FF!

Antes de despedirme me gustaría agradecer a Ricardo, por toda la información que me envió sobre la TK85 y sobre la revista Lúpin, hoy Ricardo es un ingeniero electrónico, pero recuerda la inspiración que le aportó la "revistucha". Ya voy a publicar algo sobre la TK que también inspiró a muchos en los inicios de la era informática.

Continuará...

0 comentarios: