| Author |
Message
|
greenboy Poziom 2

Joined: 10 Dec 2004 Posts: 3 Location: z za rogu
|
#1
10 Dec 2004 20:55 Kalkulator - Od tego co nie jest w temacie |
|
|
|
Witam wszystkich!
Na wstępie chciałbym powiedzieć, iż jestem osobą totalnie nie znająca się na elektronice a poniższe pytanie zadaje celem poszerzenia horyzontów. Więc wybaczcie jeśli wystąpi błędne rozumowanie, złe nazewnictwo czy coś w ten deseń.
Chciałbym się dowiedzieć jak zaprojektować kalkulator. Taki zwykły, bez dodatkowych funkcji, tylko +, -, /, * i ewentualnie pierwiastkowanie. Co jest potrzebne do konstrukcji? Jaki procesor, jaki lcd etc.
Jeśli ktoś zechce się podzielić ze mną swoimi informacjami to z góry dziękuję!
|
|
| Back to top |
|
 |
Google

|
#
10 Dec 2004 20:55 |
|
|
|
|
|
| Back to top |
|
 |
Xitami Poziom 21

Joined: 10 Aug 2004 Posts: 1126 Location: Gliwice
|
#2
10 Dec 2004 21:00 Kalkulator - Od tego co nie jest w temacie |
|
|
|
Powiedz jeszcze czemu Cię to interesuje, serio, to ważne pytanie.
|
|
| Back to top |
|
 |
greenboy Poziom 2

Joined: 10 Dec 2004 Posts: 3 Location: z za rogu
|
#3
10 Dec 2004 21:38 Re: Kalkulator - Od tego co nie jest w temacie |
|
|
|
Moje zainteresowanie tym tematem bierze się z czystej ciekawości świata. Jakiś czas temu rozmawiałem z ciekawym człowiekiem, który w bardzo ciekawy sposób opowiadał mi o różnych elektronicznych urządzeniach. Takich, które ułatwiają czy może raczej urozmaicają człowiekowi życie takich właśnie jak kalkulator, termometr elektroniczny, urządzenie do sterowania światłem w domu etc. Niestety była to zupełnie przypadkowa znajomość i nie mam do niego żadnych namiarów, a tak to bym jego pomęczył :)
Generalnie chciałbym spróbować zrozumieć jak działają niektóre rzeczy, jakie występują zależności. Jak próbowałem coś znaleść w necie to wszystko to dla mnie jest zbyt skomplikowane. Po prostu jestem laikiem w tym temacie i nawet nie mam podstaw. Studiuję zupełnie nie pokrewne rzeczy bo zarządzanie i marketing i tam wystarczy przeczytać książkę raz lub dwa i nie ma rzeczy niezrozumiałych :)
|
|
| Back to top |
|
 |
Google

|
#
10 Dec 2004 21:38 |
|
|
|
|
|
| Back to top |
|
 |
Xitami Poziom 21

Joined: 10 Aug 2004 Posts: 1126 Location: Gliwice
|
#4
10 Dec 2004 22:12 Kalkulator - Od tego co nie jest w temacie |
|
|
|
Nie szukaj jakichś tam szczegółów. Poszukaj o maszynie Turinga i twirdzeniu Gudla (kto wie jak to się pisze?), a najlepiej, „Nowy umysł cesarza”, Penrosa chyba.
A co do „podstawowego” pytania, JAK?
Tysiąc dróg, procesor? Dowolny!, LCD? Wystarczy że będzie działał ;)
Bardzo fajnym procesorem jest „Pentium” to które siedzi na drugim końcu Twojej klawiatury! Ktoś powie, „Pentium do kalkulatora?” i co z tego, no bo czemu nie?
No bo jakie kryteria?
|
|
| Back to top |
|
 |
Google

|
#
10 Dec 2004 22:12 |
|
|
|
|
|
| Back to top |
|
 |
brzoskwin Poziom 12

Joined: 14 Nov 2004 Posts: 102 Location: Warszawa
|
#5
10 Dec 2004 22:18 Kalkulator - Od tego co nie jest w temacie |
|
|
|
Pisze sie Gödla :D
I twierdzenie Gödla:
Jeżeli S jest zawierającym w sobie arytmetykę liczb naturalnych i S jest niesprzeczny (spójny), to S jest niezupełny, tzn. istnieją zdania w S, których prawdziwości nie da się udowodnić na podstawie przyjętych aksjomatów.
II twierdzenie Gödla:
Jeżeli S jest niesprzeczny, to niesprzeczność S jest niedowiedlna w S.
|
|
| Back to top |
|
 |
Xitami Poziom 21

Joined: 10 Aug 2004 Posts: 1126 Location: Gliwice
|
#6
10 Dec 2004 22:26 Kalkulator - Od tego co nie jest w temacie |
|
|
|
Dzięki Brzoskwin.
Napisałem źle, a ktoś wiedział o czym piszę, fajnie.
Twierdzenie wygląda „akademicko” i „uczenie” ale ma niesamowite konsekwencje.
|
|
| Back to top |
|
 |
greenboy Poziom 2

Joined: 10 Dec 2004 Posts: 3 Location: z za rogu
|
#7
10 Dec 2004 22:41 Kalkulator - Od tego co nie jest w temacie |
|
|
|
Herr Xitami, gratuluje poczucia humoru i oczywiscie dziękuję za niezwykle życiowe rady. Myślę jednak, że twierdzenia Gödla zostawię sobie na później. Myślałem raczej o małym kalkulatorze, więc pentium odpada....
|
|
| Back to top |
|
 |
Google

