p口作为输入为什么先进行写1操作

供稿:hz-xin.com     日期:2025-01-21
51单片机P口做输入时需要先向其写1,为什么?

先写1,是使I/O脚输出为高电平,拉高了,是写到内部的并行口的寄存器了。原每个I/O脚即可输出,也可输入,当写0后,使输出状态为低电平,这样,再作输入,读引脚时就会读入0,不管外部的输入状态是什么都只能读入0,这样,读入的数据就是错误的。而先写1后,当外部输入0,读入的也是0,外部输入1,读入的也是1,读入的数据才与外部相同。

P1口可输入可输出。
P1口作为输入口, 怎么作为?
哪条指令让它作为输入口,怎么样才能让它作为输入口,光靠我们想像行吗?
有的单片机,会有个寄存器,设置IO口是输入还是输出,但这个没有。
那这个怎么让它成为输入或者输出呢。
每个口上都有一个锁存器,锁住之前写的值。
比如,口上只是接一个上拉电阻,这个口作为输入应该是高电平吧。
那你往口里写一个0,口会输出0,这个口就成了低电平了。
此时,你读这个IO口,也会是低电平。
如果不改写为1,锁存器内就一直是0,也就是输出0 ,程序读这个口上的电平也是0。
改写为1后,这个口上的电平才会1,或者说,不会把这个口拉低。
作为输入口时,要事先写1,也可以不用每次都写,只要里面不是0就成。
那个扫描键盘的,赋值,0xfe就相当于,把P1口的高7位都写了1,最低位写0,
也就是P10输出0,然后读高4位,看有没有按键。接下来,0xfd是P11输出0,也是读高4位,看P11那一排的有没有按键。
这都写了1的,不是P17=1才叫写1,P1=0xfe 整体赋值也是写1。往你想读的口写1就行。

P1——P3口在作为输入使用前, 要先向该口进行写1的操作, 然后单片机内部这是由于P1~P3口的结构决定的。单片机执行读引脚操作时,如果锁存器原来寄存

单片机P1—P3口作为输入口的时候,为什么要先向该口写1呢?
总结来说,向Px口先写1这一操作是为了确保单片机能够正确读取输入信号,避免因为引脚内部状态不稳定导致的信号干扰,提高系统的可靠性和稳定性。

p口作为输入为什么先进行写1操作
P1——P3口在作为输入使用前, 要先向该口进行写1的操作, 然后单片机内部这是由于P1~P3口的结构决定的。单片机执行读引脚操作时,如果锁存器原来寄存

51单片机的准双向I\/O口在使用前必须进行写1操作,但上电时,单片机默认为...
51单片机的准双向I\/O口在使用前通常需要进行写1操作,但仅是在读取IO口之前,而并非每次使用都需要。实际上,单片机上电时,默认状态为高电平,因此在使用前无需再次写1。这主要是因为当将其作为输入接口使用时,写1的操作才有意义。一旦进行了写1操作(或在复位后自动置1),就可以确保能够正确输入...

单片机P1——P3口作为输入口的时候 为什么要先向该口写1呢?
这是因为51单片机的独特IO口设计造成的,四个并行I\/o口在输出低电平时,有一只晶体管导通,这样输出低电平,当再读入时,这个晶体管如果仍然是导通状态,则外部的信号会因为它读入不正确,因此,需要读入前先写一个1(高电平)将这只晶体管截止才能读入正确。具体参照51单片机的I\/O口的原理图。

单片机P0口作为输入,需要先置1吗?
P0口作为输入使用时,确实需要先将其置为1。这是因为,当P0口作为一般I\/O口使用时,上拉场效应管通常处于截止状态。若不先将其置1,下拉场效应管可能会导通,导致P0口读取到的是低电平,即0。因此,通过先置1的操作,可以确保下拉场效应管截止,从而使P0口进入高阻浮空状态,从而能够正确地读取数据...

单片机P1——P3口作为输入口的时候 为什么要先向该口写1呢?
作为输入口时,要事先写1,也可以不用每次都写,只要里面不是0就成。那个扫描键盘的,赋值,0xfe就相当于,把P1口的高7位都写了1,最低位写0,也就是P10输出0,然后读高4位,看有没有按键。接下来,0xfd是P11输出0,也是读高4位,看P11那一排的有没有按键。这都写了1的,不是P17=1才叫...

准双向口输入为什么要先写入1?
因为V2是接在Q非上而不是接在Q上.当锁存器被写入1时,Q=1,Q'=0,V2截止,因上拉电阻的存在,P1=1,这时如果读引脚,在内部总线得到的是1,如果读锁存器,在内部总线得到的是0。当锁存器被写入0时,Q=0,Q'=1,V2饱和导通,P1=0。这时如果读引脚,在内部总线得到的是0,如果读锁存器...

51单片机P0口做输入口时需要先写一并且外接上拉电阻,是这样的吗?_百度...
51单片机在P0口作为输入口使用时,并不需要在外部接上拉电阻,也无需在读取输入状态前特意将P0口写为1。单片机在上电复位后,P0口的所有位会被自动置为1,因此可以直接读取P0口的输入状态。如果P0口之前没有输出过低电平,那么在读取输入状态时无需先写1。即便是在某些情况下需要将P0口写为1,这也...

单片机中,P1口用作输入时,为什么必须先将该口锁存器置1?
书上都有的啊……P1~P3在进行读操作之前必须写1,这样才能关断输出驱动的FET管。于是对外管脚只有一个弱上拉作用,管脚上的高低电平才能被正确读到。否则,FET管导通的状况下,不论外部信号是高电平还是低电平,都会被导通的FET管拉低的。

单片机P0口作为输入,需要先置1吗?
P0作输入时不需要上拉电阻,但要先置1。因为P0口作一般I\/O口时上拉场效应管一直截止,所以如果不置1,下拉场效应管会导通,永远只能读到0。因此在输入前置1,使下拉场效应管截止,端口会处于高阻浮空状态,才可以正确读入数据。至于输出时,输出0是正常的,输出1时由于端口处于浮空状态不能正确输出1...