LABORATORIUM ELEKTRONIKI
SPRAWOZDANIE
|
||
Ćwiczenie nr 5
MIKROKONTROLER - UKŁADY STEROWANIA
|
||
Zespół II |
Grupa 201 |
Rok akademicki 2006/2007 |
Data wykonania ćwiczenia:
31.05.2007 |
Prowadzący ćwiczenie:
Dr inż. Józef Tutaj
|
Schemat funkcjonalny typowego systemu mikroprocesorowego:
Typowy system mikroprocesorowy, czy to realizowany przy użyciu mikroprocesora, czy mikrokontrolera, zawiera:
- mikroprocesor,
- pamięć programu (ROM),
- pamięć danych (RAM)
- porty wejścia/wyjścia.
1. Mikroprocesor
Mikroprocesor zawiera jednostkę arytmetyczno-logiczną, układ sterowania i określoną liczbę rejestrów pomocniczych. Steruje on pracą pozostałych układów. Wykonuje on wszystkie operacje (obliczenia) arytmetyczne i logiczne. Ponadto, podczas wykonywania instrukcji adresuje pamięć i układy wejścia/wyjścia, oraz odpowiada na zewnętrzne sygnały sterujące.
Rejestry stanowią rodzaj pamięci do chwilowego przechowywania różnego rodzaju informacji. Niektóre z rejestrów, jak np. licznik rozkazów pełnią specjalne funkcje. Inne, jak np. akumulator, mają bardziej ogólne zastosowanie.
Jednostka arytmetyczno-logiczna (ALU) służy do wykonywania obliczeń arytmetycznych i operacji logicznych. Operacje te są zwykle wykonywane na liczbach dwójkowych. Niektóre mikrokontrolery i mikroprocesory umożliwiają wykonywanie operacji także na liczbach dziesiętnych. Jednostka ALU zawiera sumator, który umożliwia dodanie zawartości dwóch rejestrów. Układ ALU zawiera również specjalne bity tzw. wskaźników, które służą do sygnalizowania określonych stanów, powstałych w wyniku wykonywania operacji arytmetycznych i logicznych. Stan tych wskaźników może być testowany programowo, a wykrycie określonego stanu wybranych wskaźników może być wykorzystane do spowodowania skoku w inne miejsce wykonywanego programu.
Układy sterujące, w oparciu o sygnał zegarowy (taktujący), generują odpowiednie sygnały sterujące pobieraniem kodu instrukcji z pamięci programu, dekodowaniem kodu operacji, oraz wysyłają do innych wewnętrznych i zewnętrznych układów sygnały niezbędne do wykonania przez CPU kolejnych operacji. Układy sterujące są również odpowiedzialne za obsługę specjalnych sygnałów zewnętrznych - np. przerwań.
2. Pamięć
Do działania mikrokontrolera niezbędny jest odpowiedni program. Pamięć programu musi się zatem znaleźć w projektowanym systemie i musi być ona gotowa do odczytu już w chwili załączania zasilania w układzie. Z tego względu pamięć programu wykonywana jest najczęściej jako pamięć nieulotna typu:
ROM - programowana maską w fazie produkcji,
PROM - programowana jednorazowo przez użytkownika,
EPROM, EEPROM - przystosowane do wielokrotnego programowania przez użytkownika.
Do przechowywania wyników wykonywanych operacji i innych danych wykorzystywanych przez mikroprocesor, konieczne jest zastosowanie pamięci RAM, której zawartość może być zarówno odczytywana, jak i modyfikowana przez mikroprocesor.
3. Porty wejścia/wyjścia
Porty wejścia/wyjścia są dla mikrokontrolera mostami łączącymi mikrokontroler ze światem zewnętrznym. Porty wejściowe umożliwiają odczytywanie informacji z takich źródeł jak przełączniki i czujniki sygnalizujące zdarzenia zewnętrzne. Porty wyjściowe wykorzystywane są do przesyłania informacji do urządzeń zewnętrznych, takich jak diody LED, przekaźniki, silniki, czy nawet inne mikrokontrolery.
Program sterujący - PRZERZUTNIK BISTABILNY
Do programu podana jest konfiguracja połączeń pomiędzy wyświetlaczem LCD umieszczonym w stanowisku mikrokontrolera AVR. Wyświetlacz LCD jest podłączony na stałe do odpowiednich portów procesora i po wgraniu każdego programu sterowania wyświetlana jest nazwa programu.
Przewody łączące DIODY LED:
PC4 → D1
PC5 → D2
Przyciśnięcie przycisku S1 powoduje zmianę stanu przerzutnika na logiczne „zero”. Zapala się jednocześnie dioda LED1 a gaśnie LED2. Przyciśnięcie przycisku S2 powoduje zmianę stanu przerzutnika na logiczną „jedynkę”, jednocześnie gaśnie dioda LED1, i zapala się dioda LED2.
W zależności od stanu przerzutnika na wyświetlaczu LCD pojawiał się napis „PRZERZUTNIK BISTABILNY” lub „STAN NIEUSTALONY”.
LISTING programu:
$regfile = "m8def.dat"
$crystal = 8000000
' Konfiguracja wyswietlacza LCD
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.3
Config Pinc.0 = Input ' switch 1 "S"
Config Pinc.1 = Input 'switch 2 "R"
Config Pinc.4 = Output 'wyjscie 1 "Q"
Config Pinc.5 = Output 'wyjscie 2 "NIE-Q"
Set Portc.0
Set Portc.1
' petla glowna
Cls
Upperline : Lcd "przerzutnik"
Lowerline : Lcd "bistabilny"
set Portc.4
Set Portc.5
Do
Waitms 25
'stan niedozwolony
If Pinc.1 = 0 And Pinc.0 = 0 Then
Set Portc.4
set Portc.5
Waitms 25
Lowerline : Lcd " NIEDOZWOLONY! "
Else
'set
If Pinc.0 = 0 Then
Set Portc.4
Reset Portc.5
Waitms 25
Lowerline : Lcd " SET! "
End If
'reset
If Pinc.1 = 0 Then
Reset Portc.4
Set Portc.5
Waitms 25
Lowerline : Lcd " RESET ... "
End If
End If
Loop
Adresy
Sterowanie
Mikro-
procesor
Pamięć
ROM
(program)
Pamięć
RAM
(dane)
Wejście /
Wyjście
Dane