Forum: Mikrocontroller und Digitale Elektronik Funktionsweise eines taschenrechners, gute Literatur


von Mike B. (mike_b97) Benutzerseite


Lesenswert?

Ich interessiere mich für die Arbeitsweise eines Taschenrechners, und 
zwar nur für die Eingabefunktion.
Die Eingabe von mehrstelligen bzw. Zahlen mit Kommastellen über die 
Tastatur müsste nach jeder Ziffer ja einen Shift des gesamten bisherigen 
blocks nach links bzw. nach rechts zur Folge haben. Solange, bis ein 
Operator, eine Funktionstaste oder ähnliches gedrückt wird.

Gibt es dazu empfehlenswerte Literatur?

von 1n4148 (Gast)


Lesenswert?

"Fantastic Beasts & Where to Find Them" von Newt Scamander

von Stefan F. (Gast)


Lesenswert?

Das wäre aber ein kurzes Buch, mit vielleicht drei Seiten.

Was du brauchst, sind Grundlagen in irgendeiner Programmiersprache 
gepaart mit dem Talent, Aufgaben in Algorithmen zu überführen.

Eine Hand voll Ziffern in einem Array zu verschieben ist allerdings 
Pillepalle:
1
uint8_t eingabePuffer[12];
2
3
void einfuegen(uint8_t neueZiffer)
4
{
5
  for (int i=12; i>0; i--)
6
  {
7
    eingabePuffer[i]=eingabePuffer[i-1];
8
  }
9
  eingabePuffer[0]=neueZiffer;
10
}

Reich das für ein Kapitel im Buch?

von Michael Engel (Gast)


Lesenswert?

Falls der "Rest" des Taschenrechners doch auch von Interesse sein 
sollte, gibt's hier einen tollen Artikel von Ken Shirriff, der den 
sinclair scientific-Taschenrechner von 1974 reverse engineered hat:

http://files.righto.com/calculator/sinclair_scientific_simulator.html

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

Stefan U. schrieb:
> Was du brauchst, sind Grundlagen in irgendeiner Programmiersprache

Ich dachte eigentlich an die Hardware-technische Umsetzung. Da wird doch 
sowas wie ein Tastaturcontroller drin sein oder gehen diese Eingaben 
auch direkt ans Rechenwerk?

von Stefan F. (Gast)


Lesenswert?

> Da wird doch sowas wie ein Tastaturcontroller drin sein

Nein sicher nicht. Google mal nach "Tastenmatrix", das ist die übliche 
Lösung und die wirst du sicher wieder erkennen, wenn du dir die Platine 
im Taschenrechner genauer anschaust.

> oder gehen diese Eingaben auch direkt ans Rechenwerk

Der Chip im Taschenrechner ist ein "Mikrocontroller", noch ein Stichwort 
zum Googeln.

von C. A. Rotwang (Gast)


Lesenswert?

Mike B. schrieb:

> Ich dachte eigentlich an die Hardware-technische Umsetzung. Da wird doch
> sowas wie ein Tastaturcontroller drin sein oder gehen diese Eingaben
> auch direkt ans Rechenwerk?

Das machen ein paar Inputs und ein paar outputs, da brachts keinen extra 
controller: Antikes Beispiel: 
http://hc-ddr.hucki.net/wiki/doku.php/z1013:literatur:fa-87-04

