典型单片机的I/0口都是准双向口,既能够当输出口也能够当输进口。具体操作时,咱们将数据写出I/0口便是将它当作输出口运用;假如在程序中直接调用当时I/0口的状况,给咱们界说的变量赋值或用于逻辑判别、分支操控等操作,便是将它当作输进口运用。
下图是运用P2.0口读取按键操控的电路。
从下图中可见,在该电路中P2.0口是输入使用。当按键没有按下时+5V经过上拉电阻R1接到P2.0,这时P2.0口的电压是+5V,即逻辑“1”:假如按键被按下,P2.0经过按键接到电源地,这时P2.0口的电压是OV,即逻辑“0”。
综上所述,不按键时P2.0的状况是“1”;按键时P2.0的状况是“0”。
假如没有电阻R1,当按键接下时+5V电源会经过按键被短路到地,严峻时会损坏电源,这是肯定不允许的。
假定单片机一起衔接上图和下图的电路,用P2.0做输进口,读取按键:用P3.4操控蜂鸣器。写一个程序,当按键按下时蜂鸣器鸣响,按键没有按下时蜂鸣器中止鸣响,程序如下:
#include
sbitBuzzer=P3^4;sbitKey=P2^0;//【注1】
//主程序voiDMAin(void){for(;;){if(Key==0){//【注2】
Buzzer=0;//按键被按下,蜂鸣器鸣响}
else{Buzzer=1;//按键没有按下,蜂鸣器中止鸣响}
}
【注1】:将位变量Key界说为单片机P2.0口,今后对变量Key的操作便是对P2.0口的操作;
【注2】:条件句子,直接用Key的状况(即P2.0口的状况】来操控程序的运转。假如按键被按下P2.0的状况为0,Key=0为真,程序履行Buzzer=0,这时蜂鸣器鸣响;假如按键没有按下,P2.0的状况为1,Key=0为假,程序履行Buzzer=1,蜂鸣器中止鸣响。