Writing | Subject
πŸ“ 🏫8048 Development System
πŸ“… 2001-08-07

Here is the schematic:

Here is the fig file

It is everything that I always wished I had when I was building the Z-80 homebrew. I designed a circuit that lets you control an 8048 microcontroller via a standard PC printer port. Other later chips don't have the single-step pin, and even if they did, they aren't as available. The 8035,8048, 8039, and 8049 can all be used with my circuit. The 8048 is in our garbage. It is in our old PC keyboards and in our junked cars. It is probably the most famous and widespread microcontroller there is. The chips for my circuit are in the garbage dumps around the world. Start scrounging, hackers. Being able to build a controller from the rubble is still a skill worth having. My circuit does not require you to burn a ROM. All it requires is a computer capable of running Linux (386DX-40 w/ 8 Megs would probably be OK. I'll build one up). I will put up a FreeDOS port of the software soon. I'm putting up the schematics and programs up early so you have time to scrounge up your own parts. The site will evolve, as will the details. I'd love to hear about where you found your 8048. Take a picture of the host that you remove it from (CD player, truck, refrigerator, whatever) and I'll put your picture on a page that chronicles our adventures sifting through the rubble. We will also create development systems for modern microcontrollers that are kin to the 8048, like the flash version of the 8051 by Atmel (89c51).

The basic idea is to use the single step pin on the 8048 to feed 1 or 2 commands in to the 8048 bus at a time. I use a flip flop and a couple of buffers to store the two commands. I read the next memory location expected off of the bus each time I pause the CPU. I also feed in the status of the ports 1 and 2. Since I'm feeding in instructions and control the memory, it is possible to monitor the accumulator and other registers without having to write special routines, yet I don't have to fork over the bucks for an emulator. OK. Here are the goodies I have for you so far:

Here is a C program that will read a binary file "mem" and start executing the program on the 8048. It will display the condition of Ports 1 and 2 and the Accumulator as it executes. It will also move the asterisk to show what instruction is executing. Here is what it looks like when it is running:

I finally soldered this up into a final project. As usual, I didn't wire wrap. I was insane and did point-to-point soldering. I used a Radio Shack 246-147 prototyping board and about 110 feet of 22 gauge solid wire. I socketed all ICs in low profile sockets. I wired the power first, then the DB-25s, then the buses, and finally the remaining signals.

I like to do point-to-point solder because it is cheaper than wire wrap, and if you do it right, it will be more permanent. Definitely get a prototyping board with a pattern of some kind. I just used a board with donuts. One with power traces would probably be nicer, but I didn't want to use a lot of space. I tested this circuit out for months on a rats nest breadboard without problems, so I wasn't too worried about wiring/noise. Be very careful when you solder this way. If you make a mistake, it will be very difficult to change things. I layered the busses so I could see what I was doing and tied them off in each layer.


#8048 #homebrew #xfig