układY sterowania za pomocą mikrokontrolera
Schemat blokowy
W stanowisku laboratoryjnym, można wyróżnić poszczególne bloki: blok mikrokontrolera, klawiaturę, wyświetlacz, blok sterowania silnikiem oraz silnik.
Na rysunku 1 przedstawiono schemat blokowy układu.
Rys. 1. Schemat blokowy układu sterowania
Schematy elektryczne poszczególnych bloków układu
Schemat elektryczny zasilacza do układu
Na rysunku 2 przedstawiono schemat elektryczny zasilacza.
Zasilacz stabilizowany dla układu dostarcza dwóch napięć: +5V do zasilania układu scalonego mikroprocesora oraz +12V do zasilania uzwojeń silnika oraz przetwornika cyfrowo-analogowego. Zasilacz został oparty na wykorzystaniu stabilizatorów scalonych 7805 oraz 7812.
Rys. 2. Schemat zasilacza stabilizowanego
Schemat elektryczny układu
Na rysunku 3 przedstawiono schemat elektryczny układu sterowania silnikiem krokowym oraz dla sterowania innymi elementami (silnikiem prądu stałego, diodami świecącymi, przetwornikiem dźwiękowym itd.). Wyróżnione na nim zostały bloki: mikroprocesora oraz układy wejścia wyjścia.
Rys. 3 Schemat głównego układu mikrokontrolera
Rys. 4. Zdjęcie płytki sterownika wraz zamontowanymi elementami
Opis zastosowanego mikroprocesora jednoukładowego ATMEL 8535
Języki programowania mikroprocesorów
Program jest to ciąg instrukcji danego procesora wykonywanych jeden po drugim w określonej przez programistę kolejności. Ciąg ten zapisany w formie symbolicznej, czyli z użyciem symbolicznych nazw instrukcji stworzony przez programistę nazywa się programem źródłowym. Ten sam program przetworzony przez kompilator do postaci kodów dla mikroprocesora nazywamy programem binarnym lub programem wykonywalnym. Ten podział spowodowany jest tym, że mikrokontrolery nie mogą wykonywać programów źródłowych, ponieważ oczekują one ciągu zer i jedynek będących kodami instrukcji. Z drugiej strony człowiek nie może poruszać się w programie binarnym, ponieważ jest on dla niego kompletnie nieczytelny. Stosowany do przetwarzania z zapisu źródłowego na postać binarną program jest kompilatorem, czyli programem tłumaczącym jedną postać na drugą. Dla uniknięcia problemów z interpretacją zapisów w programach stworzony jest specjalny język programowania. Takim językiem jest asembler (jako podstawowy i elementarny język programowania). Oprócz asemblera są stosowane inne języki programowania, wśród których duża popularnością cieszy się język C, natomiast wśród elektroników przeważa prostszy i wygodniejszy do zastosowania język BASCOM.
Asembler
Język programowania należy uważać za sformalizowany system reguł służących do opisu czynności, jakie ma wykonać program. Sformalizowanie oznacza jednoznaczne określenie składni języka i zdefiniowanie pewnego zbioru słów (w sensie wyrazów) o ściśle określonym znaczeniu.
W programie używa się symbolicznych nazw instrukcji, wskazuje się poprzez nazwy używane zmienne, miejsca w programie. Każda nazwa (nazwa instrukcji, nazwa zmiennej) występująca w programie musi być kompilatorowi nazwą znaną (przykładowo wszystkie nazwy zdefiniowane w opisie języka). Wprowadzenie przez programistę nowych nazw jest związane z jednoznacznym określeniem jej znaczenia. W pewnych sytuacjach użycie nowej nazwy musi być poprzedzone jej definicją, która informuje kompilator o jej znaczeniu (przykładem mogą być nazwy zdefiniowane dyrektywami .equ, .def ). W wielu przypadkach dopuszcza się używanie nowych nazw bez ich wcześniejszego określenia (jak nazw etykiet jako miejsc w programie), które muszą być określone w obrębie programu. Kompilator po napotkaniu końca programu źródłowego sprawdzi, czy wszystkie użyte w programie nazwy są jednoznacznie określone. Jednoznaczność oznacza, że nie może być przykładowo w programie umieszczona jakaś etykieta w dwóch różnych miejscach.
Proces kompilacji (tłumaczenia z przykładowo języka asemblera na postać akceptowaną przez mikrokontrolery) może przebiegać w różny sposób (jest kilka programów różnych producentów będących kompilatorem języka asembler). Kompilator dostarczony przez firmę ATMEL jest programem, który tłumaczy i linkuje program (linkowanie programu oznacza określenie adresów wszystkich elementów występujących w programie).
Język C oraz C++
Język C został napisany przez B. Kernighan'a i D. Ritchie'go. Początkowo język ten był przeznaczony do tworzenia oprogramowania systemowego (przy jego pomocy został napisany system operacyjny UNIX). W miarę upływu czasu stał się językiem ogólnego przeznaczenia.
Pierwsze wersje systemu UNIX były rozpowszechniane w szkołach wyższych wraz z pełnym kodem źródłowym napisanym w języku C. Dlatego język ten dość szybko stał się bardzo popularny. Aby usystematyzować korzystanie z tego języka stworzono amerykański standard tego języka - ANSI C. Był on znacznie rozszerzony w stosunku do wersji Kernighan'a i Ritchie'go. W latach osiemdziesiątych powstały kolejne roszerzenia języka C - umożliwiające programowanie obiektowe. Ich autorem był Bjarne Stroustrup. Swój język nazwał C++ - wskazując, że jest to lepsze C. Również ta wersja doczekała się w krótkim czasie oficjalnego standardu (ANSI).
Dla procesorów z rodziny Atmel dostępne są kompilatory pozwalające na pisanie programów w językach C oraz C++. Producent udostępnia również na swoich stronach internetowych swoja wersję takiego kompilatora.
BASCOM
W celu ułatwienia elektronikom pisania programów dla mikroprocesorów, którzy niekoniecznie znają asembler, lub języki C czy C++ firma MCS Electronics stworzyła szereg programów ułatwiających programowanie.
Jednym z nich jest BASCOM-AVR. Jego podstawowymi zaletami są:
Możliwość pracy na większości z popularnych systemów operacyjnych (Windows95/ Windows98/ Windows NT/ Windows 2000 oraz Windows XP)
Struktura języka przypominająca BASIC
Możliwość stosowania pętli (IF-THEN-ELSE-END IF, DO-LOOP, WHILE-WEND)
Generację szybkiego kodu maszynowego dla procesorów
Obsługę różnych typów zmiennych i możliwość stosowanie nazw do 32 znaków
Specjalne komendy do obsługi wyświetlaczy LCD, układów I2C, klawiatur w standardzie PC, klawiatur matrycowych oraz wielu innych poleceń ułatwiających programowanie.
Wbudowany symulator układu w celach testowych
Wbudowany programator ISP
Edytor z podświetlaniem składni, oraz rozbudowaną pomoc [8].
BASCOM-AVR w dużej mierze przyczynił się do rozpropagowania mikroprocesorów jednoukładowych poprzez znaczne ułatwienie ich programowania. Dzięki niemu programowanie mikroprocesorów stało się szybsze i łatwiejsze.
Do wad tego środowiska należy pogorszenie się wydajności kodu - szybkość działania procesorów jest uzależniona od optymalizacji kodu programu, a w przeciwieństwie do programowania w asemblerze, programista ma ograniczony wpływ na kod wynikowy wyprodukowany przez BASCOM.
Inną wadą z jaką należy się liczyć, jest większy rozmiar kodu wynikowego generowanego przez kompilator BASCOM w porównaniu do asemblera, czy C.[4]
Charakterystyka i struktura wewnętrzna układu AT90S8535
AT90S8535 to 8-bitowy mikrokontroler wyposażony w 8KB pamięci Flash. Układ ten jest układem CMOS o niskim poziomie poboru prądu.
Poprzez wykonywanie instrukcji o dużych możliwościach w jednym cyklu zegarowym AT90S8535 osiąga wydajność zbliżona do 1 MIPS, dzięki czemu pozwala projektować bardzo szybkie kontrolery przy niskiej konsumpcji energii.
Głównymi jego cechami są:
Kompatybilność z produktami MCS-51™
8KB wbudowanej pamięci Flash, która może być przeprogramowywana i przeładowywana
Szeregowy Interface SPI do ładowania programu
Wytrzymałość: 1,000 cyklów zapis/kasowanie
2K Bytes EEPROM - wytrzymałość: 100,000 cyklów zapis/kasowanie
Zakres działania przy zasilaniu od 2.7V do 6V
W pełni statyczna praca przy taktowaniu w granicach od 0 Hz do 12 MHz
Trzystopniowy system zabezpieczania pamięci programowej
256 x 8 bit wewnętrznej pamięci RAM
32 Programowalne Linie I/O
Trzy 16-bitowe timery/liczniki
9 źródeł przerwań
Programowalny kanał komunikacji szeregowej UART
Szeregowy Interface SPI
Trzy tryby oszczędności energii: “Low Power”, “Idle” oraz “Power Down”
Programowalny timer Watchdog.
Na schemacie z rysunku 6 przedstawiono budowę wewnętrzną mikrokontrolera AVR AT90S8535.
Wspólną cechą rodziny mikrokontrolerów AVR jest połączenie bogatego zestawu instrukcji z 32 rejestrami ogólnego zastosowania. Wszystkie 32 rejestry są połączone bezpośrednio z jednostką arytmetyczno-logiczną (ALU). Dzięki temu dwa niezależne rejestry mogą zostać użyte podczas jednej instrukcji wykonywanej w jednym cyklu zegarowym.
W wyniku zastosowania takiej architektury kod sterujący może być tak napisany, aby być bardziej efektywnym, osiągając wydajność do 10 razy lepszą niż konwencjonalne mikrokontrolery CISC.
Mikrokontroler ten może pracować w 3 różnych trybach pracy oszczędzających energię, które mogą zostać aktywowane z poziomu kodu obsługującego.
“Idle Mode” zatrzymuje CPU, podczas gdy SRAM, timery, liczniki, port SPI i system przerwań funkcjonują nieprzerwanie
W trybie pracy “Power-down” zapisywane są dane rejestrów, ale zamrażany jest oscylator i dezaktywowane są wszystkie funkcje układu aż do wystąpienia następnego przerwania, lub resetu układu.
W trybie “Power Save Mode” timer oraz oscylator działają bez zmian, pozwalając użytkownikowi korzystać z timera, podczas gdy reszta urządzenia jest „uśpiona”.
Wbudowana pamięć ISP Flash pozwala, aby pamięć z programem była przeprogramowana w czasie działania układu poprzez szeregowy interface SPI.
Rys. 6. Struktura wewnętrzna układu ATMEL 8535
Poprzez połączenie 8 bitowego procesora RISC z wbudowaną programowalną pamięcią Flash w jeden układ scalony ATM90S8535 jest wszechstronnym i tanim układem do konstruowania mikroprocesorowych aplikacji kontrolnych. AVR AT90S8535 jest wspierany przez takie narzędzia wspomagające projektowanie jak: kompilatory języka, debuggery, symulatory, emulatory oraz układy uruchomieniowe. [6]
Schemat połączeń mikroprocesora z wyświetlaczem i klawiaturą
Klawiatura
W układzie zastosowano uniwersalną klawiaturę membranową STD44-08, posiadającą połączenia klawiszy w układzie matrycy X-Y. Wygląd klawiatury przedstawiono na rysunku 7. Klawiatura została podłączona do procesora za pomocą układu przedstawionego na rysunku 8.
Rys. 7. Wygląd klawiatury
Rys. 8. Sposób podłączenia klawiatury do mikroprocesora
Dzięki takiemu połączeniu klawiszy oraz funkcji specjalnych środowiska BAS-COM jest możliwa obsługa 16-klawiszowej klawiatury za pomocą 8-miu pinów wejściowych jednego z portów procesora. W modelu zastosowano gotową klawiaturę membranową, która jest łatwa w montażu i odporna na uszkodzenia oraz zabrudzenia. W programie następuję konwersja kodu otrzymanego z funkcji systemowej na odpowiadający kod klawisza, który następnie jest używany w programie w celu określenia, który z klawiszy został naciśnięty.
Wyświetlacz
Model jest wyposażony w wyświetlacz graficzny LCD firmy WINCOM, model WC1602D1. Jest to wyświetlacz LCD z podświetleniem wewnętrznym, mogący wyświetlić 32 znaki w 2 poziomych liniach. Parametry wyświetlacza zgodnie z dokumentacją producenta zamieszczono na rysunku 9.
Rys. 9 Parametry wyświetlacza LCD
Wyświetlacz ten jest podłączony do następujących wejść portu B mikroprocesora:
Db4 - B.7, Db5 - B.6, Db6 - B.5, Db7 - B.4, E - B.2, Rs - B.3.
Jasność podświetlenia wyświetlacza jest sterowana za pomącą dzielnika napięciowego zrealizowanego na potencjometrze montażowym R2 (rysunek 3).
Przetwornik cyfrowo-analogowy sterowany za pomocą magistrali I2C TDA8444
Ogólna charakterystyka magistrali I2C
Standard ten został opracowany przez firmę Philips. Jest stosowany w urządzeniach powszechnego użytku, zwłaszcza audio-video, telekomunikacji i systemach elektroniki przemysłowej. Transmisja danych odbywa się szeregowo, w dwóch kierunkach, przy użyciu dwóch linii. Jedną z nich SCL (serial clock line) przesyła się impulsy zegarowe synchronizujące transmisję, natomiast drugą SDA (serial data line) transmituje się w dwóch kierunkach dane.
W transmisji interfejsem I2C uczestniczy układ nadrzędny (master) oraz jeden lub więcej układów podrzędnych (slave). Transmisja bloku danych jest inicjowana wówczas, gdy stan linii SDA zmieni się z wysokiego na niski, podczas gdy linia zegarowa SCL znajduje się w stanie wysokim. Sytuacja taka jest nazywana warunkiem startowym - Start. Koniec transmisji ma miejsce wtedy, gdy linia SDA zmieni stan z niskiego na wysoki, podczas gdy linia zegara jest w stanie wysokim. Jest to warunek nazywany Stop [11].
Opis układu TDA8444
Zintegrowany układ scalony TDA8444 zawiera osiem programowalnych 6-bitowych przetworników cyfrowo-analogowych. Sterowanie wyjściami przetworników odbywa się poprzez magistralę I2C. Każdy z przetworników może zostać oddzielnie zaprogramowany przez 6-bitowe słowo sterujące zawierające wartość napięcia wyjściowego. Wysokość napięcia wyjściowego jest określana za pomocą napięcia sterującego VMAX. Rozdzielczość przetwornika to 1/64 VMAX. Po włączeniu wszystkie przetworniki są ustawione na najniższą wartość (0). Na rysunku 10 przedstawiono schemat blokowy układu TDA8444. [10]
Rys.10 Schemat blokowy układu TDA8444 [10]
Opis zastosowania układu TDA8444
Układ TDA8444 został zastosowany w stanowisku w celu umożliwienia sterowania napięciowego tranzystorami wyjściowymi, które zasilają uzwojenia silnika odpowiednimi wartościami napięcia sterowania. Takie rozwiązanie umożliwiło realizację sterowania mikrokrokowego, w którym potrzebne jest stopniowe zwiększanie i zmniejszanie napięcia zasilania uzwojenia silnika.
W modelu wykorzystywane są 4 z 8 przetworników układu. Są to odpowiednio: DAC0, DAC1, DAC2 oraz DAC3. Ustawienie odpowiedniej wartości napięcia wyjściowego następuje poprzez wysłanie odpowiednio przygotowanego rozkazu pod odpowiedni adres szyny I2C. Adres układu został sprzętowo ustawiony na 64 - wartość ta może zostać zmieniona w części konfiguracyjnej programu kontrolnego.
Schemat bloku sterowania silnikiem krokowym
Poniżej przedstawiono schemat elektryczny modułu sterowania silnikiem. Składa się on z przetwornika TDA8444 komunikującego się z procesorem za pomocą magistrali I2C, czterech tranzystorów npn - po jednym na każde uzwojenie silnika oraz czterech diod zabezpieczających złącze (KE) kolektor-emiter tranzystorów przed przepięciami. Cześć układu zawierającą blok sterowanie silnika przedstawiono na rysunku 11.
Rys. 11. Blok sterowania silnikiem krokowym
Tabela wartości napięć sterujących uzyskiwanych za pomocą przetwornika
Przetwornik TDA8444 jest przetwornikiem 6-bitowym, to oznacza ze pozwala na sterowanie analogowym sygnałem wyjściowym z rozdzielczością 1/64 napięcia odniesienia. W tabeli 1 zamieszczono wartości napięć możliwe do uzyskania na uzwojeniach silnika - za stopniem tranzystorowym.
Wartość ustawienia dla przetwornika |
Napięcie wyjściowe |
Wartość ustawienia dla przetwornika |
Napięcie wyjściowe |
0 |
0 |
32 |
6,4 |
1 |
4 |
33 |
6,6 |
2 |
0,5 |
34 |
6,8 |
3 |
0,63 |
35 |
7 |
4 |
0,8 |
36 |
7,22 |
5 |
0,97 |
37 |
7,44 |
6 |
1,16 |
38 |
7,64 |
7 |
1,36 |
39 |
7,86 |
8 |
1,55 |
40 |
8 |
9 |
1,75 |
41 |
8,23 |
10 |
1,97 |
42 |
8,37 |
11 |
2,16 |
43 |
8,67 |
12 |
2,37 |
44 |
8,85 |
13 |
2,52 |
45 |
9,04 |
14 |
2,79 |
46 |
9,23 |
15 |
2,95 |
47 |
9,44 |
16 |
3,18 |
48 |
9,64 |
17 |
3,38 |
49 |
9,87 |
18 |
3,58 |
50 |
10,06 |
19 |
3,78 |
51 |
10,27 |
20 |
4 |
52 |
10,4 |
21 |
4,21 |
53 |
10,72 |
22 |
4,42 |
54 |
10,93 |
23 |
4,61 |
55 |
11,15 |
24 |
4,79 |
56 |
11,35 |
25 |
4,98 |
57 |
11,56 |
26 |
5,21 |
58 |
11,77 |
27 |
5,41 |
59 |
11,98 |
28 |
5,63 |
60 |
121,2 |
29 |
5,83 |
61 |
12,4 |
30 |
6,06 |
62 |
12,6 |
31 |
6,27 |
63 |
12,8 |
Tabela. 1. Wartości napięć uzyskanych za pomocą zastosowanego przetwornika
Dzięki takiej rozdzielczości przetwornika możliwe było zrealizowanie zmian napięcia sterującego w przebiegu podzielonego na 8 poziomów napięć. Dla celów badania układu i dopasowania najlepszego sposobu sterowania w przypadku sterowania mikrokrokowego przygotowano trzy przebiegi sterujące - sinusoidę, przebieg „trójkątny” oraz przebieg „wypełniony”.
Na rysunku 12 zamieszczono wykres pokazujący kształt wszystkich trzech rodzajów przebiegów użytych podczas badania układu.
Rys. 12. Wykres zadawanych kształtów przebiegów sterujących użytych podczas badania modelu a) sinusoidalnego, b) „trójkątnego”, c) „wypełnionego”
Parametry silnika krokowego.
Zastosowano silnik firmy Japan Servo, model KP39HM2. Na rysunku 13 przedstawiono notę katalogową producenta tego silnika, z podanymi parametrami silnika. Na rysunku 14 przedstawiono charakterystykę momentu obrotowego w zależności od częstotliwości taktowania przy stałym napięciu wymuszenia, a na rysunku 15 przy stałym prądzie zasilającym.
Rys. 13. Nota katalogowa producenta dla zastosowanego silnika [13]
Rys. 14. Charakterystyka momentu obrotowego silnika przy stałym napięciu zasilającym [13]
Rys. 15. Charakterystyka momentu obrotowego silnika przy stałym prądzie zasilającym [13]
Oprogramowanie sterownika silnika krokowego
Oprogramowanie sterownika zostało wykonane w języku programowania BASCOM. Program sterujący zapewnia obsługę wyświetlacza, klawiatury, przetwornika cyfrowo-analogowego poprzez magistrale I2C oraz diod sygnalizacyjnych. Program został opatrzony komentarzami, pozwalającymi na łatwiejsze zrozumienie poszczególnych sekwencji rozkazów.
Obsługa klawiatury i wyświetlacza
Obsługa klawiatury oraz wyświetlacza jest zrealizowana z użyciem wbudowanych komend BASCOM. Takie rozwiązanie znacznie upraszcza kod programu oraz poprawia jego czytelność.
Do obsługi wyświetlacza wykorzystane zostały komendy ConfigLcd - konfiguruje podpięty wyświetlacz, Lcd - wyświetla podany tekst lub grafikę, Upperline, Lowerline - służy do pozycjonowania kursora.
Klawiatura natomiast jest oprogramowana za pomocą następujących komend: Config Kbd - konfiguruje który z portów został przeznaczony na obsługę klawiatury, Getkbd() - odczytuje kod aktualnie wciśniętego klawisza. Dodatkowo dla ułatwienia oprogramowania obsługi klawiatury zastosowano tablicę z kodami odpowiadającymi wciśniętym klawiszom. Dzięki temu obliczanie liczb wprowadzonych za pomocą klawiatury jest bardzo łatwe.
Sterowanie uzwojeniami silnika krokowego
Sterowanie uzwojeniami odbywa się poprzez wysłanie odpowiedniej komendy używając magistrali I2C do przetwornika cyfrowo-analogowego. Po otrzymaniu takiej komendy przetwornik ustawia odpowiednio swoje wyjścia analogowe sterując czterema tranzystorami wyjściowymi. Wartości napięć przesyłane do przetwornika są wybierane zgodnie z rodzajem sterowania z tablicy zawierającej kształt przebiegu sterującego. Tranzystory wyjściowe sterują napięciem na uzwojeniach silnika, w zależności od cyklu włączając je lub wyłączając.
Kierunek obrotu wirnika jest uzyskiwany za pomocą wyboru odpowiedniej sekwencji wartości napięć na uzwojeniach silnika.
Wygląd modelu i opis rozmieszczenia elementów
Na zdjęciu przedstawiono wygląd stanowiska wraz z zaznaczonym rozmieszczeniem poszczególnych elementów.
Wygląd stanowiska
Opis elementów modelu:
Silnik krokowy
Opis parametrów silnika krokowego wraz z przykładową charakterystyką dla tej klasy silników krokowych
Klawiatura
Wyświetlacz
Włącznik układu
Przycisk resetujący układ
Schemat układu
Diody sygnalizujące załączenie tranzystorów
Diody sygnalizujące załączenie uzwojeń silnika
Złącze ISP pozwalające załadować program sterujący
Układ sterownika
Instrukcja obsługi
Instrukcja użytkownika
W celu uruchomienia układu należy włączyć urządzenie do prądu, podłączyć wyprowadzenie z portu równoległego komputera do wejścia programującego układ, następnie załadować program sterujący.
Po załadowaniu programu należy zresetować układ używając przycisku reset. Wszelkie polecenia i wartości potrzebne do działania programu wprowadzane są za pomocą klawiatury podłączonej do układu. Zmiany w działaniu silnika są dokonywane na bieżąco.
Opis funkcji klawiszy
Klawisz |
Funkcja |
|
Zmniejszenie prędkości silnika |
|
Zwiększenie prędkości silnika |
|
Zmiana kierunku obrotu silnika na prawy |
|
Zmiana kierunku obrotu silnika na lewy |
|
Zmiana sposobu sterowania silnika na pełnokrokowy |
|
Zmiana sposobu sterowania silnika na półkrokowy |
|
Zmiana sposobu sterowania silnika na mikrokrokowy z podziałem na 4 stopnie napięcia |
|
Zmiana sposobu sterowania silnika na mikrokrokowy z podziałem na 8 stopni napięcia
|
|
Zadawanie liczby kroków do wykonania |
|
Start/Stop - klawisz sterujący obracaniem się silnika |
Model dydaktyczny sterowania silnika krokowego uwzględnia wszystkie sposoby sterowania silnikiem krokowym - pełnokrokowe, półkrokowe oraz mikrokrokowe.
BIBLIOGRAFIA
Kernighan B. Ritchie D.: „Jezyk ANSI C”, Wydawnictwo naukowo - techniczne, 1998
Łastowiecki J.: „Elementy i podzespoły półprzewodnikowych układów napędowych”, Oficyna Wydawnicza Politechniki Warszawskiej Warszawa, 1999.
Potocki L.: „Silniki krokowe od podstaw”, Elektronika dla Wszystkich; 9-12/2002.
Rabbe Z.: Bascom College, Elektronika dla wszystkich, 2/2002.
Sochocki R: „Mikromaszy elektryczne”, Oficyna Wydawnicza Politechniki Warszawskiej, 1996.
Internet:
http://www.atmel.com/dyn/resources/prod_documents/1041S.PDF; „AT90S/LS8535 Summary” - Rev. 1041HS-11/01
http://www.cs.uiowa.edu/~jones/step/index.html; „Control of Stepping Motors - A Tutorial” Douglas W. Jones, THE UNIVERSITY OF IOWA Department of Computer Science
http://www.mcselec.com/
http://www.philips.com/;„TDA8444; TDA8444T; TDA8444AT Octuple 6-bit DACs with I2C-bus”; Philips Semiconductors; 1999
http://www.philips.com/; „The I2C-bus specification”; version 2.1 Philips Semiconductors; 2000
http://www.silniki.pl/; „WObit ON LINE”
http://www.japanservo.com/
Literatura uzupełniająca:
MIKROKONTROLERY
Chimiak Marek: Realizer graficzna metoda programowania mikroprocesorów. MIKOM, Warszawa
Doliński J.: Mikrokomputer jednoukładowy INTEL 8051. PLJ, Warszawa 1993.
Dyrcz. Krzysztof P., Kowalski Czesław T. , Żarczyński Zdzisław.: Podstawy techniki mikroprocesorowej. Oficyna Wydawnicza Politechniki Wrocławskiej 1999.
Fręchowicz Aleksander, Heyduk Adam. Mikrosterowniki rodziny MCS-51. Wydawnictwo Politechniki Śląskiej , Gliwice 1998.
Gałka P., Gałka P.: Podstawy programowania mikrokontrolera 8051.MIKOM, Warszawa 1995.
Grabowski J., Koślacz S.: Podstawy i praktyka programowania mikroprocesorów. WNT, Warszawa 1987.
Hadam Paweł.: Projektowanie systemów mikroprocesorowych. BTC, Warszawa 2004
Janiczek Janusz, Stępień Andrzej.: Systemy mikroprocesorowe. Laboratorium systemów mikroprocesorowych, cz.I. Wydawnictwo Elektronicznych Zakładów Naukowych, Wrocław 1995.
Janiczek Janusz, Stępień Andrzej.: Systemy mikroprocesorowe. Laboratorium systemów mikroprocesorowych, cz.II. Wydawnictwo Elektronicznych Zakładów Naukowych, Wrocław 1995.
Janiczek Janusz, Stępień Andrzej.: Systemy mikroprocesorowe. Mikrokontrolery. Wydawnictwo Centrum Kształcenia Praktycznego, Wrocław 1997.
Krysiak Arkadiusz: Mikrokontrolery rodziny AVR AT90S2313. Wrocław 2000.
Krysiak Arkadiusz: Programowanie mikrokontrolerów rodziny AVR część 1. Wrocław 2000.
Lach Mirosław. Programowanie '51. Elektronika Praktyczna, rocznik 95.
Majewski J., Kardach K.: Mikrokontrolery jednoukładowe 8051. Programowanie w języku C w przykładach. Oficyna Wydawnicza Politechniki Wrocławskiej, Wrocław 1996.
Małysiak H.: Mikrokomputery jednoukładowe serii MCS48, MCS51, MCS96. Wydawnictwo J. Skalmierski, Gliwice 1995.
Misiurkiewicz P.: Podstawy techniki mikroprocesorowej. WNT, Warszawa 1991.
Money S.A.: Mikroprocesory. Poradnik. WKŁ, Warszawa 1996.
Niederliński A.: Mikroprocesory, mikrokomputery, mikrosystemy.WSiP, Warszawa 1987.
Ohsmann M. Kurs programowania mikrosterownika 80C535. Elektronik Elektor nr 5,6,7/94
Owczarek Tomasz: Laboratorium podstaw techniki mikroprocesorowej i elementów konstrukcji systemów cyfrowych. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa 1999.
Pełka Ryszard.: Mikrokontrolery, architektura, programowanie, zastosowania. WKŁ, Warszawa 1999.
Rydzewski A.: Mikrokomputery jednoukładowe rodziny MCS-51.WNT, Warszawa 1992.
Sibigtroth James M. Zrozumieć małe mikrokontrolery. BTC, Warszawa 2003.
Starecki T.: Mikrokontrolery jednoukładowe rodziny 51. NOZOMI, Warszawa 1996.
Starecki T.: Mikrokontrolery 8051 w praktyce. BTC, Warszawa 2002.
Świder Zbigniew: Sterowniki mikroprocesorowe. Oficyna Wydawnicza Politechniki Rzeszowskiej, 1999
Wójciak A.: Mikroprocesory w układach przekształtnikowych. WNT Warszawa 1992.
Zieliński Bartłomiej: Układy mikroprocesorowe. Przykłady rozwiązań. Helion, Gliwice 2002.
19
Wyświetlacz LCD
Klawiatura
Silnik
TDA844
DAC4
DAC3
DAC2
DAC1
ATMEL
8535
I2C
E
Reg.napięcia 1
Reg.napięcia 2
Reg.napięcia
Reg. napięcia 4