1、给P1口一个数据(假如接了发光二极管),二极管会亮,那就说明P1口产生了电平比如: MOV P1,#3FH
2、问题:书上说的,要测P1口引脚电平,需要让对应的引脚先置位,比如测P1.0口:
ORL P1, #01H ;先置位
MOV C, P1.0 ;再读接口
既然给P1口数据可以产生电平的话,那先置位再测还有什么用,那不明摆着变成高电平了吗,还怎么测啊 ?
请高手指点下,告诉我这个问题怎么理解...
=====================================
满意回答:
这是由引脚内部的结构所决定的。
在单片机的引脚输出低电平,引脚内部有一个强力下拉的电路,可使引脚稳定的输出低电平,引脚可承受的灌电流可达20mA(型号不同,也不尽相同);
在单片机的引脚输出高电平,引脚内部的上拉电路的作用很小,虽然可使引脚输出高电平,但是如果外接电路将引脚的电位拉低,读入时,将能读回0。
这就是所谓的“准双向口”。
要使用引脚输入时,应该先输出1,使引脚处于弱上拉的输入状态。
=====================================
其他回答:
楼主先搞清楚
ORL P1,#01H;置位
和MOV C,P1.0
这些语句的真正含义,再搞明白p1口的内部结构。
ORL P1,#01H是给p1的第0位赋1.此时1是写进p1第零位的锁存器里,把p1的第零个引脚和地断开。
MOV C,P1.0是从p1的第零个引脚读数,把结果赋给C。
要理解这个区别,就要明白p1口的内部结构。因为p1口的场效应管一端接地,一端与外部引脚相连,由p1的锁存器控制,当给锁存器写1时,它和地断开,写0时和地相连,所以写零时读到的总是低电平。
试想你现在要读p1引脚,按理说p1与外部电路相连,外部电路的是什么状态,就应该读到什么,但如果p1口的场效应管接地的话,它会把p1口电位拉低,你读到的总是低电平0,所以要先给p1写FFH,把p10的场效应管和地断开,再读数时就是真实状态了。当外部电路断开,再读时读到的就是p0端口(锁存器)的真实状态了。