my question is about the power on / reset values of the 8051 ports: at power on /reset, the port latches are loaded with FFh hence there are configured as inputs or outputs.
The 8051 Microcontroller and Embedded System Using assembly and c by MUHAMMAD ALI MAZIDI JANICE GILLISPIE MAZDI ROLIN D. McKINLAY second edition PEARSON EDUCATION mentions that they are configured as inputs.
But most websites mention that,at power on /reset the port are configured as outputs . which is correct?
**************** also look at the following code that monitors a switch connected to P1.5 and sets P1.7 if P1.5 is high
SETB P1.5 ; set P1.5 as input L1:JNB P1.5 ,L1 ; continuously poll P1.5,exit the loop if P1.5 SETB P1.7 ; set P1.7 will not the first instruction, SETB P1.5 itself produce an erroneous output since the port 1.5 pin has already been set high by the instn. SETB P1.5.
Thank you
Thank you, Ecik The 8051 hardware manual says " All the port latches in 80C51 have 1's written to them by the reset function.If a 0 is subsequently written to the port latch,it can be reconfigured as an input by writing a 1 to it"
JIM
many wrongs do not make a right.
I know this old wifes tale is one of the most popular misconceptions and permeates all '51 litterature.
One way that would be correct would be "when connecting other signals to a '51 the configuration is a "wire OR' between the '51 port pin and the other device(s) connected. Thus if any device (the '51 or external) pull the line low all devices reading the wire OR line will read a low.
Note: this fully explains everything and there is not a word about "input mode" or "output mode".
as you see an 'output pin' is also an 'input pin' (most of us has had inputs happen to an output with a prototype) just as an 'input pin ' also is an 'output pin'
Erik