8051 Micro controller
Upon reset all port pins and port registers are high. I follow these instructions...
P0=0x00; P0=0xFF;
Now ,the result is - All P0 registers are high & all P0 pins are low.
Q1) Does this low P0 pins indicate high impedance floating load in the case of P0?
Now, I start the program with the following instruction only.
P0=0xFF;
But All P0 registers and pins remain high.
Q2)What is the difference here? What's happening inside circuitry in both cases?
What part of the 8051 documentation are you stuck with?
In the old days, the key documentation set was commonly known as the "bible" for the 8051.
It is getting harder to find these - there should be a clue in that - but here are some archived copies:
Chapter 1 - 80C51 Family Architecture: ecee.colorado.edu/.../p8051arc.pdf community.nxp.com/.../DOC-334648
Chapter 2 - 80C51 Family Programmer's Guide and Instruction Set: http://www.keil.com/dd/docs/datashts/philips/p51_pg.pdf ecee.colorado.edu/.../p8051pg.pdf community.nxp.com/.../DOC-334650
Chapter 3 - 80C51 Family Hardware Description: courses.cs.washington.edu/.../famhdwr.pdf community.nxp.com/.../DOC-334649
Keil still list some books: http://www.keil.com/books/8051books.asp
And, of course, you should be studying the manufacturer's documentation for the particular part(s) you are using.
But you should really be asking yourself whether the 8051 is an appropriate place to be starting in this day and age ...
if you are using one of the older derivatives that fully adhere to the original standard P0 dces not have "weak pull-up" as P1, p2 & p3
Why keil debugger shows different results? Either way P0=0xFF; is the last instruction.But ,in the first case P0=0x00; prior instruction makes the results different.Any idea?
Do you really mean the debugger; ie, a thing connected to real hardware?
Or do you actually mean the simulator; ie, no real hardware - just running on your PC?
Yes, Keil software debugger. C51 IDE
case 1)
main() {P0=0x00; P0=0xFF; while(1); }
case 2)
main() { P0=0xFF; while(1); }
Check port registers in peripheral window. Why different behaviour?
That's just as vague as before!
You mean the Simulator ?
That is, you are not using any real target hardware?
Keil IDE C51. Check with debugger available in keil C51.
that is a SIMULATOR and it SIMULATES based on whatever version Keil choose
Can you check this out.
stackoverflow.com/.../keil-c51-8051-port-0-i-o
Links are posted like this stackoverflow.com/.../keil-c51-8051-port-0-i-o
So gleaned from the new thread this is an AT89S52, still not clear if the respondent is actually using a debugger, and if so how and to where it is attached. Or if the part is being simulated, and if so poorly.
Super selective screen shots. No images of the hardware or board.
Perhaps a more realistic test would be to drive alternate values on P0 and scope the thing to look at the signals presented on the pins.
Look at the listing file for the code generated.
If you think there is a defect with the software, perhaps converse with support, via their direct contact details.
answer: stackoverflow.com/.../9751865
anyhow: why do you give a hoot what the simulator shows, what does your actual circuit do?
a simulator is, by definition, imperfect especially when trying to cover the 4711 variants of the .51
I was trying to interface active high switch to port 0. Since only P0 have the open drain I/O pin in the case of 8051.
No, that's not true - all 8051 IO pins are open-drain!