Jak programować w assemblerze C51?
Mikro-kontrolery jedno-układowe są właściwie wszędzie. Często nie zdajemy sobie sprawy, że znajdują się w naszych zegarkach, bateriach do laptopów, pralkach. Potężną rodziną mikro kontrolerów jest 80C51 i pochodne. Procesor jest tani, łatwo dostępny i prosty w zastosowaniu i użyciu. Jak można go programować w assemblerze?
- • Komputer PC
- • Program A51.exe
Czym właściwie jest assembler?
Assembler reprezentuje jeden z najniższych poziomów programowania mikroprocesora, wciąż czytelny i zrozumiały dla programisty, niżej jest już tylko bezpośredni kod maszynowy zrozumiały jedynie dla procesora. Działanie assemblera jest proste i jednoznaczne, odnosi się do realnych działań procesora na jego fizycznych elementach składowych. Możemy za pomocą poleceń assemblera zmieniać zawartość pamięci, wykonywać proste operacje matematyczne dodawania, odejmowania, dzielenia i mnożenia. Możemy realizować procesy porównań, przesunięć liczby oraz podstawowe operacje binarne. W mikro-kontrolerach możemy ponadto operować na fizycznych wejściach i wyjściach układu scalonego procesora sterując ich stanem. Assembler pozwala, więc nam na maksymalne wykorzystanie procesora, jego zasobów oraz na realizację różnorodnych zadań i funkcji z zakresu matematyki i elektroniki.
Od czego zacząć - mapa pamięci mikrokontrolera.
Każdy z mikro-kontrolerów posiada swoją odrębną architekturę. W skład struktury układu scalonego procesora wchodzą bloki arytmetyczne, rejestry, pamięć RAM oraz pamięć programu ROM/FLASH. Szczególnym obszarem pamięci w 80C51 jest obszar SFR odpowiedzialny za współpracę procesora z wyposażeniem na pokładzie mikro-kontrolera. To właśnie operacje na rejestrach SFR dają rezultaty w postaci widocznej aktywności kontrolera.
np.: MOV P1,#0FFh ustawi nam piny portu P1 w stan wysoki.
CLR P1.1 ustawi nam pin portu P1.1 w stan niski.
Tak prostymi środkami możemy docelowo włączyć lub wyłączyć napięcie oraz przekazać wynik operacji, obliczeń z procesora do elektroniki świata zewnętrznego poza mikro-kontrolerem.
Program możemy napisać dosłownie w notatniku lub dowolnym edytorze tekstowym.
Kompilację do pliku BIN lub HEX przeprowadzi nam program A51.exe lub podobny.
Co można dalej?
Mikrokontroler pozwala na przyjmowanie wielkości elektronicznych cyfrowych i analogowych w zakresie napięcia zasilania, ich obróbkę i wystawienie wielkości na zewnątrz za pomocą wyjść cyfrowych i analogowych. Odpowiednie interfejsy potrafią uczynić nasz elektroniczny mózg sterownikiem, urządzeniem pomiarowym, czy nawet komputerem dla inteligentnego budynku.
Do rozszerzenia możliwości mikro-kontrolera stosuje się przekaźniki, układy tranzystorowe typu Open Colektor, transoptory, układy przetworników AC i CA oraz szereg różnorodnych bloków funkcjonalnych stanowiących peryferia mikro-kontrolera.
Mikro-kontroler najczęściej pełni funkcję dostosowaną do posiadanych na pokładzie zasobów, niewielkiej ilości pamięci RAM od 128 do 256 bajtów oraz ograniczonej pamięci kodu od 4kB do 64 kB.
Większe osiągi posiadają innego rodzaju procesory, jednak dla początkującego
amatora elektroniki rodzina 80C51 i pochodne wydaje się być najłatwiejsza do uzyskania szybkich efektów.
Mam kod, plik Hex i co z tym można zrobić?
Gotowy program dedykowany dla konkretnego procesora rodziny 80C51 w pliku IntelHex musimy wprowadzić do pamięci nieulotnej procesora. W przypadku tanich procesorów ATMELA AT89Cxxx wykorzystujemy programatory równoległe. Dla procesorów AT89S52 możemy skorzystać zarówno z programatora równoległego, jak i z szeregowego SPI. Ciekawym rozwiązaniem są procesory Analog Devices, które programuje się za pomocą portu szeregowego RS-232 na przykład ADUC814 lub podobne. Jeszcze ciekawsze są procesory Silicon Labs programowane za pomocą dwu-przewodowej szyny C1.
Jak widzimy poznanie środowiska rodziny 80C51 lub 80C52 stwarza nam możliwość pracy na szeregu mikro-kontrolerów różnych producentów i to przy użyciu tego samego assemblera.
Poszczególne procesory z tej rodziny odróżnia szybkość zegara i wyposażenie odwzorowane w rejestrach SFR.
Dodaj komentarz