因为你没说用的是什么型号的单片机,所以我只能这样回答你:对于准双向I/O,P2.1这根口线接不接R1照样能检测到高电平,因为准双向I/O作为输入时就是高电平。但对于双向I/O,如果这根口线被配置为输入,不加上这个上拉电阻,I/O口的电平就会出现不确定状态。至于为什么P2.1不直接接到5V电源,原因是:如果编写的程序出了问题,或程序运行中受干扰跑飞了,把原先配置为输入的P2.1改变成输出且将P2.1拉低,问题就出来了,这根口线将灌入超过极限参数的电流,岂不单片机就有危险了吗。还有10K电阻问题,用其它的阻值也可以,比如4.7K或15K,只要不超过单片机所能承受的电流,又能确实保证单片机所能识别的逻辑电平,不需要精确的计算。希望我的回答能帮你解除困惑。
设计单片机控制系统的关健是“抗干扰”。作为输入口使用的时候P2.1直接接上+5V电源是可行的而且“抗干扰”性能最好,但是若作为输出时就会烧坏单片机了所以要加一个限流电阻。
P2.1口内部有上拉电阻为何还要加个外接上拉呢?单片机内部的上拉电阻大约为100K,电流0.05毫安左右,这么小的电流很容易被“干扰”成低电平,接上10K电阻电流可达到0.5毫安“抗干扰”性能大大提高。
这个图是检测P2.1引脚的低电平
上拉电阻是为了P2.1引脚低电平变为高电平时加快速度
我手里就8.2K和7.5K的电阻多,所以,我的制作都是8.2K的上拉电阻;等8.2K的用光了,我就用7.5K的。