You are on page 1of 4

Hit roku 2000

BASCOM College
Ćwiczenie 8

Uwaga! ostatniego wykładu przedstawimy pyta− ka z łamów EdW. Fakultatywne zajęcia


Następne spotkanie w ramach BASCOM nia sprawdzające. Osoby, które wykażą będą trwać nadal, a ich podstawą będą
College będzie już spotkaniem dwuna− się znajomością BASCOM−a otrzymają mniej lub bardziej regularne artykuły re−
stym, ostatnim w ramach regularnego zapowiadane dyplomy. Zakończenie kur− dakcyjne oraz projekty nadsyłane przez
kursu. W styczniowym numerze oprócz su nie oznacza jednak, że BASCOM zni− Czytelników.

Programowanie szeregowych pamięci EEPROM


W tym miesiącu spotykamy się znowu, tym czeń, chyba znacznie ciekawszej od pierwszej. Zacznijmy od pierwszej grupy ćwiczeń,
razem w laboratorium. Do przerobienia ma− Naszym zadaniem będzie zbudowanie dwóch związanej z obsługą pamięci EEPROM.
my cała masę materiału, który możemy urządzeń testowych: cyfrowego termometru Przygotowałem dla Was trzy proste progra−
podzielić na dwie części. Pierwsza z nich to z układem DS1820 i "rdzenia" programu ob− my, które możemy wykorzystać do ćwi−
temat "na żądanie", sygnalizowany już na sługi najprostszego zamka − blokady do urzą− czeń, a także w dowolny sposób moderni−
wykładzie w ubiegłym miesiącu. W ekspre− dzeń elektronicznych z tabletkami DS1990. zować, dostosowując je do własnych po−
sowym tempie zbudujemy sobie aż trzy urzą− Jednak tym razem nie obejdzie się bez pewnej trzeb. Wszystkie programy mogą zostać
dzenia służące kompleksowej obsłudze sze− rozbudowy posiadanego przez nas hardwa− wykorzystane bez konieczności programo−
regowych pamięci EEPROM. Abstrahując re’u. Podam Wam dwie konfiguracje sprzęto− wania procesora, wyłącznie w środowisku
od wartości użytkowej urządzeń, które wy− we: minimalną i maksymalną, które umożli− emulatora sprzętowego BASCOM−a 8051
konamy, temat jest ciekawy sam w sobie. Za− wią Wam przeprowadzenie ćwiczeń: połączonego płytką testową AVT2500.
uważmy bowiem, że znaleźliśmy całkiem 1. Konfiguracja maksymalna: A zatem, zaczynamy!
nowe zastosowanie dla naszego BASCOM−a, − jedna lub kilka tabletek DALLAS
zastosowanie którego nie przewidział nawet DS1990 "Ręczne" zapisywanie
jego Twórca. Do naszego pakietu dodamy − czytnik TOUCH MEMORY danych w pamięci
bowiem nową funkcję: będzie on pracował − jeden lub kilka układów DS1820 EEPROM, pod wskazanym
jako samodzielny programator pamięci EE− 2. Konfiguracja minimalna: adresem
PROM i to bez wyposażania go w jakikol− − jeden układ DS1820 Pierwszy program, którego treść pokazana jest
wiek dodatkowy hardware. Do wszelkich Wszystkie potrzebne elementy znajdują na listingu 1 jest bardzo podobny do progra−
operacji na pamięciach EEPROM wystarczy się w ofercie handlowej AVT, a także są do− mu, który napisaliśmy podczas przerabiania
nam bowiem nasza płytka testowa, no może stępne w większości sklepów z częściami ćwiczenia z obsługi magistrali I2C. Umożliwia
po maleńkiej i odwracalnej przeróbce. elektronicznymi. Wybór zestawu części do on zapisanie dowolnej wartości (oczywiście
Wykonamy trzy ćwiczenia, będące jedno− przeprowadzenia ćwiczeń zależy tylko od z zakresu jednego bajta, czyli 0 ... 255) pod
cześnie konstruowaniem pełnosprawnych Waszych planów na przyszłość. Dysponując dowolny adres szeregowej pamięci EEPROM.
i użytecznych programatorów EEPROM: zaledwie jednym układem DS1820 będziemy Działanie tego programu zostało szczegółowo
1. "Ręczny" programator umożliwiający mogli wykonać wszystkie dzisiejsze ćwicze− opisane w komentarzach. Warto jedynie zwró−
zapisanie dowolnej wartości pod dowolny, nia z części drugiej, ale praca nie będzie na− cić uwagę, że każdy zapis poddawany jest na−
wskazany adres pamięci. leżeć do najwygodniejszych. Jeżeli zatem tychmiastowej weryfikacji. Daje to nam abso−
2. Programator automatyczny, zapełniają− mamy zamiar w przyszłości wykonać np. za− lutną pewność, że pamięć została zapisana
cy wskazany obszar pamięci danymi umie− mek elektroniczny, którego otwarcie "sposo− zgodnie z naszymi intencjami.
szczonymi w tabeli. bem" będzie absolutnie niemożliwe, to ra− Dane, które mamy zapisać w pamięci EE−
3. Kopiarkę pamięci EEPROM umożli− dziłbym zakupić czytnik TOUCH MEMORY PROM w celu ich późniejszego wykorzysta−
wiającą przeniesienie zwartości jednej pa− i co najmniej jedna tabletkę DALLAS nia przez program obsługujący procesor nie
mięci do drugiej. DS1990. Po wykonaniu ćwiczeń elementy te pochodzą zwykle z "naszej głowy", ale są wy−
Po zakończeniu "ujarzmiania" pamięci EE− posłużą Wam bowiem do budowy konkretne− nikiem mniej lub bardziej skomplikowanych
PROM przejdziemy do drugiej części ćwi− go układu użytkowego. obliczeń matematycznych, wykonywanych

