Laboratorium Systemów wbudowanych Ćwiczenie nr 3

Transkrypt

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