第9章 按键实验

不想看《跟着Hugh学开发--51单片机篇》pdf版本?没关系,网页版 markdown 格式为你准好了!

第9章 按键实验

前面几章讲解的都是把 I/O 口当成输出管脚使用,本章将通过按键实验学习 I/O 口的输入功能。按键作为一种输入设备,在实际应用中非常的广泛。根据按键的使用原理不同分为独立按键和矩阵按键,本章将详细介绍这两种按键的使用。

9.1按键原理

独立按键的原理非常简单,如下图所示:

图 9-1 独立按键原理图

如图所示, K1 ~K3 共3个按键分别与单片机的 P10 ~P12 管脚连接。例如,当按下按键 K1 后, P10 管脚为低电平,在单片机中通过检测 P10 管脚是否为低电平,便可知道 K1 是否按下。按键在电路板位置如下图所示:

图 9-2 三个按键位置布局

细心的朋友可能会发现, K1~K3 和 LED 小灯 D0~D2 共用了单片机的 I/O 口 P10~P12。当你按下按键时,相当于将 I/O 口拉为低电平。因此,你分别按下按键 K1~K3 时, D0~D2 将点亮。

9.2按键电路软件设计

本章的按键试验功能很简单,即按下按键 K1 时,蜂鸣器发出报警声,编写代码如下:

/*******************************************************************
*
* ******************************************************************
* 【主芯片】:STC89SC52/STC12C5A60S2
* 【主频率】: 11.0592MHz
* 【版  本】: V1.0
* 【作  者】: hugh
* 【网  站】: https://rymcu.com
* 【邮  箱】: hugh\@rymcu.com
* 【店  铺】: rymcu.taobao.com
* 【版  权】All Rights Reserved
* 【声  明】此程序仅用于学习与参考,引用请注明版权和作者信息!
* 【功  能】按键试验
*******************************************************************/
#include <reg52.h>  
 
sbit FM = P0^0;// 蜂鸣器管脚位定义
sbit K1 = P1^0;// 独立按键管脚定义


void main()
{
    while(1)
    {
        if(K1==0)
        {
            FM =0;// 按键按下,蜂鸣器报警
        }
        else
        {
            FM =1;// 按键未按下,停止报警
        }
    }
}

图 9-3 按键试验

按下按键 K1,蜂鸣器将报警,弹起按键,蜂鸣器停止报警。

9.3下载验证

本节首次介绍了单片机 IO 口的输入功能。