Last time I needed to use the 89C51 microcontroller, the K1200 programmer had some issues. I wasn’t sure if the problem was with the programmer or the microcontroller, so I decided to make a simple 89C51 programmer myself, mainly to save money and use materials I had on hand. The circuit diagram was referenced from various online resources.
I happened to have two small microcontroller boards and one STC microcontroller.
However, there were too many pins and too many flying wires, and soldering was exhausting. The programming with the microcontroller and VC was also tiring. After some trial and error, I finally succeeded. Programming the 89C51 microcontroller is indeed quite troublesome.
Here’s the circuit diagram, hand-drawn to keep it simple:

Here’s the completed project; the soldering made me dizzy:

The pull-up resistor on the P0 port must be connected; otherwise, while reading data from the microcontroller correctly, the programming will behave strangely. The first few randomly counted bytes will be correct, but the rest will be 0xFF. No matter how I adjusted the program, it didn’t help, and I wasted a lot of time. The pull-up resistor is quite important during communication.
Later, the K1200 programmer was fixed again, so this simple programmer became an antique in storage.
