Paso 9: Control de los LEDs
Cada LED representa 1 bit. Para el control de cada LED, tenemos que enviar bits 28 a los registros de cambio desde el PIC18F4550. Ya que utilizamos el protocolo SPI para transferir datos a registra el cambio, realmente terminamos enviar 32 bits de datos (4 bytes). Esto es porque el protocolo SPI sólo envía datos de 8 bits a la vez con este microcontrolador particular. de todos modos, no se utilizan los 4 bits extras y que simplemente ignoramos (voy siempre les dejamos como 0). Una vez que cambie los datos en el 74HC595, nosotros entonces "pestillo" les. Lo que significa que cualquier datos cambió de puesto en ellos, se puso ese valor (1 (alto) o 0 (bajo)) en sus salidas. Saldremos en algunos ejemplos ahora que puede aclarar algunas de las preguntas.
Ejemplo 1
Decir que queremos a todos de los LEDs azules. ¿Cuáles serían los valores para cada byte de datos que cambie en cada registro? Esto es donde algunos lógica booleana básica entrarán en juego. Ya que estos LEDs son activo alto (enciende cuando escribimos un 1 a ellos) tenemos que escribir un 1 a 0 para apagarlos. Así que si queremos todo, tendríamos que escribir esto en los registros de desplazamiento:
MSb Lsb hexagonal
IC1 - 1er Byte enviado -> 11111111 0xFF
IC2 - 2 º Byte enviado -> 11111111 0xFF
IC3 - 3er Byte enviado -> 11111111 0xFF
IC4 - 4 Byte enviado -> 00001111 0x0F
Por lo que uno fue bastante fácil. Nos acaba de hacer algo que representa un LED igual a 1 (+ 5v). Entonces cierre de los datos y convertiría en todos los LEDs azules. Por supuesto los 4 bits que sean 0 son aquellos que van a ignorar y no conectados con cualquier LED.
Ejemplo 2
Decir que queremos convertir a todos los del azul LED apagado. ¿Esta es otra fácil, pero lo que le escribimos a los registros de cambio?
MSb Lsb hexagonal
IC1 - 1er Byte enviado -> 0 x 00 00000000
IC2 - 2 º Byte enviado -> 0 x 00 00000000
IC3 - 3er Byte enviado -> 0 x 00 00000000
IC4 - 4 Byte enviado -> 0 x 00 00000000
Ahora nos acaba de hacer algo que representa un LED igual a 0 (0v). Entonces cierre de los datos y daría vuelta apagado de los LEDs azules.
Ejemplo 3
¿Qué datos enviamos a encender LED7, LED8 LED42, LED43, LED47 y LED52? Todos los LEDs no mencionados deberán estar apagados.
bit 7---bit 0
MSb Lsb hexagonal
IC1 - 1er Byte enviado -> 11000000 0xC0
IC2 - 2 º Byte enviado -> 0 x 00 00000000
IC3 - 3er Byte enviado -> 0 x 00000110 06
IC4 - 4 Byte enviado -> 0 x 00001001 09
Una vez que cierre y daremos vuelta el LED7 LED8 que son bit 7 (QH) y 6 (QG) de IC1. También bit 1 (QB) y bit 2 (QC) en IC3 va alta, encender LED42 y 43 LED. En IC4, bit 0 (QA) y bit 3 (QD) será alta, encender LED47 y LED52.
Su realmente simple encender cualquiera del interior LEDs. Basta con mirar el esquema, averiguar donde los LEDs son que desea encendido y apagado, convertir en 4 bytes y su conjunto. A continuación aprenderemos cómo utilizar las funciones que se han escrito para que el PIC18F4550 transmitir los datos a los registros de cambio.