8051 worthwhile for a hobbyist? - Page 1
Forum section: electronics / general

author: resistor
author_rank: Regular Contributor
timestamp: October 06, 2013, 08:32:59 pm
content: Is it worthwhile for a hobbyist to learn 8051 today? I'm not scared of it, but I'm unsure of its utility outside of ultra-tiny packages that are out if my reachable anyways.And, if it is worthwhile, do you have recommendations for dev boards and/or toolchains to learn with?

author: Crazy Ape
author_rank: Regular Contributor
timestamp: October 06, 2013, 08:40:10 pm
content: There are probably better choices than the 8051 for hobbyist use but it really comes down to what your interests / needs are.Here is the craziest 8051 project I know of, admittedly a fast 8051 though.http://www.fleasystems.com/flea86.html

author: AndyC_772
author_rank: Super Contributor
timestamp: October 06, 2013, 08:45:20 pm
content: It's a bit of a back-to-front question. What project is it that you want to work on, and what is it about the 8051 that you feel makes it the best fit for that project?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: October 06, 2013, 08:50:22 pm
content: It's more about the peripherals than the core these days so not a 'big' decision - 8051 is used inside some USB and RF SoCs, presumably as it's license-free these days.Pick what works for your application - devtools, peripherals, availability come before core in terms of choosing chips.

author: Alana
author_rank: Frequent Contributor
timestamp: October 06, 2013, 09:36:39 pm
content: I'd say it depends on your goals. If your goal is to "learn 8051 and make something using a micro of this family as your graduation for this task" then yes - its worth it.But if you want to play around with microcontrolers and make some practical devices I'd go for atmel AVRs instead. Reason - 8051 [at least where i live] comes basically with only 2 pin counts - 40 and 20 pin DIP packages and i think smd equivalents as well. But if you look at AVRs you will find anything from 8pin ATtiny to atmegas in 40 and more pins cases.So if for exapmple you do a RC5 remote controller reciever for single triac/relay output with 8051 you need to use 20pin case, but with AVR you need 8pin Attiny.And for evaluation/learning kits - back then i started out articles in "elektronika dla wszystkich" [electronics for everyone] magazine about programing 8051 in BASCOM, home made clone of MCS flashprogrammer for bascom IDE package, breadbord, 12mhz quartz and some passives and it was more than enough.Modern equivalent would be:- DIY STK200 clone for 89S51 [works directly from bascom 8051 but needs PC with LPT]- USBASP for AVR's- breadbord + jumper wires- switches, leds, resistors, maybe a 2x16 LCD- same kind of articles about programing as back themAnd one more thing - i use bascom because of personal preference and i know its limitations. And i would still recomend it for first time person in micros because setb porta.1 is clearer than all those wierd notations with << and alike i see in C code for AVR's.

author: free_electron
author_rank: Super Contributor
timestamp: October 06, 2013, 09:57:59 pm
content: Quote from: resistor on October 06, 2013, 08:32:59 pmwehattayamean ultra tiny packages.the original 8051 comes in dip40 ...and you can get them from 8 pins to 120 pins and more...

author: dannyf
author_rank: Super Contributor
timestamp: October 06, 2013, 10:03:34 pm
content: QuoteYes. End of the day, those mcus are the same in the sense that you program to write to certain memory locations to operate pins / peripherals - of which, some have more and others less.QuoteI would pick one built by SilLab or ADI: for their peripherals. Something around 128k / 256k flash would be helpful.

author: resistor
author_rank: Regular Contributor
timestamp: October 06, 2013, 10:15:26 pm
content: Quote from: AndyC_772 on October 06, 2013, 08:45:20 pmI don't have one specific project in mind for it. I have lots of small projects, all of which are straightforward enough that any 8 bit (or bigger) micro family should work.The way I look at it is that, as a hobbyist, I don't want to invest the time to learn a new micro family for every project. I'd prefer to pick one or two families to learn, and then just pick the model within those families that meets my needs reasonably well. I already know the ARM instruction set from work, so that's an obvious choice, but I'd also like to learn something smaller. I'm not worried about the difficulty of learning any specific family, since I intend to reuse that learning across multiple projects.The criteria I'm looking at include:Low cost in small quantitiesAvailable in hobbyist friendly packagesLow power (lots of battery-powered projects)Scalability in performance and peripherals across the family rangeMy other options would be learning something like AVR, PIC, or MSP430. Compared to those, why should I choose to learn 8051 instead? Is it going to be cheaper? Better peripheral options?

author: dannyf
author_rank: Super Contributor
timestamp: October 06, 2013, 11:13:39 pm
content: QuoteSome of those chips cost down to cents.QuoteLots in dip40.QuoteDepending on which "battery" you are talking about. Generally, msp430 is your only choice there.QuoteDepending on the "family" you chose, the answer ranges from "none" to "very good".QuoteLots of code floating around, hardware multiplier / divider. and some crazy peripherals (silab / adi or cypress).QuoteSome are cheaper. Others are expensive (silab and adi for example).QuoteSome do, but most don't.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: October 06, 2013, 11:44:02 pm
content: Quote from: resistor on October 06, 2013, 10:15:26 pmGiven those criteria, PIC is probably the best fit - 8 to 32 bit parts, all readily available in everything from QFN to DIPs (yes, 32 bit in DIP!), Very similar peripherals across the range from 8 to 32 bit, plenty of low-power features, one dev environment and one programmer covers the whole range.You will find tons more online resources than for 8051Probably the only downside is that the free version of the 8-bit compiler is rather poor, but the 16 & 32 bit parts are cheap, and the free compilers a lot better.

