-
Notifications
You must be signed in to change notification settings - Fork 13
Consola de entrada
La consola se divide en la parte de entrada y salida. Típicamente la consola de entrada es el teclado, y la consola de salida la pantalla
Sin embargo se pueden crear consolas de entradas más pequeñas para usos específicos. Por ejemplo, para probar circuitos digitales aritméticos necesitamos introducir números. Sería muy interesante tener un consola de entrada para números
Otro problema a estudiar es el de lograr tener la consola mínima. Esto depende mucho de la aplicación
Para introducir números necesitaríamos, en principio, 10 teclas o pulsadores: una para cada dígito: 0
, 1
, 2
... 9
. Además necesitamos una tecla ENTER
para indicar que se ha finalizado de introducir el número. Por tanto, el número mínimo sería de 11 teclas
Si además precisamos de una entrada con edición, para corregir datos, necesitaríamos otra tecla más: DEL
para borrar el último dígito introducido. En este caso necesitaríamos 12 teclas
Así vamos a distinguir entre dos tipos de consola: consolas básicas y consolas con edición. De momento nos centraremos en consolas básicas, que no permiten editar el número
¿Cómo podríamos reducir la consola? Una posibilidad es cmbiar la base. En vez de utilizar un sistema decimal, con 10 dígitos, podríamos usar el sistema binario, en base 2. En este caso, en la consola necesitaríamos sólo 3 teclas: 0
, 1
y ENTER
Pero todavía se podría reducir más la consola, si usamos el sistema UNARIO. En este caso sólo usamos el dígito 1
. Por tanto, sólo con dos teclas 1
y ENTER
podemos introducir números. Claro que en unario los números a introducir son pequeños, pero para hacer pruebas de circuitos básicos nos vale
La consola mínima, para introducir números no muy garndes estaría formada por 2 teclas: 1
y ENTER
. Habría que añadir una más para tener una consola con edición: DEL
El siguiente parámetro es determinar la cantidad de dígitos que se permiten. En el caso de la consola mínima utilizamos sólo un dígito. Por tanto, esta consola mínima sólo puede representar los números 0 y 1. Cuando sólo hay 1 dígito, la consola Unaria y binaria son muy parecidas. Ambas producen un bit como salida
Es especto de esta consola sería la siguiente:
A nivel de circuito, la consola debe tener como entradas las dos señales provenientes de los dos botones: dig y ret, correspondiente al dígito y a la recla enter (return). Como salida debe tener el dato (de 1 bit) y la señal de validación done
Sin embargo, necesitamos señales extra para generalizar su uso. La consola NO está funcionando todo el rato, sino que sólo se hará caso a las teclas cuando tenga "el foco". Es decir, cuando esté "encendida". Por ella la consola se comporta como una máquina. Y deberá tener una señal de start
, y su correspondiente señal de busy
Cuando la consola NO está encendida, permanece inerte... aunque se aprieten plsadores no hará nada. Una vez que esté activa, la consola se queda esperando a que se apriete enter
. En ese caso se emite el número introducido por el usuario por su salida de dat
y se envía un tic por done
Ejemplo de implementación de la consola. Como es una consola de un dígito, podemos utilizar el propio botón del dígito para activarlo/desactivarlo. Sería una especie de edición, pero sin añadir el botón de del
El dato temporal se muestra en el LED0. El resultado final, al apretar el ENTER, se muestra en el LED1
La consola arranca en el ciclo 0, y se pone a 1 el biestable de encendido, por lo que busy es 1. Mientras busy es 1, los tics de los botones pasan al interior. Cuando la consola está apaga (busy=0), las entradas de los botones siempre estarán a 0
Al apretar el botón de enter
se muestra el dato leido en el LED1 y se termina. Para volver a probarlo hay que hacer un reset
Ahora que ya tenemos la consola mínima funcionando, la encapsulamos en su bloque correspondiente y repetimos el ejemplo anterior
Ahora se entiende mejor. Una vez que arranca, la consola se queda esperando a que el usuario introduzca el dígito. Cuando se aprienta la tecla enter, este número se guarda en un biestable y se muestra en el LED1
En este ejemplo se implementa la calculadora más sencilla posible: Una que sólo tiene la operación de suma de dos números unarios de 1-bit. Se utiliza la consola mínima para introducir cada número
El circuito está en 3 estados diferentes:
-
S_OP1
: Introducción del operando 1 -
S_OP2
: Introducción del operando 2 -
S_RES
: Visualización del resultado
Secuencialmete se pasa del uno al siguiente. Así, primero la calcula se queda esperando a que se introduzca el operando 1. Al apretar enter se espera el operando 2. Al apretar de nuevo enter se visualiza el resultado de la suma del operando 1 más el operando 2 (El resultado es de sólo 1 bit). Por último, si apretamos enter de nuevo se vuelve al estado inicial
El controlador se ha llevado a un bloque aparte para que sea más claro el circuito. En este contolador hay 3 biestables conectados en anillo. A partir de las dos entradas: dat_ok
y key_ret
se generan las transiciones y se saca los valores de los nuevos estados
TODO
- Unidad de PWM de frecuencia aproximada
- VGA Retro: Puesta en marcha. MonsterLED
- Pines de Entrada/Salida
- Control de LEDs
- SPI esclavo
- SPI Maestro
- Display SPI de 4 dígitos de 7 segmentos
- Entrada y Salida de Bits con Componentes Virtuales
- Memorias
- Entradas y pulsadores
- Señales del sistema. Medición con el LEDOscopio
- Controlador LCD 16x2
- Señales periódicas y temporización
- Buses: Medio compartido
- Memoria Flash SPI
- Conexión de LEDs en la Alhambra II. Placa AP‐LED8‐THT
- Periféricos PMOD
- Fundamentos. Sistema Unario
- Autómatas
- Pantallas de vídeo. Fundamentos. Display de 1x4 LEDs
- Pantallas de vídeo. Fundamentos. Matriz de 4x4 LEDs