52单片机io口可以通过赋值语句将低电平变成高电平吗

如题所述

52单片机可以通过赋值将低电平变成高电平,但是这只限于io口仅作为输出(即将值写入io口)的状态下。
当io口用于输入(即要读该口的值)时,一般也要先将该端口值赋1,此时才能接受低电平的输入,这时若外部电路拉低,该io口将输入低电平,不拉低则视为输入高电平。
键盘检测就是利用这一原理,先将该口赋1,再读该口的值给一个变量,若读回的数值和原先赋给io口的数值不同,则证明该口被拉低了,即有键盘按下。
希望我的回答对你有所帮助!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-14
I/O端口是否可以通过赋值语句将低电平变为高电平,分为以下2种情况:
1、如果该I/O端口是输出端口(相对于单片机来说),那么是可以通过赋值语句将低电平变为高电平的;
2、如果该I/O端口是输入端口(相对于单片机来说),那么就是外围电路的信号进入单片机,所以就不能通过赋值语句将低电平变为高电平,只能进行数据的接收。
第2个回答  2011-08-20
当然可以呀。上电复位,单片机的I/O口是高电平,如果你需要检查的输入信号是高电平的话先把端口赋值成低电平然后再检测有没有高电平。
第3个回答  2015-11-01
直接向IO口输出1或者0就可以改变其高低电平
第4个回答  2011-08-20
可以的;
先定义
sbit a=P1^2;
然后在主程序中写:
a=1;
就好了追问

那在扫描键盘的时候 比如用
p3口接键盘,有两条语句是P3=0xfe;
temp=P3;
temp的值不就一直都是0xfe吗,怎么检测到键盘被按下去了呢

追答

http://wenku.baidu.com/view/31d9760202020740be1e9bfb.html
可以参考一下

相似回答