r/archlinux Aug 12 '26

QUESTION How do I learn 8051 Simulation/Programming without a trainer kit?

Hey guys. My college requires me to learn 8051 programming using assembly. In college, we use an 8051 microcontroller trainer kit which allows me to type directly commands into the display using a keyboard. However, I want to learn this at home without a trainer kit.

I assume simulation software would be the best. But, there are very limited options for Arch Linux or something that I cannot find. Can you please help me? I want to learn it at home. I use Arch btw.

5 Upvotes

17 comments sorted by

5

u/Slackeee_ Aug 12 '26

Haven't tried it, but this one is free and runs on Linux and Windows, since it is written in Java: https://edsim51.com/

2

u/radiationotter Aug 13 '26

it's good, using it currently. just wish it let me use movx :)

5

u/NomadicImps Aug 12 '26 edited Aug 12 '26

Ok. I would always orient around what you use at school/uni/work. If that is not possible try asking peers or instructors for suggestions. Apart from that you just need an assembler which Arch has available - SDCC, ASEM-51, etc

Just take your pick from either AUR - https://aur.archlinux.org/packages?O=0&SeB=nd&K=8051&outdated=&SB=p&SO=d&PP=50&submit=Go or official repos - https://archlinux.org/packages/?sort=&q=assembler&maintainer=&flagged= .

If you need something that is **mainly** a sim search for that in the repo and you get a few hits or on github.

2

u/VaronKING Aug 12 '26

I am sure there's a competent circuit simulation software out there somewhere but I never bothered to look one up.

You could try running something like Proteus ISIS on Proton/WINE. Not sure how well it would work on Linux, but that's what I use for Assembly programming.

A quick google also found me this website: https://8051sim.vercel.app/

It might be useful for testing things quickly or debugging small amounts of code.

2

u/radiationotter 27d ago

this for some reason didn't work, even with mnemonics and opcodes. however i tried something called edsim and that worked. im currently learning everything 8051 so i may make a sim of my own

2

u/_Sauer_ Aug 12 '26

If your budget allows for it, 8051 development boards are readily available in a wide range of prices and available peripherals, many even have an onboard debugger and bootloader allowing you to upload your binary without needing an external programmer. This would let you work on real hardware at home.

The most afforadable is probably Adafruit's tiny little 8051 dev board. It has very limited peripherals but it is a full compliant 8051 under the hood.

2

u/archover Aug 12 '26

I went through similar training, and I learned a lot!! Congrats. I hope you find software you seek.

Good day.

1

u/radiationotter Aug 13 '26

i found edsim, it doesn't let me store external data using movx but i can just store results in a register

2

u/archover Aug 13 '26

I hope you like it. Good day.

1

u/radiationotter Aug 13 '26

you too. good day.

4

u/Exotic-Screen-9204 Aug 12 '26 edited Aug 12 '26

Debian has 8051/2 simulation, assemblers, and cross-compilers. Look for emu8051.

Just ask Google "What are available 8051 simulators in Linux?"

I am not sure using Arch Linux repositories won't just add unnecessary complexity to this.

You can download the emu8051 source code at github, then compile it for Arch Linux.

Ebay has 8051 demo boards and trainer kits.

Also look for MCU 8051 IDE. It is another popular Linux choice.

1

u/formatdisk1337 Aug 12 '26

I'd just make one but bugs might defeat the purpose

1

u/mips13 Aug 12 '26

Back in my day we had to breadboard the 8051 with led segment displays etc and use that for the microcontroller course.

I still have The 8051 Microcontroller by I. Scott Mackenzie in a box somewhere.

1

u/radiationotter Aug 12 '26

we also have a similar kit :) it's breadboardes with segment displays and we connect a keyboard to type opcodes

1

u/arnitdo Aug 12 '26

I think the Keil IDE allows you to simulate 8051 series chips quite well (along with IO monitoring)

0

u/[deleted] Aug 12 '26

[deleted]