C51编程4-输入电平(独立按键)

      I/O口,I代表Inpout,O代表Output。前面的所讲的点亮LED,是单片机输出高低电平,从而达到控制LED;这一讲将会通过按键输入电平,单片机检测到输入高低电平,将会有对应的动作。

    STC89C52的输入电平识别。

    

独立按键

    按键的一端接单片的I/O口,另一端接GND或者VCC(接VCC的时候需要注意,电压是需要单片机能够识别的输入的电压。) ,下图是接GND的连接方式。 

 

   

     当独立按键按下时,高低电平(VCC或者GND)会直接到达I/O口,此时单片机可以检测到该I/O口是高电平(1)或者低电平(0),然后做独立按键被按下的对应处理。

 

    现在有一个功能需求,当按下按键时LED被点亮,手松开时LED熄灭。代码应该如何写呢?

#include "reg52.h"  
//引入头文件
sbit led1 = P2^0;   
//位定义led1,可以直接通过位控制led亮灭
sbit key1 = P3^1;   
//位定义key1,可以通过位控制检测该I/O口的状态
void main() { 
    //循环
    while(1) {
        if(key1==0) {  //判断I/O口状态,如果为0
            led1 = 0;    //点亮Lled
        }
        else {
            led1 = 1;   //熄灭led
        }
    }
}

    总结:独立按键一端连接I/O口,另一端连接GND或者VCC,当按键被按下GND或者VCC的电平直接到I/O口。通过检测I/O口电压可以判断按键是否被按下,进而触发不同的程序行为。

 

 

---------------------------------------------------------

如果觉得文章还不错,那就扫码关注吧!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颖川初尘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值