[poll] Tips for newbies from a newbie's personal experience
Discussion in "General help Guidance and Discussion" started by rohitsuresh Feb 5, 2010.
Fri Feb 05 2010, 07:01 pm
Hi Friends,
Firstly I would like to thank Ajay Sir for bringing out this wonderful website. Also would like to thank Seniors like ExperimenterUK sir and Dave Sir for helping me out with my questions.
I have just found out that there are many newbies like me, interested in learning embedded systems.I got addicted to this when I was doing my college project(currently continuing the same). But I had no clue of Embedded Systems when I started. That's when i found this website. Now, I am proud to say that my project is 90% complete, and every bit was coded by myself. No plagiarism.
Read this carefully to avoid obstacles in your path.
>> Choosing the Heart:
For newbies who have little or no experience in Embedded System, I suggest you go for the 8051 Micro controller. The reason, why I am suggesting this, is even though there is 8085, ARM,,PIC etc, the 8051 is a complete and easy to learn integrated package. It has a small memory but it can pack a powerful punch(beginner's perspective) when it comes to coding.
Also it is very economically priced...
Use the 40 pin package of 8051 so that you have plenty of ports to work with. Use the 20 package only if your sure of how many ports you need.
>>Understanding the 8051:
Now, since you have decided to use the 8051, we must figure out how it really works. If you have the patience and dedication, I advice you to learn 8051 from a book written by MAZIDI.It is exhaustive and may be boring for lazy people. For them, I have another alternative.
If you are a lazy person like me, I suggest getting the book "Embedded C by Michael J Pont" Around Rs 300.00 .If you cant find one, mail me.I have a few extra books that i ordered. No.. Don't download it. BUY IT, because it comes with a CD with many examples and a copy of KEIL uVision Demo ( Explained Later). In this book, they have covered exactly all that you need to know in order to program an 8051. You can learn about the entire 8051 and start coding after 11 pages of the book. Also, when you are doing the project you may need to verify 3-4 different pages at the same time impossible on the PDF.
>> C Language or Assembly?
For beginners there is always a dilemma on whether to code using C or Assembly. Tell you what. IF you don't know assembly at the tip of your fingers. AVOID IT. You need to understand register's and flags properly for coding in assembly language. So what should you use? Even a small glitch like leaving some value in an unknown registry can bring you down to your knees.
Obviously use Embedded C. You know what the good news is? The book " Michael J Pont" is again the best book for learning 8051 Programming in Embedded C.Many people get scared when they hear the word C. But trust me friends, learning Embedded C not only allows you to avoid small errors that happens in the case of assembly but also allows portability among various processors.
By portability, this is what I mean. Assume that you have finished programming in 8051. Now you want to implement the same in PIC. Just change a few parameters here and there and voila! your C code will now work with PIC too. But frankly, try all this after you have mastered 8051.
In short, avoid Assembly language if you are a beginner. Take pains to learn C instead. You won't regret it.
>>Which first? Hardware or Software:
Don't buy any component's unless you exactly know what you require. Many newbies buy out all the components in the first place out of enthusiasm and then realize that many of them don't match or are not required. This is one of the major mistakes I have done.
Learn Embedded C and try out the small example programs.Change the values and see the reaction of the the Ports and Pins.Some of you may have the circuit diagram from some source. Don't trust it unless you see the simulation working in front of your eyes.
Don't even buy breadboards for trying to burn an example code to 8051 and to check whether it works. The Software Proteus(Explained Later) is the answer.
In short, avoid hardware unless you have finished your C code and have simulated it in Proteus (Explained Later).
>>Where do i do the coding?
Now you have decided to do start learning how to code. For starter's use KEIL uVision3 for learning how to code. It is a very expensive but an advanced software. Get your hands on one from somewhere.
If your luck has run out in finding the software. Don't worry.You can download a demo version from the net or from the CD you have received along with "Embedded C by Michael Pont".
I know asking you to learn a software all of a sudden is a painful and boring experience.
But don't worry. The software is a piece of cake. Check out the tutorial http://www.8051projects.net/keil-c-programming-tutorial/
There is also a video tutorial
http://www.8051projects.net/keil-microvision/
Also go through the example programs in the book for you to get an idea.
>>I have written a code.Where do i run it without hardware?
Sound's Impossible? Well it is very much possible. Get a software called Proteus 7 Professional. It is a playground for Embedded Guys. Here you can test your code on the components without worrying of the risk of a short circuit or a fire!!!
In this software you can drag-drop all the components , wire them up, load your code which you wrote in KEIL and see whether it is working properly.
I will write a tutorial on Proteus shortly and request Ajay Sir to post it in the tutorial section. You can even experiment with different circuits and guess what, if it doesn't work, you don't loose a rupee!!
>>I am not sure whether my code will launch the rocket:
Yes, the first step in letting yourself know that you are learning something is when you ask doubts. That's why all of us are here in this website.
If in doubt of anything, post your doubt in this site along with all the information you can provide on the code. There are many professionals like Ajay Sir , Dave Sir , Experimenter UK sir to help you out.
In the beginning i had a doubt ( which is obvious to me now) on how to initialize a port pin . Seniors like Dave Sir and of course Ajay Sir answered to my doubts.
But before asking a doubt make a honest effort to find a solution.
>>Connecting the eyes,ears and mouth to the 8051:
There are many components like motor, LCD that can be connected to the 8051. Obviously we are not born with the knowledge on these components. Follow the excellent tutorials in http://www.8051projects.net/microcontroller-tutorials/
>>General rule of thumb to be followed
-- Keep the code short,crisp and sweet. You have only 4K(you can connect external memory. But remember, you are a newbie!)
-- Use Functions for the codes that need to be repeated often
-- Learn about the peripherals you use (LCD,Motor) before you start creating codes for them
--Buy a programmer after you have finished coding for your project. Don't attempt to build one if you are not good at soldering. It is around Rs 1300.00
That's all for now.... All the best!!!
To be continued..
P.S. Post a reply if you like this thread
Firstly I would like to thank Ajay Sir for bringing out this wonderful website. Also would like to thank Seniors like ExperimenterUK sir and Dave Sir for helping me out with my questions.
I have just found out that there are many newbies like me, interested in learning embedded systems.I got addicted to this when I was doing my college project(currently continuing the same). But I had no clue of Embedded Systems when I started. That's when i found this website. Now, I am proud to say that my project is 90% complete, and every bit was coded by myself. No plagiarism.
Read this carefully to avoid obstacles in your path.
>> Choosing the Heart:
For newbies who have little or no experience in Embedded System, I suggest you go for the 8051 Micro controller. The reason, why I am suggesting this, is even though there is 8085, ARM,,PIC etc, the 8051 is a complete and easy to learn integrated package. It has a small memory but it can pack a powerful punch(beginner's perspective) when it comes to coding.
Also it is very economically priced...
Use the 40 pin package of 8051 so that you have plenty of ports to work with. Use the 20 package only if your sure of how many ports you need.
>>Understanding the 8051:
Now, since you have decided to use the 8051, we must figure out how it really works. If you have the patience and dedication, I advice you to learn 8051 from a book written by MAZIDI.It is exhaustive and may be boring for lazy people. For them, I have another alternative.
If you are a lazy person like me, I suggest getting the book "Embedded C by Michael J Pont" Around Rs 300.00 .If you cant find one, mail me.I have a few extra books that i ordered. No.. Don't download it. BUY IT, because it comes with a CD with many examples and a copy of KEIL uVision Demo ( Explained Later). In this book, they have covered exactly all that you need to know in order to program an 8051. You can learn about the entire 8051 and start coding after 11 pages of the book. Also, when you are doing the project you may need to verify 3-4 different pages at the same time impossible on the PDF.
>> C Language or Assembly?
For beginners there is always a dilemma on whether to code using C or Assembly. Tell you what. IF you don't know assembly at the tip of your fingers. AVOID IT. You need to understand register's and flags properly for coding in assembly language. So what should you use? Even a small glitch like leaving some value in an unknown registry can bring you down to your knees.
Obviously use Embedded C. You know what the good news is? The book " Michael J Pont" is again the best book for learning 8051 Programming in Embedded C.Many people get scared when they hear the word C. But trust me friends, learning Embedded C not only allows you to avoid small errors that happens in the case of assembly but also allows portability among various processors.
By portability, this is what I mean. Assume that you have finished programming in 8051. Now you want to implement the same in PIC. Just change a few parameters here and there and voila! your C code will now work with PIC too. But frankly, try all this after you have mastered 8051.
In short, avoid Assembly language if you are a beginner. Take pains to learn C instead. You won't regret it.
>>Which first? Hardware or Software:
Don't buy any component's unless you exactly know what you require. Many newbies buy out all the components in the first place out of enthusiasm and then realize that many of them don't match or are not required. This is one of the major mistakes I have done.
Learn Embedded C and try out the small example programs.Change the values and see the reaction of the the Ports and Pins.Some of you may have the circuit diagram from some source. Don't trust it unless you see the simulation working in front of your eyes.
Don't even buy breadboards for trying to burn an example code to 8051 and to check whether it works. The Software Proteus(Explained Later) is the answer.
In short, avoid hardware unless you have finished your C code and have simulated it in Proteus (Explained Later).
>>Where do i do the coding?
Now you have decided to do start learning how to code. For starter's use KEIL uVision3 for learning how to code. It is a very expensive but an advanced software. Get your hands on one from somewhere.
If your luck has run out in finding the software. Don't worry.You can download a demo version from the net or from the CD you have received along with "Embedded C by Michael Pont".
I know asking you to learn a software all of a sudden is a painful and boring experience.
But don't worry. The software is a piece of cake. Check out the tutorial http://www.8051projects.net/keil-c-programming-tutorial/
There is also a video tutorial
http://www.8051projects.net/keil-microvision/
Also go through the example programs in the book for you to get an idea.
>>I have written a code.Where do i run it without hardware?
Sound's Impossible? Well it is very much possible. Get a software called Proteus 7 Professional. It is a playground for Embedded Guys. Here you can test your code on the components without worrying of the risk of a short circuit or a fire!!!
In this software you can drag-drop all the components , wire them up, load your code which you wrote in KEIL and see whether it is working properly.
I will write a tutorial on Proteus shortly and request Ajay Sir to post it in the tutorial section. You can even experiment with different circuits and guess what, if it doesn't work, you don't loose a rupee!!
>>I am not sure whether my code will launch the rocket:
Yes, the first step in letting yourself know that you are learning something is when you ask doubts. That's why all of us are here in this website.
If in doubt of anything, post your doubt in this site along with all the information you can provide on the code. There are many professionals like Ajay Sir , Dave Sir , Experimenter UK sir to help you out.
In the beginning i had a doubt ( which is obvious to me now) on how to initialize a port pin . Seniors like Dave Sir and of course Ajay Sir answered to my doubts.
But before asking a doubt make a honest effort to find a solution.
>>Connecting the eyes,ears and mouth to the 8051:
There are many components like motor, LCD that can be connected to the 8051. Obviously we are not born with the knowledge on these components. Follow the excellent tutorials in http://www.8051projects.net/microcontroller-tutorials/
>>General rule of thumb to be followed
-- Keep the code short,crisp and sweet. You have only 4K(you can connect external memory. But remember, you are a newbie!)
-- Use Functions for the codes that need to be repeated often
-- Learn about the peripherals you use (LCD,Motor) before you start creating codes for them
--Buy a programmer after you have finished coding for your project. Don't attempt to build one if you are not good at soldering. It is around Rs 1300.00
That's all for now.... All the best!!!
To be continued..
P.S. Post a reply if you like this thread
[ Edited Mon Feb 08 2010, 07:52 pm ]
kirangowle like this.
Sun Feb 07 2010, 11:52 pm
I am making this thread a sticky thread it will remain on the top in topic list
Thanks for creating a nice topic for newbies
Thanks for creating a nice topic for newbies
rohitsuresh like this.
Thu Feb 25 2010, 10:11 am
very nice very good thread for newbies, but here is some criticism from me ---
i am not agree with this part ">> Choosing the Heart:" because the 8051 family is quite old. instead of using 8051, i think one should start with avr or pic. when i started with avr, i found it more easy to learn than 8051. also these microcontrollers provide features like better speed, adc, easy to develop hardware, etc.
i know that new 8051 are high on speed and memory but again 8051 platform is loosing popularity (not in india because one can buy same old college projects easly. else where projects are done only with avr or pic (sometime with arm also).
please correct me if i am wrong.
i am not agree with this part ">> Choosing the Heart:" because the 8051 family is quite old. instead of using 8051, i think one should start with avr or pic. when i started with avr, i found it more easy to learn than 8051. also these microcontrollers provide features like better speed, adc, easy to develop hardware, etc.
i know that new 8051 are high on speed and memory but again 8051 platform is loosing popularity (not in india because one can buy same old college projects easly. else where projects are done only with avr or pic (sometime with arm also).
please correct me if i am wrong.
[ Edited Thu Feb 25 2010, 10:14 am ]
Thu Feb 25 2010, 10:39 am
Gr8 effort man.I have also learned almost all me embedded from this website.All ppl here are very helpful.
rohitsuresh like this.
Thu Feb 25 2010, 01:49 pm
very nice very good thread for newbies, but here is some criticism from me ---
i am not agree with this part ">> Choosing the Heart:" because the 8051 family is quite old. instead of using 8051, i think one should start with avr or pic. when i started with avr, i found it more easy to learn than 8051. also these microcontrollers provide features like better speed, adc, easy to develop hardware, etc.
i know that new 8051 are high on speed and memory but again 8051 platform is loosing popularity (not in india because one can buy same old college projects easly. else where projects are done only with avr or pic (sometime with arm also).
please correct me if i am wrong.rahuljin
AVR is also a good option. But prefer 8051 because of its popularity and cheap cost. Programmers are also available.
Mon May 24 2010, 10:39 pm
hi.....,
im a newbie n i like ur thread very much as its both informative n encouraging for ppl like me .....but i do hav a question why choose 8051 over 8052..or both can be used by newbies like me?.....coz right now im using an atmel 89s52 n was told dat its an 8052 microcontroller (hope i got dat serial number correct).???
im a newbie n i like ur thread very much as its both informative n encouraging for ppl like me .....but i do hav a question why choose 8051 over 8052..or both can be used by newbies like me?.....coz right now im using an atmel 89s52 n was told dat its an 8052 microcontroller (hope i got dat serial number correct).???
[ Edited Mon May 24 2010, 10:45 pm ]
Tue May 25 2010, 12:59 am
Well 8051/8052 both are from same family MCS51 (8051 family). only difference is in features. if you wan to know more about it, download their datasheets.
if you want to start new then get philips P89V51RD2, its also an 8052 based architecture with lot of features and does not require any special hardware.
if you want to start new then get philips P89V51RD2, its also an 8052 based architecture with lot of features and does not require any special hardware.
Powered by e107 Forum System