How to move on from an 8085

Thread Starter

Beef_Stroganoff

Joined Apr 22, 2021
8
Hello everyone!
I am an ECE student and I want to learn more about embedded systems, but I can't figure out what my next step should be. I have taken courses such as Embedded Systems and Microprocessors and I have gained a good understanding of 8085/8086 and ARM architecture and ASSEMBLY. Recently I decided to join a competition about a microcontroller project, but it seems like I bit more than I could chew....
I couldn't understand a thing because I have never programmed a microcontroller in C. I couldn't figure out where to begin and where to go.
That was a wake up call that I need to deepen my understanding of microcontrollers, but I don't know where to start. Do you have any suggestions as to what to do next?
How to practice my C skills, any microcontrollers that are a logical next step to an 8085/86, or any advice in general?
Thanks in advance !
 

dl324

Joined Mar 30, 2015
13,087
Welcome to AAC!
How to practice my C skills, any microcontrollers that are a logical next step to an 8085/86, or any advice in general?
Just forget what you learned about 8085/86 and move on. That's what I did.

Pick a modern microcontroller and learn as much or little as you need about the hardware to do what you want.

I started out a few years ago with a single board computer called C.H.I.P. that was based on an Allwinner ARM architecture. I learned how to use the I/O registers and then the design became obsolete because the company (NTC) went out of business. I switched to Raspberry Pi and had to relearn how to access the I/O directly. There are some things I like better about the Allwinner chip and some things I like better about the Broadcom (ARM) chips. The point is that they're all similar. Allwinner implemented a low resolution ADC where as the chips used by Raspberry Pi decided that functionality wasn't important so it has no ADC.

I started using Arduino microcontrollers about the same time I started using Pi Zero/W. I know very little about the ATMEGA328 hardware, but that doesn't stop me from being able to use it.
 

Papabravo

Joined Feb 24, 2006
16,776
I don't necessarily agree with that approach. Everything you learned about binary arithmetic, condition codes, address calculation, indexing, pointers and so forth is directly transferable from machine to machine. I do agree that you should pick a processor, get a C-compiler for it, write small programs, then look at the code generated by the compiler. You can do this in two ways:
  1. Look at the assembly code listing produced by the compiler
  2. Look at the code with a rudimentary debugger.
Learn to recognize standard patterns like pushing variables onto a stack, making a function call, and cleaning up the stack afterwords.

That's what I would do if I were you.
 

nsaspook

Joined Aug 27, 2009
8,660
The logical step is to just jump in. With a good understanding of 8085 hardware it shouldn't be a problem to move to other hardware platforms so what you really have is a language problem with C and likely structured programming in general. The good news is that C is a easy language for most ASM programmers to get up to speed with, the bad news is you will still be writing C programs like a ASM programmer unless you take take the time to learn C from a structured programming view-point.

https://www.eng.auburn.edu/~nelsovp...gramming for embedded system applications.pdf
 

trebla

Joined Jun 29, 2019
428
I have gained a good understanding of 8085/8086 and ARM architecture and ASSEMBLY
Then is better start from some ARM Cortex MCU, pick up some cheap development boards from STM (Nucleo or Discovery) or Texas Instruments (Launchpad for Tiva). Both companies offer a free development IDE (Cube IDE for STM, CCS IDE for TI). Or for both you can use code size limited version of Keil uVision.
 

Ian Rogers

Joined Dec 12, 2012
916
I remember when I moved from Intel x86 to Micro's.. I learned by playing with an Intel 8052 then moved to the XA series by Phillips. I can remember thinking as you do... I can load up a disk on the PC and play with C.... How the hell do I start with embedded controllers... Believe it or not.... Virtually no difference.. Load an IDE ( keil or whatever ) write a program.. Then write the binary to a chip... The IDE will support simple interfaces... eg. A small board with zif socket connected to the PC via USB somehow..

The big issue is now the platform has to be known... You need to read and digest the datasheet thoroughly of the micro of your choice.. If you want to write the old "hello world!" program, it would possibly be LED flickering on one of the ports.

As others have said.. The ARM may be best for you as you say you are familiar with this platform.. I believe simple steps using a small LPC device or small AVR / pic would be more prudent until you're aware of micro's..
 

BobaMosfet

Joined Jul 1, 2009
1,848
Hello everyone!
I am an ECE student and I want to learn more about embedded systems, but I can't figure out what my next step should be. I have taken courses such as Embedded Systems and Microprocessors and I have gained a good understanding of 8085/8086 and ARM architecture and ASSEMBLY. Recently I decided to join a competition about a microcontroller project, but it seems like I bit more than I could chew....
I couldn't understand a thing because I have never programmed a microcontroller in C. I couldn't figure out where to begin and where to go.
That was a wake up call that I need to deepen my understanding of microcontrollers, but I don't know where to start. Do you have any suggestions as to what to do next?
How to practice my C skills, any microcontrollers that are a logical next step to an 8085/86, or any advice in general?
Thanks in advance !
Everything you learned is generally applicable. All silicon processors work the same way fundamentally. Any assembly language you learned is useful to you because it means you can easily undertand and learn any other assembly language. Furthermore, because you understand memory, pointers, addressing and so forth, it gives you a tremendous leg up in learning C-- and using C.

