??? 02/10/06 14:05 Read: times |
#109704 - Recommendations Responding to: ???'s previous message |
Suresh said:
I am using a seperate programming device that connects to the computer USB port for programing the micro.
I would like to know how the three lock bits should be programmed. This must be an option of the programmer software you use. With Atmel's ISP programmer you can open a menu and select what lockbits to set. So, as I don't know your programmer software I cannot give help. Suresh said:
I want to use 3 decimal keys(each running from 0-9)to set the value instead of using a BCD switch. I think the both are the same? Both code the number as BCD? Then, both should have four wires which are '1', '2', '4' and '8' and both should have a wire that's called 'common'. This is the one which connects the four switches '1', '2', '4' and '8' to ground. A look at datasheet of decimal key can help. Suresh said:
The additional instructions are all one machine cycle(12 crystal pulses).
There are 10 additional instructions. So the delay will be 120 clk pulses. But how, the execution time for a particular instruction is calculated? I think it was Andy who gave you a link to the original instruction set of 80C51 family. At the beginning of this instruction set there's a table, where each instruction is listed with number of needed bytes and oscillator periods needed to execute. An example: Instruction 'clr tr0' needs 1 byte and 12 oscillator periods. If your clock frequency is 11.0592MHz, then this instuctions 'consumes' 1 / 11.0592MHz x 12 = 1.085µsec. By the way, not all instructions need 12 oscillator periods. 'jnz timer_delay' needs 24. Suresh said:
Also, i would like to know what things need to be studied for writing codes in C or Keil uvision2 (C51 compiler).
what are all the topics i should be knowing. I'm not very familar with C. I'm doing a lot of EMC and analog stuff, where the micro is only a little part of the project. We have specialized coders, who intensivly work with C. But, if I have to code something, then I'll do it in assembler nearly always. So, somebody else must give you hints. Suresh said:
i.e., will learning the architecture of a particular micro alone will be enough (or)
should i be proficient with the instruction set also, ..e.t.c., You should intensively learn one certain micro, you want to work with in the next future. This could be the AT89S52 for instance, Erik might recommend you the LPC9xx series from philips. Try to become familiar as much as possible with the architecture and the instruction set of this micro. If you have understood one certain micro in very detail, then it's no longer a problem for you to understand any other. You will probably migrate to several new micros during your career. But whatever micro you work with, you must understand it thoroughly! Suresh said:
Is using C language preferred in embeddded software development rather than a Assembly Language? If so - why? This often depends on personal taste. Mahmood for instance is coding everything in C. Others do everything in assembler. Bigger projects with thousand of code lines are difficult to code in assembler. Critical timing issues are difficult to code in C, on the other hand. So, it depends... Nevertheless, I think it's never a bad idea to learn coding in assembler, because it supports the learning of architecture of micro. Kai |