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

Znaki specjalne LCD jak ich użyć

Musiol 17 Kwi 2010 11:00 4178 23
REKLAMA
  • #1 7971077
    Musiol
    Poziom 16  
    Witam
    Jak użyć znaków specjalnych LCD z tej dokumentacji
    KLIK
    Używająć języka bascom

    Potrzebował bym to mojego termometru

    $regfile "2313def.dat"
    $crystal = 1000000
    Config Lcd = 16 * 1a
    Config Lcdpin = Pin , Db4 = Pb.3 , Db5 = Pb.2 , Db6 = Pb.1 , Db7 = Pb.0 , E = Pb.4 , Rs = Pb.5
    
    
    Config 1wire = Portd.6
    Dim I As Integer
    Dim S As Single
    Dim T As String * 4
    
    Deflcdchar 0 , 6 , 9 , 6 , 32 , 32 , 32 , 32 , 32
    
    Cursor Off
    Cls
    
    Lcd "Musiol IVc  :)"
    Wait 2
    
    Cls
    Locate 1 , 4
    Lcd "Temp:"
    Do
    
    
       1wreset
       1wwrite &HCC
       1wwrite &H44
       Waitms 750
    
       1wreset
       1wwrite &HCC
       1wwrite &HBE
    
       I = 1wread(2)
       S = I / 16
       T = Fusing(s , "##.#")
    
    
       Locate 2 , 1
       Lcd T ; Chr(0) ; "C"
    
    
    
    Loop


    Moim zadaniem jest wywalić tą linijkę
    Deflcdchar 0 , 6 , 9 , 6 , 32 , 32 , 32 , 32 , 32

    Która generuje znak stopnia i wstawić znak specjalny z powyższego linku.

    Jeszcze jedno pytanie co oznacza
    Lcd T ; Chr(0) ; "C"

    Proszę o pomoc
    POzdrawiam
  • REKLAMA
  • REKLAMA
  • #3 7971550
    ZbeeGin
    Poziom 39  
    Musiol napisał:
    Jak użyć znaków specjalnych LCD z tej dokumentacji
    KLIK
    Używająć języka bascom

    Poszukać informacji o sposobie zapisu liczb naturalnych całkowitych w postaci dwójkowej (binarnie). Poszukać informacji o sposobie kodowania znaków wg standardu ASCII. Otworzyć helpa i poszukać informacji o funkcjach manipulujących na tekstach i znakach, a także podstawy języka.
  • REKLAMA
  • #5 7973587
    Musiol
    Poziom 16  
    Ale ja bym potrzebował to do bascoma wsadzić.
    Pozdrawiam
  • #6 7973642
    tadzik85
    Poziom 38  
    który konkretnie znak? znak stopni celsjusza? z adresu 1111 1101?

    
    $ASM
      Ldi _temp1, 65       'załadowanie do R24 kodu znaku (litera A)
      Rcall _Write_lcd     'prześlemy do LCD jako daną
    $END ASM
    
    


    zamiast 65 musisz wstawić adres odpowiedniego znaku w twoim przypadku zapewne 11111101.
  • #7 7973973
    Konto nie istnieje
    Poziom 1  
  • #8 7974039
    wader_669
    Poziom 28  
    Jestem ciekaw, wytestuj:
    
    Lcd chr(&b11111101)
    


    lub zamien ta postac na decymarna i wstaw zamiast "&B11111101"

    Dodano po 1 [minuty]:

    __________________________________________________
    Widze, ze kolega emarcus byl szybszy.
  • #9 7974270
    Konto nie istnieje
    Poziom 1  
  • #10 7974584
    Konto nie istnieje
    Poziom 1  
  • #11 7974648
    tadzik85
    Poziom 38  
    Atom to ty czytaj uważniej.
  • #12 7974723
    Musiol
    Poziom 16  
    Słuchajcie czy mogli byście mi ten znak stopnia wstawić do programu, nie mam programatora a potrzebował bym to na jutro do szkoły , a na programowaniu się nie znam za dobrze.
    Pozdrawiam
  • #13 7975382
    Szucio
    Poziom 14  
    Jak niby mają Tobie wstawić owy znak do programu skoro nie masz programatora? Czy można zdalnie programować Twoją Atmegę przez Internet?
  • #14 7976706
    Musiol
    Poziom 16  
    nie oto mi chodziło kolego w 1 poście jest mój program chciałem żeby ktoś go poprawił.
    Na razie zrobiłem tak z pomocą jednego kolegi z forum ze włączyłem tablice lcd designer w bascomie i zrobiłem taki znak, ale to chyba nie oto chodzi bo profesor w szkole kazał mi go wstawić z tej tablicy która jest w dokumentacji w linku który podałem.
    Pozdrawiam
  • #15 7977371
    Konto nie istnieje
    Poziom 1  
  • #16 7977434
    xantros
    Poziom 11  
    @chłopaki wyżej
    Nie kłóćcie się. Autorowi chodziło o to, że definiuje znak stopnia w pamięci wyświetlacza jako nowy znak, a musi wykorzystać ten, który jest już oryginalnie zapisany w tablicy znaków.

    @Musiol
    Nie wiem jak to jest w Bascomie, ale postaram się naprowadzić Cię na właściwy tor. W tej dokumentacji masz tablicę znaków, gdzie każdy znak opisany jest "współrzędnymi". Górne 4-bity to starsza część adresu, 4-bity po lewej to młodsza. A więc dla znaku stopnia będzie to:
    0b11011111 (lub w hex - 0xDF).
    A więc musisz zapisać do wyświetlacza 0xDF.

    Może spróbuj "Lcd 0xDF"...
  • #17 7977438
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #18 7979130
    arktik1
    Poziom 27  
    Macie tu program do generowania całej tablicy znaków:
    
    $regfile = "m16def.dat"
    $crystal = 9000000
    
    
    Config Lcd = 20 * 4
    Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.6 , Rs = Portb.7
    
    Dim A As Byte , B As Byte , C As Byte , X As Byte
    Do
    For A = 0 To 15
    Cls
    C = 16 * A
    For B = 0 To 15
    X = C + B
    Lcd Chr(x)
    Next
    Lowerline
    Lcd "kody " ; C ; " do " ; X
    Waitms 70
    
    Next
    Loop
    End
    

    Można go użyć w symulatorze BASCOMa i wgrać bezpośrednio do procka.
    Mnie pomógł w definicji wyświetlacza z rosyjskimi znakami.
  • #19 7981433
    Musiol
    Poziom 16  
    hmmm więc tak konkretnie to wiecie co trzeba z tym zrobić?
    żeby wywalić tamtą linijkę i wstawić znak z tabeli
  • #20 7981519
    tadzik85
    Poziom 38  
    Odpowiedzi masz w pierwszych postach!
  • #21 7982009
    Musiol
    Poziom 16  
    ihm a mógł bym prosić o linijkę kodu jak będzie wyglądała w bascomie dla jakiegoś znaku w tej tabeli.

    Lcd chr(&b11111101) zadziała?
  • #24 7987713
    Musiol
    Poziom 16  
    chr(&hFD) działa;]
REKLAMA