8051 Web Server Project

In 2002 I built a small 8051 web server using a Silicon Labs C8051F005 CPU and a Cirrus Logic CS8900A Ethernet controller, then described the project in an article which appeared in Circuit Cellar. A single web page was included in the 32K flash code space. The CPU has a little over 2K of RAM space, which is important because it is just enough to hold a full sized Ethernet frame plus an ARP message frame.

The 8051 serves a web page shows the air temperature sensed by a thermistor mounted on the board. It also shows the CPU voltage and CPU temperature. A radio button on the web page allows to user to turn and LED on the board on and off, thus achieving remote web-based control.

You can view a static image of the web page as served by the 8051 web server, view the Circuit Cellar article, or download the complete source code using the links at right.

The Silicon Labs C8051F005 CPU does not have a conventional 8-bit bus, so for the article I used two 8-bit I/O ports to communicate with the CS8900A. The CS8900A ran in 16-bit mode. The C8051F005 port I/O is so fast that this worked well.

Later, I later ported the code to run on an Atmel AT89C52 that has a conventional 8-bit bus. In this case, the CS8900A runs in 8-bit mode. The driver for the conventional 8-bit bus can be downloaded using the link at right.

Related Information