¿Cuál es una manera eficiente de dividir el reloj por 1000 o más?

7

Contexto: Este es un proyecto casero que no incorpora microcontroladores como un ejercicio de aprendizaje. Necesito cronometrar algo de hasta 20 segundos, hasta la centésima de segundo más cercana, y mostrar el intervalo de tiempo medido. Estoy usando un led de cátodo común de 4 dígitos y 7 segmentos para la pantalla.

Tengo un cristal de 100 kHz y quiero mostrar las decenas, unidades, décimas y centésimas de segundo (es decir, 23,36 segundos) en una pantalla de led de 4 dígitos y 7 segmentos. Pensé que podía usar el chip 4026, un contador decimal y un controlador led. Sin embargo, tengo que encadenar 3 de ellos solo para llegar a 100Hz, luego encadenar otros 4 para obtener los 4 dígitos de la pantalla. 7 ICs (más la lógica de multiplexación porque la pantalla usa conductores abcdefg comunes, además de reiniciar, etc.) parece mucho.

¿Me estoy perdiendo una forma mucho más sencilla de abordar esto? Las 'reglas' son: cualquier IC u otro componente pero ningún software (no MCU).

Gracias.

    
pregunta Henry

2 respuestas

4

Mantenlo simple. Puede encontrar IC que dividirán los 100 kHz por 1000, como 74HC4059 programable división por N contador, pero la mayoría de estos le costará un brazo y una pierna, donde un par de 74HC390 contadores haré El HC390 es un contador BCD dual, por lo que para el segundo solo necesita la mitad del IC, pero es más barato que un solo contador BCD.

    
respondido por el stevenvh
10

Si desea implementar un circuito como el que describe utilizando chips de venta estándar, estimaría que tomaría fichas de contador de tres décadas (dos de las cuales se usarán para dividir por cinco y una para dividir por cuatro), dos chips 74HC595 (registro de cambios con pestillo), un 74HC374 (pestillo de 8 bits), un chip de controlador de segmento, algunos transistores y resistencias para manejar cinco comunes de dígitos LED, y probablemente alrededor de 3-4 varios Chips "glue logic" (quad NAND, quad XOR, etc.)

El circuito básico tiene el aspecto de this ; como se ilustra, se ejecutaría en 20Khz en lugar de 100Khz, pero un contador de décadas conectado a la división por cinco lo arreglaría fácilmente.

Los LED destellan los dígitos en el orden 1000 ths 100ths décimos unidades decenas. Aunque en este esquema utilizo un latch de 20 bits con salidas realimentadas a las entradas, sería más fácil usar un chip de registro de desplazamiento para 16 de los bits. El chip de registro de desplazamiento (74HC595) también ofrecería la ventaja de incluir un pestillo de salida libre (equivalente al de la esquina inferior derecha).

Si uno omitiera las compuertas "AND" y "OR" cerca de la parte superior derecha del esquema, contaría en binario. Cada bit es el xor de sí mismo y el acarreo anterior, y el nuevo acarreo debería ser el "y" del arrastre anterior y el bit anterior, excepto que en el primer bit de cada "trama" se debe forzar el arrastre. Lógica muy simple que permite que cualquier incremento de longitud sea realizado por un registro de desplazamiento. Una ligera 'arruga' en esta variación es que el circuito se enganchará cada cuatro bits (ya que cada cuatro bits deberán mostrarse como un dígito decimal) y también probará si un dígito enganchado es 9 y se establece un acarreo; en ese caso, "simulará" que los siguientes cuatro bits de la palanca de cambios son todos de 1, lo que significa que ese dígito se ajustará a cero y el acarreo estará activo para el siguiente dígito.

Si uno no necesitaba mostrar los valores de conteo, podría ser más simple simplemente conectar en cascada un contador de división por diez para cada dígito. Por otro lado, este circuito ofrece la ventaja de poder multiplexar cinco dígitos en un solo controlador de pantalla. Si lo desea, podría adaptarse fácilmente para manejar cualquier número de dígitos, simplemente agregando más registros de desplazamiento y ajustando el circuito de temporización.

    
respondido por el supercat

Lea otras preguntas en las etiquetas