Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

KrzysioKalkulator na polskich układach CEMI i wyświetlaczu

phanick 21 Apr 2016 17:17 19257 36
lampy.pl
  • KrzysioKalkulator na polskich układach CEMI i wyświetlaczu
    Przedstawiam prosty kalkulator czterodziałaniowy, zbudowany na polskich układach:

    * MC14007 - jednostka centralna kalkulatora (8 cyfr, dodawanie, odejmowanie, mnożenie, dzielenie, podnoszenie do kwadratu, pierwiastkowanie, liczenie odwrotności oraz pamięć)
    * CQYP-95 - czerwony wyświetlacz siedmiosegmentowy + kropka, 9 cyfr
    * UCY74549 - driver (9 x darlington ściągający do masy)

    Wszystkie powyższe układy wpadły przypadkiem w moje ręce, więc postanowiłem połączyć je w jedyną słuszną całość. Cały kalkulator od strony technicznej nie jest niczym niezwykłym - został zbudowany według schematu podanego w nocie katalogowej układu MC14007 jako typowe zastosowanie.

    Całe urządzenie zasilane jest z baterii 9 V i składa się z dwóch płytek drukowanych połączonych złączami krawędziowymi:

    * pierwszej - ze wszystkimi układami i wyświetlaczem,
    * drugiej - z przyciskami.

    Priorytetem podczas konstrukcji były możliwie jak najmniejsze wymiary oraz zmieszczenie się na jednej warstwie, co się udało. Kalkulator jest sporo mniejszy w porównaniu do BRDA 10U, opartym także o te same układy. Długo zastanawiałem się, gdzie umieścić baterię 9 V. Wybór padł pomiędzy obiema PCB, z tego powodu kalkulator jest trochę wysoki.

    Sporo osób buduje podobny kalkulator, pomijając niektóre mniej używane przyciski. Ja postanowiłem umieścić wszystkie 30 przycisków, trochę z ciekawości co robią. I tak ciekawość została zaspokojona:

    0-9 -> cyfry
    . -> wprowadzanie kropki rozdzielającej część całkowitą od ułamkowej
    PS -> ustawienie ilości cyfr ułamkowych (po wciśnięciu tego klawisza wciskamy cyfrę n=0-7 lub C/CE). Od tej pory kalkulator będzie wszystkie wyniki zaokrąglał i wyświetlał z dokładnością do n cyfr po przecinku.
    Jeśli zamiast cyfry wciśnięto C/CE, to wracamy do trybu ze zmienną ilością cyfr po przecinku.
    +/- -> zmiana znaku wyświetlanej cyfry
    * + - / -pierwiastek, kwadrat, odwrotność -> operacje arytmetyczne
    = -> wyświetlenie wyniku
    C/CE -> jeśli użytkownik wpisał liczbę A, potem wcisnął przycisk działania D, a potem wpisał liczbę B, to pierwsze wciśnięcie wraca do stanu sprzed wpisania liczby B, a drugie wciśnięcie wraca do stanu sprzed wpisania liczby A.
    CM -> kasuje liczbę umieszczoną uprzednio w pamięci
    MR -> przywołuje na wyświetlacz liczbę z pamięci (bez jej kasowania)
    M+ / M- -> dodaje/odejmuje do/od zawartości pamięci wyświetlaną na wyświetlaczu liczbę
    M+= / M-= -> dodaje/odejmuje do/od zawartości pamięci wyświetlaną na wyświetlaczu liczbę, po czym przywołuje nań bieżącą jej zawartość
    MT -> przywołuje na wyświetlacz zawartość pamięci i kasuje pamięć
    % -> traktuje wartość na wyświetlaczu jako liczbę wyrażoną w procentach i wykonuje wybrane działanie

    Ciekawostki:

    Dziewiąta cyfra

    Wyświetlacz jest 9 cyfrowy, jednak pierwsza cyfra od lewej używana jest tylko do:

    * wyświetlania znaku wyniku (brak znaku to plus, - to wynik ujemny),
    * sygnalizowanie zajętości pamięci kropką,
    * sygnalizowanie zbyt dużego co do modułu wyniku operacji, poprzez wyświetlanie litery C,
    * sygnalizowanie zbyt małego co do modułu wyniku operacji, poprzez wyświetlanie odwróconej litery C
    * sygnalizowanie niskiego stanu baterii poprzez wyświetlenie litery L

    Układ MC14007 ma jeszcze dwie ciekawe funkcje:

    * 18 pin układu (LB) to wejście napięcia zasilania Uwe, które porównywane jest z wewnętrznym napięciem referencyjnym Uref = ok. 2.5-3.2 V. Jeśli Uwe > Uref, to kalkulator zaczyna wyświetlać literę L. Jest to proste zabezpieczenie przed błędami obliczeniowymi spowodowanymi zbyt małym napięciem baterii
    * 17 pin układu (DI) to wejście sterujące układem wygaszania wyświetlacza przy bezczynności kalkulatora, podłączone do układu RC. Tuż po włączeniu kalkulatora, kondensator jest rozładowany, więc napięcie na nim jest 0 V, więc na pinie DI jest napięcie zasilania. Wraz z upływem czasu, kondensator ładuje się przez rezystor R (ze stałą czasu RC), więc napięcie na nim rośnie, a na pinie DI spada. Gdy napięcie na DI spadnie poniżej pewnego poziomu (co nastąpi po czasie, który można ustalić dobierając odpowiednio wartości R i C), kalkulator wykryje to jako stan bezczynności i na ekranie wyświetli jedynie znak -. Gdy użytkownik wciśnie jakiś klawisz, wewnątrz układu na tym pinie pojawia się krótkie zwarcie do zasilania, co powoduje rozładowanie kondensatora, a więc napięcie na DI znów będzie równe napięciu zasilania i cały cykl się powtarza. Wg noty katalogowej, producent zaleca R=3.9M, C=47uF. Ja z braku takiego rezystora, zastosowałem 1M, co spowoduje szybsze przejście kalkulatora w stan bezczynności.

    Pobór prądu:

    * 7 mA: kalkulator z odłączonym wyświetlaczem,
    * 30 mA: kalkulator z podłączonym wyświetlaczem, gdy wyświetlone jest osiem ósemek
    * 10 mA: kalkulator z podłaczonym wyświetlaczem, gdy wyświetlona jest jedna ósemka.

    Z prostego rachunku wychodzi, że prąd pojedynczego segmentu w każdej cyfrze to ok. 0.4 mA

    Układ UCY74549

    Układ UCY74549, pełniący rolę drivera sterującego katodami wyświetlaczy (9 x klucz nasycony, ściągający do masy) jest w nietypowej obudowie - jest to DIP22, rozstaw nóg typowy (0.1 cala), ale nietypowy, odstępie między pierwszym a drugim rzędem nóg (coś pomiędzy wąskim DIL-em, a szerokim). Nie wiem, z jakiego powodu zastosowano obudowę DIP22, skoro i tak 2 nogi są niewykorzystane.

    Cyfry 6 i 9

    Nie wiedzieć czemu, cyfra 6 nie ma górnej poprzeczki, a 9 - dolnej, co zmniejsza ich czytelność.
    KrzysioKalkulator na polskich układach CEMI i wyświetlaczu

    Multipleksowanie wyświetlacza

    Analizując przebiegi wystawiane przez układ MC14007, można zauważyć, że:

    * czas wyświetlenia pojedynczej cyfry: 330 us
    * czas martwy w oczekiwaniu na wygaszenie cyfry: 30us
    * czas przemiatania klawiatury: 750 us
    * częstotliwość multipleksowania wyświetlacza: 25 Hz

    Czas trwania pierwiastkowania (najdłuższa operacja): 0.39s
    Czas trwania odwracania liczby: 0.11s-0.2s
    Czas trwania mnożenia: 0.1s

    Zdjęcia:
    KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu
    KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu KrzysioKalkulator na polskich układach CEMI i wyświetlaczu

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    phanick
    Level 28  
    Offline 
    Has specialization in: energetyk najwyższych napięć
    phanick wrote 2464 posts with rating 2553, helped 57 times. Live in city Warszawa. Been with us since 2007 year.
  • lampy.pl
  • #2
    Janusz_kk
    Level 35  
    Gratulacje !!
    Napracowałeś się.

    Janusz
  • lampy.pl
  • #4
    LA72
    Level 40  
    W dobie wszędobylskich uC wykonanie na kalkulatora na starych układach to bajka.
    Gdybyś to "ubrał" w jakąś przezroczystą obudowę to byłby niezły projekt edukacyjny.
  • #5
    JanuszArtur
    Level 14  
    Rewelacja! cudo PRL, nie jak dzisiejsze konstrukcje zwykle oparte o ARDUINO. Jak młody byłem to na takim wyświetlaczu działał komputer CA80, a ja do teraz mam zegarek na takich LED :)
    Bardzo mi się podoba. Aż szkoda, że już takich cacek nie robią.
  • #6
    atom1477
    Level 43  
    phanick wrote:
    Cyfry 6 i 9
    Nie wiedzieć czemu, cyfra 6 nie ma górnej poprzeczki, a 9 - dolnej, co zmniejsza ich czytelność.
    KrzysioKalkulator na polskich układach CEMI i wyświetlaczu

    To klasyczne rozwiązanie z układów cyfrowych z lat '60 i '70 (czyli w PRLu z jeszcze późniejszych).
    Wynika to prawdopodobnie z uproszczenia budowy dekodera BIN->7seg co miało znaczenie w dawnych układach które były drogie w produkcji.
  • #7
    Paweł Es.
    VIP Meritorious for electroda.pl
    Quote:
    Nie wiedzieć czemu, cyfra 6 nie ma górnej poprzeczki, a 9 - dolnej, co zmniejsza ich czytelność.


    To wynika z uproszczenia dekodera cyfr na siedem segmentów -> oszczędność powierzchni struktury lub po prostu jej zabrakło ewentualnie posiadano taki a nie inny model w bibliotece elementów użytych przy tworzeniu struktury.

    Podobne uproszczenie mają np. dekodery 7447 (BCD na 7 segmentów).
  • #9
    mkpl
    Level 37  
    Wyszło super :) sam kiedyś odratowałem taki kalkulator z elektrozłomu i bardzo go lubię (mimo kiepskich przycisków).

    Swoją drogą taki projekt udowadnia, że uP nie wszędzie da się zastosować. Np takie funkcje są nieosiągalne dla atmegi8.
  • #11
    zipzap
    Level 16  
    To i ja dorzucę link do mojego dawnego projektu na MC14009 :) :

    Kalkulator MC14009

    Zastanawiałeś się nad umieszczeniem baterii pod wyświetlaczem? W takim układzie byłby on na wysokości, albo lekko powyżej, klawiatury. Teraz jest nieco w głębi.
    Jakiś czas temu zrobiłem płytkę identycznego kalkulatora, który miał pełnić funkcję testera posiadanych przeze mnie MC14007 i odpowiedników. Wyposażyłem ją w podstawkę ZIF, a baterię umieściłem właśnie pod CQYP95. Muszę znaleźć czas, żeby ją polutować.

    KrzysioKalkulator na polskich układach CEMI i wyświetlaczu

    P.
  • #12
    Qdlaty78
    Level 12  
    atom1477 wrote:
    phanick wrote:
    Cyfry 6 i 9
    Nie wiedzieć czemu, cyfra 6 nie ma górnej poprzeczki, a 9 - dolnej, co zmniejsza ich czytelność.
    KrzysioKalkulator na polskich układach CEMI i wyświetlaczu

    To klasyczne rozwiązanie z układów cyfrowych z lat '60 i '70 (czyli w PRLu z jeszcze późniejszych).
    Wynika to prawdopodobnie z uproszczenia budowy dekodera BIN->7seg co miało znaczenie w dawnych układach które były drogie w produkcji.


    To raczej nie jest "spad" po PRLu. Nie jest tajemnicą, że seria UCY74 jest kopią SN74xx z TI, a oryginalna nota z TI też ma ten kształt. MC14xxx to już polskie konstrukcje i tu się zgadzam, z biblioteki wzięto maskę od 7447. Dodanie tych brakujących segmentów to kwestia dodatkowych dwóch bramek, więc dziwi trochę, że nie poprawili wyglądu tych cyferek. A projekt fajny, muszę sprawdzić stare kartony w piwnicy, różności z CEMI tam były, kto wie, może i kalkulator?
  • #14
    deus.ex.machina
    Level 32  
    mkpl wrote:

    Swoją drogą taki projekt udowadnia, że uP nie wszędzie da się zastosować. Np takie funkcje są nieosiągalne dla atmegi8.


    A to wypowiedz mnie zaciekawiła - czy mógłby kolega rozwinąć swoja myśl?
  • #15
    A.Gieronimo
    Level 35  
    Ten odwieczny problem, codziennie nowa bateria (a wtedy były piekielnie drogie), dlatego nikt nie lubił tych kalkulatorów, chyba że ktoś miał szczęście i posiadał zasilacz. Wracając na ziemię, brakuje mu iskierki nowoczesności, ładowania solarnego? Może w postaci modułu dołączanego jako opcja PRL-DeLux :D
  • #16
    PPK
    Level 28  
    Jak mam czas, to siedzę nad projektem 14009/10/11 ale z 3 wyświetlaczami QDSP (4cyfry * 3) 0,3". Jestem na etapie wykonania płytek. Zwaliłem już jedną bo się okazało, że drukarka laserowa fałszuje skalę 1:1 o +5%. KrzysioKalkulator na polskich układach CEMI i wyświetlaczu
  • #17
    1996arek
    Level 20  
    Bardzo fajny projekt. Jeszcze obudowa i można używać :)

    @PPK Drukujesz z PDFa? Drukarka nie jest chyba winna. Najprawdopodobniej masz złe ustawienia drukowania.
  • #18
    PPK
    Level 28  
    Z PDF-a. Ustawienia mam ok.: 100%, rozdzielczość 600dpi czyli 0,0016". Najpierw myślałem, że płytka się rozszerza pod wpływem gorąca ale porównałem z wydrukiem z atramentówki (też PDF) i okazało się, że to z lasera nie trzyma wymiaru. Papier ten sam -cienka kreda. Jakość j.w., zawalczymy jeszcze :)
  • #19
    IS
    Level 17  
    Koledzy przecież SN7447 miało specjalnie taki kształt cyfr a nie dlatego, że dwóch bramek poskąpili. W USA w piśmie używa się mniej "zawijasów" dla cyfr 1,6,7,9. Szczególnie przy 1 i 7 trzeba uważać aby poprawnie kod pocztowy napisać bo do dziś się nie mogą nauczyć i naszą jedynkę biorą za siódemkę. Mnie osobiście akurat kształt cyfr rodem z 7447 się podoba.
  • #20
    idepopizze
    Level 33  
    @IS
    Zgadza się, w UK tak samo podchodzą do tych cyfr - czyli malując polskie zawijasy można mieć nieporozumienie.
  • #21
    szymon122
    Level 38  
    mkpl wrote:
    Np takie funkcje są nieosiągalne dla atmegi8.

    Też jestem bardzo ciekawy z jakiego powodu czegoś takiego nie zrobimy?
    Sam mam w planach zrobić kalkulator na AtMega328p i wyświetlaczu graficznym 1.8", może po prostu o czymś nie wiem ale wszystkie funkcje dodawania liczb itp raczej da się zrobić.
  • #22
    ArturAVS
    Moderator HP/Truck/Electric
    mkpl wrote:
    Wyszło super :) sam kiedyś odratowałem taki kalkulator z elektrozłomu i bardzo go lubię (mimo kiepskich przycisków).

    Swoją drogą taki projekt udowadnia, że uP nie wszędzie da się zastosować. Np takie funkcje są nieosiągalne dla atmegi8.


    Sorry, ale jakich funkcji nie da się zastosować?
    Co dla Atmegi8 jest nieosiągalne? Zwykły kalkulator?

    Zobacz co w/g noty MC miał.
  • #23
    leonow32

    Level 30  
    arturavs wrote:
    mkpl wrote:
    Wyszło super :) sam kiedyś odratowałem taki kalkulator z elektrozłomu i bardzo go lubię (mimo kiepskich przycisków).

    Swoją drogą taki projekt udowadnia, że uP nie wszędzie da się zastosować. Np takie funkcje są nieosiągalne dla atmegi8.


    Sorry, ale jakich funkcji nie da się zastosować?
    Co dla Atmegi8 jest nieosiągalne? Zwykły kalkulator?

    Zobacz co w/g noty MC miał.

    W MC14007 siedzi podobno prosty procesorek 4-bitowy działający na arytmetyce BCD, z kilkoma rejestrami i jakoś pierwiastki potrafi liczyć ;) procesor potrafi tyle co jego programista :)
  • #24
    cirrostrato
    Level 37  
    Jak łatwi dziś młodzież uszczęśliwić......Ok. 1975 roku nie mieliśmy czasem co robić w biurze (firma elektroniczna państwowa) a na bublach było pełno złomu części do tych kalkulatorów, płytki drukowane, obie, kalkulatora fabrycznego, tylko one nie były sprzedawane na bublach, opracowaliśmy sami (nie żadna nowość, zerżnęliśmy z oryginału), fotochemię mieliśmy na miejscu, także firma miała stanowisko do złocenia PCB (dawaliśmy tylko do płytek od klawiatury, jak w oryginale), z kilku kalkulatorów składało się dwa-trzy, składak kosztował jakieś 400zł, sprzedawaliśmy po 1000zł a w sklepach były po ok. 2500zł. Tylko nie było wtedy internetu ale i tak nie było by się czym chwalić. Przepraszam za szczerość, ten kalkulator to składak we współczesnym wydaniu nie obrażając nikogo.
  • #25
    PPK
    Level 28  
    W 1978r stałem się dumnym posiadaczem TI-30 (większa ilość poszła na giełdę.... :) ). Potem kombinowaliśmy z 14008 i 14009. Do tego doszło, że kumpel na kościach 14009 i TTL-ach zrobił ..... doktorat. Miernik poślizgu silnika 3 fazowego. Swoją drogą, pomysł, żeby jako programu używać kolejno zapamiętanych komend z klawiatury był genialny w swojej prostocie.
  • #26
    Pinecha
    Level 13  
    Witam
    Zbudowałem kilkadziesiąt kalkulatorów kupując na " bublach "w Gdańsku , Bydgoszczy, Warszawie złomowane / wycofane z produkcji płytki i elementy /
    Wyświetlacze również ultradźwiękami były naprawiane na PG a płytki drukowane były w akademickim obiegu . Fajne czasy jak miło powspominać
    Może jeszcze gdzieś mam takie elementy
    Pozdrawiam
  • #28
    phanick
    Level 28  
    Przecież sam zdejmowałeś z niego obudowę
    http://www.leon-instruments.pl/2012/04/kolekcja-struktury-ukadow-scalonych-z.html
    Na pewno jakiś układ RC do generowania 25 Hz z którego przemiatany jest wyświetlacz.
    34 bity do zapamiętania liczby na wyświetlaczu (+1 bit znaku)
    34 bity do zapamiętania liczby w pamięci (+1 bit znaku)
    Pewnie kolejna podobna ilość bitów jako rejestr pomocniczy przy odwracaniu/pierwiastkowaniu i innych operacjach
    3 (lub 8 bitów, zależnie od implementacji) do pamiętania stanu podczas odświeżania wyświetlacza
    No i sporo bramek realizujących operacje arytmetyczne. Także w prostym CPLD poniżej 100 makrocel pewnie nawet się to nie zmieści. A jeśli chodzi o samodzielną implmementacje kalkulatorka.. Może scalak 74181 (ALU) ułatwi, do tego jakiś rejestr pamięający (np.74hc670)