99 (115)

99 (115)



Mikroprocesorowa Ośla łączka M1

Mikroprocesorowa Ośla łączka M1

’C023e Wszystkie typy zmiennych na

wyświetlaczu

Din* B As Byte , W A*

Word , I As

Integer , L As Long

Din* g Aa Single , T As String *

13

B - 218 : W - 65414

: I - -30124

: L

- -1250250250

8 - -1.473725 : T -

"napisik nr

2 ! "

Cursor Off

Do

Cl*

Lcd "Bm" ; B ; " -

” ; "bajt”

'kilka "kawałków” w Jednej linii

Lowerllne : Lcd " liczby 0...255

" : Walt 2

Cl* : Lcd ”W«" ; W :

Lowerllne :

Lcd

"liczby 0...65535" : Walt 2

Cis : Lcd "I»” ; I :

Lowerllne :

Lcd

" -32768...32767" : Walt 2

Cis : Lcd "L-" ; L :

Lowerllne :

Lcd

"1. +/-2147483647" : Walt 2

Cis : Lcd "3m" ; S :

Lowerllne :

Lcd

" liczby (single)" : Walt 2

Cis : Lcd "T-” ; T :

Lowerllne :

Lcd

" teksty" : Walt 2

Loop : End

Clm

Lcd "Higajacy napis" Do

Walt 2 Display Off Walt 2 Display On Loop End


UPPERLINE 'górna (pierwsza) LOWERLINE 'druga (niższa)

Rys. 127

Din* Odczyt As Byte ,

Wskaż As Single

Odczyt “ 0

'wartość wstępna

Cis

'czyść ekran

Lcd "Temperatura"

'w górnej linii napis pozostający "na zawsze"

Do

'początek programu

Wskaż - Odczyt

'przepisz liczbę 0...255 do zmiennej Wskaż typu Single

'teraz w zmiennej Wskaż typu Single jest liczba całkowita

Wskaż ” Wskaż t 10

'dzielimy przez 10

Wskaż *■ Wskaż - 10

'odejmujemy wartość przesunięcia - możemy otrzymać liczbę ujemną

Cursor On Bllnk

'włącz kursor migający

Locate 2 , 3

'przesuń kursor do dolnej linii, ale nie na początek

Walt 1

•czekaj ls

Lcd "“" ; Wskaż

'wpisz znak równości i wartość temperatury

Walt 2

'przesada - przesadna dokładność temperatury!!!!

Locate 2 , 10

'Cofnij Kursor

Walt 1

■czekaj ls

Lcd "oC "

'skróć wpisując nowy tekst i spacje "przykrywające"

Cursor Off Hobllnk

'wyłącz kursor

Walt 2

'ciesz się widokiem przez 2 s

Odczyt - Odczyt + 13

'przykładowa następna wartość temperatury

Loop : End


HOME UPPER / LOWER / THIRD / FOURTH


zmienne tekstowe (String), jak i różne zmienne liczbowe. Zwróć uwagę na zmienne typu Integer, Lotig, mogące przyjmować wartości ujemne, a zwłaszcza na zmienną typu Single, mogąca przechowywać także ułamkowe liczby dodatnie i ujemne z bardzo szerokiego zakresu 1,5* 10'45...3,4*10'™ (w roli punktu dziesiętnego występuje tu kropka, a nie przecinek).

Ten program pokazuje również, że za jednym poleceniem LCD możemy umieścić wiele „kawałków” do wyświetlenia w jednej linii. Wystarczy je rozdzielić średnikami.

Podczas pracy można wygaszać i włączać wyświetlacz LCD poleceniem DISPLAY, jak pokazuje przykład z rysunku 126 (■C023fbas).

Często nie chcemy zaczynać napisu od początku linii. Nie musimy kombinować z pojedynczymi spacjami, jak w przykładzie poniżej LCD "    " ; Zmienna ; "Napis"

Rys. 125

Rys. 126 ani wykorzystywać polecenia SPC(n), które przynajmniej w założeniu mi wstawić n spacji:

LCD SPC(4) ; Zmienna ; "Napis" Wystarczy, że mądrze wykorzystamy kursor. Może już we wcześniejszych przykładach zauważyłeś, że za napisem pojawia się kursor - pozioma kreska. Kursor wskazuje, gdzie zostanie umieszczony ewentualny następny znak - dokładnie tak samo jest na ekranie komputera. Najpierw parę słów o kursorze. Wyświetlanie kursora można wyłączyć poleceniem CURSOR OFF (i włączyć poleceniem CURSOR ON). Kursor może też wyglądać jak migające pole - realizujemy to poleceniem CURSOR BLINK (miganie wyłączamy dyrektywą CURSOR NOBLINK). Dla nas ważniejsze jest, że kursor możemy dowolnie przesuwać po wyświetlaczu, a potem właśnie tam zaczynać pisanie. W BA-SCOM-ie do przesuwania kursora mamy kilka poleceń. Możemy przesuwać kursor w linii poleceniem

