Äwiczenie nr 3 Zaawansowane programowanie mikrokontrolerów
Äwiczenie nr 3 Zaawansowane programowanie mikrokontrolerów
Äwiczenie nr 3 Zaawansowane programowanie mikrokontrolerów
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Laboratorium Systemów wbudowanych<br />
Wyższa Szkoła Zarządzania i Bankowości, Informatyka studia inżynierskie<br />
Ćwiczenie <strong>nr</strong> 3<br />
<strong>Zaawansowane</strong> <strong>programowanie</strong> mikrokontrolerów rodziny AVR8<br />
opracował dr inż. Wojciech Zaborowski<br />
Plan ćwiczenia:<br />
Ćwiczenie wykonywane jest z wykorzystaniem zestawu uruchomieniowego ZL15AVR<br />
firmy Kamami. Zestaw uruchomieniowy zbudowany jest w oparciu o mikrokontroler<br />
ATMEL Atmega32. Szczegółowe informacje na temat budowy zestawu można uzyskać<br />
z jego dokumentacji (http://www.kamami.pl/dl/zl15avr.pdf). Do programowania<br />
mikrokontrolera wykorzystany zostanie pakiet oprogramowania AVR Studio 4 wraz<br />
z pakietem WinAVR. Połączenie tych dwóch pakietów pozwala w prosty sposób<br />
programować mikrokontrolery rodziny AVR z poziomu języka C z wykorzystaniem<br />
graficznego interfejsu użytkownika.<br />
Zestaw jest zasilany z portu USB komputera. Dodatkowo do programowania<br />
mikrokontrolera wykorzystuje się dedykowany programator z interfejsem JTAG<br />
(ZL15PRG) podłączony do drugiego portu USB.<br />
1 Przetwornik analogowo-cyfrowy mikrokontrolera ATmega32<br />
Przeanalizować i uruchomić przykładowy projekt znajdujący się w archiwum adc.zip.<br />
Uwaga – nie należy demontować połączeń pozwalających na wykorzystanie<br />
wyświetlacza LCD.<br />
Projekt wykorzystuje potencjometr P2 do zadawania wartości napięcia z zakresu 0-5V<br />
podawanego na kanał ADC0 przetwornika znajdującego się we wnętrzu<br />
mikrokontrolera ATmega32. Dodatkowo, wykorzystany zostanie wyświetlacz LCD do<br />
prezentacji wyniku przetwarzania.<br />
Po uruchomieniu przykładowego projektu, wynik przetwarzania przesyłany jest<br />
wyłącznie do komputera PC poprzez łącze RS232. Należy pamiętać o uruchomieniu i<br />
właściwym skonfigurowaniu programu terminala (Hyper Terminal).<br />
Zadanie 1.1<br />
Zmodyfikować program mikrokontrolera w taki sposób, aby wynik przetwarzania<br />
prezentowany był na wyświetlaczu LCD w postaci liczby całkowitej z zakresu 0-1023.<br />
Zadanie 2.2<br />
Wyznaczenie charakterystyki przetwornika<br />
Zadanie 2.3<br />
W dotychczasowych programach wynik przetwarzania napięcia wejściowego jest<br />
prezentowany jako liczba całkowita z przedziału 0-1023. Należy zmodyfikować sposób<br />
prezentacji wyniku w tak, aby na wyświetlaczu pojawiła się wartość zmierzonego<br />
Wersja z dnia 2010-11-10 08:36<br />
1
napięcia podana w woltach. Wartości napięcia 0V odpowiada wartość 0 uzyskanej z<br />
przetwornika, natomiast napięciu 5V odpowiada wartość 1023.<br />
Wskazówka:<br />
Do konwersji liczby zmiennoprzecinkowej (typu double) na ciąg znaków można<br />
wykorzystać funkcję:<br />
char* dtostrf(double __val, signed char __width, unsigned char __prec, char * __s)<br />
znajdującą się w bibliotece stdlib (pamiętać o dołączeniu odpowiedniego pliku<br />
nagłówkowego)<br />
Więcej szczegółów na temat funkcji dtostrf można znaleźć w avr-libc-user-manual.<br />
2 Cyfrowy pomiar temperatury<br />
Na płycie ZL15AVR dostępny jest układ cyfrowego termometru TC77 (U7) firmy<br />
Microchip, komunikującego się z mikrokontrolerem poprzez interfejs SPI. Przykładowy<br />
projekt odczytujący temperaturę z sensora TC77 przez magistralę SPI i przesyłający ją<br />
do komputera PC przez RS232 znajduje się w archiwum temp.rar.<br />
Zadanie 1<br />
Analizując przykładowy projekt zaproponować modyfikacje umożliwiające<br />
wyświetlanie odczytywanych danych o temperaturze na ekranie wyświetlacza LCD.<br />
Zadanie 2<br />
Zaproponować modyfikacje programu w taki sposób aby pomiar temperatury by odczyt<br />
temperatury wykonywany był co 10 sekund, a na wyświetlaczu prezentowana byłaby<br />
temperatura chwilowa, oraz średnia temperatura z ostatnich 2 minut.<br />
3 Literatura<br />
[1] Microchip Technology Inc.: TC77 Thermal sensor with SPI interface. 2002.<br />
http://ww1.microchip.com/downloads/en/DeviceDoc/20092a.pdf<br />
[2]