¿Cómo funciona el procesador de la calculadora de manera básica? [cerrado]

-1

Por ejemplo, cuando hacemos clic en el botón numérico "3" o en el botón "+", ¿qué envía al procesador? Quiero una respuesta algo como: "Viene primero, MAR, luego va a la memoria, luego viene ALU" de esta manera, quiero aprender estos pasos de procesamiento. Gracias desde ahora.

Editar: Especialmente no entiendo, cómo y desde dónde el procesador toma la entrada y entiendo que presionamos el botón "3".

    
pregunta Ozan Yurtsever

4 respuestas

1

los botones están todos cableados individualmente, ya sea un cable por o una matriz de columna de fila. por ejemplo, un lado del interruptor se puede atar a tierra y el otro a un pin en el mcu, con un tirón hacia arriba en el mcu. Cuando se presiona el botón, la señal es baja. Para las calculadoras que funcionan con baterías, el procesador está idealmente inactivo esperando una interrupción para ahorrar energía, de cualquier manera recibe una interrupción o está sondeando el teclado. Sabe por la entrada qué botón es y agrega ese valor a un analizador de software que maneja las entradas. Desde allí es como cualquier otro software en cualquier otro procesador, usted analiza la entrada y toma las acciones apropiadas. En general, las pantallas también tienen una potencia muy baja y algunas tienen una señal separada por segmento, una clavija separada, de esta manera el software mcu puede encender y apagar algunas y luego irse a dormir y se quedan en ese estado.

Al igual que el teclado, saben por el cableado de la placa / diseño qué pin es qué segmento y para "imprimir" el número 3 en la primera columna, qué 5 segmentos deben activarse y cuáles dos o tres deben activarse apagado. Repita para el resto de la pantalla.

Entonces puedo complicarme tanto como quiera o esté dispuesto a pagar, puede tener un procesador dedicado al teclado como lo hacemos con nuestras computadoras, y uno dedicado a la pantalla y luego uno para realizar las operaciones , en esos casos, entonces definirías un protocolo entre ellos (como tenemos con nuestros teclados en nuestras computadoras / computadoras portátiles), un poco inútil para algo como una calculadora que solo tiene que superar a los pulsadores humanos a velocidades humanas.

No hay magia si eso es lo que esperabas, tienes algún tipo de interruptor o forma de detectar un botón "presionar" usando alguna tecnología, de nuevo, uno por botón o un enfoque de columna de fila te dará un Respuesta única por botón (la fila / columna no funcionará si presionan dos). entonces es solo software desde allí.

EDIT

Si está interesado en obtener / ejecutar una calculadora no es la forma más fácil de pensar de forma remota; hay muchas cosas básicas que están sucediendo solo para manejar la pulsación de tecla. Solo piense en un programa simple que ejecute el código de máquina desde el ram si está interesado en las tuberías del procesador.

unsigned int fun ( unsigned int a, unsigned int b )
{
    return(a+b+3);
}

dando

00000000 <fun>:
   0:   e2811003    add r1, r1, #3
   4:   e0810000    add r0, r1, r0
   8:   e12fff1e    bx  lr

Un operando está en el registro r0 el otro en el registro r1. El procesador obtiene la primera instrucción 0xe2811003, luego la descodifica y luego determina que necesita leer el contenido de r1 como entrada. Entonces esos contenidos y la constante 3 se suman. Luego se guarda el resultado (escrito a) r1. Ya sea en paralelo o por separado, dependiendo del diseño, el procesador busca la siguiente instrucción. 0xe0810000, lo descodifica, determina que es un agregado y necesita leer los operandos de r0 y r1, sumar esos valores y luego guardar el resultado en r0.

No importa si se trata de una calculadora, un navegador web o un programa de sistema operativo, es solo una secuencia de instrucciones que el procesador procesa. La secuencia no significa absolutamente nada para el procesador, solo significa algo para el programador. Cuando se trata de teclados, ratones, tarjetas de video o discos duros, es exactamente la misma secuencia de instrucciones que se alimenta a través del procesador y no importa lo que significan como grupo.

Los espacios de direcciones bien conocidos / definidos para ese procesador o computadora determinan si está hablando con ram o con un periférico. La placa es bien conocida por la placa y los ingenieros de chips y software, ya que saben qué está conectado a qué y / o una interfaz genérica (usb, etc.) que también está bien definida en cuanto a cómo funciona cómo se comunica a través de él, etc. .

Una calculadora es solo una aplicación, no en realidad tan simple como tienes que hacerlo sin agotar la batería, idealmente un año o más, pero quién sabe. Y tiene que hacer cálculos complicados con un procesador idealmente de poca potencia, por lo que hay muchos trucos matemáticos involucrados y / o un muy buen esquema de ahorro de energía dentro del procesador (los bloques de multiplicar solo habilitan los relojes durante una multiplicación tal vez), aunque No creas que lo hacen ya que hay algunos que se sabe que tienen mcus genéricos en lugar de algo exótico, pero al final del día es solo una colección de instrucciones que no significan nada para la CPU, la CPU no tiene conexión directa Para los periféricos, hay interfaces en el chip que hacen eso (entre el núcleo de la CPU y el borde del chip), pines GPIO, uno para cada tecla del teclado, por ejemplo.

    
respondido por el old_timer
1

Realmente comienza lo que está dentro de una ALU. Disculpe la mala calidad de la imagen, la capturé de la versión PDF de un libro de texto llamado "Organización y diseño de computadoras". Trataré de hacer esto corto y dulce.

Comopuedeveraquí,estoesloquehaydentrodeunaALUde1bit.PuedeverlasumaAND,OR,de\$a\$y\$b\$,yluegolabanderaMENOSQUE.TambiénhayunadeteccióndebanderasSETyOVERFLOW.Ahoravamosacombinar32deestostiposparacrearunaALUde32bits.

Ahora podemos agregar números más grandes para obtener un resultado de 0 a 4294967296. Esta ALU de 32 bits también viene con una puerta OR al final para una detección de bandera ZERO. Por lo tanto, si agrega 0 + 0, el indicador CERO se levantará y obtendrá 0 como respuesta. Todos los números están en binario ... por ejemplo, si sumas 3 + 2, realmente estás realizando 000 ... 011 O 000 ... 010 para obtener 000 ... 101, que es 5 en binario.

    
respondido por el KingDuken
0

En realidad estás preguntando cómo una pequeña computadora hace matemáticas. Eche un vistazo en Internet a las 'rutinas matemáticas de software', que deberían ser suficientes allí.

El hecho de que la CPU sea un sistema integrado en una calculadora no afectará la relevancia de las respuestas.

    
respondido por el TonyM
0

Los botones de una calculadora están dispuestos en cuadrículas rectangulares. Las pistas en la placa de circuitos están dispuestas en columnas y filas, con almohadillas de cobre en cada columna y fila debajo de cada botón. En la parte posterior de cada botón habrá una pieza de metal elástica o una gota de goma conductora. Entonces, cuando presiona un botón, se conecta una fila y una columna.

La calculadora comprueba qué botón estás presionando aplicando un voltaje a cada fila por turno y viendo si aparece algo en una columna. O al revés si es más fácil para el fabricante.

En la calculadora frente a mí, los botones 7, 8, 9 y X están en la tercera fila. Si el microprocesador aplica un voltaje a la tercera fila, y ve un voltaje que regresa a la segunda columna, entonces sabe que presioné el 8.

    
respondido por el Simon B

Lea otras preguntas en las etiquetas