The 8051 ... why?

Thread Starter

BillO

Joined Nov 24, 2008
999
I know the 8051. I have used it, and liked it, and cut my MCU teeth on it. I just don't know why it is still so prevalent today. Especially in education.

It certainly is a venerable chip. No doubt about that. But, for Pete's sake, I was a very young man when it came out 30 years ago! Why on earth are such a huge number of institutions still basing embedded training on such a old design? Surely there a better and more pertinent choices today. No?

Is it because it was the first? Using logic like that we should still be using tubes for amplifier courses and relays for logic.

Am I wrong? Is it not time that we put the 8051 to bed?
 
Its a good processor and fairly easy to learn.

It has numerous modern types so is still very relevant.

I worked for PIC consulatancy for 13 yars so know the PIC's well but would recommend the 8051 before the PICs for a newcomer.
 

shubham161

Joined Jul 22, 2012
47
Nah, in my institute they even teach 8085 microprocessor. If you think 8051 is outdated then what would you say about 8085 microprocessor. Maybe it's to build the basics.
 

WBahn

Joined Mar 31, 2012
29,976
I would say that there are a number of factors:

1) It is a simple and relatively easy architecture to understand, so a newbie can get their mind wrapped around it pretty handily (I would say the same thing for the simpler PICs and some other MCUs, too).

2) It is still very much in use today, as a softcore in FPGAs and ASICs if nothing else. Hence there is plenty of utility for knowing how to work with it.

3) Along the lines of #2, there are lots of products out there that use some flavor of an 8051 derivative, and so learning the 8051 makes working with those products a pretty tame learning experience.

4) There are lots of tools available that are free or low cost and that have evolved to get most of the bugs out.

5) Inertia. Instructors are like anyone else and they tend to want to stick with what they are familiar with.
 

ErnieM

Joined Apr 24, 2011
8,377
And don't forget...

6) Return on Investment. A professor needs to spend considerable time writing and verifying course material and possibly textbooks. The need to update this material to the latest and greatest device in a timely manor is in direct conflict with the professors self interest.
 

WBahn

Joined Mar 31, 2012
29,976
And don't forget...

6) Return on Investment.

Great point. It should be noted that, related to that, making such a change can be a negative for the students taking the course during the transition as they miss out on a well-developed and debugged course and have to suffer through newly developed material. Having said that, there are also great, albeit usually unintended, learning opportunities under those conditions. The decision on when to upgrade a curriculum is not an easy one.

It also has to be noted that the goal, especially of an engineering education, is to impart fundamental knowledge and skills and not simply teach how to use the latest whiz-bang gadget, because what that gadget is will change frequently over the engineer's career. Some of my best education in electronics was in the physics department where, in the lab courses, we had to work with equipment that was 50+ years old and was cranky and finicky.
 

takao21203

Joined Apr 28, 2012
3,702
Fundamental knowledge eh?

One great moment I remember was during physics.
The teacher elaborated about a ping-pong ball thrown towards the blackboard.
Forces, elasticity modulus and all the like.

Then he'd throw in statements like from the viewpoint of physics, it would make no difference if the ball is thrown towards the blackboard (and is moving), or if the ball does not actually move, but the blackboard would move towards the ball.

The same good you could consider LEDs actually don't emit light. They contain special crystals that suck out photons whenever there is a viewer (or a viewing device). An all-through backwards universe!

He was revolutionary I think.

We had 8085 as well (assembler), totally clunky racks, as powerful as one single PIC chip. You'd have to use a monitor program to access the disk drive. Never to be used again after college (not that I wanted to anyway). The only time when I really learned assembler was when I did read the Intel programmer's reference, because I was actually working at a larger program. I did not find it difficult neither it took me long time. So all the efforts in college = waste of time.

If you have to program something, and you have programming related skills, you get along with the matter relatively quick. Otherwise you would not be a programmer! If I compare the amount of datasheets (some 100K pages), and learning pace during college, it would take centuries even to get started.

