98 (115)

98 (115)



Mikroprocesorowa Ośla łączka

Mikroprocesorowa Ośla łączka

•C023a Wyświetlacz LCD

Cla

Do

'Cla 'zaremowane polecenie Lcd "Pierwszy napis"

Walt 2

'Cis 'zaremowane polecenie Lcd "Drugi napis"

Walt 2

Loop

End


■CQ23b zmiana napisów

Portd = 3    '=£B0000011

Do

If Pind.O = O Then Cis

Lcd "pierwszy napis"

End If

If Pind.1=0 Then Cis

Lcd "Drugi napis"

End If

Loop

End


Rys. 122 Rys. 123

'C023c.bas "Kołysanie" długiego napisu

Dim A As Byt e

•licznik dla pętli FOR...NEXT

Cis

'czyść ekran

Lcd "Elektronika

dla Wszystkich” 'wyślij napis

Do

'pętla

For A = 1 To 12

'przesuń napis

Waitms 400

'co 400ms

Shiftlcd Left

'w lewo o 12 miejsc

Hext

Walt 1

■czekaj ls

For A “ 1 To 12

'przesuń napis

Waitms 400

'co 400ms

Shiftlcd Right

'w prawo o 12 miejsc

Kext

Wait 1

'czekaj ls

Loop

'i znów od początku...

End

Rys. 124


(bus-mode). My pracujemy w 4-bitowym trybie pin modę, dlatego interesuje nas tylko przyporządkowanie linii sterujących i typ wyświetlacza. Dlatego prawie wszystko pozostawisz bez zmian, tylko w zaznaczonym na czerwono okienku powinieneś wybrać typ użytego wyświetlacza i kliknąć przycisk Default. Zapewne wykorzystasz wyświetlacz 16*2. Ale jeśli posiadasz inny moduł, możesz go śmiało wykorzystać - powinieneś odpowiednio zmienić typ w zaznaczonym okienku i rozumnie zmodyfikować niektóre programy. Żadne inne ingerencje nie powinny być potrzebne, ponieważ przy projektowaniu płytki testowej starałem się uwzględnić domyślne ustawienia BASCOM-a - porównaj schemat płytki drukowanej w EdW 12/2002 str. 14 rys 1.

Zwróć jeszcze uwagę na jumper J3. Wcześniej jego stan był obojętny. Teraz, zgodnie z rysunkiem 120 i schematem płytki testowej, muszą być zwarte jego szpilki 2-3, czyli wejście EN wyświetlacza (n. 6) musi być dołączone do końcówki PB.3 (n. 15) procesora. Fotografia wstępna pokazuje płytkę testową z wyświetlaczem 16x2 i wyróżnionymi elementami, które trzeba odpowiednio ustawić.

A teraz napisz swój pierwszy program wykorzystujący wyświetlacz LCD. Program składa się z jednej linijki:

LCD „BASCOM AVR w EdW"

Możesz wpisać dowolny napis, byleby nie za długi. Po skompilowaniu i „spuszczeniu” do procesora powinieneś zobaczyć tekst na wyświetlaczu. Prawdopodobnie jednak na wyświetlaczu pojawią się też jakieś śmieci. Przyczyną jest to, że nie przeprowadziliśmy procedury zerowania i czyszczenia wyświetlacza. Zapamiętaj, że przy korzystaniu z wyświetlacza LCD zawsze na początek trzeba przeprowadzić taką procedurę. Realizujemy

Rys. 121 ją znanym z innych programów poleceniem CLS (elear screen - czyść ekran). Twój pierwszy program dla wyświetlacza LCD powinien więc zawierać dwa rozkazy:

CLS

LCD „BASCOM AVR w EdW"

A teraz kolejny prościutki przykład z rysunku 121 (C023a.bas). Zgodnie z treścią programu, napis na wyświetlaczu powinien zmieniać się co 2 sekundy, ale ponieważ w wersji oryginalnej „zaremowane” są polecenia czyszczenia ekranu, zawartość wyświetlacza będzie dziwna. Usuń apostrofy i sprawdź działanie z poleceniami każdorazowego czyszczenia ekranu przed wyświetleniem napisu.

A teraz nieco zmodyfikuj program według rysunku 122 (C023b.bas). Aby działały przyciski S1, S2 musisz podciągnąć pływające (domyślnie) wejścia PD.O i PD.l, stąd wpisanie stanu wysokiego do najmłodszych bitów rejestru PORTD. Ponieważ po starcie programu nie przewidziano procedury CLS, przed naciśnięciem przycisku zawartość wyświetlacza jest nieokreślona - zapewne i u Ciebie na wyświetlaczu pojawią się jakieś śmieci.

A teraz powalczmy z dłuuugimi napisami. Próba wpisania:

