Paso 4: Puertos de la entrada-salida de conservar con un cambio de registro
Un momento para engranajes "cambio"...
Un registro de cambio puede ser entendido mejor por pensar en las dos palabras que componen su nombre: "cambio" y "registro". El turno de palabra se refiere a cómo están moviendo a través del registro de los datos. Aquí (como en nuestro Arduino y microcontroladores, en general) un registro es una ubicación que contiene los datos. Esto logra por implementsing una cadena lineal de circuitos de lógica digitales llamado "flip flops" que tiene dos Estados estables que pueden ser representados por un 1 o 0. Así, poniendo ocho ojotas juntos que tiene un dispositivo que es capaz de sostener y que representa un byte de 8 bits.
Apenas como hay varios tipos de flip flops y varios variaciones sobre un tema de registros de desplazamiento (que arriba/abajo contadores y Johnson contadores), también hay varios tipos de registros de cambio partiendo de qué datos está trabados en el registro y cómo esos datos están de salida. En base a esto, considerar los siguientes tipos de registros de desplazamiento:
- Serie / paralelo hacia fuera (SIPO)
- Serie de serie / salida (SISO)
- Paralelo serie a (PISO) / en
- Paralelo / paralelo hacia fuera (PIPO)
Dos de nota son SIPO y PISO. Registros SIPO toman datos en serie, es decir, un bit tras otro, cambiando la broca previamente entrada sobre para el siguiente flip flop y enviando los datos en todas las entradas a la vez. Esto hace una buena serie a paralelo convertidor. Registros de cambio PISO, por el contrario, tienen entradas paralelas, por lo que todos los bits se introducen a la vez, pero salen uno a uno. Y usted lo conjeturaba, esto hace que para un buen paralelo a serial converter. El registro de desplazamiento que queremos usar para reducir el número de pines de I/O nos permitiría tomar los 8 pernos IO que hemos utilizado anteriormente y reducir abajo a uno, o tal vez sólo un par, considerando que podemos necesitar controlar cómo nos los bits de entrada. Por lo tanto, el registro de desplazamiento que vamos a usar es una serie / paralelo.
Conectar el registro de desplazamiento entre el LED y el Arduino
Usar un registro de cambio es fácil. La parte más difícil es visualizar a las clavijas de salida de datos y cómo los dígitos binarios va a terminar en la IC, y cómo eventualmente aparecerán en el LED. Tome un momento para planificar esto.
1. Fije 5V al pin 14 (arriba a la derecha) y tomar el pin 7 (abajo izquierda) hasta suelo.
2. el registro de desplazamiento tiene dos entradas serie pero sólo usaremos uno, así que conectar dos a 5V
3. no utilizar el pin claro (usado a cero hacia fuera todas las salidas) hasta dejarlo flotante o atacar a 5V
4. Conecte un puerto digital de IO para pin del registro de desplazamiento. Este es el pin de entrada serial.
5. Conecte un puerto digital de IO al pin 8 (abajo a la derecha). Este es el pin de reloj.
6. Conecte las líneas de datos desde Q0 a Q6. Sólo estamos utilizando 7 bits porque el conjunto de caracteres ASCII utiliza solamente siete bits.
Usé PD2 para hacer salir mis datos en serie y PD3 para la señal de reloj. Para los pines de datos, conecté Q0 a D6 en el LED y sigue así (Q1 a D5, Q2 D4, etc.). Ya que nos estamos enviando datos en serie que tenemos que examinar la representación binaria de cada personaje queremos enviar, mirando de 0 y 1 y la salida de cada bit en la línea serie. He incluido una segunda versión de la fuente de dotmatrixled.c junto con un archivo make a continuación. Ciclos a través del juego de caracteres y muestra todo incluso los caracteres (si es raro pensar que una carta podría ser par o impar, pensar en la representación binaria de un momento). Tratar de averiguar cómo hacer alternar entre Mostrar todos los caracteres impares. Puede experimentar aún más con las conexiones entre el registro de desplazamiento, la matriz de puntos LED y su Arduino. Hay varias funciones de control entre el LED y el registro que le permite afinar el control sobre cuando los datos se muestran.
Sí... hemos pasado de tener que utilizar ocho puertos de la entrada-salida a usar sólo dos!