|
#
10 Dec 2004 22:41 |
|
|
|
|
|
| Back to top |
|
 |
qmpel Poziom 13

Joined: 10 Oct 2004 Posts: 119 Location: Biała Podlaska ale normalnie Białystok, a teraz Wrocław...
|
#8
10 Dec 2004 23:36 Re: Kalkulator - Od tego co nie jest w temacie |
|
|
|
Hey !!
hehe nieźle Panowie :)
Co do kalkulatora to jakoś na pierwszy rzut, jako człowiek, który nie zna się w ogóle na elektronice, to dosyć zawiły problem, zacznij od jakichś dzwonków, alarmów, liczników itp. :)
No ale poważnie, tak jak Xitami pisał jest duuużo dróg do zrealizowania tego tematu, od układów logicznych do procków (tych małych '51 i dużych P4). Za pomocą "czystej elektroniki scalakowej" dodawanie i odejmowanie da się zrealizować na sumatorach (nie pamietam na pamięć numerków), a liczby wpisywać poprzez licznik binarny. Z mnożeniem i dzieleniem jest trudniej, normalnie na kartce robi się to tak jak ze zwykłymi liczbami ale z realizacją elektroniczna (bez procka na scalaczkach) jest gorzej, no ale jak bardzo to tego nie napiszę, bo nie pamiętam i nie mam gdzie zajrzeć :)
...a tak w ogóle to nie mam sił pisać, bo mnie kaszel męczy :(
Pozdrawiam !!
|
|
| Back to top |
|
 |
Xitami Poziom 21

Joined: 10 Aug 2004 Posts: 1126 Location: Gliwice
|
#9
11 Dec 2004 14:25 Kalkulator - Od tego co nie jest w temacie |
|
|
|
No to szukasz tematu do kawiarnianej pogawędki, czy schematu i kodu?
Procesorek taki powinien po pierwsze być w stanie sterować w sumie sporym wyświetlaczem, i myślę że to właśnie powinno decydować o wyborze, swój głos oddaję na „motylka” z Atmela.
|
|
| Back to top |
|
 |
Paweł Es. Poziom 25

Joined: 14 Sep 2004 Posts: 7099 Location: Warszawa
|
#10
12 Dec 2004 02:25 Re: Kalkulator - Od tego co nie jest w temacie |
|
|
|
No to właściwie się każdy nada do tego celu.
Najprościej jest zapisać liczby w układzie dziesiętnym: jedna komórka pamięci jedna cyfra. Dodatkowa komórka do pamiętania znaku i jeszcze jedna do pamiętania położenia przecinka. Muszą być takie dwa zestawy dla obu wprowadzanych liczb.
Przed dodawaniem i odejmowaniem przesuwasz jedną liczbę tak by przecinki były w tym samym miejscu (odrzucasz te cyfry po przecinku, które wychodzą poza zakres). Można też liczyć z dokładnością o jeden większą niż jest to pokazywane na wyświetlaczu wtedy dodajemy na większej ilości cyfr po przecinku i zaokrąglamy ostatnią cyfrę.
Mnożenie można realizować przez wielokrotne dodawanie. Aby zmniejszyć liczbę dodawań dokonujemy przesunięcia pozycyjnego mnożnej (podobnie jak przy mnożeniu na papierze). Czyli maksymalna ilość dodawań to 9*N gdzie N ilość pozycji mnożnika.
Do następnych operacji używa się metody iteracyjnej Newtona-Raphsona na szukanie rozwiązania równania f(x)=0, gdzie kolejne przybliżenie dane jest wzorem
x[i+1]=x[i]-f(x[i])/f'(x[i])
gdzie f' pierwsza pochodna funkcji.
Dzielenie polega na iteracyjnym przybliżaniu ułamka 1/x
Zwykle pierwsze przybliżenie jest stablicowane (decydują np. dwie najstarsze cyfry x) dla zmniejszenia ilości iteracji.
dzielenie przekształcamy do postaci iloczynowej
a=y/x=y*1/x
liczymy iteracyjnie 1/x i wynik mnożymy przez y.
Pierwiastek liczymy iteracyjnie ze wzoru (metoda Newtona-Raphsona)
gdzie
a - liczba pierwiastkowana
y[n] - poprzednie przybliżenie
y[n+1] - nowe przybliżenie
Obliczenia prowadzimy do momentu gdy przestaną się zmieniać cyfry na założonej ilości miejsc po przecinku czyli ujmując to wzorem:
|y[n+1]-y[n]|<eps
gdzie
| | - moduł liczby
eps - założona dokładność np. 0.0000001
Największym problemem jest znalezienie pierwszego przybliżenia (różne firmy robią to w różny sposób, metoda zależy także od sposobu reprezentacji wewnętrznej liczb w kalkulatorze).
Można np. przedstawić liczbę w postaci
x=x0*100^N czyli pierwiastek będzie √x=√x0*10^N
1. Normalizujemy liczbę do znanego zakresu 0..1 (dzieląc wielokrotnie przez 100 i zliczając ilość podzieleń = N - robimy to przesuwając przecinek o 2N pozycji w lewo).
2. liczymy pierwsze przybliżenie z przedziałowego równania liniowego (przybliżamy wykres funkcji pierwiastek w zakresie 0..1 linią łamaną) y0=a*x0+b,
gdzie a,b współczynniki danego odcinka łamanej.
3. stosujemy iteracje NR np. 4 krotnie (ilość zależy od jakości przybliżenia w punkcie 2).
4. wynik pomnożyć n-krotnie przez 10 (przez przesunięcie przecinka).
|
|
| Back to top |
|
 |