CLS

LCD „Elektronika dla Wszystkich"

spowoduje, że część napisu zostanie obcięta, a dolna linijka pozostanie pusta - napis nie zostaje przeniesiony automatycznie do niższych linii wyświetlacza. „Ruchomy” program z rysunku 123 (C023c.bas), wykorzystujący polecenie przesuwania SHIFTLCD, wskazuje jednak, że cały napis jest zapamiętany. W pliku C023c.bas znajdziesz też zaremowane dwa pokrewne prostsze programiki, przesuwające długi napis.

Wykorzystaj program z rysunku 124 (C023d.bas), gdzie masz kilka ciągów znaków. Napis zawierający w sumie 38 znaków niejako krąży, choć może to się odbywać w dziwny sposób. U mnie występują dwa puste pola, co wskazuje, że mamy do czynienia z cyklem 40-znakowym (w niektórych wyświetlaczach może wystąpić cykl 80-znako-wy). W programie masz też dodatkowe ciągi znaków do wyświetlenia. Jeden z nich ma dokładnie 80 znaków, drugi (zaremowany) 100 znaków. Możesz przeprowadzić próby zmniejszania i zwiększania liczby znaków do wyświetlenia i sprawdzać, które 40 z nich zostanie wyświetlone i jak. Zależności są tu dość zaskakujące. Nie musisz wgłębiać się we wszystkie szczegóły, zapamiętaj tylko, że teksty do wyświetlenia nie powinny zawierać więcej niż 40 znaków w jednej linii.

Gdy poznasz opisane dalej polecenia we własnym zakresie, możesz też sprawdzić, jak to wygląda dla dolnej linii - przekonasz się, że moduł LCD zawiera pamięć (RAM) do przechowywania w sumie 80 kodów do wyświetlenia.

Teraz przekonaj się, że można wyświetlić nie tylko teksty (zawarte w programie, w pamięci FLASH), ale też zawartość zmiennych. Pokazuje to prosty program z rysunku 125 (C023e.bas), gdzie wykorzystujemy zarówno

ci*

'Lcd "Nasza Elektronika dla Wszystkich - AVT"    ‘razem 38 znaków

•Lcd "00300600901201501602102402703003303603904204504805105405706006306606907207507608"    'tu jest razem 80 znaków

1Lcd "00300600901201501802102402703003303 60390420450480510540570600630660690720750780810840870900930960990"    •lOOznaków

'Lcd "0123456789"

'Lcd "ABCDEFGHIJKLMNOPQRSTUWXYZ" tu trzy linie stanowią całość - napis w dwóch linijkach 'Lowerline

'Lcd "abcdefghijklmnopqrstuwxyz"

Do

Waitas 300 Shiftlcd Left Loop : End

Elektronika dla Wszystkich Styczeń 2004 37


Wyszukiwarka

Podobne podstrony:
99 (115) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 ’C023e Wszystkie typy zmi
assembler?86? 9 98 5. Rozkazy mikroprocesorów 8086/8088 Pojęcie rozpakowanego i normalnego kodu BC
Technika mikroprocesorowa 12.1. Przykład zapisu kodu znaku „ c ” do pamięci CGRAM sterownika
assembler?86? 7 54 4. Język asemblerowy mikroprocesorów 8086/8088 kowych informacji czy skoki do (
assembler?86? 3 86 5. Rozkazy mikroprocesorów 8086/8088 LES - załadowanie adresu logicznego do wsk
IMG80 (4) 98 Janina Uszyńska-Jarmoc Jung). Po drugie, uwzględniając zmiany cykliczne może nawiązywa
skanowanie0023 98 pars animi» (10) okazuje się w nich. Możliwe, że skłoniły go one do większej stara
87 (115) MIOLOGIA 83 Ryc. 46. Mięsień podłopatkowy (m. subscapularis) Aby uzyskać dostęp do tego mię
53 (32) 98 W sytuacji, gdy ortodroma jest tak ułożona, ża nie można bez-pośrednio do niaj poprowadzi
115(2) Kontrola aktualnych wartości ciśnień w ogumieniu kół jezdnych Wyświetlą się aktualne wartości
freakpp050 98 Wykładnik potęgowy q jest ujemny, a jego bezwzględna wartość jest stosunkiem długości
43680 Image37 (6) Mikroprocesorowa Ośla łączka Ml 191 ZmiennaTypuInteger = Funkcyjka (JakasZaiByte,
89 (141) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 programowe zerowanie liczni
90 (145) Mikroprocesorowa Ośla łączka R14 R13
91 (142) Mikroprocesorowa Ośla łączka Ml Reset Watchdog I to sq wszystkie kluczowe informacje, umożl

więcej podobnych podstron