Introduction

This is a self paced website for learning about Microprocessors.

We start with a simple 8 bit Microprocessor from the 1980’s. This class of Microprocessor was chosen because it has no real peripherals onboard, so complexity is minimal, in other words there is less technology to confuse the beginner. If Microprocessors were aeroplanes, this one would be a Gypsy Moth because they are easiest to learn to fly.

_images/gypsy-moth.jpg

Suitable Microprocessor candidates were the 6800, 6802, 68HC11, 8085, Z80 and 6502.

I have used the Motorola 6800, 6802 and 68HC11 in commercial projects and loved them for their orthogonal register design. Programming them in assembler was as smooth as silk.

I have also used the Intel 8085 and Zilog Z80 in commercial designs, but they are not my favorites. I have never used the 6502 in a commercial project and didn’t like them because their 8 bit Index Register required “paging” to reach the whole 16 bit address space. The 6502 were low cost however.

Note

Don’t be put of by my 6502 phobia. Atari made the most awesome vector scan arcade games with the 6502, they did things I couldn’t believe with that little chip.

The Microprocessor chosen here came down to the best simulator I could find online and the winner was … the Intel 8085.

I do not attempt to teach anything here myself, the documentation listed in the 8085 Learning Materials Page will do a far better job than I ever could, notably the Heathkit 8085 book which will be the main learning resource.

Why Not Arduino ?

I personally don’t recommend The Arduino System because it was designed for people like artists with little technical knowledge so they could use libraries and ‘sketches’ to easily assemble (like Leggo) projects such as led lighting controllers for ice sculptures.

No engineer would ever use Arduino, or recommend it to anyone wanting to learn about microprocessors. The only people recommending Arduino are Arduino users and Arduino kit and part sellers.

If you learn Arduino, you’re learning The Arduino System, you’re not learning microprocessors, even tho Arduino kits have a microprocessor in them.

Furthermore, the MEGA8 used in Arduino is ancient 8 bit technology, it was released way back in 1997!

Would your friends recommend a Stanley Steamer for your first car because it’s simple, instead of a easy to drive but complex Tesla electric car ?

Arduino uses The C Programming Language, which is widely assumed to be the superior programming language for embedded, except it isn’t. C was not designed for small embedded use.

Assembly language was designed for embedded and it will aid you in understanding microprocessors, unlike C which will just add another massive task for you on top of learning about microprocessors.

So I recommend a virtual Intel 8085 CPU and Assembly language using the Java based simulator in the url below. That way you don’t have to spend any money on hardware until you have enough experience to make an informed choice in a world of slick profit oriented advertising.

Learning Microprocessors’ a guide for using a useful Java based software, online book, and student examples. https://learning-microprocessors.sourceforge.io/

If embedded isn’t the most exciting thing you’ve ever seen or if it’s too boring, too hard, or takes too long to learn I recommend you examine your motivation for wanting to learn about microprocessors because more than likely you’re not going to be designing embedded devices in the long run. You will most likely be just be another Arduino kit sale.

If you gleefully assimilate all the 8085 info and complete a large number of examples on the simulator, then choose your micro and build projects asap, LOTS of them because that’s the fast track. My recommendation is to choose a micro that has a well developed, proven and Free Software development environment, including advanced debugging behind it, preferably Linux, not Windows only.

Finally, be aware that microprocessors such as the STM32H7xx are light years ahead of the 8085, Mega8 and STM32F0xx (Cortex-M0 my favorite), so you have a LOT of catching up to do once you have mastered the basics.

Good luck and have fun!

The author also maintains:

A Simple Microprocessor, The Intel 8085

Real Hardware Or Simulator?

What are the pros and cons of purchasing a 8085 development board for hands on learning or using a simulator on a PC instead ?

Real Hardware

While hands on real hardware is a great way to learn, there is the expense ( extreme example ;) of procuring a board, the delay waiting for your shipment and the fact that after you work thru the exercises in the Heathkit 8085-self-paced-programming book, you will probably never use it again.

The 8085 technology is ancient and no one uses it in a modern design anymore. It is simply too slow, too big, uses too much power, is too expensive to design into any project, and lacks all the modern peripherals included in every modern Microcontroller including built in debugging and Flash memory.

Simulator

Fortunately there is a very nice Java based 8085 Virtual Single Board Computer by Jubin Mitra that we can use. It is very realistic with buttons you can click with your mouse on a PC and seven segment LED displays just like the real thing. It’s free and you can download it immediately.

The simulator is similar to the actual Intel SDK-8085 Single Board Computer I owned and used in 1985 to make a commercial product.

And the Winner is

Simulator.

Next Steps

Install Jubin Mitra’s 8085 Simulator Program and use it while working thru the Heathkit 8085 book. The Heathkit book is designed to be used with the EWS-8085 trainer system which would have been similar to Jubin Mitra’s 8085 Simulator Program.

You will also need to read and refer to Jubin Mitra’s 8085 Simulator User Manual.

Now jump to the main attraction, Programming the 8085.

More Info

Have a look at the 8085 CPU Page and the Learning Materials Page.

Discussion Board

You can enter questions, tips and comments on the public discussion board.

https://sourceforge.net/p/learning-microprocessors/discussion/

A Complex Modern Microcontroller, The ARM Cortex-M

We end with the 32 bit ARM Cortex-M class Microcontroller, and this section will be added if there are enough requests by readers who have completed the 8085 section.

If Microprocessors were aeroplanes, this one would be a F22 Raptor because they are so complex and capable.

_images/f22.jpg