📄 独立按键.c
字号:
/********************************************************************
* 文件名 : 独立按键.c
* 描述 : 该程序实现独立按键去控制 LED灯 的亮灭,并讲叙了对按键的处理方法。
独立按键相应的IO口平时为高电平,一旦按键按下,IO口便被拉为低电平。
本程序相应的视频为”按键测试.exe”。
* 创建人 : 东流,2009年4月8日
* 版本号 : 2.0
* 技术支持论坛:www.zidh.com/bbs(请进入“赞助商板块”中的“东流电子工作室”)
* 感谢“中国自动化资讯网”对本工作室的大力支持。
***********************************************************************/
#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^2;
sbit LED2 = P0^1;
sbit LED3 = P0^0;
/********************************************************************
* 名称 : 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 || KEY2==0 || KEY3==0)
{
if(KEY1 == 0)
{
LED1 = ~ LED1;
}
else if(KEY2 == 0)
{
LED2 = ~ LED2;
}
else
{
LED3 = ~ LED3;
}
}
Delay(50); //延时0.5秒再进行下次按键的检测
}
}
/********************************************************************
* 名称 : Main()
* 功能 : 实现按键控制LED的亮灭
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Main(void)
{
P2 = 0x00;
P3 = 0xff;
while(1)
{
KEY();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -