Olduino sz89S52


This is a minimalistic x51 system based on AT89S51/AT89S52 MCU. It lets to upload a program from PC to RAM and then execute it. Internal flash contains bootloader only, so transitional programs are loading at 2000h offset, but all interrupts are mapped there, thus are available to use. The system is loading through COM port, usage of COM-USB dongles is also possible. The system can be used for debugging programs at hardware, and as well as multyfunctional periferal device for rare or occasional tasks. It is possible to communicate with system with externally attached devices, or through RS232 interface. As well as P0 and P2 are in use with RAM, only P1 and P3 are available for user (P3 partially because of usage of WR, RXD and TXD signals), but it is mostly enough.

System was built on the board of hard paper with insulated wires. On-board RAM can be written as external RAM (with WR), but read as command RAM only (with PSEN), this complicates software, but simplificates hardware and release one extra pin (RD) for system LED.

To create software the fasmg assembler and WinAsm Studio IDE are using. There are Linux and Windows (64 bit) loaders to upload programs to the system (with source).

It is possible to create software using C language: here is an example built with uC51 compiler by Wickenhäuser Elektrotechnik. Warning: it is not possible to use large memory model for such kind of device!

firmware (hex+asm) (8051x.inc)


To use the system it must be connected to the PC and restarted. Then loader must be started to upload binary, the COM port number for Windows loader or serial device for Linux uploader must be specified. While uploading thesystem LED lits up, and after finish starts blinking. Now the "Start" buttun must be pressed to run user program. It is possible to restart user program: to do this "Reset" button must be pressed while "Start" button is holded. Loader can be integrated with IDE for more efficient work.


Monitor is not complete application, but is mostly a template to create interactive programs. It has user "I" and "T" commands, which may be easy redefined, command set can be easy expanded also. Template contains some useful functions like output messages from internal or program memory, input string, converts 32-bit unsigned decimal and hex numbers to text and vice versa. It is possible to dump internal and program memory, modify program memory and call subroutines at desired address. Monitor supports only direct symbol exchange, input edition is possible with BACKSPACE only, also input can be aborted with "Tab" key (to not use "Esc"). Communication with Monitor can be easy established with PuTTY program: 9600, 8bit, no parity check, 1 stop bit, force CR on LF, local echo on.


AT89S51 programmer

This system can be used for simple AT89S51 flash programming. Details are inside archive.


Miscellaneus usefull and useless stuff


Frequency meter



Last modified: 2013-04-28 14:18:54 EEST