author: Hamster
author_rank: Regular Contributor
timestamp: October 07, 2013, 12:07:53 am
content: IMHO, unless your planning on fixing 8051 based gear, i would maybe learn ASM a little, but i wouldn't start learning using an 8051, i fix arcade & pinball machines, and constatly will have to reference opcodes, and understand what they are doing, but most of the time its just a bad chipisn't the 8051 core emu'lated on some fpga's? , if so , that would be maybe the only reason you would want to learn the 8051.

author: codeboy2k
author_rank: Super Contributor
timestamp: October 07, 2013, 01:41:56 am
content: the 8051 is not really any more unique than any other modern CPU core, its quite dated actually.However, it is used royalty free in many SOC designs, and as Hamster said, it is often used in an FPGA design to provide a core alongside the design. Todays larger FPGAs have plenty of room and can save board space if you have the FPGA space.And when you program it, you'll find that you're going to do most of your work in a high level language anyways, so the cpu core for the most part doesn't matter anyways, except for the little bit of assembler that you might need in an ISR.Bit twiddling in C using C constructs is almost the same for every micro out there.. just the types of peripherals are different, behave different, have different I/O locations, and different control bits... Thats the stuff that needs to be ported or abstracted away using a driver layer, for the most part.You should learn something current. If you want to breadboard it up, than start with PIC or AVR as many have suggested, you won't go wrong. There are lots of modern hobbyist friendly PICs and AVR devices. For ARM devices, you can get plenty of small ARM development boards for a very low cost.As for 8051, just use one of the many software emulators out there to play around and learn the assembler, if that's your goal, but don't put too much value on it.

author: klox
author_rank: Newbie
timestamp: October 09, 2013, 10:18:00 pm
content: My grad lab used it for a ton of projects. I believe 8051 goes back some years but is still quite relevant. In our case we were looking at efficient SoC's and 8051 was an easy choice when it also has an RF stack with it and still really cheap. I've also seen 8051 IP Cores for FPGAs which means you can get a lot of extra functionality if you are already familiar with the 8051. I think it always comes down to learn what you need to learn when you need to learn it. There are just too many options out there these days.

author: westfw
author_rank: Super Contributor
timestamp: October 10, 2013, 12:15:11 am
content: There seem to be a lot of 8051 chips that exist because the peripheral set is "more important" than the cpu engine. USB devices. MP3 Players. Ethernet and wireless networking chips. SoC chips with FPGA modules. High quality A-D converters.

author: nctnico
author_rank: Super Contributor
timestamp: October 10, 2013, 12:29:12 am
content: The 8051 is often used because its royalty free. That doesn't mean it saves you from all kind of headaches from a software point of view. Having an 8051 core on a chip doesn't mean its actually useful. Years ago I tried the TUSB3410 (USB to serial converter) from TI. I wanted to filter escape codes from the data stream. It turned out the 8051 wasn't anywhere near capable of handling the data stream. The TUSB3410 has a DMA engine which does all the heavy lifting. The 8051 is just the bady sitter.

author: dannyf
author_rank: Super Contributor
timestamp: October 10, 2013, 12:47:40 am
content: QuoteThat's like saying that because I am fat, short and cannot jump over a 2x4 that all humans are fat, short cannot jump over a 2x4.There plenty of 8051 systems reliably and comfortably working with high speed data. And remain cheap.8051 is actually very advanced in its time and its modern variants can comfortably compete today with many modern chips. It is THE most widely used mcu for a good reason.

author: delmadord
author_rank: Regular Contributor
timestamp: October 10, 2013, 06:00:52 pm
content: Yeah, you probably won't go wrong with 8051 (but modern ones, not ones from ancient times). With nice 8051 skills you can target a professional market too. But as you probably already heard, there are more hobby-friendly uCs out there.

author: jerry507
author_rank: Regular Contributor
timestamp: October 10, 2013, 09:18:15 pm
content: It'd be helpful to hear from the 8051 fanboys what specific parts they're using and what their tools are. Because it's not something you see much outside commercial world, there's not much visibility into recent tools and parts. All my 8051 work has been on legacy systems using eeproms for code storage

author: dannyf
author_rank: Super Contributor
timestamp: October 10, 2013, 10:11:08 pm
content: Both Keil / IAR offer excellent 8051 tools. I personally use C8051 - a big fan of the F35x family.

author: geraldjhg
author_rank: Regular Contributor
timestamp: October 14, 2013, 04:08:40 pm
content: hiid choose something that is available in various packages and that you are comftarble withit is a bit datedi personally use avr 8 bitsome people choose depending on availability via digikeyIF YOU GET IT WORKING it was a good choice

author: denizcan
author_rank: Regular Contributor
timestamp: October 15, 2013, 02:46:31 pm
content: If you are using any MCU, continue using it.. If not, start with PIC.. Easiest way to enter MCU world. Than, you will find some peripheral on some MCU, and jump into that, than you jump into another on other project.. This way you will distribute your resources to Microchip, ST, Atmel, NXP, TI like me..