第一句子大全,网罗天下好句子,好文章尽在本站!

如何在程序中编写按键的控制语句呢?

时间:2023-12-14

今天我们通过三个程序举例如何在程序中编写按键控制语句

友情提示:本文共有 1212 个字,阅读大概需要 3 分钟。

按键即微动开关,本身不能自锁。今天我们通过三个程序举例如何在程序中编写按键控制语句。

一、三个制作中用到的电路图以及元器件清单相同。

1.电路

“按键与LED”电路图

2.元器件清单

二、一键无锁控制LED

即按下LED点亮,放手LED熄灭。

1.程序设计(3.12.1)

#include //头文件

sbit LED=P1^0;//定义LED引脚

sbit KEY=P3^2;//定义按键引脚

void main()

{

while(1)

{

if(KEY==0)//判断按键是否按下

{

LED=0;//LED点亮

}

else

{

LED=1;//LED熄灭

}

}

}

2.程序解释

“if(KEY==0)”注意判断按键是否按下,要用“==”而不是“=”;如果按键按下,LED点亮,否则熄灭。

“==”与“=”有什么区别,如何正确使用。

用“==”用于判断语句,而“=”是赋值的含义,比如“LED=0;”将“0”赋值

三、一键自锁控制LED

按一下LED点亮,再按一下LED熄灭。

1.程序设计

#include //51头文件

sbit LED=P1^0;

sbit KEY=P3 ^ 2;

void main(void)

{

while(1)

{

if(KEY == 0)//判断按键状态

{

LED =~LED;//变化灯的状态

}

}

}

2.程序解释

“~”,取反的符号,如果原来是高电平,取反后就为低电平,原来是低电平取反后就是高电平。通过判断按键状态,不断取反操作而实现LED状态变化。

将程序下载后,你将发现,按键有时并不怎么听话,这个程序有问题,问题在哪儿?需要处理按键防抖。

3.C语言基础知识

按键防抖

当按下按键时,由于金属弹片的作用,不能很快闭合稳定,放开时也不能立刻断开,闭合稳定前后称为按键抖动,消除抖动可以通过程序或者硬件电路实现,通常通过程序完成。

按键抖动

如何用程序来实现呢?从上图中可以看出,当检测到按键状态变化,先延时一段时间(一般为10~20ms),绕开不稳定状态(前沿抖动),然后再检测一次按键状态,如果与前面检测的状态相同,说明已经进入“闭合稳定”。

4.改进程序

#include //头文件

sbit LED=P1^0;

sbit KEY=P3 ^ 2;

void delay(unsigned int a)

{

unsigned int i,j;

for(i=a;i>0;i--)

for(j=110;j>0;j--);

}

void main()

{

while(1)

{

if(KEY == 0)//判断按键状态

{

delay(20);//延时20ms

if(KEY == 0)//再次判断按键状态

{

LED =~LED;//变化灯的状态

while(KEY == 0);//等待按键松开

}

}

}

}

解释:

两次检测按键状态,确保按键真正按下。按键消除抖动程序非常重要,在设计按键控制的电路中,一定要加上消除抖动程序。“while(KEY==0);”该条语句是等待按键释放,检测到按键释放后,跳出循环体。

本文如果对你有帮助,请点赞收藏《如何在程序中编写按键的控制语句呢?》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(1)
  1. 武当山人2023-12-28 16:21武当山人[广东省网友]45.116.23.204
    在程序中编写按键控制语句可以通过使用特定的编程语言和库来实现,例如在Python中可以使用Pygame库来进行按键控制的编写。
    顶4踩0
相关阅读
海南专升本-《C语言程序设计》课程考试大纲

海南专升本-《C语言程序设计》课程考试大纲

...核目标:掌握程序设计的基本步骤和通用方法,提高通过编写程序解决实际问题的能力。其中:(1)基本要求:要求学生掌握C语言开发环境、掌握C语言基本语句、语法、数据类型、运算符和表达式,顺序、选择、循环结构程序...

2014-09-25 #经典句子

goto语句对程序的“可读性与可维护性”会引起了很大破坏作用

goto语句对程序的“可读性与可维护性”会引起了很大破坏作用

...分解成函数间调用,这样每一个函数变得足够简单,就好编写民了。通过这些措施,让一个复杂的程序分解成一个一个函数 ,在函数 内部又清淅的分出顺序、分支和循环的逻辑。这样就能够帮助程序员理解程序的算法逻辑,进...

2022-11-24 #经典句子

一个合格的.NET程序员 要会使用C#异常处理语句来提升用户体验

一个合格的.NET程序员 要会使用C#异常处理语句来提升用户体验

...常。下面使用Visual Studio 2019创建.NET控制台应用程序,并编写C#代码来讲解捕获异常和处理异常的情况。图1的C#代码,在编译上是100%编译通过的,代码上没有任何错误,在VS2019中生成结果如下:在图2中,C#编译器已经编译通过了...

2023-10-18 #经典句子

图说程序语言 暗言AI哲学:《异常》为什么这么有趣?

图说程序语言 暗言AI哲学:《异常》为什么这么有趣?

...器听得懂什么语言”而只需用“自己看得懂的语言”进行编写,但语句之间的逻辑关系仍旧是程序语言的逻辑,这与人们在日常生活中作为人的思维逻辑是有区别的。举一个题外的例子,画三角函数图。若手工作图,那么一般步...

2023-12-20 #经典句子

用Rust语言和编写windows原生程序

用Rust语言和编写windows原生程序

...持MIT或Apache双开源版权。内置生成的binding,无需再手动编写。Windows支持在Linux上构建。Win32 API的许多改进和修复,例如对数组类型,各种字符串类型和更新的元数据的支持。添加了对COM接口的更自然和惯用的支持,例如返回值...

2023-09-09 #经典句子

使用C语言编写程序对数据进行排序

使用C语言编写程序对数据进行排序

使用C语言编写程序对数据进行排序C语言是一种强大的编程软件,使用十分广泛,用户众多,也是学习其他语言的基础。我作为一个C语言忠实粉丝,以一些常见的C程序来剖析C语言的格式和结构,希望能够为广大初学者提供一点...

2009-06-29 #经典句子

优秀的程序员极少用break或者continue语句

优秀的程序员极少用break或者continue语句

...就是为什么含有break和continue的循环很难理解,它们靠“控制流”来描述“不做什么”,而“跳过做什么”,到最后你也没有搞清楚它到底“要做什么”。其实上面的代码其实完全可以摒弃continue:这种代码是一种更加“正面”地...

2023-06-26 #经典句子

@程序员 快来速取硬核的汇编语言知识大全!

@程序员 快来速取硬核的汇编语言知识大全!

... 只能运行本地代码(机器语言)程序,用 C 语言等高级语言编写的代码,需要经过编译器编译后,转换为本地代码才能够被 CPU 解释执行。但是本地代码的可读性非常差,所以需要使用一种能够直接读懂的语言来替换本地代码,那...

2023-01-23 #经典句子