Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

polskie litery jak zadeklarowac wszystkie

malyarni 18 Sty 2005 20:15 2195 15
  • #1 18 Sty 2005 20:15
    malyarni
    Poziom 13  

    Witam
    Mam maly problemik potrzebuje na wyswietlaczu LCD w dsm51 wypisac wszystkie litery alfabetu polskiego lacznie z polskimi.
    Wszystko byloby dobrze gdyby bylo ich tylko 8, ale niestety jest 9 :(
    Jezeli wiecie to jak zrobic zeby wypisac te wszystkie litery to czekam
    z gory dziekuje za pomoc

    I jezeli jeszcze moge o cos spytac to chcialbym zrobic prosty "symulator" gry w totka tzn losowanie liczb 6 z 49 i nie wiem jak sie za to zabrac :(

    Wszystko w asemblerze

    Pomocy :)

    0 15
  • #3 18 Sty 2005 20:45
    malyarni
    Poziom 13  

    co do drugiego to juz wiem o co chodzi jutro sie z tym pobawie bo teraz czeka mnie cos innego

    a co do pierwszego
    tyle ze musze zwolnic miejsce w pamieci to tez wiem chodzi mi o to jak to zrobic skoro musze wypisac wszystkie litery na raz tzn. wysylam kod i od razu na wyswietlaczu lcd pojawia sie caly alfabet lub przesuwa sie

    0
  • #4 19 Sty 2005 17:57
    mkaczor
    Poziom 15  

    Moim zdaniem nie można jednocześnie wyświetlić wszystkich 9-ciu polskich znaków. Sterownik HD44780 pozwala zdefiniować tylko 8-em znaków. Zmiana definicji znaku przed wyświetleniem pojedynczego znaku oddziaływuje na wcześniej wyświetlone.

    0
  • #5 19 Sty 2005 18:42
    MMarek17
    Poziom 19  

    Sterownik HD44780 pozwala zdefiniować tylko 8-em własnych znaków. Tak ale można zdefiniować 8 i mieć wszystkie znaki.
    W wersji z ROMCODE A02 jest już znak ó (kod bin 11110011). Oprócz tego ten ROM zawiera znaki różnych strzałek i parę innych ciekawych znaczków. ROMCODE A00 jest pod tym względem gorszy - znaki japońskie.
    Zatem szukaj wersji z ROMCODE A02.

    0
  • #6 19 Sty 2005 19:30
    malyarni
    Poziom 13  

    musi sie dac tylko jak

    wiem ze musi bo doktor z ktorym mam zajecia dal mi takie zadanie na 5

    dzialamy na mikrokontrolerze 8051 na bazie DSM-51

    i to na tym sprzecie ma to dzialac programowane w asemblerze

    0
  • #7 20 Sty 2005 17:01
    Max25
    Poziom 12  

    a powiedzial ze jednoczesnie? jak nie to wyswietl jedna, poźniej zmien zawartosc pamieci i wyswietl druga :]

    0
  • #8 20 Sty 2005 21:48
    malyarni
    Poziom 13  

    liter naliczylem 35 a na wyswietlaczu jest 2*16 czyli 32
    wiec to sobie obmyslilem ze bedzie to tak pojawia sie litera przesuwa sie przez gorna linijka z literka a a dolna linijka z literka ą itd
    czyli trzeba by to zrobic na takiej zasadzie ze jezeli pojawi sie juz ą to w jej miejscu "koduje" ż i potem odwrotnie znika ż pojawia sie ą
    nie wiem czy dobrzae mysle a jak dobrze to jak to zrobic bo jak na razie to nic sensownego mi do glowy nie przychodzi

    0
  • Pomocny post
    #9 21 Sty 2005 13:47
    tprzemko
    Poziom 22  

    Witam
    Jeżeli masz wyświetlić wszystkie polskie naraz na wyświetlaczu, w przerwaniu spróbuj zmieniać w banku tylko jednen znak np ż na ź i odwrotnie. Nie robiłem takiego doświadczenia ale myślę że może się udać, niewiele się różnią od siebie, nie będzie zabardzo migało. Dobrać tylko czas przerwania i może się uda. Jak będziesz wyświetlał ż to spacja na ź i odwrotnie. Nie będzie zamazane czy jakieś tam, ewentualnie trochę jaśniejsze. Myślę że 50 razy na sekundę wystarczy. Jeżeli by się to udało to możesz wyświetlić tylko małe litery, a następnie tylko wielkie. 6 gwarantowana. Jeżeli natomiast tylko ma się cały alfabet przewinąć na wyświetlaczu to nie ma żadnego problemu. Po wyświetleniu ą, jak sie przewinie za wyświetlacz zmieniasz ją na inną i wyświetlasz w odpowiednim czasie.
    Pozdrawiam

    0
  • #10 21 Sty 2005 16:28
    MMarek17
    Poziom 19  

    Zmiana matrycy znaku w banku jest od razu widoczna dla wszystkich znaków o danym kodzie widocznych na ekranie i nic nie uzyska się przez zmianę definicji znaku z czestotliwością 50Hz. Aby się to udało trzeba by zsynchronizowac tę zmianę z wyświetlaniem linii przez kontroler wyświetlacza. Niestety LCD nie posiada wyjścia takiej synchronizacji.
    Parę postów powyżej napisałem że w pamięci stałej jest już zapisany znak ó więc pozostaje jedynie 8 znaków do zdefiniowania. Na LCD da się wyświetlić część alfabetu a ponadto albo duże albo małe literki.

    0
  • #11 21 Sty 2005 18:49
    malyarni
    Poziom 13  

    ja pod tym kodem 11110011 co mowiles ze jest 'ó' mam '?'

    0
  • #12 21 Sty 2005 19:01
    MMarek17
    Poziom 19  

    '?" jest pod 00111111
    patrz tabela 4 w specyfikacji HD44780
    0011 - upper bits - górne bity
    1111 - lower bits - dolne bity

    i jeszcze jedno
    Pod 11110011 'ó' jest tylko w ROMCODE A02.
    W ROMCODE A00 pod 11110011 jest znak nieskończoności ("przewrócona" 8).

    No i jeszcze jeden pomysł:
    w jednej linii wyświetlasz znaki a w linii poniżej lub powyżej ogonki
    np.

    Code:

    , , .
    c o z ą

    W ten sposób będzie trzeba zdefiniować tylko część znaków a resztę zrobi się znakami interpunkcyjnymi.

    0
  • #13 21 Sty 2005 22:13
    tprzemko
    Poziom 22  

    Witam
    Kolego MMarek17 wczytaj się uważnie w mój post. Zamiana znaków ż i ź. Bardzo niewiele się różnią. Pozatym przy wyświetlaniu ż na ź jest spacja i odwrotnie. Zasada działania coś ala wyświetlanie dynamiczne na wyświetlaczach siedmio-segmentowych. Czy nie ma szans coby to zadzioałało?
    Pozdrawiam

    0
  • Pomocny post
    #14 21 Sty 2005 22:58
    MMarek17
    Poziom 19  

    tprzemko - faktycznie coś w tym jest
    Proponuję na początek zrobić próbę czy LCD wydoli z przełaczaniem 2 obrazów.
    Próba polegać ma na naprzemiennym wyświetlaniu 2 umownych ekranów
    Powiedzmy na pierwszym ekranie mamy jakiś tekst w 1-szej linii, druga jest pusta. Na drugim ekranie mamy 1 linię pustą a w drugiej znajduje się inny tekst.
    Oba ekrany są przełączane z częstotliwością minimum 50Hz.
    Jaki efekt?
    Jeśli efektem jest obraz złożony z 2 linii które są w miarę dobrze widoczne - nie mrygają za bardzo (LCD ma dużą bezwładność) to jest ciekawie i można się pokusić o dopisanie procedury która w takt tych zmian będzie także przeprogramowywała CGRAM. Problemem może być szybkość kontrolera LCDka - bit zajętości. Trzeba by policzyć czasochłonność operacji.

    Jeśli dodanie funkcji przeładowującej CGRAM nie zadziała proponuję szybkie przełączanie 2 ekranów - nazwijmy to mikserem.
    1. zawiera litery (bez polskich)
    2. zawiera ogonki (na pozycjach gdzie ma być ogoniasta litera wyświetla , lub ' lub kropkę w górze lub kreseczke do ł.

    Przy szybkim przełączaniu 2 znaki powinny się nałożyć i dać zmiksowany znak np. a i , da ą.
    Jeśli będzie ok to można się pokusić o zdefiniowanie tych 4 dodatkowych nakładanych znaków w CGRAM.

    Pozdrawiam.

    Uzupełnienie.
    Oczywiście sposób z przełączaniem CGRAM i ekranów - jeśli zadziała - jest efektowny ale mało efektywny. Obciążenie mikrokontrolera spowodowane obsługą LCD a co za tym idzie problemy związane np. z równoległą obsługą synchronicznych transmisji kwalifikuje ten pomysł raczej na laborki a nie do zastosowań użytkowych. No ale właśnie jest to temat z laborki...

    Pozdrawiam

    0
  • #15 21 Sty 2005 23:10
    malyarni
    Poziom 13  

    dzieki za pomoc cos bede probowal zrobic

    przepraszam faktycznie jest nieskonczonosc a nie ? spojrzalem odwrotnie

    a mam jeszcze pytanko jak zrobic zeby w tym drugim programie co mam do zrobienia byly liczby tylko mniejsze badz rowne od 49 jest cos w asemblerze w rodzaju '>' ?

    0
  • #16 23 Sty 2005 19:31
    tprzemko
    Poziom 22  

    Witam
    Pocztyaj o CJNE i w jaki sposób ustawia CY.
    Pozdrawiam

    0