Emulator '51 do 64KB
Podstawowe informacje

Charakterystyka:
Emulator rodziny 8051 z wewnętrzną pamięcią ROM (Eprom, FlashEprom) czasu rzeczywistego jest dostępny w dwóch wersjach:
1. emulacja do 16KB wewnętrznej pamięci, max częstotliwość zegara 18MHz
2. emulacja do 64KB wewnętrznej pamięci, max częstotliwość zegara 24MHz
Emulator podłączamy do dowolnego komputera wyposażonego w port RS232C. Zapewniona jest izolacja galwaniczna. Do jednego portu RS232C można podłączyć maksymalnie 4 emulatory.
Emulator zabezpieczony przed odwrotną biegunowością zasilania (odwrotne włorzenie sondy emulacyjnej) i zbyt wysokim napięciem zasilającym (do około 20V).
Czas zapisu pamięci wynosi:
16kB przy 57600bd - 8 sekund (plik HEX)
64kB przy 57600bd - 16 sekund (plik BIN)
64kB przy 57600bd - 35 sekund (plik HEX)
64kB przy 345600bd - 6 sekund (plik HEX)
Zmienna prędkość transmisji 9600...345600bd.
Nieograniczona liczba cykli zapisu dzięki wykorzystaniu pamięci RAM.

W stosunku do procesora 8051 emulator różni się kilkoma cechami:
- 256 bajtow wewnętrznej pamięci ram (odpowiednik 8052).
- dodatkowy timer T2 (odpowiednik 8052).
- aktywne podciąganie wejść portu P0.
- rezystor na wejściu reset o wartości 22kohm.
- w standardzie brak możliwości podłączenia zewnętrznej pamięci programu lub danych.
Istnieje możliwość podłączenia interfejsu umożliwjającego pełną emulację portów P0 i P2, a co za tym idzie obsługę zewnętrznej pamięci danych.

Pobór prądu:
około 60mA - w trybie emulacji
do 220mA - w trybie ładowania

Emulator przyjmuje pliki binarne i Intelhex. Wydając odpowiedni rozkaz do emulatora można wyczyścić jego pamięć, czy zmienić prędkość transmisji.
Emulator akceptuje komendy:
@emu51-64 #x - gdzie x nr symulatora z zakresu 0...4. Komenda powoduje przejście z trybu emulacji do trybu ładowania. Obdawia się to świeceniem diody LOAD. Po połączeniu można wydać jedną z poniższych komend:
@:xxx...xx - Wczytanie pliku IntelHex. Pierwsze pojawienie się znaku ":" powoduje oczekiwanie na plik IntelHex. Akceptowane są rekordy o długości do 256bajtów. Wielkość znakow nie ma znaczenia, znakiem końca linii może być kod:
LF - Amiga
CR - C64, MAC, Unix
CR+LF - PC Ewentualne błędy pojawiające się podczas transmisji są sygnalizowane diodami LED.
@write - Wczytanie pliku binarnego. Ewentualne błędy są sygnalizowane diodami LED.
@clear - Czyści pamięć symulatora wypełniając wartością $FF.
@clr - jak wyżej.
@end - Rozłączenie z symulatorem. Komenda powoduje przejście z trybu LOAD do trybu symulacji. Dioda LOAD gaśnie, program w symulatorze zostaje uruchomiony jak po resecie CPU.
Pędkość transmisji ustawamy zworkami. Można ją także zmienić programowo:
@Baud 4800 - zmiana prędkości transmisji.
@Baud 9600 - zmiana prędkości transmisji.
@Baud 14400 - zmiana prędkości transmisji.
@Baud 19200 - zmiana prędkości transmisji.
@Baud 28800 - zmiana prędkości transmisji.
@Baud 38400 - zmiana prędkości transmisji (tylko dla wersji 64KB).
@Baud 57600 - zmiana prędkości transmisji.
@Baud 115200 - zmiana prędkości transmisji (tylko dla wersji 64KB).
@Baud 345600 - zmiana prędkości transmisji (tylko dla wersji 64KB).
O maksymalnej prędkości transmisji decyduje typ płyty głównej komputera.
"Cisza" na łączu RS przez 10 sekund od nadania ostatniego znaku powoduje przejście z trybu LOAD do trybu symulacji.
Szczegułowy opis rozkazow ich składnię, można znaleźć w instrukcji obsługi. Dzięki temu każdy może napisać skrypty samemu.

Do oprogramowania emulatora dodane są odpowiednie skrypty wywołujące kompilację, inicjalizujące emulator i wysyłające plik do emulatora. Oprogramowanie jest dostępne w wersji na Amigę i komputery zgodne z IBM PC. Jeśli będzie odpowiednie zainteresowanie powstanie oprogramowanie dla innych komputerów (MAC) czy systemów uruchomieniowych (np AVT-2250). Jest to możliwe dzięki uniwersalności oprogramowania emulatora. Dla wybranej platformy sprzętowej wystarczy znaleźć w Internecie asembler, a skrypty można napisać przy minimalnej znajomości systemu operacyjnego.

Trwaja prace na oprogramowaniem obslugujacym prace krokowa. Dzieki temu, ze zastosowany w emulatorze procesor ma 7 linii przerwan zewnetrznych nie musimy tracic wejsc IN0 czy IN1 na potrzeby pracy krokowej.