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.