Elektronika dla Wszystkich 21


BASCOM
najczęściej za pomocą arkuszy kalkulacyj− weryfikacji. Tylko że w procesie automatyczne− Kolejnym problemem, na jaki możemy na−
nych. Mozolne ręczne "wklepywanie" 255 go zapisu nic z tego nie wynika. Po prostu pro− potkać podczas wykorzystywania w naszej pra−
liczb do pamięci byłoby nie tylko czynnością gram nie wyświetli na ekranie terminala napisu cy pamięci szeregowych EEPROM, jest ko−
żmudną, ale z całą pewnością prowadzącą do potwierdzającego poprawny zapis i będzie pra− nieczność zbadania zawartości pamięci zapro−
powstania nieuchronnych pomyłek. Najwyż− cował dalej, jakby nic się nie stało. Jeżeli zatem gramowanej w wyniku działania jakiegoś pro−
szy zatem czas, aby praktycznie wykorzystać program ten ma Wam służyć do czegoś więcej, gramu lub dostarczonej przez producenta i sko−
wiadomości zdobyte na dzisiejszym wykła− niż do demonstracji możliwości pakietu BA− piowanie jej zawartości. Program realizujący
dzie i dane przeznaczone do zapisania w pa− SCOM8051, to warto go uzupełnić o bardziej czynność kopiowania danych z jednej pamięci
mięci EEPROM umieścić wstępnie w tabeli, rozbudowaną procedurę zabezpieczającą przed do drugiej jest banalnie prosty, ale w pierwszej
z której następnie będą odczytywane za pomo− zapisaniem do pamięci fałszywych danych. chwili możemy natknąć się na problemy sprzę−
cą instrukcji READ i umieszczane w pamięci. 'Listing 2 towe. Na naszej płytce testowej jest miejsce na
'Listing 1 $sim jedną pamięć szeregową EEPROM, a co z dru−
Config Sda = P3.5
Config Scl = P3.7 gą pamięcią do której lub z której będziemy ko−
$sim 'praca w symulacji
Config Sda = P3.5 'konfiguracja magistrali I2C
piować dane? Na szczęście nie ma sytuacji bez
Declare Sub Read_eeprom(adres As Byte, Test As Byte)
Config Scl = P3.7 'konfiguracja magistrali I2C Declare Sub Write_eeprom(adres As Byte, Value As Byte)
wyjścia: popatrzmy na schemat naszej płytki
Dim Adres As Byte, Value As Byte AVT2500. Mamy tam miejsce na jeszcze jeden
Declare Sub Read_eeprom(adres As Byte, Test As Byte) Dim Test As Byte
'deklaracja podprogramu Dim R As Byte
układ scalony w obudowie 8−pinowej, na zegar
odczytu pojedynczej komórki pamięci EEPROM Restore Randomdata czasu rzeczywistego typu PCF8583. Jeżeli wni−
Declare Sub Write_eeprom(adres As Byte, Value As Byte) For R = 0 To 255 kliwie przyjrzymy się schematowi, to zauważy−
'deklaracja podprogramu Read Value
zapisu do pojedynczej komórki pamięci EEPROM Call Write_eeprom R, Value my z pewnością, że rozmieszczenie pinów
Dim Adres As Byte, Value As Byte Call Read_eeprom R, Test SDA i SCL jest w tym układzie identyczne jak
'deklaracja zmiennej If Value = Test Then
określającej adres w pamięci i zapisywaną wartość Print Value; " "; Test; " OK" w typowej pamięci szeregowej EEPROM.
Dim Test As Byte 'deklaracja zmiennej pomocniczej End If Różnica polega na tym, że w układzie zegara
Next R
End mamy dostępne tylko jedno wejście adresowe:
Do
Input "Podaj adres w pamięci EEPROM ", Adres
A0 na pinie 3, a piny 1 i 2 wykorzystane są do
Sub Read_eeprom(adres As Byte, Value As Byte)
'zapytanie o adres, pod który ma być zapisana informacja I2cstart
dołączenia do układu rezonatora kwarcowego.
Input "Podaj wartość danej do zapisania ", Value I2cwbyte 160 Na płytce pin A0 jest na stałe dołączony do plu−
'zapytanie o wartość, jak ma być umieszczona I2cwbyte Adres
w podanej komórce pamięci I2cstart
sa zasilania. Co z tego wynika? A no to, że bez
Call Write_eeprom Adres, Value I2cwbyte 161 najmniejszych przeszkód możemy umieścić
'wezwanie podprogramu zapisania wskazanej I2crbyte Test, 9 drugiego EEPROM−a w podstawce przezna−
komórki pamięci podaną wartością I2cstop
Call Read_eeprom Adres, Test 'kontrolny odczyt End Sub czonej na zegar czasu rzeczywistego, a piny 1
zapisanej uprzednio wartości i 2 po prostu zewrzeć do masy za pomocą cien−
Sub Write_eeprom(adres As Byte, Value As Byte)
I2cstart kiego drucika włożonego w podstawkę razem
If Value = Test Then 'jeżeli wynik porównania
wartości podanej z odczytaną jest pomyślny, to: I2cwbyte 160 z układem scalonym. Dołączony do podstawki
I2cwbyte Adres
Print "OK" 'wyświetl na
I2cwbyte Value kwarc i kondensator nie będą w niczym prze−
ekranie terminala napis "OK."
End If 'koniec warunku
I2cstop szkadzać, w żadnym przypadku nie grozi im też
Waitms 10 uszkodzenie. Konieczne przeróbki pokazane są
Loop End Sub
'Poniższe podprogramy zostały już opisane podczas na rysunku 1, a po ich wykonaniu uzyskamy
przerabiania ćwiczeń z obsługi magistrali I2C. Randomdata:
Sub Read_eeprom(adres As Byte, Value As Byte) możliwość zainstalowania na naszej płytce dru−
Data 128 , 124 , 152 , 247 , 72 , 240 , 147 , 153 ,
I2cstart 231 , 80 , 40 , 98 , 220 , giej pamięci EEPROM, o adresach 162 i 163.
I2cwbyte 160 Data 22 , 31 , 25 , 115 , 241 , 39 , 18 , 247 , 38 , Na listingu 3 pokazana jest treść progra−
I2cwbyte Adres 127 , 95 , 121 , 85 , 234,
I2cstart Data 150 , 217 , 8 , 5 , 101 , 58 , 242 , 192 , 148 , mu, którego zadaniem jest przekopiowanie
I2cwbyte 161 99 , 93 , 135 , 54 , 216 , zawartości pamięci umieszczonej w podstaw−
I2crbyte Test, 9 Data 201 , 75 , 16 , 82 , 221 , 137 , 251 , 47 , 118 , 64 , 154,
Data 41 , 115 , 208 , 234 , 201 , 241 , 105 , 212 , ce IC2 do pamięci, która zagarnęła podstaw−
I2cstop
End Sub 136 , 113 , 199 , 165 , 135 , kę przeznaczoną zwykle na zegar RTC. Pro−
Data 22 , 20 , 51 , 24 , 210 , 58 , 97 , 39 , 42 , 254
, 196 , 20 , 93 , 111 , 5, gram jest tak prosty, że możemy pozostawić
Sub Write_eeprom(adres As Byte, Value As Byte)
I2cstart
Data 216 , 65 , 141 , 237 , 32 , 79 , 212 , 241 , 14 , go bez komentarza, a wymagający Czytelnicy
134 , 223 , 158 , 53 , mogą jedynie rozbudować go o procedury
I2cwbyte 160 Data 163 , 118 , 60 , 53 , 21 , 190 , 140 , 111 , 224
I2cwbyte Adres , 198 , 58 , 199 , 222 , sprawdzania poprawności kopiowania.
I2cwbyte Value Data 211 , 40 , 148 , 102 , 95 , 37 , 173 , 187 , 121
I2cstop
Do pierwszego programu umożliwiającego
, 134 , 120 , 114 , 207 ,
Waitms 10 Data 195 , 241 , 71 , 126 , 14 , 246 , 41 , 178 , 224 "ręczne" programowanie pamięci trudno mieć
End Sub , 35 , 197 , 14 , 118 , jakiekolwiek zastrzeżenia. Jego bardzo wolna
Data 74 , 21 , 18 , 76 , 112 , 165 , 196 , 103 , 127 ,
Ulokowanie danych w tabeli jest szczegól− 166 , 28 , 42 , 61 , 62 , praca, spowodowana opóźnieniami wnoszo−
nie łatwe w przypadku korzystania z arkusza Data 39 , 132 , 68 , 101 , 84 , 246 , 131 , 181 , 163 nymi przez emulator sprzętowy, nie powinna
, 0 , 8 , 16 , 46 , 146 ,
kalkulacyjnego. Obliczone wartości możemy Data 105 , 58 , 138 , 139 , 157 , 216 , 227 , 89 , 158 przy tym trybie pracy sprawić najmniejszych
bowiem zapisać w "czystym" pliku teksto− , 187 , 81 , 160 , 42 , kłopotów. Natomiast zarówno drugi, jak i trze−
Data 157 , 55 , 150 , 16 , 253 , 42 , 83 , 59 , 219 ,
wym i stamtąd przenieść je przez clipboard 123 , 241 , 24 , 114 , 119
ci program będą pracować w emulacji sprzęto−
do tekstu programu pisanego w MCS BASIC. Data 93 , 157 , 242 , 103 , 26 , 177 , 92 , 115 , 166 wej rozpaczliwie wolno. Przeprowadziłem
Analizy sposobu działania drugiego progra− , 29 , 91 , 86 , 82 , 201, stosowne próby i z procesorem PENTIUM III
Data 21 , 10 , 110 , 59 , 126 , 115 , 70 , 201 , 39 ,
mu, który po uruchomieniu automatycznie prze− 197 , 24 , 129, 600MHz zainstalowanym w komputerze, czas
pisze dane z tabeli do pamięci EEPROM umie− Data 201 , 39 , 197 , 24 , 129 , 46 , 47 , 215 , 191 , kopiowania pamięci wyniósł nieco ponad 1,5
240 , 166 , 204 , 243,
szczonej w podstawce na płytce testowej Data 117 , 32 , 5 , 81 , 224 , 9 , 4 , 176 , 170 , 101 minuty! Jeżeli zatem będziemy mieli zamiar
AVT2500, nie musimy chyba szczegółowo , 96 , 117 , 86 , 153, kopiować większą ilość pamięci, to może war−
Data 50 , 25 , 110 , 226 , 247 , 101 , 86 , 146 , 218
omawiać. Podobnie jak w pierwszym progra− , 227 , 72 , 172 , 238 , to by było zaprogramować procesor i użyć go
mie, dane zapisywane w pamięci poddawane są Data 1 , 100 , 174 , 194 do obsługi naszej kopiarki.

