15.06.2015 Views

Ćwiczenie nr 3 Zaawansowane programowanie mikrokontrolerów

Ćwiczenie nr 3 Zaawansowane programowanie mikrokontrolerów

Ćwiczenie nr 3 Zaawansowane programowanie mikrokontrolerów

SHOW MORE
SHOW LESS

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]

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!