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.

[PIC16F877][C/Hi-Tech C] Inicjalizacja LCD 16x2

gabryelski 16 Mar 2012 01:25 1520 3
  • #1 16 Mar 2012 01:25
    gabryelski
    Poziom 8  

    Witam,
    Próbuję zainicjować wyświetlacz (DEM16216SGH) do pracy w trybie 4 bitowym, postępuje jak w instrukcji w nocie katalogowej, niestety na wyświetlaczu widzę tylko czarne kwadraty w górnej lini. Programuje w MPLAB, używając Hi-Tech C. Opóźnienia czasowe są precyzyjne, sprawdzałem MPLAB SIM. Proszę o sprawdzenie kodu, być może źle interpretuje noty katalogowe. Załączam kod i note.

    Kod: c
    Zaloguj się, aby zobaczyć kod


    Nota: DEM16216SGH

    0 3
  • #2 17 Mar 2012 16:33
    zmyslonyy
    Poziom 26  

    Nie znam za bardzo C ale z tego co widze to na początku inicjacja trybu 4 bitowego jest 3 krotnie powtarzana co 37us. Ty masz tylko raz i prawdopodobnie nie przestawia się na tryb 4 bitowy. W karcie katalogowej którą podałeś masz dwa tryby inicjacji 4 bitową i 8 bitową.

    0
  • #3 18 Mar 2012 04:08
    gabryelski
    Poziom 8  

    Dobra jakoś sobie poradziem, zainicjowany w 4 bity! , generalnie wyłączyłem LVP żeby uaktywnić RB3, i na koniec swojej funkcji dodałem return, wyzerowałem też INTCON i OPTION_REG. Przeniosłem Enable i RS na PORTE i uziemiłem R/W. Gdyby ktoś był zainteresowany to zamieszczam działający kod:

    Kod: c
    Zaloguj się, aby zobaczyć kod

    0
  • #4 18 Mar 2012 16:56
    gabryelski
    Poziom 8  

    Mam kolejny problem, odpaliłem wyświetlacz i chcę napisać "HELLO" , wysyłam odpowiednie komendy i napis się wyświetla ale cały czas od jakby od nowa, wyświetlacz zdaje się resetować i wyświetlać od początku. Ktoś wie co może być przyczyną?

    Dodano po 30 [minuty]:

    Dopisałem while(1); na końcu programu żeby się zatrzymał

    0