22 Elektronika dla Wszystkich


BASCOM
Powyższe przykłady nie wyczerpują, rzecz stwierdzić, czy przynajmniej proces zapisu da− jakimi układami 1WIRE aktualnie dysponu−
jasna wszystkich możliwości, jakie dają nam nych przebiegał prawidłowo. jemy. Może to być równie dobrze tabletka
operacje wykonywane na pamięciach EE− DS1990 jak i cyfrowy termometr DS1820.
PROM bezpośrednio z poziomu BASCOM'a. 1WIRE Każdy bowiem z tych układów posiada swój
Sama możliwość odczytania zawartości pa− No nareszcie, zaczynamy pracę z jedną z naj− indywidualny i niepowtarzalny numer seryj−
mięci może oddać w wielu przypadkach nieo− bardziej interesujących rodzin układów scalo− ny, który odczytywany jest w identyczny
cenione usługi. Za chwilę zajmiemy się ukła− nych, jakie kiedykolwiek zostały skonstruo− sposób. Wynika z tego jedno, ciekawe spo−
dami 1WIRE i będziemy odczytywać numery wane. Stosowanie tych układów zawsze bu− strzeżenie: każdy układ wyprodukowany
seryjne "magicznych" tabletek DALLAS, dziło, częściowo tylko uzasadnione lęki wśród przez firmę DALLAS i pracujący z magistra−
a następnie zapisywać je i odczytywać z pa− początkujących elektroników, uważających lą 1WIRE może być elektronicznym klu−
mięci EEPROM. Podczas wykonywania tych "Dallasy" za przejaw działalności sił nieczy− czem, niezależnie od pełnionych przez niego
czynności łatwo o wystąpienie błędu w opro− stych i czarnej magii. Za chwilę przekonamy zasadniczej funkcji. Oczywiście, stosowanie
gramowaniu. Mając możliwość natychmiasto− się, jak bardzo ta opinia była niesłuszna i że w tej roli układów DS1990 jest najwygo−
wego odczytania zawartości pamięci możemy będziemy w stanie "dobrać się" do wszystkich dniejsze, głównie ze względu na ich obudo−
możliwości oferowanych przez układy 1WI− wę, ułatwiającą dołączanie ich do czytników.
Rys. 1 RE za pomocą tylko trzech, prostych w obsłu− Przygotowałem dla Was krótki program,
dze poleceń języ− który może posłużyć jako baza do dalszych
Połączenie dodatkowe, wykonane
przewodem na podstawce
ka MCS BASIC.
Do wykonania
5
ćwiczeń potrzeb−
XTAL1 +P1.0 12 ne będą elementy
13
−P1.1 14
P1.2 4 3 2 1 wymienione
P1.3 15
4
XTAL2 P1.4 16
G A O O PCF8583
IC5 w pierwszej czę−
1 P1.5 17 N 0 S S ści artykułu oraz
P1.6 18
RESET D C C
P1.7 19 O I procesor typu
AT24C04
RXD/P3.0 2 89CX051. Nie−
S S I V
TXD/P3.1 3 D C N C stety, żadna
20
VCC INT0/P3.2 6 A L T C
INT1/P3.3 8
7 z operacji związa−
T0/P3.4 9 SDA 5 6 7 8 nych z obsługą
10 T1/P3.5 11
GND P3.7 magistrali 1WI−
SCL RE nie jest możli− Rys. 2
CON1/IC6
wa do przeprowa−
1 A0
8 2 dzenia w emulacji Rys. 3
2
3
A1
UCC
TST
7
6
I C sprzętowej
A2 SCL
4
GND SDA
5 i wszystkie ćwi−
czenia będziemy
IC2
AT24C04
musieli wykonać
dysponując za−
JP5 JP4 JP3 JP2
programowanym
uprzednio procesorem. Czytnik 1WIRE TO−
'Listing 3
$sim UCH MEMORY dołączmy do naszej płytki te−
Config Sda = P3.5 stowej tak, jak zostało pokazane na rysunku 4.
Config Scl = P3.7
Jeżeli nie posiadamy takiego czytnika, to mo−
Declare Sub Read_eeprom(adres As Byte, Test As Byte) żemy zastąpić go prowizorycznie dwoma od−
Declare Sub Write_eeprom(adres As Byte, Value As Byte)
Dim Adres As Byte, Value As Byte
cinkami przewodu, do których będziemy dołą−
Dim Test As Byte czać tabletki DS1990 lub termometru DS1820.
Dim R As Byte Informacje o pracy programu kierowane będą
For R = 0 To 255 na wyświetlacz alfanumeryczny LCD. Rys. 4
Call Read_eeprom R, Value: Print Value Do końca dzisiejszych
Call Write_eeprom R, Value
Next R zajęć pozostało już nie− P1.0
End wiele czasu i dlatego zdą−
żymy przerobić tylko jed−
Sub Read_eeprom(adres As Byte, Value As Byte) no ćwiczenie, ale za to GND 1WIRE
I2cstart mające zasadnicze zna−
I2cwbyte 160
I2cwbyte Adres czenie dla opanowania 1
GREEN DS1990
2
I2cstart techniki posługiwania się BIAŁY 3
BROWN
I2cwbyte 161 ŻÓŁTY 4 WHITE
I2crbyte Value, 9 układami 1WIRE. Nau− SZARY 5
YELLOW
GREY
I2cstop czymy się odczytywać
End Sub
numery seryjne tych TOUCH MEMORY