I personally recommend you choose either Atmel/ATMEGA AVR (8-bit) or PIC Micro. PIC owns both now, as they bought Atmel. I recommend the Atmel AVR line because their ISP programmers are inexpensive, reliable, work with the GNU AVR IDE, and their data sheets are *really* well done in explaining not just how the chip works, but usually with code examples in both C, and assembly to help you understand.

Some further reference:

Title: Understanding Basic Electronics, 1st Ed.
Publisher: The American Radio Relay League
ISBN: 0-87259-398-3

Title: Standard C [Quick Ref]
Author(s): P.J.Plauger, Jim Brodie
ISBN: 1-55615-158-6

Title: Algorithms in C, 3rd Ed. [Parts 1-4, Fundamentals, Data Structures, Sorting, Searching]
Author: Robert Sedgewick
ISBN: 0-201-31452-5

The Art of Electronics 3rd Ed.
Author(s) Horowitz & Hill
ISBN-10: 9780521809269
 

BobTPH

Joined Jun 5, 2013
3,655
Personally, I would not move to an ARM or other high powered 32-bit processor. These are so overpowered for most microcontroller projects that they will let you get away with bad habits and very inefficient code and data structures.

Move to a small PIC(8-bit) with limited memory and try to squeeze all the power you can get out of it. This will teach ypu to write efficient code.

Bob
 

FlyingDutch

Joined Mar 16, 2021
55
Hello everyone!
I am an ECE student and I want to learn more about embedded systems, but I can't figure out what my next step should be. I have taken courses such as Embedded Systems and Microprocessors and I have gained a good understanding of 8085/8086 and ARM architecture and ASSEMBLY.
Hello,

Jesus men, have you been in ice for last 30 years, and yesterday them defrosted you? No offence, but last lectures about Intel 8085 I had in 1983 year :) As somebody in this thred told - this knowledge is fortunately universal and does not age and is good starting poinyt to further learning.

Best Regards
 

Papabravo

Joined Feb 24, 2006
16,776
Hello,

Jesus men, have you been in ice for last 30 years, and yesterday them defrosted you? No offence, but last lectures about Intel 8085 I had in 1983 year :) As somebody in this thred told - this knowledge is fortunately universal and does not age and is good starting poinyt to further learning.

Best Regards
I think for some, life may have gotten in the way. The machine I learned assembly language programming on hasn't been manufactured for 50+ years, but the knowledge has proved to be truly universal. Learning the rest was like falling off a log.
 

dl324

Joined Mar 30, 2015
13,087
Jesus men, have you been in ice for last 30 years, and yesterday them defrosted you?
Many of us are that old and those architectures were new or current when we learned them.

I learned 8080 assembly while I was in junior college in the mid 1970's. The 8080 microprocessor was new and cost around $400. I learned 6502 assembly while I was an R&D tech in the late 70's. Didn't need to; it was for a personal project. Then I moved to assembly for the PDP 11/34 in the early 80's and then VAX 11/780. After that, I never needed to use assembly language.
 

bassbindevil

Joined Jan 23, 2014
171
The Arduino IDE comes with plenty of example code in some flavour of C. Apart from the "traditional" Atmel-based Arduino boards (which don't give a lot of feedback other than a blinky LED and a serial terminal), other things can be programmed from the Arduino IDE, like the ESP8266 family. For a few bucks you can get a "Witty Cloud" module which combines an ESP8266, microUSB-to-serial adapter, light sensor, RGB LED and a couple of pushbuttons.
 
Last edited:

Thread Starter

Beef_Stroganoff

Joined Apr 22, 2021
8
[/QU[/QUOTE]
Hello,

Jesus men, have you been in ice for last 30 years, and yesterday them defrosted you? No offence, but last lectures about Intel 8085 I had in 1983 year :) As somebody in this thred told - this knowledge is fortunately universal and does not age and is good starting poinyt to further learning.

Best Regards
Haha, it's funny cause the 8085 is 21 years older than me! Anyway that's the way our courses are structured so I don't have a say in that..
 

dl324

Joined Mar 30, 2015
13,087
it's funny cause the 8085 is 21 years older than me!
A lot of the good stuff is older than you o_O . When I started working at Intel, the 8085 was still being manufactured. I didn't care for the multiplexed address and data lines so I never considered using it.

I knew a tech that breadboarded the 8086 with TTL IC's. That was a few years before they had logic simulators that were fast enough and capable of simulating an entire design.
 
Top