Sometimes I can't get rid of the idea they treat people as idiots.

8051 is not too bad I think, especially if you started with it. SD card readers are often based on 8051 cores! It is in no way true all the embedded world would be PIC dominated.

If you use C and not assembler, it does not really make a big difference what chip you use. You get a certain amount of MIPS and computing capabilities, and you pay a price for each chip, and that is often the consideration.
 

MrChips

Joined Oct 2, 2009
30,706
I understand you had some bad experiences in school. Too bad.

My job is to give students a solid foundation in fundamental principles.

For many years, we taught machine language programming by having students hand assemble machine code and then enter the binary code into the computer's memory via front panel toggle switches on a DG NOVA 2 computer.

IMO, this is the best introduction our students received on computer technology.

Here is a Nova 1210, a predecessor to the Nova 2:

 
Last edited:

lightingman

Joined Apr 19, 2007
374
These old devices are still used in education mainly because of the expence of upgrading and the fact that the teaching staff know them. It is about time that the old TTL and other obsolete devices were taken out of education before we send engineers out into the field who cannot relate to the newer technology.
 

takao21203

Joined Apr 28, 2012
3,702
These old devices are still used in education mainly because of the expence of upgrading and the fact that the teaching staff know them. It is about time that the old TTL and other obsolete devices were taken out of education before we send engineers out into the field who cannot relate to the newer technology.
Oh my. I learned javascript only by using website tutorials.

It's kinda spending 1/2 year on the history of C language and after that, as a preparation to understand javascript better, write programs for a BCPL compiler.

That is not as easy as javascript, but it is possible to compile the supplied examples, yes.

Entering machine code as binary? Is this really still used in education?

I have come up with the term degrading education. Which actually will hold back your capabilities, and actually will make it more difficult for you to learn things.

But I am happy that I have done away with any ambitions to tinker with 1980s 8-bit technology such as SEGA. I have even disposed my 2 SEGA machines.

And I was thinking these are museum level already. 16K RAM, color tiles graphics chip, 3-channel tone generator, control pads etc., all together having a Z80 bus (plus Z80 CPU as well).

I wonder why these never have been used in education! As they were rather inexpensive, and quite capable to hook up to a television, output text/graphics, and play around with z80 CPU.

But I understand it has to be something 10x expensive, 10 or 20 years older, and documentation = individual photocopied handouts, on a step-by-step basis.

Giving students something like a Intel programmer reference would be too much demanded. Even if these were available from Intel as books for free! At least some years ago. But I think in general, none of the big Corporations support this kind of developement anymore. Are I am wrong? I have downloaded most of the AMD programmers manual.

If really assembler has to be used in education, would not MASM32 be something more appreciate?

But in general, I already have my individual opinion about the education system.
 

WBahn

Joined Mar 31, 2012
29,976
When I was teaching C to freshman/softmore engineering students (which, for most of them, was their first programming experience), I sometimes started off with a hypothetical processor that only supported about a half dozen commands and that you had to hand assemble and execute with a memory map on a piece of paper (although I did develop a little emulator to do examples in class). The students hated it and saw absolutely no point in it. Yet, in every section in which I used it, the students had significantly fewer problems with functions, arrays, recursion, structures, dynamic memory allocation, linked lists, and string manipulation than the sections in which I didn't. Could it possibly be that when people have a decent grasp of how things are done at a low level, that they are better able to comprehend and work with how they are done at a higher level?
 

MrChips

Joined Oct 2, 2009
30,706
These old devices are still used in education mainly because of the expence of upgrading and the fact that the teaching staff know them. It is about time that the old TTL and other obsolete devices were taken out of education before we send engineers out into the field who cannot relate to the newer technology.
Maybe so. But WBahn and I teach this stuff so we see first hand that budding engineers are eager to learn yet lack the fundamentals to allow them to understand it properly.
 

takao21203

