c语言延时函数delay_单片机基础实验按键与C语言

什么叫消抖

按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,为了不产生这种现象而作的措施就是按键消抖。抖动时间的长短由按键的机械特性决定,一般为5ms~10ms。

d7d9c5db6c5306ef57458ea173ad25e6.png
按键在闭合和断开时,触点会存在抖动现象

if语句

if的一般形式:if(表达式){语句;} 先判断表达式是否为真,若为真则执行语句一,若不为真则跳出if语句。

if嵌套语句的一般形式:if(表达式1){语句1; if(表达式2){语句2;} } 先判断表达式1是否为真,若为假则直接结束if语句,若为真则执行语句1,然后判断表达式2是否为真,若为真则执行语句2,若为假跳出if语句。

如何判断按键是否按下

c3bb9d5b179b9c1df5f34ced3e904b5e.png
独立按键——由四个io口控制

原理:将四个io口都输入高电平1,当按键按下时,电路导通,io口接GND,所以io口的电平变成0

具体过程:1、先将四个io口赋值为1,P3=0x0f 2、如果要按下第一按键k1,则需判断P3.0是否变成低电平0,if(k1==0)//提前定义sbit k1=P3^0 3、 延迟十毫秒进行消抖delay(10)//这里的10是由delay函数决定的 4、再次判断k1是否仍然为0,若k1仍然为0,则说明不是干扰信号,而是按键被按下 5、点亮一个LED灯,直观的看出按键被按下的征兆。6、再判断一次按键是否被被松开

#include 

矩阵按键

d35f3bc2112bd209e55fd31d7a122b4e.png
矩阵按键——由8个io口控制

用扫描原理控制矩阵按键:通过行列扫描,我们可以先将P1.0~P1.3输出高电平。当接收到的数据,低四位不全为高电平时,说明有按键按下,然后通过接收的数据值,判断是哪一列有按键按下,然后再反过来,P1.4~P1.7输出高电平,然后根据接收到的的值判断是那一行有按键按下,这样就能够确定是哪一个按键按下了。

#include 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
以下是一个C语言延时函数的示例代码: ```c #include <stdint.h> // 包含相关的头文件,如stdint.h void Delay(uint32_t nCount) // 定义了一个没有返回值的函数,函数名为Delay,参数为一个32位无符号整数 { for(; nCount != 0; nCount--); // 使用for循环进行延时,递减nCount直到为0 } int main() { Delay(1000); // 调用延时函数,延时1000个机器周期 return 0; } ``` 在这个示例代码中,我们定义了一个名为Delay的函数,参数类型为uint32_t,即无符号32位整数。函数的主体是一个for循环,循环条件是nCount不等于0,每次循环nCount递减1,直到nCount为0时循环结束。这样就实现了一个简单的延时函数。在main函数中,我们调用了Delay函数,传入参数1000,表示延时1000个机器周期。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [51单片机C语言延时函数怎么定义和使用 - 全文](https://blog.csdn.net/weixin_39834205/article/details/116994191)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [延时函数编写](https://blog.csdn.net/luoyir1997/article/details/80053469)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值