68 7. Porty
1. Co to są porty i jaka jest ich funkcja ?
2. Co to jest wielofunkcyjność portów ?
3. Jakie dodatkowe funkcje spełnia port P3 mikrokontrolerów rodziny '51 ?
4. Jakie rozkazy odczytują końcówkę portu, a jakie rejestr portu ?
5. Jakie jest powiązanie pomiędzy adresem portu a adresem poszczególnych znaczników portu ?
6. Na jakich rejestrów SFR można dokonywać operacji bitowych ?
7. Jakie operacje logiczne bajtowe i bitowe można wykonywać w mikrokontrolerach rodziny '51 ?
8. Jaka jest zasada przenoszenia danych bitowych pomiędzy znacznikami rejestrów i pamięci w mikrokontrolerach rodziny '51 ?
Przerwanie (interrupt) to sposób pracy procesora polegający na tym, że pod wpływem sygnału zewnętrznego lub pochodzącego z układu wewnętrznego mikrokontrolera, procesor przerywa wykonywanie bieżącego programu i przechodzi do wykonywania podprogramu związanego z sygnałem przerwania. Podprogram obsługi przerwania jest zakończony specjalnym rozkazem, który powoduje, że procesor powraca do wykonywania przerwanego programu. Aby móc kontynuować przerwany program, przed wejściem do podprogramu obsługi przerwania, procesor musi zapamiętać miejsce, w którym nastąpiło przerwanie. Odbywa się to poprzez zapisanie zawartości licznika rozkazów do buforu pamięciowego nazywanym stosem.
W zależności od typu procesora czy mikrokontrolera, w momencie przejścia procesora do obsługi przerwania, na stosie oprócz zawartości licznika rozkazów mogą być składowane automatycznie również zawartości innych rejestrów. Ale w rodzinie '51 wywołanie przerwania, albo rozkaz CALL wywołujący podprogram, powoduje , że na stosie jest chowana tylko zawartość licznika rozkazów. Zawartości pozostałych rejestrów, np. rejestru PSW, DPTR itp. lub komórek pamięci muszą być chowane programowo.
Również w zależności od typu procesora, adres (interrupt vector) od którego rozpoczyna się podprogram obsługi przerwania jest określany w różny sposób. W jednych procesorach może być stały, umieszczony pod ściśle określonym adresem pamięci programu tak jest w rodzinie '51, w innych może być określany programowo lub przez urządzenie zewnętrzne.
Tabela 8-1. Adresy obsługi przerwań w mikrokontrolerze 80C515/535.
Lp. |
znacznik |
źródło przerwania |
adres |
1 |
IEO |
przerwanie zewnętrzne INTO |
0003h |
2 |
TFO |
przerwanie od licznika TO |
OOOBh |
3 |
IE1 |
przerwanie zewnętrzne INT1 |
0013h |
4 |
TF1 |
przerwanie od licznika Tł |
OOlBh |
__ 5 |
RI+TI |
przerwanie od nad. i odb. portu szeregowego |
0023h |
6 |
TF2+EXF2 |
przerwanie od licznika T2 i wejścia T2EX |
002Bh |
7 |
1ADC |
przerwanie od przetwornika A/C |
0043h |
8 |
IEX2 |
przerwanie zewnętrzne INT2 |
004Bh |
9 |
IEX3 |
przerwanie zewnętrzne INT3, komparator CRC |
0053h |
10 |
IEX4 |
przerwanie zewnętrzne INT4, komparator CCI |
005Bh |
U |
1EX5 |
przerwanie zewnętrzne INT5, komparator CC2 |
0063h |
112 |
IEX6 |
przerwanie zewnętrzne INT6, komparator CC3 |
006Bh |