SHIFTCURSOR LEFT/RIGHT, które działa analogicznie jak wcześniej poznane SHIFTLCD, tylko przesuwa kursor, a nie tekst na wyświetlaczu.

Możemy przenosić kursor do poszczególnych linii, co realizują polecenia:

a dla modułów z większą liczbą linii:

THIRDLINE    'trzecia linia

FOURTHLINE    'czwarta linia

Mogą też przydać się polecenia HOME, przesuwające kursor na początek danej linii:

Zamiast pełnej nazwy linii można dać tylko pierwszą literę:

HOME U, HOME L, HOME T, HOME F

HOME - bez nazwy linii przesunie kursor na początek górnej (pierwszej) linii. Możesz pobawić się tymi poleceniami - znajdziesz je w pliku C023g.bas.

Zamiast omówionych rozkazów prawdopodobnie częściej będziesz wykorzystywał wygodne polecenie dowolnego przesuwania kursora z podaniem linii i pola, na które ma przeskoczyć kursor:

LOCATE Y , X

gdzie X to stała lub zmienna określającą numer pola w linii (u nas 1... 16, w innych wyświetlaczach nawet do 64), a Y to stała lub zmienna, określająca numer linii (u nas 1 lub 2, w czteroliniowych wyświetlaczach 1...4).

Już wiesz, że polecenie CLS czyści wyświetlacz. Nie musimy jednak czyścić ekranu przed każdym wysłaniem danych do wyświetlacza, co znakomicie zwiększa możliwości -przykład znajdziesz już w pliku C023g.bas. 1 właśnie polecenie LOCATE bez czyszczenia ekranu pozwala w sprytny sposób zrealizować różne „sztuczki” związane z wyświetlaniem. Prostym, ale pouczającym przykładem jest program z rysunku 127 (C023h.bas), pokazujący, że część napisu, a konkretnie tekst „Temperatura” będzie stale pozostawać na ekranie w górnej linii, a pętla Do...Loop będzie zmieniać tylko zawartość niektórych pól dolnej linii. Zwróć uwagę, jak wykorzystujemy polecenia przesuwające i wygaszające kursor. Pamiętaj o takich możliwościach, bo w przyszłości zapewne zechcesz z nich skorzystać.

linia Twoje zdziwienie mogą wzbu-linia dzić podejrzane operacje ze zmiennymi. Nie ma tu nic podejrzanego. Już teraz chcę Ci wstępnie zasygnalizować ważną sprawę związaną z typami zmiennych. Mianowicie często z jakiegoś czujnika czy przetwornika otrzymujemy wynik pomiaru, który jest jednobajtową lub dwubajtową liczbą dwójkową (w zmiennej typu By-te albo Word). Tak jest na przykład z przetwornikiem PCF8591 obecnym na naszej płytce testowej. Uzyskiwana zeń liczba 0...255 często nie odpowiada wprost mierzonej wielkości, na przykład napięcia czy temperatury, które mogą też przyjmować wartości ujemne. Może się na przykład zdarzyć, że chcemy mierzyć temperaturę w zakresie -10°C...+10°C i zastosowaliśmy przetwornik LM335 z dodatkowym wzmacniaczem operacyjnym przesuwającym napięcie o l,73V. Wtedy otrzymamy sygnał analogowy, gdzie


38 Styczeń 2004 Elektronika dla Wszystkich


Wyszukiwarka

Podobne podstrony:
98 (115) Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka •C023a Wyświetlacz LCD Cla Do Cl
2313 2 m 11 h mi Ośla łączka Elektronika dla Wszystkich Listopad 2002 39
2313 6 Ośla łączka ■ Elektronika dla Wszystkich Listopad 2002 47
assembler?86? 7 134 5. Rozkazy mikroprocesorów 8086/8088 Przykłady MOVCL, 11 ROR ZMIENNA[BP], CL
89 (141) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 programowe zerowanie liczni
97 (117) Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 Ćwiczenie 23Wyświetlacz
edw6 str46 Mikroprocesorowa Ośla łączka M1 Mikroprocesorowa Ośla łączka M1 riii«uixe
43680 Image37 (6) Mikroprocesorowa Ośla łączka Ml 191 ZmiennaTypuInteger = Funkcyjka (JakasZaiByte,
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
92 (141) Mikroprocesorowa Ośla łączka Mikroprocesorowa Ośla łączka If Flaga * 1 Then gdy llaga usta
93 (135) Mikroprocesorowa Ośla łączka segmentów a tych dwóch wyświetlaczy. Podczas odmierzania czasu
95 (133) Mikroprocesorowa Ośla łączka 95 wu na działanie poprzedniej wersji centralki? Po przeprowad
96 (126) Mikroprocesorowa Ośla łączka Config Portb = Output : Portb = 127 portB - wyjcecie; PB.7 =
Image33 (6) Mikroprocesorowa Ośla łączka Ml 187 SHIFTOUT Pdane , Pzegar Zmienna ,

więcej podobnych podstron