Also nacheinander die einzelnen Segmente (Spalten oder zeilen, je nach 
aufbau auswählen und dann an den Outputs anhand der Position der 
'1'-bits auslesen welche Taste gedrückt wurde.

Einfach mal nach Tatstaturmatrix auslesen googeln:
http://halvar.at/elektronik/kleiner_bascom_avr_kurs/3x4_tastenfeld/

von Stefan (Gast)


Lesenswert?

Mike B. schrieb:
> Eingabe von mehrstelligen bzw. Zahlen

Was er sucht ist womöglich eher die Umwandlung eines Strings in eine 
(float) Zahl. Sollte man mit Google finden "string to float" oder so.

von Stefan F. (Gast)


Lesenswert?

Taschenrechner rechnen aber nicht mit float, außer vielleicht die ganz 
billigen aus dem 1 Euro Shop.

Richtige Taschenrechner rechnen mit Dezimalzahlen.

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

irgendwie hab ich mir das anders vorgestellt
nach dem Druck einer Zifferntaste 0..9 wird diese Ziffer in einen Akku 
mit Wordbreite gepackt.
Kommt jetzt ein weiterer druck auf eine Zifferntaste wird zuerst der 
Akku nach links verschoben (jetzt nur mal ganze Zahlen) und die neue 
Eingabe an die niedrigste Stelle gespeichert. Dies für die variante 
eines Tastaturspeichers für Dezimalziffern.
Sollte der Controller bereits binär arbeiten müsste die Eingabe aus der 
Tastatur durch einen 10x4-Coder (0..9, die 0 muss als Stelle der Zahl ja 
auch gesendet werden) gehend in den Akku gepackt werden werden um bei 
der nächsten Eingabe den Akku erst nach 1bit links zu schieben und dann 
die neue binär vorliegende Ziffer dazuzuaddieren.
quasi Akku:=shl(Akku)+Puffer

Und da dachte ich mir das müsste als simples Addierwerk hardwareseitig 
vorgesehen sein.

von Stefan (Gast)


Lesenswert?

Mike B. schrieb:
> Addierwerk

Ja vor 50 Jahren mag das noch so gewesen sein. Da haben die Tischrechner 
auch noch ein paar hundert DM gekostet. Heute hat man halt einen 
Microcontroller, der jeweils ein Zeichen von der Tastatur empfängt, im 
RAM ablegt und dann damit weitere Operationen anstellt...

Du kannst ja mal nach antiker Literatur suchen. Oder du sagst was Du 
konkret vorhast bzw. lernen möchtest.

von Stefan (Gast)


Lesenswert?

Schau vielleicht mal hier

 Beitrag "Taschenrechner aus AND- OR- NOT- usw. -Gattern"

die Links von Yalu  sind sicher gut...

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

Stefan schrieb:
> Mike B. schrieb:
>> Addierwerk
>
> Ja vor 50 Jahren mag das noch so gewesen sein. Da haben die Tischrechner
> auch noch ein paar hundert DM gekostet. Heute hat man halt einen
> Microcontroller

Ok, also wird das heute nur noch softwareseitig gemacht, das beantwortet 
meine Frage halbwegs.
Somit muss ich also in antiker Literatur weitersuchen.

von Mike B. (mike_b97) Benutzerseite


Lesenswert?

Stefan schrieb:
> Schau vielleicht mal hier
>
>  Beitrag "Taschenrechner aus AND- OR- NOT- usw. -Gattern"
>
> die Links von Yalu  sind sicher gut...

leider sind die Links von Yalu veraltet

von Axel S. (a-za-z0-9)


Lesenswert?

Stefan schrieb:
> Mike B. schrieb:
>> Eingabe von mehrstelligen bzw. Zahlen
>
> Was er sucht ist womöglich eher die Umwandlung eines Strings in eine
> (float) Zahl. Sollte man mit Google finden "string to float" oder so.

Nur daß Taschenrechner nicht mit Strings arbeiten und auch nur seltenst 
mit float.

Mike B. schrieb:
> irgendwie hab ich mir das anders vorgestellt

Ach! </loriot>

> nach dem Druck einer Zifferntaste 0..9 wird diese Ziffer in einen Akku
> mit Wordbreite gepackt.
> Kommt jetzt ein weiterer druck auf eine Zifferntaste wird zuerst der
> Akku nach links verschoben (jetzt nur mal ganze Zahlen) und die neue
> Eingabe an die niedrigste Stelle gespeichert.

Nichts davon passiert. Aktuelle Taschenrechner sind stinknormale µC mit 
Tastenmatrix und (speziellem) Display. Der µC kann z.B. ein ARM sein - 
siehe https://commerce.hpcalc.org/34s.php. Auf solchen Taschenrechnern 
ist das "Hereinschieben" der eingegebenen Zahlen von rechts ein reiner 
Showeffekt.

Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab. Da 
sind die zwei (oder mehr) "Register" vermutlich BCD und beim Eintippen 
einer Zahl wird da eine echte 4-fach Schiebeoperation gemacht. Nicht daß 
es irgendwie hilfreich wäre, Details zu wissen.

von Schlaubi Schlumpf (Gast)


Lesenswert?

> Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab.

Nur wenn ein 4 bit-Prozessor ein reines "Gatter- und Flipflopgrab" 
waere.

Hier mal ein Link von weiter oben:
http://files.righto.com/calculator/sinclair_scientific_simulator.html

Und das ganze ein wenig traditioneller:
http://files.righto.com/calculator/TI_calculator_simulator.html

von Helmut S. (helmuts)


Lesenswert?

Axel S. schrieb:
>
> Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab. Da
> sind die zwei (oder mehr) "Register" vermutlich BCD und beim Eintippen
> einer Zahl wird da eine echte 4-fach Schiebeoperation gemacht. Nicht daß
> es irgendwie hilfreich wäre, Details zu wissen.


Funkschau
Tischrechner, elektronischer, mit integrierten TTL-Schaltungen 72/1/23, 
72/2/57, 72/3/94, 72/9/322

Diese alten Hefte (1972?) wird man nur in einer Bibliothek finden.

von Axel S. (a-za-z0-9)


Lesenswert?

Michael Engel schrieb:
> gibt's hier einen tollen Artikel von Ken Shirriff, der den
> sinclair scientific-Taschenrechner von 1974 reverse engineered hat:
>
> http://files.righto.com/calculator/sinclair_scientific_simulator.html

In der Tat ein genialer Artikel. Unbedingt auch dem Link zu TI's Chip 
(TMS0800) folgen. Da steht noch mehr zur Architektur und es gibt auch 
einen Simulator für einen traditionellen (algebraisch statt RPN) 
Taschenrechner.

von Lars Laberowski (Gast)


Lesenswert?

Schlaubi Schlumpf schrieb:
>> Eher traditionelle Taschenrechner sind ein Gatter- und Flipflopgrab.
>
> Nur wenn ein 4 bit-Prozessor ein reines "Gatter- und Flipflopgrab"
> waere.

Genau, wobei die ersten 4bit processoren eher für die "Tisch"-rechner 
gedacht waren als die "Taschen"-rechner, deren Kleinheit und 
Batteriebedingten knappen Stromangebot nach einem Integrationsgrad 
verlangte, was die intel 4004 Chipfamilie eher nicht bot.
Da der erste "Rechner mit i4004: 
https://en.wikipedia.org/wiki/Intel_4004#/media/File:Unicom_141P_Calculator_3.jpg


Die nötige Kleinheit bot erst ein 4bit Controller wie der TMS1000 der 
ROM, RAM und CPU unter einem Gehäuse vereinigte.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.