; lcd podlaczony do portu 1, mozna zmienic na dogodny ; ponizsze linie ster. mozna zmienic na dogodne lin_rw equ p3.1 lin_e equ p3.2 lin_rs equ p3.0 org 0 ;--------------init lcd ---------------- mov a, #38h ; interf.8-bit,2-wiersz,5x7pix call lcd_cont mov a, #0ch ; display on, reszta off call lcd_cont mov a, #1 ; clear display call lcd_cont ;------------koniec...
Dlaczego? Bo taki kod nic nie robi (nie zmienia stanu "maszyny abstrakcyjnej"), więc może zostać usunięty bez zmiany znaczenia programu. Rozwiązaniem jest np. dodanie w pętli [syntax=c]__asm__ volatile ("nop");[/syntax]
(at)rafz i czym się różni czekanie na zmianę stanu na pinie RW od czekania aż licznik skończy odliczać? Oprócz faktu że w tym drugim nie używamy pinu RW. Przede wszystkim tym, że jak sobie to rozpisze z opóźnieniami to będzie widział jak to czasowo wygląda i gdzie ten czas będzie mógł zaoszczędzić o ile potrzebuje ;) A init, który jest wykonywany zazwyczaj...
Procesor to atmega16L z wewnętrznym kwarcem 8Mhz (dodefiniowałem F_CPU 8000000L). bardzo ciekawe to co napisales, bo domyslnie ta atmega ma ustawiony oscylator 1MHz, a nie 8. do tego na porcie C ma cos takiego co sie zwie JTAG, co wypadaloby najpierw wylaczyc, jesli tego uzywasz. nie mam ochoty na wiecej zgadywanek, bo ani nie dalej schematu, ani calosci...
Pin od kontrastu mam wpięty przez rezystor 10k do masy (i nie chcę mieć na kontraście regulacji - ma on być stały) Ale to nie tak reguluje się kontrast. Równie dobrze mógłbyś podłączyć ten pin bezpośrednio do masy. Dołącz dodatkowo jeszcze rezystor jakieś 47k między zasilanie a pin kontrastu i zobacz czy coś się zmienia.
Witam, Bez zbędnych formalności przejdę do opisu: [url=http://radzio.dxp.pl/hd44780/hd4478... schemat połączeń. Podpiąłem: RS-PD3, E-PD4, D4-PD5, D5-PD6, D6-PD7, D7-PD0. Korzystam z bioblioteki radzia(4-bitowy tryb pracy bez odczytu flagi zajętości). Oto mój kod w "main.c" [syntax=c]#include "HD44780.h" int main(){ LCD_Initalize();...
To fakt, co piszesz. W wielu książkach się z taką praktyką spotkałem, ale nikt tak na prawdę tego wprost nie uzasadniał. Po podłączeniu zasilania do wyświetlacza wyświetla się linijka, informująca o działaniu LCD i umożliwia ona nastawienie kontrastu. Żeby się jej pozbyć, trzeba ustawić LCD do pracy. I teraz, w sterowniku oryginalnym, pewnie jednokrotne...
Witam wszystkich, Próbuję uruchomić wyświetlacz LCD znakowy 2x40 ze sterownikiem hd44780 na procesorze STM32L na płytce STM32L-Discovery. Korzystałem z książki "STM32 Aplikacje i ćwiczenia w języku C" Marka Galewskiego. Do książki były dołączone pliki biblioteczne do obsługi właśnie hd44780. Wykorzystałem te pliki, zmieniłem jedynie port pod który podpiąłem...
ostatnio kupilem na allegro wyswietlacz LCD DM157a, niestety za nic nie moge sobie poradzic z odpaleniem tego LCD. Niby sprawa jest prosta podlaczenie zasilania i kolejno wyjsc, ale u mnie nie chce ruszyc, . spoko, nie jest tak żle, mam trochę tych LCD-ków i żadnego problemu. Na taśmie wyprowadzenie Vcc i +5V razem i do zasilania, reszta to standard....
Pin RW podłącz do masy. W funkcji string nie używasz zn. Przy inicjalizacji ustawienie trybu w 8-bitowy powinno być pierwsze. Zresztą przeczytaj datasheet (Initializing by instruction) tam masz napisane, że trzeba trzykrotnie wysłać 0x3F w dodatku z różnymi odstepami czasowymi, po włączeniu zasilania należy chwile odczekac. Wstaw jeszcze jakieś opóźnienia,...
Witam, Po pierwsze sprawa sprzętowa: czy na liniach portu 0 masz zewnętrzne rezystory podciągające? Port 0 w tym mikrokontrolerze nie ma wewnętrznych pull-upów. Po drugie sprawa programowa: stan linii RS i RW musi być ustawiony przed podaniem stanu wysokiego na linię E. Po pierwszej instrukcji inicjalizacji powinno być też dłuższe opóźnienie - zalecam...
Trzykrotny kod jest dla magistrali 4bit, i jest użyty dla pewności poprawnej konfiguracji trybu dla tej tej magistrali. Różnice dla KS0066U mogą polegać na dłuższym czasie inicjalizacji. Temat był już wielokrotnie omawiany na tym forum, przeważnie z okazji "KS0066U mi nie działa :(, HELP...." ;).
Przecież w programie nie ma takiego napisu...?
Nie mam pojęcia co z nią jest nie tak. Błąd z serii szkolnych :D [syntax=c]void hd_init(void){ _delay_ms(15); //wake to power up //init sequence for 4bit bus //8bit mode hd_dir_out(); RS_LOW; RW_LOW; E_LOW; hd_nibble( 3); E_HIGH; E_LOW; _delay_ms(5); E_HIGH; E_LOW; _delay_us(100); E_HIGH; E_LOW; _delay_us(100); hd_nibble(2); E_HIGH; E_LOW; _delay_us(100);...
Witam. Chciałem rozgryźć wyświetlacze z HD44780. Po nieskutecznych próbach z interfejsem 4-o bitowym, wszystko skasowałem, i napisałem zupełnie od nowa, tym razem pod interfejs 8mio bitowy. OK, poczytałem datasheety, diagramy itp. Według mnie wszystko raczej się zgadza, ale wyświetlacz się nie chce zainicjalizować (a raczej dwa wyświetlacze, bo próbowałem...
a może najłatwiej będzie użyć gotowej biblioteki ?? http://radzio.dxp.pl/hd44780/hd44780_avr... Tez kiedyś się bawiłem w robienie samemu ale szkoda czasu. PS. SET_E; write_command(0x03); delay_ms(10); CLR_E; Powyższy kod jest zły ponieważ najpierw oczyszczasz E a potem czekasz.
Cześć, od jakiegoś czasu zmagam się z problemem dość podstawowym i - jak to zazwyczaj w takich przypadkach bywa - wyczerpały mi się pomysły na jego rozwiązanie. Podłączam LCD do Atmegi8 zgodnie z następującym schematem: http://radzio.dxp.pl/hd44780/hd44780_avr... , a więc tryb 4-bitowy z odczytem flagi zajętości (R/W wyświetlacza podłączone...
Pokaż schemat.
Witam, mam podlaczona ATmege z wyswietlaczem alfanumerycznym w trybie 4-bitowym z odczytem flagi zajętości. Uzywam biblioteki ze strony http://radzio.dxp.pl/hd44780/ Inicjalizacja wyswietlacza przebiega tak jak powinna, kursor (ktory wlaczylem sobie) pojawia sie na pierwszej pozycji. Ale niestety jakakolwiek proba wyswietlenia znaku (LCD_WriteData()...
Czy obydwa wyświetlacze to WC1602A ? Bo one są "baaardzo kompatybilne" z HD44780, szczególnie inicjalizacja. A jeszcze swoją drogą, to czy ten delay po zerowaniu linii E nie powinien być przed zerowaniem? I daj R/W do masy jak nie używasz.
Witaj, Ja na Twoim miejscu nie szukałbym problemu gdzie go nie ma. Najprostszą metodą rozwiązania Twojego problemu jest wzięcie dokumentacji do hd44780 i zrobienie krok po kroku inicjalizacji, tak jak tam jest napisane. Tam naprawdę jest dobry opis co trzeba i jak zrobić. Pozdrawiam
Przeanalizuje sobie te kody. Działają na pewno. http://radzio.dxp.pl/hd44780/
Witam! Ma ktoś może jakąś dokumentacje co do sterowania HD44780 w trybie 4-bitowym wraz z samym włączeniem go?
JTAG może? *Nie patrzyłem w kod*
Witam. Wiem, że temat wygląda podobnie do wielu innych tematów, ale rady podane w tychże nie pomogły. Mam płytkę, gdzie dane przesyłane są przez port A (D0...D7 - PA0...PA7) natomiast linie sterujące są podłączone do portu C (E-PC7,RW-PC6,RS-PC5). Płytka jest sprawdzona omomierzem i wszędzie są przejścia. Napisałem kod w AVRStudio4: ldi r16,0xFF;ustawienie...
Może inicjalizacja jest za szybko po włączeniu zasilania.
Witam, pomimo że problem wyświetlaczy LCD ze sterownikiem HD44780 był poruszany milion razy, nie znalazłem konkretnie wyjaśnionego (łopatologicznie) problemu sterowania tym przez LPT za pomocą interfejsu 4-bitowego. Bardzo proszę o pomoc w realizacji inicjalizacji takiego wyświetlacza (1x16 znaków), schemat podłączenia: LPT LCD d0 db4 d1 db5 d2 db6...
Co najmniej multiple definition of powinieneś się domyślić tym bardziej, ze zadałem pytania uściślające. Zastanów się: - skoro skopiowałeś funkcje do pliku, - oraz załączasz dodatkowo do projektu plik .c biblioteki z tymi funkcjami to ... ile np. funkcji _LCD_Write() widzi kompilator?
Witam. Mam podobny problem tez z At128 i właśnie z portem A . Inicjalizacja się nie powodzi i do tego albo sa kwadraciki albo nic niema. Czasem nawet kursor się pokaże ale nic nie reaguje na komendy. Wie juz wiesz co było u Ciebie przyczyną? Ja dziś sprawdze jak mi ktoś poradził tu własnie na forum by zmienić bit konfiguracyjny kompatybilności z Atmega103...
Zrobiłem kod wzorując się tym razem na tym co radzio udostępnił ( http://radzio.dxp.pl/hd44780/ ). Na AVR biblioteki mi działają mimo że pisałem tak samo... Nadal nie działa... Po wrzuceniu takiej konfiguracji: E | RS | D7 | D6 | D5 | D4 0/1 | 0 | 0 | 0 | 1 | 0 0/1 | 0 | 0 | 0 | 0 | 0 0/1 | 0 | 1 | 1 | 1 | 1 0/1 | 0 | 0 | 0 | 0 | 0 0/1 | 0 | 0 | 0 |...
Wyświetlacz nie przechodzi inicjalizacji. Sprawdź to na sprawdzonej bibliotece: [url=https://radzio.dxp.pl/hd44780/4x40/...
twój LCD jest na sterowniku zgodnym z HD44780 czyli powinień smigać bez problemu... Czy masz jakiś problem z wysterowaniem tego LCD ? Działa ilaczej czy coś innego ? pozdr KN
Witam. To jest mój pierwszy układ. Mam podłączonego lcd do atmegi wg schematu ze strony: http://radzio.dxp.pl/hd44780/hd44780_avr... PB2 -RS, PB3 - RW, E - PB4, 8 bitów danych do PORTC. Korzystam z oprogramowania WinAvr gcc + PonyProg. Program obsługi tego LCD także ściągałem z tej strony. Problem mam w tym, że nie potrafie nic na tym wyświetlaczu...
Nie.
Czyli jest tam sterownik HD44780. Czy problemy z inicjalizacją tego wyświetlacza mogą być spowodowane krótkimi 5ms czasami opóżnienia. Bo mam z tym problem .Z góry dzieki za info.
No ja sprawdziłem "na żywca". Działa. Sprawdź dobrze połączenia. Po połączeniu musisz zrobić reset układu, żeby wykonała się inicjalizacja sterowników HD44780.
Ech, przecież w datahseecie pisze jaki tam jest sterownik: SPLC780D. Jest on zamiennikiem sterownika KS0066U który to z kolei jest mniej więcej zamiennikiem kontrolera HD44780. Mniej więcej bo jest jakaś różnica w inicjalizacji. http://www.santechdisplay.co.jp/product/... http://www.elektroda.pl/rtvforum/topic10... http://www.elektroda.pl/rtvforum/topic28...
Zapala się przed inicjalizacja i gasi po
Witam. Mam problem z inicjalizacją wyświetlacza HD44780 korzystając z biblioteki od "radzia". Przy kompilacji możliwie prostego programu: http://obrazki.elektroda.pl/1084233600_1...
Witam Sądzę że najlepszym rozwiązaniem jest zamontowanie wyświetlacza z powrotem w drukarce i podpięcie się analizatorem stanów logicznych pod linie. Np dość dobry jest Saleae i ma zaszyte dekodowanie wielu protokołów. W ten sposób poznasz sekwencje inicjalizacji i protokół.
Każdy lcd potrzebuje procedury inicjalizacji zaraz po włączeniu zasilania. Procedura opisana w dokumentacji sterownika HD44780.
Na 90% jest to uszkodzony kontroler ewentualnie gdzieś coś nie styka w samym wyświetlaczu (może komuś spadł z wysokości na płaską powierzchnię). W ogóle co to za wyświetlacz? Bo nie mogę dojść czy 2x16 czy 4x16 ;). A dobry wyświetlacz 4x16 kupisz w artronicu za 23 zł..
Witam, Już kilka dni nie mogę rozwiązać problemu z wyświetlaczem i tym kontrolerem. Wyświetlacz i sterowanie jest 4-bitowe. Wyświetlacz to WC1602A0, czyli kompatybilny z HD44780 2 rzędy po 16 znaków. uCdo testowania to Atmega16, choć docelowo będzie pracował z Atmega32. W każdym razie połączenia na schemacie wydają sie być w porządku, dla pewności kilkukrotnie...
Witam. Mój wyświetlacza posiada 2linie po szesnaście znaków. Korzystam z biblioteki Radzia HD44780 http://radzio.dxp.pl/hd44780/hd44780_avr... Problem polega na tym , że po wpisaniu kodu: LCD_WriteText("Zakr. przetworn."); LCD_WriteText("0123456789"... LCD_WriteText("0123456789"... LCD_WriteText("Zakr....
Kupiłem lcd z serii DOG 16x2 ale nie mogę go zainicjować. Ma ktoś jakieś doświadczenia z jego kontrolerem? Zestaw instrukcji jest zgodny z HD44780. Chcę wykorzystać tryb 4-bit. Pozdrawiam PC
To o czym już wspominano - co jakiś czas inicjalizacja.
Kolega chyba na bakier z angielskim i czytaniem dokumentacji w ogóle. Pomijając dalszy opis w nocie dość jednoznacznie sposobem inicjalizacji, sygnałami itd. wskazujący na zgodność z HD44780, to z kontekstu całego dokumentu powinien się domyśleć że LCM w nocie to ichnia nazwa LCD (pewnie Liquid Crystal Matrix zamiast Display), a literka M oznacza standardowy...
Z ciekawości zapytam - ile zajmuje program który ma w sobie tylko konfigurację np RCC + ta biblioteka (inicjalizacja + wypisanie stringa)?
Nie zachowujesz minimalnych czasów z noty katalogowej. Wystarczy spojrzeć na funkcję writeData() czy inicjalizację.
A po co inicjalizujesz LCD w każdym obiegu pętli? P_P
100nF, ceramiczne! Więcej szczegółów tutaj: http://mikrokontrolery.blogspot.com/2011... Powinieneś podłączyć wszystko wg zaleceń! Cóż, napisali w nagłówku aukcji, że to HD44780, a w jej (aukcji) szczegółach, że jest z nim zgodny. "Tylko zgodny" czasami może wymagać, np. innego sposobu inicjalizacji i warto to sprawdzić...
Z tego co pamiętam to w niektórych wyświetlaczach kompatybilnych z HD44780... minimalne czasy przy inicjalizacji są nieco większe niż w przypadku HD44780... Spróbuj pokopać na forum bo to było już parę razy...
Witam, podales tak malo danych o ukladzie ze mozna tylko zgadywac, ogolnie "prostokaty pojawia sie gdy z jakiegos powodu wyswietlacz po wlaczeniu napiecia nie zostal zainicjowany. W twoim przypadku oznacza to ze w chwili wlaczenia "tego czegos" co pobiera 2kW masz spadek napiecia powodujacy reset wyswietlacza, jako ze byl on juz wczesniej zainicjowany...
Witam! Chciałem podpiąć wyświetlacz ABC016002E. Jest on oparty na sterowniku zgodnym z HD44780(takie samo ustawienie pinów). Kontrastu na razie nie regulowałem. Ale nie w tym jest problem, gdyż program się zapętla tam gdzie nie powinien. Piny mam w następujący sposób podpięte: PD0 - RS PD1 - RW PD2 - E PD3 - D4 PD4 - D5 PD5 - D6 PD6 - D7 PB0 - dioda...
Witam! Chciałem być ambitny i się zaczęło... Początek projektu na procesorze AtMega16 (8MHz na kwarcu) i wyświetlacz HD44780 16*2, komunikacja 8bitowa z uwzględnieniem flagi zajętości. Układ i biblioteka obsługi wyświetlacza zaczerpnięta ze strony #include <avr/io.h> #include <util/delay.h> //--------------------------------------...
Jeśli wyświetlają sie prostokąty to najprawdopodobniej właśnie problem z inicjacją LCD. Więcej dowiesz sie na [url=http://radzio.dxp.pl/hd44780/]tej stronce
Czy w czasie inicjalizacji stosujesz softwarowy reset HD44780 - jeżeli tak to jest to bardzo dziwne, jeżeli nie to spróbuj.
... Odnośnie sygnału Enable to ja się doszukałem że właśnie najpierw trzeba go ustawić w stan wysoki a dopiero później zmienić dane. To źle doszukałeś :( Spójrz poniżej na zależności dla HD44780 (chyba że masz inny sterownik) Pozdrawiam Piotrek
No, ale jeżeli w pętli na przemian piszesz coś na wyświetlacz, a następnie natychmiast go czyścisz, to jak chcesz odczytać ten napis? Co znaczy, że po kompilacji przeskakuje dalej? Po ponownym załadowaniu programu? Zablokowanie wyświetlacza nie jest możliwe, ale możesz mieć np. błędy w inicjalizacji.
[syntax=c] 21c21 < #define CLR_LCD_E PORTB= ~_BV(PB3) --- > #define CLR_LCD_E PORTB&= ~_BV(PB3) 40,41c40,41 < #define SET_LCD_D6 PORTD= _BV(PD7) < #define CLR_LCD_D6 PORTD= ~_BV(PD7) --- > #define SET_LCD_D6 PORTD|= _BV(PD7) > #define CLR_LCD_D6 PORTD&= ~_BV(PD7) 98c98 < --- > [/syntax] Obejrzałem 'po łebkach' Twój hd44780.h...
O co chodzi z timingami z inicjalizacją? A może być to kwestia zbyt szybkiej linii SCK?
Zalecałbym dokładne zapoznanie się z dokumentacją wyświetlacza. Teoretycznie nie powinno być różnicy pomiedzy sterowaniem prockiem, a przyciskami. Z ręcznym sterowniem może być trochę zabawy zanim wyświetli się jakakolwiek litera :) Najpierw musi być inicjalizacja wyświetlacza, a następnie odpowiednie komendy do wyświetlania liter. Kiedyś widziałem...
W wielu przykładach piszą w ten sposób, albo jakieś hello world i przypisane mają dokładnie tyle znaków ile ma cały ciąg bez żadnego dodatkowego oznaczającego koniec. Nie wiem czy to błąd wklejających listingi czy co? Nie zmienia to faktu, że nawet jak dodam jeden więcej znak do tablicy to dalej nie działa niestety.
Używam dokładnie tego samego LCD. U siebie po pierwsze po inicjalizacji, przed wysłaniem komendy czyszczenia (pierwszej jakiejkolwiek komendy) daję delaya 100ms. Po drugie, linię R/W mam zwartą do masy (czyli na stałem sam zapis) - i tak w Twojej bibliotece nie widzę komend odczytu ;) A po trzecie spróbuj linie RS i EN przepiąć na inne piny. Dokładnego...
Wyswietlacz zaczal reagowac, ale musze przyciskac paraokrotnie reset zeby pojawil sie kursor. Swoja droga pojawia sie on w przypadkowych miejscach, dopiero po kilku znowu resetach wskakuje na lewy gorny rog. Jesli chce cos wyswietlic to japierw wypisuje krzaki, pozniej tekst ale tylko krotki (jak mowi po mozolnym prziskani reset). Tak jak pisalem wczesniej...
W przypadku GCC na LCD pojawia się 8 kwardacików Co może być nie tak ? Inicjalizacja jest zła. Masz włączoną optymalizację ?
A czy jeśli ustawisz pozycje pośrednią, włączysz zasilanie, świecą się tylko niektóre kratki? (wyświetlacz jest wtedy gotowy do inicjalizacji)
Tak to byla inicjalizacja a odkrylem to dosc nietypowo. sterowanie wyswietlacza jest w formie czterobitowej. przy resecie przycisnalem palcem pod mikrokontroler (pewnie zaklucilem prace kwarca) i ruszyl poprawnie. przeczytalem jeszcze gdzies w postach ze wyprowadzenia P1.0 i P1.1 sa nie podciagniete (wejscie analog) i moze przez to tez glupial, zaraz...
Witam. Napisałem swoją bibliotekę do wyświetlacza w temacie, ale niestety są z nią problemy. [syntax=c]#include <avr/io.h> #include "HD44780.h" #include <avr/delay.h> int main(void) { LCD_Initalize(); for(int i=0; i<30; i++) LCD_WriteData('a'); while(1); return 0; }[/syntax] Na wyświetlaczu powinien wyświetlić się ciąg znaku "a", ale...
Hej. Próbowałem z tymi plikami i nic nie ruszyło. Nie jestem tylko pewny czy ten wyświetlacz ma sterownik HD44780 czy jakiś zgodny z nim. Powiedz czy ty robiłeś to na takim samym WinStar WH1602B2-YYH-CT czy innym?? Udało mi się jedynie znaleść sklep gdzie pisze że ma zgodność z HD44780 ale gdy patrze w instrukcję odnośnie inicjalizacji WH1602B2-YYH-CT...
Nie napisałeś na jakim sterowniku pracuje Twój LCD.Domyślam się , że chodzi o HD44780.Jeśli tak jest w rzeczywistości , to procedurka inicjująca jest niezgodna ze specyfikacją.Spójrz na str.47 (Figure 26 4-Bit Interface) rzeczonej specyfikacji i porównaj ze swoim kodem. Piotrek
#include <avr/io.h> #include <avr/interrupt.h> #include <stdlib.h> #include "hd44780.h" #include <avr/delay.h> int main(void) //Program główny { LCD_Initalize(); //Inicjalizacja wyświetlacza while (1) { LCD_GoTo(0,0); LCD_WriteText("Hello!")... //Wyświetlenie...
[syntax=basic4gl].include "m8def.inc" ldi R16,low(RAMEND) out SPL, R16 ldi R16,high(RAMEND) out SPH, R16 ldi r17, 0b11111111 out DDRC, r17 out DDRD, r17 ldi r19, 0b00000000 //glowny //inicjalizacja rcall opoznienie ldi r18, 0b00110000 out PORTD, r18 out PORTC, r19 rcall opoznienie out PORTD, r18 out PORTC, r19 rcall opoznienie out PORTD, r18 out PORTC,...
Kolego kamilcendrowski, próbowałem uruchomić Twój program inicjalizacji lcd na symulatorze - nie ruszył z miejsca. Przeanalizuj (lub użyj) program który Ci posłałem, ten działa na pewno, nie wysyłam niesprawdzonego kitu by zdobyć punkty, bo mnie one nie interesują. I pamiętaj że P0 ma otwarte kolektory.
Tmf - jezeli on miałby organizację 8x1 to te kwadraty miałyby kolor tła po inicjalizacji. oczywiście wtedy trzeba (mialem kiedys takie cudo) do drukowania na drugiej czesci linii pierwszej przesuwac na adres 40 a drugiej nie pamietam ale łatwo policzyc (10 i 50). Ale inicjalizacja i czyscczenie działa tak samo na obu czesciach obrazu.
A to jest to samo napięcie co na uP? Bo może problem jest w inicjalizacji LCD'ka? Spójrz na schemat z pierwszego postu - LCD jest podłączany do LPT, a nie do uC. LCD bez inicjacji (w słowniku języka polskiego nie ma słowa inicjalizacja) wyświetla rząd czarnych prostokątów. Przynajmniej moje tak mają.
Cześć. Program ten, sprawdzany był na attiny2313 Jak próbowałem go na at90s2313, to działał jak dołożyłem mu 6 x nop. Ewentualnie spróbuj mu dać kilkadziesiąt ms czasu przed inicjalizacją. Czy na pewno masz dobrze ustawiony CKSEL ? na wewnetrzny oscylator, PB6 i 7 to również końcówki zewn.oscylatora A to jest właśnie wersja z dołożonymi nop'ami.
Inicjalizacja, między innymi, ustawia tryb pracy z dwoma liniami, dopóki górna jest ciemniejsza to znaczy że się nie udało, algorytm inicjalizacji w trybie 4-bitowym - zobacz w dokumentacji sterownika HD44780 - potrzebujesz gotowych bibliotek do czegoś tak prostego jak HD44780?.
nie napisałeś zbyt wiele... Jeśli lcd jest na HD44780, to pewnie podczas jego inicjalizacji nie wybrałeś 4-liniowego trybu sterowania, a chyba taki sposób obsługuje bascom (skoro ustawia tylko 4 bity); pozdrawiam, LUK
Witam, z tego co widze to inicjalizujesz go 8bitowo wiec nie ma mowy o zlym podlaczniu bo byly by problemy z inicjalizacja. Raczej szukaj problemu z wysylaniem znaku, masz problem z 6tym bitem, porownaj tabelke kodow ascii. Pozdrawiam
KS0066U jest kompatybilny z HD44780. Jeżeli korzystasz z opracowań które podałem to muszą one działać w 100%. Co do inicjalizacji: kiedyś miałęm z jakimiś LCD problem dla kwarców większych niż 11MHz. Wtedy sprowadziło się to do modyfikacji kodów obsługi LCD o wprowadzenie wymuszonych opóźnień (define "Szybkosc") co jednak jest bardzo nieeleganckie....
W czasie inicjalizacji należy poinformować kontroler HD44780 o tym, że jest to wyświetlacz 4-liniowy. Obecnie jest ustawiony na dwuliniowy: [syntax=c]LCD_WriteCommand(HD44780_FUNCT... | HD44780_FONT5x7 | HD44780_TWO_LINE | HD44780_4_BIT); // interfejs 4-bity, 2-linie, znak 5x7[/syntax]
Program źle napisany ale działa. Temat do zamknięcia. #define F_CPU16000000UL//16MHz zegar procesora #include <avr/io.h> #include <util/delay.h> #include <string.h> #include <stdlib.h> #include <avr\interrupt.h> /***************************************... //*Definicje makr zmieniająćych stany bitów w rejestrach*//...
A o co chodzi z ta inicjalizacją? Aby wyświetlać jakieś zanki na zwykłym LCD (HD44780) wystarczy w bascomie użyc polecenia LCD" " Czy dla DOGM tez można używac tego polecenia? Byłbym wdzięczny jakbyś mógł zamieścić kawałek probramu (w bascomie) obsługi tego wyświetlacza i schemat połączenia z procesorem. pozdrawiam Darek
Jakiś inny wsad testowałeś? Ciekawe. Zjarany by raczej trochę inaczej reagował, przynajmniej te co ja ubiłem ;) Wygląda na jakiś problem z inicjalizacją. Przez co cała reszta jest żle interpretowana przez kontroler.
Faktycznie szukaj. Po pierwsze znajdź dokumentację sterownika HD44780 i sposób jego inicjalizacji do pracy w trybie sterowania 4 bity. Tam znajdziesz również sposób przesyłu i odczytu danych w tym trybie. Wiem, że kiedyś było to bez problemu na serwerze Elektroniki Praktycznej chyba www.ep.com.pl .Potem przeglądnij choćby elektrodę i wątki z tym związane...
Witam, jestem nowy na forum i postaram sie opisać zwięźle i dokładnie. Mam pewien problem z Atmegą 16A i wyświetlaczem wc1602a0-sfylync06. Otóż było już kilka tematów związanych z tym wyświetlaczem ale mnie już sprawa przerasta. Podłączenie jest dokładnie takie samo jak na stronie radzia: [url=http://radzio.dxp.pl/hd44780/hd4478...
W inicjalizacji nie ma nic o sterowaniu linii E. W dokumentacji jest podane RS, R/W oraz Dane. O linii E nic nie jest wspomniane, więc założyłem że jej stan w trakcie inicjalizacji jest nieważny.
Witam, otóż zasilam owy wyświetlacz napięciem ±3.3V, a także stany logiczne są na tym poziomie. Pin kontrastu jest podpięty bezpośrednio do masy, kontrast wizualnie wydaje się być dobrany idealnie. I problem w tym, że pixele bardzo wolno się zapalają.(wyszło mi ok. ~300ms na pełne zaświecenie pixela) Czy jest to jest maksimum wyświetlacza, czy...
Niestety dalej nic. A czy kolejność wywoływania funkcji wyświetlacza w inicjalizacji jest prawidłowa ?
Przy inicjalizacji używa sie dłuższych czasów - patrz DS
Ponieważ LCD może być inicjalizowany w każdym momencie nawet kilkukrotnie w programie i musi być pewność, że inicjalizacja nastąpi niezależnie od tego czy w danym momencie po poprzednich inicjalizacjach jest ustawiony 4 bitowy interfejs czy 8 bitowy. Inicjalizacja jest przeprowadzona przy domniemaniu, że kontroler jest w najgorszym przypadku, czyli...
przy inicjalizacji LCD wykonaj: write_command(0x28); // interfejs 4-bity, 2-linie, znak 5x7 write_command(0x08); // wyłącz LCD, kursor i miganie write_command(0x01); // czyść LCD delay_ms(5); write_command(0x06); // bez przesuwania w prawo write_command(0x0c); // włącz LCD, bez kursora i mrugania
Już zamieniłem to, niestety nadal nic nie chcę startować. Spróbowałem zrobić sam program na uruchomienie wyświetlacza i wyświetlenia napisu. Niestety nadal widze te prostokąciki i nic poza nimi. Zaraz zamieszczę kod. Dodano po 4 Sterowanie ldc [syntax=c]#include <avr/io.h> #include <util/delay.h> #include <stdlib.h> #include <stdio.h>...
Chyba się poddam. Baud mam ustawiony na wyświetlaczu jak i w programie na 9600. Dodano po 1 soft.sc z MAX232 jest tak samo. Dodano po 1 Właśnie próbuję uruchomić ten wyświetlacz na HD44780. Ale on ma piny inne niż HD. Ten wyświetlacz to jakaś masakra.
Nie przesadzam. Po prostu nie rozumiecie moich intencji. Nie jest znana mi osoba, która podczas inicjalizacji LCD na HD44780 do generowania opóźnienia stosuje przerwania (od timera). Napiszecie, że AVR ma _delay_ms i _delay_us. No ma, ale ARMy już nie. Całą Twoją wycieczkę w moją stronę gaskoin puszczę mimo uszu.
Kompletnie nie rozumiem o co wam chodzi z tym _lcd_out(). Przeca w pierwszym poście jest cały program. Zerknąłem na datashita hd44780 to kolega Fajfer2 robi wszystko OK (chyba). Zakładam oczywiście, że linia RS wyświetlacza jest na stałe podłączona do masy. Jeżeli tak i wg markosik20 inicjalizacje też jest OK, to pozostaje jedynie problem opóźnien....
Bardzo proszę o pomoc w napisaniu procedury inicjalizującej ten DM157a w assmeblerze. Od długiego czasu walczę z tym wyświetlaczem w BASCOM, wiem o problemach tego LCD i długich czasach rekcji, ale problem polega na tym, że w BASCOM nie mogę nic zrobić z inicjalizacją LCD bo jest automatyczna dla HD44780 i źle mi startuje z tym LCD i źle działa. Tak...
Czyli jest wszystko ok. Teraz musisz napisać poprawny program sterujący. Poczytaj artykuł w czterech częściach o LCD do którego link Ci podesłałem. Jest tam dokładnie opisane jak przebiega inicjalizacja. Napiszesz procedurę według tego i zaciemnione kwadraty powinny zniknąć.
Razem z BF masz aktualny adres DDRAM. Przed odczytem statusu ustaw go na np 0x39 i jeśli czytając status przez kilka ms nie otrzymasz 0x39 przejdź do procedury przywracania interfejsu 4b opartego na opóźnieniach. Jak nie będziesz miał zsynchronizowanego interfejsu to LCD będzie wyświetlał "przypadkowe" znaki. Zapomniałem dodać że taki test statusu rób...
inicjalizacja hd44780 inicjalizacja samsung inicjalizacja pamięci
renault scenic gaśnie pralka grzałka samsung wyciek prądu
modernizacja instalacji elektrycznej lombardini silnik
Regulacja gaźnika w pilarce Oleo Mac 937 - dławienie przy dodawaniu gazu Regulacja gaźnika w pilarce Faworyt RG 5300 18