波特律动
课程中心/51单片机教程/【05】按键切换小灯状态

【05】按键切换小灯状态


本课资源下载
3 个资源
P05按键切换小灯状态

本节课的标准源代码工程/可供参考

V1.0压缩包22 KB
下载
XL-1608SURC-06

LED红色(0603)

PDF 文档1.5 MB
预览下载
按键与流水灯

交互式原理图❇️

原理图

课程笔记


本节目标概括

创建工程 > 消抖的实现 > 消抖后反转小灯 >现象展示

通过学习板上的按键控制LED的亮灭,编译并下载程序到学习板,即可看到程序效果:

  • 按一下 KEY41,L0亮/灭翻转一次

1.创建工程

创建新工程 "P05按键切换小灯状态",并添加 main.c文件。

2. 编写代码按键控制小灯代码

按键按下和松开的瞬间都会产生一些电平抖动,单片机可能误解为多次按下与松开,因而我们可以通过短暂延时的方式,避开抖动。


避过抖动后再判断按键电平状态,如果是按下状态,则认为是一次正常的按下,如果是松开状态,则认为是由于松开时的抖动引起的触发,不予理睬。


main.c
C语言
1#include <STC89C5xRC.H>
2
3int main(){
4 while(1){
5 if(P24 == 0){
6 Delay20ms(); // 消抖 等待抖动消失
7 if(P24 == 0){
8 P00 = !P00;
9 while(P24 == 0);
10 }
11 }
12 }
13}

代码解释:

KEY41 按下,L0亮/灭翻转一次,然后等待按键释放(不等待会导致连续翻转)

3.现象展示