电子产业一站式赋能平台

PCB联盟网

搜索
查看: 2032|回复: 2
收起左侧

单片机C语言实例-163-独立按键

[复制链接]
发表于 2022-1-28 17:17:28 | 显示全部楼层 |阅读模式
单片机C语言实例-163-独立按键

/********************************************************************
* 文件名  : 独立按键.c
* 描述    :  该程序实现独立按键去控制 LED灯 的亮灭,并讲诉了对按键的处理方法。
                         独立按键相应的IO口平时为高电平,一旦按键按下,单片机便检测到低电平。
                         按下P3.2,P0.0口对应的LED亮灭交替变化。
                         按下P3.3,P0.1口对应的LED亮灭交替变化。
                         按下P3.4,P0.2口对应的LED亮灭交替变化。
* 创建人  : 东流,2009年8月27日
* 版本号  : 1.0
***********************************************************************/
#include<reg52.h>
#define uchar unsigned char
#define uint  unsigned int

sbit KEY1 = P3^2;   
sbit KEY2 = P3^3;
sbit KEY3 = P3^4;

sbit LED1 = P0^0;
sbit LED2 = P0^1;
sbit LED3 = P0^2;

/********************************************************************
* 名称 : Delay()
* 功能 : 延时,延时时间为 10ms * del
* 输入 : del
* 输出 : 无
***********************************************************************/
void Delay(uint del)
{
        uint i,j;
        for(i=0; i<del; i++)
        for(j=0; j<1827; j++)   
        ;
}

/********************************************************************
* 名称 : Delay()
* 功能 : 实现按键功能,当按键按下时,相应的LED亮灭交替
* 输入 : 无
* 输出 : 无
***********************************************************************/
void KEY()
{
        if(KEY1==0 || KEY2==0 || KEY3==0)       
        {
                Delay(2);                   //20毫秒软件防抖
                if(KEY1 == 0)
                {
                        LED1 = !LED1;                //LED显示取反
                }
                else if(KEY2 == 0)
                {                       
                        LED2 = !LED2;
                }
                else
                {                       
                        LED3 = !LED3;
                }
                Delay(50);                        //延时0.5秒再进行下次按键的检测
        }       
}
/********************************************************************
* 名称 : Main()
* 功能 : 实现按键控制LED的亮灭
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
        while(1)
        {
                 KEY();
        }
}


更多详情参考附件文档
+08:00C428联盟网9003.png
游客,如果您要查看本帖隐藏内容请回复

回复

使用道具 举报

0

主题

26

帖子

97

积分

一级会员

Rank: 1

积分
97
发表于 2022-1-29 15:28:29 | 显示全部楼层
实现按键控制LED的亮灭
回复 支持 反对

使用道具 举报

0

主题

4

帖子

19

积分

一级会员

Rank: 1

积分
19
发表于 2022-1-31 00:24:32 | 显示全部楼层
谢谢大哥,先保存,感觉可能会有用

回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表