Sub Write_eeprom(adres As Byte, Value As Byte) układów, co w najbliższej


I2cstart przyszłości umożliwi 1
GREEN DS1820
I2cwbyte 162 2
BROWN
I2cwbyte Adres nam skonstruowanie kil− 3
4 WHITE
I2cwbyte Value YELLOW
ku ciekawych urządzeń. 5
GREY
I2cstop
Waitms 10 Na tym etapie nauki
End Sub jest całkowicie obojętne, TOUCH MEMORY

Elektronika dla Wszystkich 23


BASCOM
'Listing 4 Call Write_eeprom R, Number(r) 'zapisz do pamięci
doświadczeń z układami 1WIRE, a także jako Config 1wire = P1.0 'wskazanie kompilatorowi, EEPROM kolejne bajty numeru seryjnego układu
podstawa do napisanie konkretnych progra− do którego pinu dołączona jest magistrala 1WIRE Next R
Config Lcd = 16 * 1a
mów użytkowych. Chciałbym, abyście prze− Dim Number(8) As Byte For R = 1 To 8 'ośmiokrotnie:
myśleli dokładnie jego treść i zastanowili się, Dim R As Byte Call Read_eeprom R, Number(r) 'dla kontroli
Declare Sub Read_numbers odczytaj zapisany w pamięci numer
jakie bardzo, ale to bardzo ciekawe urządze− Declare Sub Write_eeprom(r As Byte, Number As Next R
nie można zbudować wykorzystując jego Byte)
Declare Sub Read_eeprom(r As Byte, Number As For R = 1 To 8
składniki i oczywiście, dodając nowe. Zada− Byte) 'ośmiokrotnie
niem tego programu jest odczytanie z przyło− Cls Cls
Cursor Off 'wyczyść ekran wyświetlacza
żonego do czytnika układu 1WIRE ośmiu
Waitms 255
bajtów jego numeru seryjnego. Tak napraw− Do 'początek pętli programowej 'zaczekaj 255ms
1wreset 'inicjalizacja magistrali 1WIRE Lcd Number(r)
dę, to numer seryjny składa się tylko z sied− If Err = 1 Then 'jeżeli żaden układ nie 'wyświetl kolejne bajty numeru seryjnego układu
miu bajtów (w tym jeden bajt identyfikujący odpowiedział na wezwanie, to: Wait 1
Cls 'wyczyść wyświetlacz
grupę układów) i jednego bajtu zawierającego Lcd "No device!" 'wyświetl stosowny komunikat 'zaczekaj 1 sekundę
Next R
sumę kontrolną, umożliwiającą zweryfikowa− Waitms 25 'zaczekaj 250 ms
End Sub
Else 'w przeciwnym wypadku:
nie poprawności odczytu. Dla ułatwienia mo− Cls
żemy jednak nazywać odczytaną z układu Call Read_numbers 'wezwij podprogram czytania
numeru seryjnego dołączonego do magistrali Sub Write_eeprom (eeprom_adres Byte, Value As
liczbę 64 bitową numerem seryjnym. Po od− układu 1WIRE Byte)
End If 'koniec warunku I2cstart
czytaniu numeru program zapisuje go w pa− I2cwbyte 160
mięci EEPROM, weryfikuje ten zapis i wy− Loop I2cwbyte R
I2cwbyte Number
świetla kolejne bajty numeru na ekranie wy− I2cstop
Sub Read_numbers
świetlacza LCD. Zastanówcie się teraz, jakie 1wwrite &H33 'żądanie podania przez Waitms 10
urządzenie możemy zbudować dodając je− odnaleziony układ jego numeru seryjnego End Sub
szcze kilka − kilkanaście linijek programu? For R = 1 To 8 'ośmiokrotnie: Sub Read_eeprom (eeprom_adres As Byte, Value
Urządzenie to może być wyjątkowo spekta− Number(r) = 1wread(): 'odczytaj z As Byte)
magistrali 1WIRE kolejne bajty numeru układu I2cstart
kularnym pokazem możliwości stosowania Next R I2cwbyte 160
układów 1WIRE, głównie tabletek DS1990. Cls I2cwbyte R
Lcd "Device found!" 'wyświetl komunikat o I2cstart
Zbigniew Raabe zgłoszeniu się układu I2cwbyte 161
e−mail: zbigniew.raabe@edw.com.pl I2crbyte Number, Nack
For R = 1 To 8 'ośmiokrotnie: End Sub

24 Elektronika dla Wszystkich

You might also like