Joined Apr 28, 2012
3,702
When I was teaching C to freshman/softmore engineering students (which, for most of them, was their first programming experience), I sometimes started off with a hypothetical processor that only supported about a half dozen commands and that you had to hand assemble and execute with a memory map on a piece of paper (although I did develop a little emulator to do examples in class). The students hated it and saw absolutely no point in it. Yet, in every section in which I used it, the students had significantly fewer problems with functions, arrays, recursion, structures, dynamic memory allocation, linked lists, and string manipulation than the sections in which I didn't. Could it possibly be that when people have a decent grasp of how things are done at a low level, that they are better able to comprehend and work with how they are done at a higher level?
I have written many programs for 16F5X (baseline PICs).

Yes there is some truth to that- if a simple device is mastered, it will be easier to use more complex devices.
 

ErnieM

Joined Apr 24, 2011
8,377
When I was teaching C to freshman/softmore engineering students (which, for most of them, was their first programming experience), I sometimes started off with a hypothetical processor that only supported about a half dozen commands and that you had to hand assemble and execute with a memory map on a piece of paper (although I did develop a little emulator to do examples in class). The students hated it and saw absolutely no point in it. Yet, in every section in which I used it, the students had significantly fewer problems with functions, arrays, recursion, structures, dynamic memory allocation, linked lists, and string manipulation than the sections in which I didn't. Could it possibly be that when people have a decent grasp of how things are done at a low level, that they are better able to comprehend and work with how they are done at a higher level?
I could see that. One gets to grasp the simple trivial things a computer is actually able to do. (Aside: when I built my first computer with all of 256 bytes of RAM someone asked me "does it also know who all the Presidents are?") If you can grasp complex operations are made up of many simple steps then you have half the battle won.

Very few people who have yet to learn how to walk are able to run.
 

Thread Starter

BillO

Joined Nov 24, 2008
999
Great responses and a great debate.

I fully understand the benefits of teaching and learning the basics. However, 30 years is enough time to have updated the texts and technology. You can still teach the basics on the newer chips, whichever route you take.

I know the 8051 is still in use, along with the z80, 6502 and even the 4004, and there are reasons to do that. To take advantage of existing code. Code development being the most expensive part of most marketable projects. I just think that new learning and new coding should be done on newer devices.

There is still places for 'old' technology. Tubes, for instance. They have one of the lowest propagation delays of any technology. But let's face it, the 8051 is simply out gunned by today's chips.

Besides, it would save me from having to crack open delicate 30 year old memories and books to answer all the 8051 questions:p

Wasn't the first big application for the 8051 the IBM PC keyboard?
 

@android

Joined Dec 15, 2011
178
Using 8051 is old school, but old school students have developed infinite codes[legacy code reuse: a great advantage], vast amount of development tools, industry standard instruction set etc.

I have worked with 8051. It was the one who gave me an insight of what a micro-controller is? Simple architecture but still at par to latest controllers. Easy learning.

No matter where you start, eventually you will have to move to advanced machines. It's obvious that if the start is as good as '8051' you'll always wish to learn more & more [8051->PIC->AVR->ARM] Never forget in this very dynamic field everything is old on the second day of it's introduction.

What to keep is not quite easily answerable! Everything depends on where you live? What kinda education system is there? And last & the most important who is the teacher?
 

mkbutan

Joined Sep 30, 2008
299
I know the 8051. I have used it, and liked it, and cut my MCU teeth on it. I just don't know why it is still so prevalent today. Especially in education.

It certainly is a venerable chip. No doubt about that. But, for Pete's sake, I was a very young man when it came out 30 years ago! Why on earth are such a huge number of institutions still basing embedded training on such a old design? Surely there a better and more pertinent choices today. No?

Is it because it was the first? Using logic like that we should still be using tubes for amplifier courses and relays for logic.

Am I wrong? Is it not time that we put the 8051 to bed?
NO NO No
i am still learning it and even our kids kids will have to learn its working
 
Top