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 napisać program w BASCOM dla LCD Nokia 3310 i ATmega8?

zupcia 27 Gru 2006 14:22 9382 17
REKLAMA
  • #1 3374462
    zupcia
    Poziom 11  
    Posty: 23
    Witam
    Mam prośbę czy mógłby mi ktoś pomóc w napisaniu programu pod Atmege 8 w Bacomie obsługującego wyświetlacz z Nokii 3310. Prosze o jak najprostrzy (łopatologiczny) opis jak się do tego zabrać :/ jeżeli ma ktoś jakieś przykładowe programy to tez bym prosił o udostępnienie ich z opisem co i jak.
    Z góry dziękuje i pozdrawiam
  • REKLAMA
  • #2 3374614
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    W sieci znalazłem coś takiego. Nie wiem czy działa.
    Załączniki:
    • NOKIA LCD demo 120605.rar (4.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #3 3374803
    zupcia
    Poziom 11  
    Posty: 23
    dzięki M.S. jednak ten programik jest napisany pod ATmega128L a ja nie bardzo wiem jak go przerobić pod ATmege8 :( jeżeli wiesz jak tego dokonać to bardzo proszę o pomoc
  • #4 3375212
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    W końcu chciałeś przykład. Nie zauważyłeś też, że wpisałem w program $regfile = "m8def.dat". Program zajmuje prawie całą MEGĘ8 ale jest to demonstracja, którą można uprościć.
  • REKLAMA
  • #5 3375366
    zupcia
    Poziom 11  
    Posty: 23
    sorki miałem plik o takiej samej nazwie juz wczesniej sciągnięty i nie ten co trzeba wgrałem do Bascoma :( mój błąd sory
    czy mógłbyś mi napisać pod które z tych wyprowadzeń :

    Config Pinb.0 = Output
    Config Pinb.2 = Output
    Config Pinb.1 = Output
    Config Pinb.3 = Output
    Config Pinb.5 = Output

    mam podpiąć odpowiednie końcówki wyświetlacza
    Pozdro i dzięki :)
  • REKLAMA
  • REKLAMA
  • #8 3380729
    zupcia
    Poziom 11  
    Posty: 23
    niestety dalej mi się nie odpala :/ tak mam podłączony LDC do klocka:
    Config Pinb.0 = Output 'DC
    Config Pinb.2 = Output 'SCE
    Config Pinb.1 = Output 'RST

    Config Pinb.3 = Output 'SDIN
    Config Pinb.5 = Output 'SCK

    i nic się nie dzije :(

    mam rownież mały problem z PonyProgiem tzn. podczas ładowania hexa do klocka zapis staje na kilku procętach puźniej rusza dalej i po weryfikacji wyskakuje błąd :/ prosze o jakąś rade
  • #10 3398636
    zupcia
    Poziom 11  
    Posty: 23
    M.S. dzięki za linka trochę poczytałem i coś takiego skleciłem:
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    
    Dim A As Byte
    
    
    ' -------- Konfiguracja SPI
    Config Portd = Output
    Config Spi = Soft , Din = Portd.4 , Dout = Portb.4 , Ss = None , Clock = Portb.3
    Spiinit
    
    
    ' -------- Konfiguracja Portu C do komunikacji z LCD
    Lcd_sclk Alias Portc.3
    Lcd_sdin Alias Portc.4
    Lcd_dc Alias Portc.2
    Lcd_sce Alias Portc.1
    Lcd_rst Alias Portc.0
    
    
    ' ------- odpalenie LCD
    
    Reset Lcd_sce
    Waitms 50
    Reset Lcd_dc
    Waitms 50
    Reset Lcd_sdin
    Waitms 50
    Reset Lcd_sclk
    Wait 50
    Reset Lcd_rst
    Waitms 50
    Set Lcd_rst
    
    
    ' ------  Konfiguracja rejestrow LCD
    A = &H21                                                    'Komendy rozszerzone
    Shiftout Portb.4 , Portb.3 , A
    A = &HC8                                                    'Vop kontrast
    Shiftout Portb.4 , Portb.3 , A
    A = &H06                                                    'temperatura
    Shiftout Portb.4 , Portb.3 , A
    A = &H13                                                    'Multiplex 1:48
    Shiftout Portb.4 , Portb.3 , A
    A = &H20                                                    'Komendy standardowe, adresowanie poziome
    Shiftout Portb.4 , Portb.3 , A
    A = &H0C                                                    'Tryb standardowy
    Shiftout Portb.4 , Portb.3 , A
    
    
    
    
    ' ------  Zerowanie LCD
    
    A = &H40                                                    'zerowanie licznika wierszy
    Shiftout Portb.4 , Portb.3 , A
    A = &H80                                                    'zerowanie licznika kolumn
    Shiftout Portb.4 , Portb.3 , A
    
    ' ----- Wyswietlenie na LCD
    
    
    
    
    
    End                                                        'end program
    
    


    niestety mam 2 małe problemy które mnie przerastają :/
    1. nie wiem czy to dobrze napisałem choć BASCOM nie pokazał żadnych błędów :)
    2. czy ktoś mógłby mi powiedzieć (napisać) jak wysłać jakikolwiek znak na wyświetlacz bo niestety wiele czytając nie jestem w stanie sobie z tym poradzić po prostu tego nie czaje :/ wiec proszę niech mnie ktoś "łopatologicznie" oświeci

    pozdrawiam i dzięki
  • #11 3398780
    M. S.
    Poziom 34  
    Posty: 2107
    Pomógł: 259
    Ocena: 680
    To nie jest cały program do obsługi Nokii. Brak tu funkcji wyświetlających i definicji znaków. Sprawdź ten, który załączyłem.
  • #12 3400976
    zupcia
    Poziom 11  
    Posty: 23
    hej przy pomocy programu ze stronki http://maxparadys.w.interia.pl/LPH7779_cz2_pliki/NOKIA_1.1.txt skleciłem poniższy program:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    ' -------- konfiguracja SPI
    Config Portd = Output                                       'communication port to LCD
    Config Spi = Soft , Din = Portd.0 , Dout = Portd.4 , Ss = None , Clock = Portd.3
    
    ' --------  piny LCD
    'Sclk(2) Portd.3
    'Sdin(3) Portd.4
    'D / C(4) Portd.5
    'Sce(5) Portd.6
    'Reset(8) Portd.7
    
    ' ------- Zmienne globalne
    Dim Txloc As Byte , Tyloc As Byte , Yy As Byte , Xx As Byte , Tout As Byte
    
    ' ------- Stałe dla ustawien LCD
    Const Extcmd = &H21                                         'extended command mode
    Const Contrmid = &HC8                                       'LCD contract medium level(after Extcmd)
    Const Tempcomp2 = &H06                                      'temperature compensation (after Extcmd)
    Const Bias48 = &H13                                         'bias 1:48 for LCD (after Extcmd)
    Const Normcmd = &H20                                        'normal command mode
    Const Lcdinv = &H0D                                         'inverted LCD screen(after Normcmd)
    Const Lcdnorm = &H0C                                        'normal LCD screen(after Normcmd)
    Const Lcdxaddr0 = &H80                                      'set X addr of RAM to 0(after Normcmd)
    Const Lcdpdown = &H24                                       'LCD in power down mode
    Const Lcdact = &H20                                         'LCD in active mode
    
    ' ------- Deklaracje procedur
    Declare Sub Tcmd(byval Tlcdcmd As Byte)
    Declare Sub Tlcdinit
    Declare Sub Tcls
    Declare Sub Tgphloc(txglc As Byte , Tyglc As Byte)
    Declare Sub Tlocate(byval Txlc As Byte , Byval Tylc As Byte)
    Declare Sub Tprintf(byval Tstring As String)
    Declare Sub Tshowpic
    
    
    
    ' ------- Program Główny ----------------------------
    
    Tlcdinit
    
    Main_loop:
    
    Tcls
    'Tlocate 0 , 0
    'Tprintf "  EGYPT DEMO"
    'Tlocate 0 , 2
    'Restore Egypt
    'Tshowpic
    'Wait 5
    
    Tcls
    Tlocate 0 , 0
    Tprintf "abcdefghijklmnopqrstuvwxyz"
    Wait 1
    
    Tlocate 0 , 2
    Tprintf "ABCDEFGHIJKLMNPQRSTUVWXYZ"
    Wait 1
    
    Tlocate 0 , 4
    Tprintf "0123456789šćęłńó??żŁ??Ż^[]{}"
    Wait 5
    
    'Tcmd Lcdinv
    'Wait 5
    'Tcmd Lcdnorm
    'Wait 1
    
    End                                                         'end program
    
    
    ' ------ Tcmd(Tlcdcmd) -----     START
    Sub Tcmd(byval Tlcdcmd As Byte)
    Reset Portd.5                                               'command mode
    Spiout Tlcdcmd , 1
    Set Portd.5                                                 'data mode
    End Sub
    
    ' ------ Tlcdinit ------       START
    Sub Tlcdinit
    Spiinit
    Reset Portd.6                                               'LCD enable
    Reset Portd.7                                               'RESET LCD display
    Set Portd.7                                                 '
    Tcmd Extcmd                                                 'look into
    Tcmd Contrmid                                               '"LCD commands constants"
    Tcmd Tempcomp2                                              'section
    Tcmd Bias48                                                 '
    Tcmd Normcmd                                                '
    Tcmd Lcdnorm                                                '
    Tcls                                                        '
    End Sub
    
     ' -------- Tcls -------        START
    Sub Tcls
    Local Tword As Word
    Tcmd Normcmd
    Tcmd Lcdnorm
    Tcmd Lcdxaddr0
    Tout = 0
    For Tword = 0 To 503                                        '84x6 times sends 0 to clear LCD
      Spiout Tout , 1
    Next
    End Sub
    
    ' -------- Tgphloc(Txglc , Tyglc) ---------         START
    Sub Tgphloc(txglc As Byte , Tyglc As Byte)
    Reset Portd.5                                               'command mode
    Tout = Tyglc + &H40                                         'sets 0-5 Y-addr of RAM
    Spiout Tout , 1
    Tout = Txglc * &H06                                         'sets 0-13 X-addr of RAM
    Tout = Tout + &H80
    Spiout Tout , 1
    Set Portd.5                                                 'data mode
    End Sub
    
    ' --------- Tlocate(Txloc, Tyloc) --------    START
    Sub Tlocate(byval Txlc As Byte , Byval Tylc As Byte)
    Txloc = Txlc
    Tyloc = Tylc
    Tgphloc Txloc , Tyloc
    End Sub
    
    ' --------- Tprintf(Tstring) --------    START
    Sub Tprintf(tstring As String)
    Local Tsub As Word , Tword As Word , Tchr As String * 1
    For Xx = 1 To Len(tstring)
     Tchr = Mid(tstring , Xx , 1)
     Select Case Tchr
      Case " " : Tsub = 0
      Case "a" : Tsub = 1
      Case "b" : Tsub = 2
      Case "c" : Tsub = 3
      Case "d" : Tsub = 4
      Case "e" : Tsub = 5
      Case "f" : Tsub = 6
      Case "g" : Tsub = 7
      Case "h" : Tsub = 8
      Case "i" : Tsub = 9
      Case "j" : Tsub = 10
      Case "k" : Tsub = 11
      Case "l" : Tsub = 12
      Case "m" : Tsub = 13
      Case "n" : Tsub = 14
      Case "o" : Tsub = 15
      Case "p" : Tsub = 16
      Case "q" : Tsub = 17
      Case "r" : Tsub = 18
      Case "s" : Tsub = 19
      Case "t" : Tsub = 20
      Case "u" : Tsub = 21
      Case "v" : Tsub = 22
      Case "w" : Tsub = 23
      Case "x" : Tsub = 24
      Case "y" : Tsub = 25
      Case "z" : Tsub = 26
      Case "A" : Tsub = 27
      Case "B" : Tsub = 28
      Case "C" : Tsub = 29
      Case "D" : Tsub = 30
      Case "E" : Tsub = 31
      Case "F" : Tsub = 32
      Case "G" : Tsub = 33
      Case "H" : Tsub = 34
      Case "I" : Tsub = 35
      Case "J" : Tsub = 36
      Case "K" : Tsub = 37
      Case "L" : Tsub = 38
      Case "M" : Tsub = 39
      Case "N" : Tsub = 40
      Case "O" : Tsub = 41
      Case "P" : Tsub = 42
      Case "Q" : Tsub = 43
      Case "R" : Tsub = 44
      Case "S" : Tsub = 45
      Case "T" : Tsub = 46
      Case "U" : Tsub = 47
      Case "V" : Tsub = 48
      Case "W" : Tsub = 49
      Case "X" : Tsub = 50
      Case "Y" : Tsub = 51
      Case "Z" : Tsub = 52
      Case "0" : Tsub = 53
      Case "1" : Tsub = 54
      Case "2" : Tsub = 55
      Case "3" : Tsub = 56
      Case "4" : Tsub = 57
      Case "5" : Tsub = 58
      Case "6" : Tsub = 59
      Case "7" : Tsub = 60
      Case "8" : Tsub = 61
      Case "9" : Tsub = 62
      Case "š" : Tsub = 63
      Case "ć" : Tsub = 64
      Case "ę" : Tsub = 65
      Case "ł" : Tsub = 66
      Case "ń" : Tsub = 67
      Case "ó" : Tsub = 68
      Case "?" : Tsub = 69
      Case "?" : Tsub = 70
      Case "ż" : Tsub = 71
      Case "Ł" : Tsub = 72
      Case "?" : Tsub = 73
      Case "?" : Tsub = 74
      Case "Ż" : Tsub = 75
      Case "^" : Tsub = 76
      Case "[" : Tsub = 77
      Case "]" : Tsub = 78
      Case "{" : Tsub = 79
      Case "}" : Tsub = 80
      Case Else : Goto Exit_case
     End Select
     Restore Ascii
     Set Portd.5
     Tsub = Tsub * 6
     If Tsub <> 0 Then
      For Tword = 1 To Tsub                                     'shift to character pointer
      Read Tout                                                 'Tsub times
      Next
     End If
      For Yy = 1 To 6                                           'printing character loop
      Read Tout : Spiout Tout , 1                               '6x8 bits
      Next
    Exit_case:
    Next
    End Sub
    
    '  ------- D A T A -------     START
    Ascii:
    Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H30 , &H4A , &H4A , &H52 , &H7C , &H00 , &H3F , &H48 , &H44 , &H44,
    Data &H38 , &H00 , &H38 , &H44 , &H44 , &H44 , &H28 , &H00 , &H38 , &H44 , &H44 , &H48 , &H7F , &H00 , &H38 , &H54,
    Data &H54 , &H54 , &H18 , &H00 , &H00 , &H04 , &H7E , &H05 , &H00 , &H00 , &H0C , &H52 , &H52 , &H4A , &H3C , &H00,
    Data &H7F , &H08 , &H04 , &H04 , &H78 , &H00 , &H00 , &H44 , &H7D , &H40 , &H00 , &H00 , &H00 , &H40 , &H44 , &H3D,
    Data &H00 , &H00 , &H7F , &H20 , &H10 , &H28 , &H44 , &H00 , &H00 , &H41 , &H7F , &H40 , &H00 , &H00 , &H7C , &H04,
    Data &H18 , &H04 , &H7C , &H00 , &H7C , &H08 , &H04 , &H04 , &H78 , &H00 , &H38 , &H44 , &H44 , &H44 , &H38 , &H00,
    Data &H7C , &H14 , &H24 , &H24 , &H18 , &H00 , &H18 , &H24 , &H24 , &H14 , &H7C , &H00 , &H7C , &H04 , &H04 , &H08,
    Data &H00 , &H00 , &H08 , &H54 , &H54 , &H54 , &H20 , &H00 , &H04 , &H3F , &H44 , &H40 , &H00 , &H00 , &H3C , &H40,
    Data &H40 , &H40 , &H3C , &H00 , &H1C , &H20 , &H40 , &H20 , &H1C , &H00 , &H3C , &H40 , &H30 , &H40 , &H3C , &H00,
    Data &H44 , &H28 , &H10 , &H28 , &H44 , &H00 , &H0C , &H50 , &H50 , &H48 , &H3C , &H00 , &H44 , &H64 , &H54 , &H4C,
    Data &H44 , &H00 , &H7C , &H12 , &H11 , &H12 , &H7C , &H00 , &H7F , &H49 , &H49 , &H49 , &H36 , &H00 , &H3E , &H41,
    Data &H41 , &H41 , &H22 , &H00 , &H7F , &H41 , &H41 , &H41 , &H3E , &H00 , &H7F , &H49 , &H49 , &H49 , &H41 , &H00,
    Data &H7F , &H09 , &H09 , &H09 , &H01 , &H00 , &H3E , &H41 , &H49 , &H49 , &H3A , &H00 , &H7F , &H08 , &H08 , &H08,
    Data &H7F , &H00 , &H00 , &H41 , &H7F , &H41 , &H00 , &H00 , &H20 , &H41 , &H41 , &H41 , &H3F , &H00 , &H7F , &H08,
    Data &H14 , &H22 , &H41 , &H00 , &H7F , &H40 , &H40 , &H40 , &H40 , &H00 , &H7F , &H02 , &H04 , &H02 , &H7F , &H00,
    Data &H7F , &H04 , &H08 , &H10 , &H7F , &H00 , &H3E , &H41 , &H41 , &H41 , &H3E , &H00 , &H7F , &H09 , &H09 , &H09,
    Data &H06 , &H00 , &H3E , &H41 , &H51 , &H61 , &H7E , &H00 , &H7F , &H09 , &H19 , &H29 , &H46 , &H00 , &H06 , &H49,
    Data &H49 , &H49 , &H30 , &H00 , &H01 , &H01 , &H7F , &H01 , &H01 , &H00 , &H3F , &H40 , &H40 , &H40 , &H3F , &H00,
    Data &H1F , &H20 , &H40 , &H20 , &H1F , &H00 , &H7F , &H20 , &H10 , &H20 , &H7F , &H00 , &H63 , &H14 , &H08 , &H14,
    Data &H63 , &H00 , &H03 , &H04 , &H78 , &H04 , &H03 , &H00 , &H61 , &H51 , &H49 , &H45 , &H43 , &H00 , &H3E , &H51,
    Data &H49 , &H45 , &H3E , &H00 , &H00 , &H42 , &H7F , &H40 , &H00 , &H00 , &H42 , &H61 , &H51 , &H49 , &H46 , &H00,
    Data &H22 , &H41 , &H49 , &H49 , &H36 , &H00 , &H18 , &H14 , &H12 , &H7F , &H10 , &H00 , &H27 , &H45 , &H45 , &H45,
    Data &H39 , &H00 , &H3E , &H49 , &H49 , &H49 , &H32 , &H00 , &H61 , &H11 , &H09 , &H05 , &H03 , &H00 , &H36 , &H49,
    Data &H49 , &H49 , &H36 , &H00 , &H26 , &H49 , &H49 , &H49 , &H3E , &H00 , &H30 , &H4A , &H4A , &HD2 , &H7C , &H00,
    Data &H38 , &H44 , &H46 , &H45 , &H28 , &H00 , &H38 , &H54 , &H54 , &HD4 , &H18 , &H00 , &H00 , &H49 , &H7F , &H44,
    Data &H00 , &H00 , &H7C , &H08 , &H06 , &H05 , &H78 , &H00 , &H38 , &H44 , &H46 , &H45 , &H38 , &H00 , &H08 , &H54,
    Data &H56 , &H55 , &H20 , &H00 , &H44 , &H64 , &H56 , &H4D , &H44 , &H00 , &H44 , &H64 , &H55 , &H4C , &H44 , &H00,
    Data &H10 , &H7F , &H44 , &H42 , &H40 , &H00 , &H04 , &H4A , &H4B , &H4A , &H30 , &H00 , &H62 , &H56 , &H4B , &H46,
    Data &H42 , &H00 , &H61 , &H59 , &H49 , &H4D , &H43 , &H00 , &H7E , &H43 , &H41 , &H43 , &H7E , &H00 , &H00 , &H00,
    Data &H00 , &H7F , &H7F , &H00 , &H00 , &H00 , &H7F , &H7F , &H7F , &H00 , &H00 , &H7F , &H7F , &H7F , &H7F , &H00,
    Data &H7F , &H7F , &H7F , &H7F , &H7F , &H00
    


    trochę się udało bo wyświetlacz odpala lecz niestety nie wyświetla tego czego pragnę zapala się tylko 5 pixeli i to wszystko :/ czy ktoś wie gdzie tkwi błąd ???? prosze o pomoc
  • #13 3464202
    zupcia
    Poziom 11  
    Posty: 23
    Witam
    mam pytanko czy mógłby sprawdzić mi poniższy kod bo w BASCOMIE nie ma błędów jednak po wgraniu do klocka nie dziala :/ i nie mam zielonego pojęcia dlaczego. Jeżeli ktoś wie to niech mi napisze co robie nie tak jak trzeba
    Pozdro
    
    
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    ' -------- konfiguracja SPI
    'Config Portd = Output                                       'communication port to LCD
    'Config Spi = Soft , Din = Portd.0 , Dout = Portd.4 , Ss = None , Clock = Portd.3
    Config Spi = Hard , Data Order = Msb , Master = Yes , Polarity = Low , Phase = 0 , Clockrate = 128 , Noss = 1
    
    
    Config Pinb.5 = Output
    Config Pinb.7 = Output
    Config Pinb.6 = Output
    Config Pinb.4 = Output
    Config Pinb.3 = Output
    
    ' --------  piny LCD
    Res Alias Portb.6
    Cs Alias Portb.4
    Dc Alias Portb.3
    
    'Sclk(2) Portd.3
    'Sdin(3) Portd.4
    'D / C(4) Portd.5
    'Sce(5) Portd.6
    'Reset(8) Portd.7
    
    ' ------- Zmienne globalne
    Dim Txloc As Byte , Tyloc As Byte , Yy As Byte , Xx As Byte , Tout As Byte
    
    ' ------- Stałe dla ustawien LCD
    Const Extcmd = &H21                                         'extended command mode
    Const Contrmid = &HC8                                       'LCD contract medium level(after Extcmd)
    Const Tempcomp2 = &H06                                      'temperature compensation (after Extcmd)
    Const Bias48 = &H13                                         'bias 1:48 for LCD (after Extcmd)
    Const Normcmd = &H20                                        'normal command mode
    Const Lcdinv = &H0D                                         'inverted LCD screen(after Normcmd)
    Const Lcdnorm = &H0C                                        'normal LCD screen(after Normcmd)
    Const Lcdxaddr0 = &H80                                      'set X addr of RAM to 0(after Normcmd)
    Const Lcdpdown = &H24                                       'LCD in power down mode
    Const Lcdact = &H20                                         'LCD in active mode
    
    ' ------- Deklaracje procedur
    Declare Sub Tcmd(byval Tlcdcmd As Byte)
    Declare Sub Tlcdinit
    Declare Sub Tcls
    Declare Sub Tgphloc(txglc As Byte , Tyglc As Byte)
    Declare Sub Tlocate(byval Txlc As Byte , Byval Tylc As Byte)
    Declare Sub Tprintf(byval Tstring As String)
    Declare Sub Tshowpic
    
    
    
    ' ------- Program Główny ----------------------------
    
    Tlcdinit
    
    Main_loop:
    
    Tcls
    
    Tcls
    Tlocate 0 , 0
    Tprintf "0123456789"
    Wait 1
    
    End                                                         'end program
    
    
    ' ------ Tcmd(Tlcdcmd) -----     START
    Sub Tcmd(byval Tlcdcmd As Byte)
    Reset Dc                                                    'command mode
    Spiout Tlcdcmd , 1
    Set Dc                                                      'data mode
    End Sub
    
    ' ------ Tlcdinit ------       START
    Sub Tlcdinit
    Spiinit
    Reset Cs                                                    'LCD enable
    Reset Res                                                   'RESET LCD display
    Set Res                                                     '
    Tcmd Extcmd                                                 'look into
    Tcmd Contrmid                                               '"LCD commands constants"
    Tcmd Tempcomp2                                              'section
    Tcmd Bias48                                                 '
    Tcmd Normcmd                                                '
    Tcmd Lcdnorm                                                '
    Tcls                                                        '
    End Sub
    
     ' -------- Tcls -------        START
    Sub Tcls
    Local Tword As Word
    Tcmd Normcmd
    Tcmd Lcdnorm
    Tcmd Lcdxaddr0
    Tout = 0
    For Tword = 0 To 503                                        '84x6 times sends 0 to clear LCD
      Spiout Tout , 1
    Next
    End Sub
    
    ' -------- Tgphloc(Txglc , Tyglc) ---------         START
    Sub Tgphloc(txglc As Byte , Tyglc As Byte)
    Reset Dc                                                    'command mode
    Tout = Tyglc + &H40                                         'sets 0-5 Y-addr of RAM
    Spiout Tout , 1
    Tout = Txglc * &H06                                         'sets 0-13 X-addr of RAM
    Tout = Tout + &H80
    Spiout Tout , 1
    Set Dc                                                      'data mode
    End Sub
    
    ' --------- Tlocate(Txloc, Tyloc) --------    START
    Sub Tlocate(byval Txlc As Byte , Byval Tylc As Byte)
    Txloc = Txlc
    Tyloc = Tylc
    Tgphloc Txloc , Tyloc
    End Sub
    
    ' --------- Tprintf(Tstring) --------    START
    Sub Tprintf(tstring As String)
    Local Tsub As Word , Tword As Word , Tchr As String * 1
    For Xx = 1 To Len(tstring)
     Tchr = Mid(tstring , Xx , 1)
     Select Case Tchr
    
      Case "0" : Tsub = 53
      Case "1" : Tsub = 54
      Case "2" : Tsub = 55
      Case "3" : Tsub = 56
      Case "4" : Tsub = 57
      Case "5" : Tsub = 58
      Case "6" : Tsub = 59
      Case "7" : Tsub = 60
      Case "8" : Tsub = 61
      Case "9" : Tsub = 62
    
      Case Else : Goto Exit_case
     End Select
     Restore Ascii
     Set Dc
     Tsub = Tsub * 6
     If Tsub <> 0 Then
      For Tword = 1 To Tsub                                     'shift to character pointer
      Read Tout                                                 'Tsub times
      Next
     End If
      For Yy = 1 To 6                                           'printing character loop
      Read Tout : Spiout Tout , 1                               '6x8 bits
      Next
    Exit_case:
    Next
    End Sub
    
    '  ------- D A T A -------     START
    Ascii:
    Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H30 , &H4A , &H4A , &H52 , &H7C , &H00 , &H3F , &H48 , &H44 , &H44,
    Data &H38 , &H00 , &H38 , &H44 , &H44 , &H44 , &H28 , &H00 , &H38 , &H44 , &H44 , &H48 , &H7F , &H00 , &H38 , &H54,
    Data &H54 , &H54 , &H18 , &H00 , &H00 , &H04 , &H7E , &H05 , &H00 , &H00 , &H0C , &H52 , &H52 , &H4A , &H3C , &H00,
    Data &H7F , &H08 , &H04 , &H04 , &H78 , &H00 , &H00 , &H44 , &H7D , &H40 , &H00 , &H00 , &H00 , &H40 , &H44 , &H3D,
    Data &H00 , &H00 , &H7F , &H20 , &H10 , &H28 , &H44 , &H00 , &H00 , &H41 , &H7F , &H40 , &H00 , &H00 , &H7C , &H04,
    Data &H18 , &H04 , &H7C , &H00 , &H7C , &H08 , &H04 , &H04 , &H78 , &H00 , &H38 , &H44 , &H44 , &H44 , &H38 , &H00,
    Data &H7C , &H14 , &H24 , &H24 , &H18 , &H00 , &H18 , &H24 , &H24 , &H14 , &H7C , &H00 , &H7C , &H04 , &H04 , &H08,
    Data &H00 , &H00 , &H08 , &H54 , &H54 , &H54 , &H20 , &H00 , &H04 , &H3F , &H44 , &H40 , &H00 , &H00 , &H3C , &H40,
    Data &H40 , &H40 , &H3C , &H00 , &H1C , &H20 , &H40 , &H20 , &H1C , &H00 , &H3C , &H40 , &H30 , &H40 , &H3C , &H00,
    Data &H44 , &H28 , &H10 , &H28 , &H44 , &H00 , &H0C , &H50 , &H50 , &H48 , &H3C , &H00 , &H44 , &H64 , &H54 , &H4C,
    Data &H44 , &H00 , &H7C , &H12 , &H11 , &H12 , &H7C , &H00 , &H7F , &H49 , &H49 , &H49 , &H36 , &H00 , &H3E , &H41,
    Data &H41 , &H41 , &H22 , &H00 , &H7F , &H41 , &H41 , &H41 , &H3E , &H00 , &H7F , &H49 , &H49 , &H49 , &H41 , &H00,
    Data &H7F , &H09 , &H09 , &H09 , &H01 , &H00 , &H3E , &H41 , &H49 , &H49 , &H3A , &H00 , &H7F , &H08 , &H08 , &H08,
    Data &H7F , &H00 , &H00 , &H41 , &H7F , &H41 , &H00 , &H00 , &H20 , &H41 , &H41 , &H41 , &H3F , &H00 , &H7F , &H08,
    Data &H14 , &H22 , &H41 , &H00 , &H7F , &H40 , &H40 , &H40 , &H40 , &H00 , &H7F , &H02 , &H04 , &H02 , &H7F , &H00,
    Data &H7F , &H04 , &H08 , &H10 , &H7F , &H00 , &H3E , &H41 , &H41 , &H41 , &H3E , &H00 , &H7F , &H09 , &H09 , &H09,
    Data &H06 , &H00 , &H3E , &H41 , &H51 , &H61 , &H7E , &H00 , &H7F , &H09 , &H19 , &H29 , &H46 , &H00 , &H06 , &H49,
    Data &H49 , &H49 , &H30 , &H00 , &H01 , &H01 , &H7F , &H01 , &H01 , &H00 , &H3F , &H40 , &H40 , &H40 , &H3F , &H00,
    Data &H1F , &H20 , &H40 , &H20 , &H1F , &H00 , &H7F , &H20 , &H10 , &H20 , &H7F , &H00 , &H63 , &H14 , &H08 , &H14,
    Data &H63 , &H00 , &H03 , &H04 , &H78 , &H04 , &H03 , &H00 , &H61 , &H51 , &H49 , &H45 , &H43 , &H00 , &H3E , &H51,
    Data &H49 , &H45 , &H3E , &H00 , &H00 , &H42 , &H7F , &H40 , &H00 , &H00 , &H42 , &H61 , &H51 , &H49 , &H46 , &H00,
    Data &H22 , &H41 , &H49 , &H49 , &H36 , &H00 , &H18 , &H14 , &H12 , &H7F , &H10 , &H00 , &H27 , &H45 , &H45 , &H45,
    Data &H39 , &H00 , &H3E , &H49 , &H49 , &H49 , &H32 , &H00 , &H61 , &H11 , &H09 , &H05 , &H03 , &H00 , &H36 , &H49,
    Data &H49 , &H49 , &H36 , &H00 , &H26 , &H49 , &H49 , &H49 , &H3E , &H00 , &H30 , &H4A , &H4A , &HD2 , &H7C , &H00,
    Data &H38 , &H44 , &H46 , &H45 , &H28 , &H00 , &H38 , &H54 , &H54 , &HD4 , &H18 , &H00 , &H00 , &H49 , &H7F , &H44,
    Data &H00 , &H00 , &H7C , &H08 , &H06 , &H05 , &H78 , &H00 , &H38 , &H44 , &H46 , &H45 , &H38 , &H00 , &H08 , &H54,
    Data &H56 , &H55 , &H20 , &H00 , &H44 , &H64 , &H56 , &H4D , &H44 , &H00 , &H44 , &H64 , &H55 , &H4C , &H44 , &H00,
    Data &H10 , &H7F , &H44 , &H42 , &H40 , &H00 , &H04 , &H4A , &H4B , &H4A , &H30 , &H00 , &H62 , &H56 , &H4B , &H46,
    Data &H42 , &H00 , &H61 , &H59 , &H49 , &H4D , &H43 , &H00 , &H7E , &H43 , &H41 , &H43 , &H7E , &H00 , &H00 , &H00,
    Data &H00 , &H7F , &H7F , &H00 , &H00 , &H00 , &H7F , &H7F , &H7F , &H00 , &H00 , &H7F , &H7F , &H7F , &H7F , &H00,
  • #14 4799370
    snipers
    Poziom 12  
    Posty: 56
    zupcia napisał:
    hej przy pomocy programu ze stronki http://maxparadys.w.interia.pl/LPH7779_cz2_pliki/NOKIA_1.1.txt skleciłem poniższy program:
    $regfile = "m8def.dat"
    $crystal = 8000000
    
    ' -------- konfiguracja SPI
    Config Portd = Output                                       'communication port to LCD
    Config Spi = Soft , Din = Portd.0 , Dout = Portd.4 , Ss = None , Clock = Portd.3
    
    ' --------  piny LCD
    'Sclk(2) Portd.3
    'Sdin(3) Portd.4
    'D / C(4) Portd.5
    'Sce(5) Portd.6
    'Reset(8) Portd.7
    
    ' ------- Zmienne globalne
    Dim Txloc As Byte , Tyloc As Byte , Yy As Byte , Xx As Byte , Tout As Byte
    
    ' ------- Stałe dla ustawien LCD
    Const Extcmd = &H21                                         'extended command mode
    Const Contrmid = &HC8                                       'LCD contract medium level(after Extcmd)
    Const Tempcomp2 = &H06                                      'temperature compensation (after Extcmd)
    Const Bias48 = &H13                                         'bias 1:48 for LCD (after Extcmd)
    Const Normcmd = &H20                                        'normal command mode
    Const Lcdinv = &H0D                                         'inverted LCD screen(after Normcmd)
    Const Lcdnorm = &H0C                                        'normal LCD screen(after Normcmd)
    Const Lcdxaddr0 = &H80                                      'set X addr of RAM to 0(after Normcmd)
    Const Lcdpdown = &H24                                       'LCD in power down mode
    Const Lcdact = &H20                                         'LCD in active mode
    
    ' ------- Deklaracje procedur
    Declare Sub Tcmd(byval Tlcdcmd As Byte)
    Declare Sub Tlcdinit
    Declare Sub Tcls
    Declare Sub Tgphloc(txglc As Byte , Tyglc As Byte)
    Declare Sub Tlocate(byval Txlc As Byte , Byval Tylc As Byte)
    Declare Sub Tprintf(byval Tstring As String)
    Declare Sub Tshowpic
    
    
    
    ' ------- Program Główny ----------------------------
    
    Tlcdinit
    
    Main_loop:
    
    Tcls
    'Tlocate 0 , 0
    'Tprintf "  EGYPT DEMO"
    'Tlocate 0 , 2
    'Restore Egypt
    'Tshowpic
    'Wait 5
    
    Tcls
    Tlocate 0 , 0
    Tprintf "abcdefghijklmnopqrstuvwxyz"
    Wait 1
    
    Tlocate 0 , 2
    Tprintf "ABCDEFGHIJKLMNPQRSTUVWXYZ"
    Wait 1
    
    Tlocate 0 , 4
    Tprintf "0123456789šćęłńó??żŁ??Ż^[]{}"
    Wait 5
    
    'Tcmd Lcdinv
    'Wait 5
    'Tcmd Lcdnorm
    'Wait 1
    
    End                                                         'end program
    
    
    ' ------ Tcmd(Tlcdcmd) -----     START
    Sub Tcmd(byval Tlcdcmd As Byte)
    Reset Portd.5                                               'command mode
    Spiout Tlcdcmd , 1
    Set Portd.5                                                 'data mode
    End Sub
    
    ' ------ Tlcdinit ------       START
    Sub Tlcdinit
    Spiinit
    Reset Portd.6                                               'LCD enable
    Reset Portd.7                                               'RESET LCD display
    Set Portd.7                                                 '
    Tcmd Extcmd                                                 'look into
    Tcmd Contrmid                                               '"LCD commands constants"
    Tcmd Tempcomp2                                              'section
    Tcmd Bias48                                                 '
    Tcmd Normcmd                                                '
    Tcmd Lcdnorm                                                '
    Tcls                                                        '
    End Sub
    
     ' -------- Tcls -------        START
    Sub Tcls
    Local Tword As Word
    Tcmd Normcmd
    Tcmd Lcdnorm
    Tcmd Lcdxaddr0
    Tout = 0
    For Tword = 0 To 503                                        '84x6 times sends 0 to clear LCD
      Spiout Tout , 1
    Next
    End Sub
    
    ' -------- Tgphloc(Txglc , Tyglc) ---------         START
    Sub Tgphloc(txglc As Byte , Tyglc As Byte)
    Reset Portd.5                                               'command mode
    Tout = Tyglc + &H40                                         'sets 0-5 Y-addr of RAM
    Spiout Tout , 1
    Tout = Txglc * &H06                                         'sets 0-13 X-addr of RAM
    Tout = Tout + &H80
    Spiout Tout , 1
    Set Portd.5                                                 'data mode
    End Sub
    
    ' --------- Tlocate(Txloc, Tyloc) --------    START
    Sub Tlocate(byval Txlc As Byte , Byval Tylc As Byte)
    Txloc = Txlc
    Tyloc = Tylc
    Tgphloc Txloc , Tyloc
    End Sub
    
    ' --------- Tprintf(Tstring) --------    START
    Sub Tprintf(tstring As String)
    Local Tsub As Word , Tword As Word , Tchr As String * 1
    For Xx = 1 To Len(tstring)
     Tchr = Mid(tstring , Xx , 1)
     Select Case Tchr
      Case " " : Tsub = 0
      Case "a" : Tsub = 1
      Case "b" : Tsub = 2
      Case "c" : Tsub = 3
      Case "d" : Tsub = 4
      Case "e" : Tsub = 5
      Case "f" : Tsub = 6
      Case "g" : Tsub = 7
      Case "h" : Tsub = 8
      Case "i" : Tsub = 9
      Case "j" : Tsub = 10
      Case "k" : Tsub = 11
      Case "l" : Tsub = 12
      Case "m" : Tsub = 13
      Case "n" : Tsub = 14
      Case "o" : Tsub = 15
      Case "p" : Tsub = 16
      Case "q" : Tsub = 17
      Case "r" : Tsub = 18
      Case "s" : Tsub = 19
      Case "t" : Tsub = 20
      Case "u" : Tsub = 21
      Case "v" : Tsub = 22
      Case "w" : Tsub = 23
      Case "x" : Tsub = 24
      Case "y" : Tsub = 25
      Case "z" : Tsub = 26
      Case "A" : Tsub = 27
      Case "B" : Tsub = 28
      Case "C" : Tsub = 29
      Case "D" : Tsub = 30
      Case "E" : Tsub = 31
      Case "F" : Tsub = 32
      Case "G" : Tsub = 33
      Case "H" : Tsub = 34
      Case "I" : Tsub = 35
      Case "J" : Tsub = 36
      Case "K" : Tsub = 37
      Case "L" : Tsub = 38
      Case "M" : Tsub = 39
      Case "N" : Tsub = 40
      Case "O" : Tsub = 41
      Case "P" : Tsub = 42
      Case "Q" : Tsub = 43
      Case "R" : Tsub = 44
      Case "S" : Tsub = 45
      Case "T" : Tsub = 46
      Case "U" : Tsub = 47
      Case "V" : Tsub = 48
      Case "W" : Tsub = 49
      Case "X" : Tsub = 50
      Case "Y" : Tsub = 51
      Case "Z" : Tsub = 52
      Case "0" : Tsub = 53
      Case "1" : Tsub = 54
      Case "2" : Tsub = 55
      Case "3" : Tsub = 56
      Case "4" : Tsub = 57
      Case "5" : Tsub = 58
      Case "6" : Tsub = 59
      Case "7" : Tsub = 60
      Case "8" : Tsub = 61
      Case "9" : Tsub = 62
      Case "š" : Tsub = 63
      Case "ć" : Tsub = 64
      Case "ę" : Tsub = 65
      Case "ł" : Tsub = 66
      Case "ń" : Tsub = 67
      Case "ó" : Tsub = 68
      Case "?" : Tsub = 69
      Case "?" : Tsub = 70
      Case "ż" : Tsub = 71
      Case "Ł" : Tsub = 72
      Case "?" : Tsub = 73
      Case "?" : Tsub = 74
      Case "Ż" : Tsub = 75
      Case "^" : Tsub = 76
      Case "[" : Tsub = 77
      Case "]" : Tsub = 78
      Case "{" : Tsub = 79
      Case "}" : Tsub = 80
      Case Else : Goto Exit_case
     End Select
     Restore Ascii
     Set Portd.5
     Tsub = Tsub * 6
     If Tsub <> 0 Then
      For Tword = 1 To Tsub                                     'shift to character pointer
      Read Tout                                                 'Tsub times
      Next
     End If
      For Yy = 1 To 6                                           'printing character loop
      Read Tout : Spiout Tout , 1                               '6x8 bits
      Next
    Exit_case:
    Next
    End Sub
    
    '  ------- D A T A -------     START
    Ascii:
    Data &H00 , &H00 , &H00 , &H00 , &H00 , &H00 , &H30 , &H4A , &H4A , &H52 , &H7C , &H00 , &H3F , &H48 , &H44 , &H44,
    Data &H38 , &H00 , &H38 , &H44 , &H44 , &H44 , &H28 , &H00 , &H38 , &H44 , &H44 , &H48 , &H7F , &H00 , &H38 , &H54,
    Data &H54 , &H54 , &H18 , &H00 , &H00 , &H04 , &H7E , &H05 , &H00 , &H00 , &H0C , &H52 , &H52 , &H4A , &H3C , &H00,
    Data &H7F , &H08 , &H04 , &H04 , &H78 , &H00 , &H00 , &H44 , &H7D , &H40 , &H00 , &H00 , &H00 , &H40 , &H44 , &H3D,
    Data &H00 , &H00 , &H7F , &H20 , &H10 , &H28 , &H44 , &H00 , &H00 , &H41 , &H7F , &H40 , &H00 , &H00 , &H7C , &H04,
    Data &H18 , &H04 , &H7C , &H00 , &H7C , &H08 , &H04 , &H04 , &H78 , &H00 , &H38 , &H44 , &H44 , &H44 , &H38 , &H00,
    Data &H7C , &H14 , &H24 , &H24 , &H18 , &H00 , &H18 , &H24 , &H24 , &H14 , &H7C , &H00 , &H7C , &H04 , &H04 , &H08,
    Data &H00 , &H00 , &H08 , &H54 , &H54 , &H54 , &H20 , &H00 , &H04 , &H3F , &H44 , &H40 , &H00 , &H00 , &H3C , &H40,
    Data &H40 , &H40 , &H3C , &H00 , &H1C , &H20 , &H40 , &H20 , &H1C , &H00 , &H3C , &H40 , &H30 , &H40 , &H3C , &H00,
    Data &H44 , &H28 , &H10 , &H28 , &H44 , &H00 , &H0C , &H50 , &H50 , &H48 , &H3C , &H00 , &H44 , &H64 , &H54 , &H4C,
    Data &H44 , &H00 , &H7C , &H12 , &H11 , &H12 , &H7C , &H00 , &H7F , &H49 , &H49 , &H49 , &H36 , &H00 , &H3E , &H41,
    Data &H41 , &H41 , &H22 , &H00 , &H7F , &H41 , &H41 , &H41 , &H3E , &H00 , &H7F , &H49 , &H49 , &H49 , &H41 , &H00,
    Data &H7F , &H09 , &H09 , &H09 , &H01 , &H00 , &H3E , &H41 , &H49 , &H49 , &H3A , &H00 , &H7F , &H08 , &H08 , &H08,
    Data &H7F , &H00 , &H00 , &H41 , &H7F , &H41 , &H00 , &H00 , &H20 , &H41 , &H41 , &H41 , &H3F , &H00 , &H7F , &H08,
    Data &H14 , &H22 , &H41 , &H00 , &H7F , &H40 , &H40 , &H40 , &H40 , &H00 , &H7F , &H02 , &H04 , &H02 , &H7F , &H00,
    Data &H7F , &H04 , &H08 , &H10 , &H7F , &H00 , &H3E , &H41 , &H41 , &H41 , &H3E , &H00 , &H7F , &H09 , &H09 , &H09,
    Data &H06 , &H00 , &H3E , &H41 , &H51 , &H61 , &H7E , &H00 , &H7F , &H09 , &H19 , &H29 , &H46 , &H00 , &H06 , &H49,
    Data &H49 , &H49 , &H30 , &H00 , &H01 , &H01 , &H7F , &H01 , &H01 , &H00 , &H3F , &H40 , &H40 , &H40 , &H3F , &H00,
    Data &H1F , &H20 , &H40 , &H20 , &H1F , &H00 , &H7F , &H20 , &H10 , &H20 , &H7F , &H00 , &H63 , &H14 , &H08 , &H14,
    Data &H63 , &H00 , &H03 , &H04 , &H78 , &H04 , &H03 , &H00 , &H61 , &H51 , &H49 , &H45 , &H43 , &H00 , &H3E , &H51,
    Data &H49 , &H45 , &H3E , &H00 , &H00 , &H42 , &H7F , &H40 , &H00 , &H00 , &H42 , &H61 , &H51 , &H49 , &H46 , &H00,
    Data &H22 , &H41 , &H49 , &H49 , &H36 , &H00 , &H18 , &H14 , &H12 , &H7F , &H10 , &H00 , &H27 , &H45 , &H45 , &H45,
    Data &H39 , &H00 , &H3E , &H49 , &H49 , &H49 , &H32 , &H00 , &H61 , &H11 , &H09 , &H05 , &H03 , &H00 , &H36 , &H49,
    Data &H49 , &H49 , &H36 , &H00 , &H26 , &H49 , &H49 , &H49 , &H3E , &H00 , &H30 , &H4A , &H4A , &HD2 , &H7C , &H00,
    Data &H38 , &H44 , &H46 , &H45 , &H28 , &H00 , &H38 , &H54 , &H54 , &HD4 , &H18 , &H00 , &H00 , &H49 , &H7F , &H44,
    Data &H00 , &H00 , &H7C , &H08 , &H06 , &H05 , &H78 , &H00 , &H38 , &H44 , &H46 , &H45 , &H38 , &H00 , &H08 , &H54,
    Data &H56 , &H55 , &H20 , &H00 , &H44 , &H64 , &H56 , &H4D , &H44 , &H00 , &H44 , &H64 , &H55 , &H4C , &H44 , &H00,
    Data &H10 , &H7F , &H44 , &H42 , &H40 , &H00 , &H04 , &H4A , &H4B , &H4A , &H30 , &H00 , &H62 , &H56 , &H4B , &H46,
    Data &H42 , &H00 , &H61 , &H59 , &H49 , &H4D , &H43 , &H00 , &H7E , &H43 , &H41 , &H43 , &H7E , &H00 , &H00 , &H00,
    Data &H00 , &H7F , &H7F , &H00 , &H00 , &H00 , &H7F , &H7F , &H7F , &H00 , &H00 , &H7F , &H7F , &H7F , &H7F , &H00,
    Data &H7F , &H7F , &H7F , &H7F , &H7F , &H00
    


    trochę się udało bo wyświetlacz odpala lecz niestety nie wyświetla tego czego pragnę zapala się tylko 5 pixeli i to wszystko :/ czy ktoś wie gdzie tkwi błąd ???? prosze o pomoc




    u mnie to ładnie chodzi tylko mam pytanie ma ktoś moze dorobianą obsługe wiekszych znaków ?

    dzięki
  • #15 4801305
    Michał_z1
    Poziom 16  
    Posty: 190
    Pomógł: 13
    Ocena: 2
    Witam.
    Przy okazji włączę sie do dyskusji, kolego SNIPERS mógłbyś wrzucić schemat połączeń wyświetlacza do proca (jakiś bufor) i czym zasilasz proca (jakie napięcie)??.
    pozdrawiam.
  • #16 4802951
    snipers
    Poziom 12  
    Posty: 56
    ja zrobiłem połaczenie bezposrednio pod procka Atmega8 i lcd bez bufora. zasilanie z stabilizatora lm1117t 3.3V ale myśle zrobić prościej na jakiejs diodzie zenera ale to potem. zasilanie procka 5V .
  • #17 4804633
    Michał_z1
    Poziom 16  
    Posty: 190
    Pomógł: 13
    Ocena: 2
    Witam.
    Mam rozumieć SNIPERS że LCD zasilasz 3,3V, a proca 5V a sterowanie SPI bez żadnych rezystorów lub innych takich bezpośrednio do proca?? (chce mieć 100% pewność, kiedyś próbowałem połączyć proca z lcd ale jak można się domyślić bez efektów)
    pozdrawiam.
  • #18 4806074
    snipers
    Poziom 12  
    Posty: 56
    tak lcd mam 3,3V przez stabilizator procek na 5v.

    sterowanie lcd z procka zrobiłem normalnie bez niczego same kabelki tylko w pinie lcd bodajże 7 (Vout) trzeba dac 1uF do masy.

    na poczatku tez nie miałem efektów ale pobawiłem sie ustawieniami i ładnie chodzi :D

Podsumowanie tematu

LABEL_AI_GENERATED
Dyskusja dotyczy pisania programu w BASCOM dla mikrokontrolera ATmega8 do obsługi wyświetlacza LCD z telefonu Nokia 3310. Użytkownik prosi o prosty, szczegółowy opis oraz przykładowe programy. W odpowiedziach pojawiły się przykładowe kody źródłowe z konfiguracją SPI (zarówno soft, jak i hard), aliasami pinów mikrokontrolera przypisanymi do sygnałów LCD (SCLK, SDIN, DC, SCE, RESET) oraz ustawieniami rejestrów LCD (m.in. tryb rozszerzony, kontrast, kompensacja temperatury). Wskazano na konieczność dostosowania programu z ATmega128 do ATmega8, zwrócono uwagę na konfigurację pinów portu B i D oraz na poprawne podłączenie wyświetlacza do mikrokontrolera. Poruszono też kwestie zasilania: LCD zasilany jest napięciem 3,3 V (np. stabilizatorem LM1117T), a mikrokontroler 5 V, z bezpośrednim połączeniem sygnałów SPI bez buforów, z zaleceniem kondensatora 1 µF na pinie Vout LCD do masy. Użytkownicy dzielili się linkami do gotowych przykładów i omawiali problemy z programowaniem i wgrywaniem kodu (np. błędy w PonyProg). Podkreślono, że dostarczone przykłady wymagają dalszego rozwinięcia o funkcje wyświetlania i definicje znaków. Wskazano na konieczność studiowania dokumentacji LCD, konfiguracji SPI i aliasów pinów w BASCOM, aby uzyskać poprawne działanie wyświetlacza Nokia 3310 z ATmega8.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA