¿Cómo puedo controlar 8 LED con un retardo de tiempo con solo un microcontrolador (PIC12) escrito en el ensamblaje?

2

Puedo tener 5 pines de E / S habilitados. Estoy confundido sobre cómo controlarlos individualmente.

    
pregunta BabEE

2 respuestas

2

No tienes suficiente E / S para conducir cada uno directamente desde el microcontrolador. Hay dos maneras de evitar esto.

1) Necesita un decodificador externo de 3 a 8 (o 4 a 16) que transforme sus n líneas de E / S en 2 ^ n líneas de E / S. 74154 o 74238 hará el truco. Desventaja: es hardware adicional, pero la ventaja es que es muy fácil de manejar. Otra opción es 74595, que son registros de desplazamiento de serie a paralelo que se pueden conectar en cadena para una E / S infinitamente efectiva.

2) Puede escanear dos bancos de 3 LED utilizando 2 líneas de control y 3 líneas de datos. Las líneas de control se conectan a los extremos negativos de los LED, mientras que las líneas de datos se conectan al positivo. Parece una cuadrícula en la que su línea de control está en el eje X, los datos en su eje Y y los LED donde se cruzan las dos líneas. Enciende los indicadores LED 1 a 3 tirando el Control 1 hacia abajo para que pueda haber una diferencia potencial entre ellos y Control 2 alto para que los LED 4-6 permanezcan apagados. Independientemente de los LED que desee, gire hacia arriba en la línea de datos. Luego, toma el control 2 bajo y el control 1 alto, y configura las líneas de datos para que enciendan los LED 4-6 a la vez que obligan a apagar los LED 1-3. Como solo querías 5, no pongas un 6 en el segundo banco. Te alternas lo suficientemente rápido para que sea imperceptible a la vista. Esto no necesita nada externo, pero es más difícil de hacer en software.

¡Asegúrate de tener resistencias limitadoras actuales!

    
respondido por el BB ON
2

Si puede usar las 5 patillas de E / S, debería poder manejar 8 LED. La forma de hacerlo es muy similar a lo que Bamako describe utilizando 2 líneas de control y 3 líneas de datos. El truco es usar solo 1 línea de control y 4 líneas de datos. Sin embargo, para hacer que esto funcione, debe montar los LED de los dos 'bancos' en dirección opuesta: un banco tiene sus ánodos conectados a las líneas de datos, el otro tiene sus cátodos conectados a las líneas de datos. Los pines restantes de los LED se conectan a la línea de "control". Al establecer la línea de control alta, le permite controlar un conjunto de LED (la configuración de las líneas de datos es baja para los LED que desea encender). La configuración de la línea de control baja le permite controlar el otro conjunto de LED (la configuración de las líneas de datos está alta para que se iluminen).

Por alguna razón, el editor de esquemas integrado no se carga para mí, así que aquí hay una imagen externa. (Por favor, ignore que estos son diodos regulares y no LEDs; el principio es, por supuesto, el mismo). Por supuesto, también querrá resistencias limitadoras actuales en estas líneas.

    
respondido por el fm_andreas

Lea otras preguntas en las etiquetas