logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak skonfigurować LCD w trybie 8-bitowym w BASCOM?

szaro 07 Kwi 2003 12:10 2059 13
REKLAMA
  • #1 179664
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    Jak cos takiego zrobic w BASCOMIE ????
  • REKLAMA
  • #2 180328
    ZbeeGin
    Poziom 39  
    Posty: 4322
    Pomógł: 602
    Ocena: 454
    To zależy jak chcesz podłączyć i w jakim Bascomie. Informacje poniższe są dla AVR.

    Jeśli bezpośrednio do portów procka to istnieje drugi format instrukcji CONFIG LCDPIN (w wersjach nowszych niż 1.11.6.8 )

    CONFIG LCDPIN=PIN, PORT = nazwa_portu, E=nazwa_końcówki, RS=nazwa_końcówki

    przykładowo:

    CONFIG LCDPIN=PIN, PORT=PortB, E=PortD.0, RS=PortD.1

    Jeśli system ma zewnętrzną pamięć (RAM/ROM) to wystarczy skorzystać z trybu BUS i zbudować odpowiedni dekoder adresów.

    CONFIG LCDMODE=BUS
    $LCD=adres_sterujący_linią_E
    $LCDRS=adres_sterujący_linią_RS


    W trybie BUS domyślnie jest wykorzystywany tryb 8-bitowy.


    W Bascom 8051 z tego co wiem to transmisja 8 bitowa może się odbywać tylko w trybie BUS.
  • #3 180405
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    Chodzi mi o bascoma 8051 w wersji 2.0.8.0

    „$LCDRS=adres_sterujący_linią_RS „ -a takiego czegoś tam nie ma :(
    Tak poza tym, co mam wpisać jako adres w poleceniu $LCD????
    I na koniec pytanie czy da się to zrobić na małym Atmelu (89Cx051)
  • REKLAMA
  • #4 180442
    ZbeeGin
    Poziom 39  
    Posty: 4322
    Pomógł: 602
    Ocena: 454
    Jeśli chodzi o 89cx051 to trybu BUS nie da się zaimplementować! Tam nie ma możliwości skorzystania z zewnętrznej szyny danych i adresów.
    Pozostaje niestety tylko tryb 4-bit. Chyba że procedurkę napiszesz samodzielnie. Moim zdaniem szkoda zachodu.
  • #5 181032
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    ok a jak to zrobic na duzym Atmelu (89C52) ???
  • #6 183105
    ZbeeGin
    Poziom 39  
    Posty: 4322
    Pomógł: 602
    Ocena: 454
    Właśnie stosując dyrektywy $LCD i $LCDRS. Ustawiasz tam adresy po wystawieniu których na szynę adresową sterowana jest linia E wyświetlacza ($LCD) i RS oraz E razem ($LCDRS). Szynę danych wyświetlacza dołącza się do systemowej szyny danych.
    Jeśli chcesz to ściągnij sobie nową wersję polskiej pomocy (mojego autorstwa) jest schemat w opisie dyrektywy $LCD

    http://zbeegin.republika.pl/bascomhlp51.zip (275 KB)
  • #7 191534
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    Mam Atmelka 90S8515 i trybu 8-bitowego jak nie było na 8051 tak nie ma na AVR ??? czy jest to do zrobienia ????????????
    :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:
  • #8 193298
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    Ludzie pomocy !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  • REKLAMA
  • #9 194364
    ZbeeGin
    Poziom 39  
    Posty: 4322
    Pomógł: 602
    Ocena: 454
    szaro napisał:
    Mam Atmelka 90S8515 i trybu 8-bitowego jak nie było na 8051 tak nie ma na AVR ??? czy jest to do zrobienia ????????????


    Może wyraziłbyś się jaśniej. :?

    TRYB 8-BITIWY DLA AVR JEST DOSTĘPNY!!!!!!!!!!!!!!!!!!!
    Patrz piewszą moją odpowiedź.
  • #10 194403
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    Jasniej OK
    Mam Bascoma AVR 1.11.6.4 (spoko wiem o co chodzi mam nie ta wersje bascoma teraz to zauwazylem :cry: ) i procek 90S8515 i nie działa 4-bitowy interfejs działa bez problemu LCD jest wpiety do portu PA r/w -masa
    E- PC.7 RS- PC.6
  • #11 194414
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    :arrow: szaro a po co się upierasz na interfejsem 8bitowym :?:
  • REKLAMA
  • #13 194979
    elektryk
    Poziom 42  
    Posty: 11029
    Pomógł: 439
    Ocena: 241
    To już mi coś świta, nie znam składni bascoma ale to będzie wyglądało jakoś tak:
    PORT=<dana>
    ustawRS (w zależności od tego co chcemy wysłać)
    ustawE
    skasujE
  • #14 194984
    szaro
    Poziom 19  
    Posty: 411
    Pomógł: 10
    Ocena: 17
    narazie mam problem z wersja bascoma :cry:

Podsumowanie tematu

✨ Dyskusja dotyczy konfiguracji wyświetlacza LCD w trybie 8-bitowym w środowisku BASCOM, ze szczególnym uwzględnieniem mikrokontrolerów AVR i 8051. W BASCOM AVR (wersje nowsze niż 1.11.6.8) można użyć dyrektywy CONFIG LCDPIN do bezpośredniego podłączenia LCD do portów procesora, np. CONFIG LCDPIN=PIN, PORT=PortB, E=PortD.0, RS=PortD.1. Alternatywnie, w przypadku systemów z zewnętrzną pamięcią, stosuje się tryb BUS z dyrektywami CONFIG LCDMODE=BUS oraz $LCD i $LCDRS, gdzie domyślnie wykorzystywany jest tryb 8-bitowy. W BASCOM 8051 tryb 8-bitowy jest możliwy tylko w trybie BUS, jednak na mikrokontrolerze 89Cx051 nie da się go zaimplementować ze względu na brak zewnętrznej szyny danych i adresów, pozostaje więc tryb 4-bitowy lub własna procedura. Na większym mikrokontrolerze 89C52 tryb BUS i 8-bitowy jest możliwy poprzez ustawienie adresów linii E i RS za pomocą dyrektyw $LCD i $LCDRS oraz podłączenie szyny danych LCD do systemowej szyny danych. Wersje BASCOM i kompatybilność z mikrokontrolerami mają kluczowe znaczenie dla poprawnej konfiguracji. Użytkownicy zgłaszali problemy z wersjami BASCOM i konfiguracją pinów, zwłaszcza na mikrokontrolerach AVR 90S8515, gdzie tryb 4-bitowy działa poprawnie, a 8-bitowy wymaga odpowiedniej wersji oprogramowania i konfiguracji. Dyskusja zawiera także link do polskiej pomocy BASCOM dla 8051 z przykładami konfiguracji.
REKLAMA