当前位置: 首页 > news >正文

单片机学习10——独立按键

独立按键输入检测:

#include<reg52.h>sbit LED1=P1^0;
sbit KEY1=P3^4;void main()
{KEY1=1;while(1){if(KEY1==0)	 //KEY1按下{LED1=0;	 //LED1被点亮}else{LED1=1;}}
}

按键

#include<reg52.h>#define uchar unsigned char
#define uint unsigned intsbit LED1=P1^0;
sbit KEY1=P3^4;sbit dula=P2^6;
sbit wela=P2^7;uchar disnum;uchar code table_duan[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};void main()
{P0=0xfe;wela=1;wela=0;KEY1=1;while(1){if(KEY1==0)	 //KEY1按下{LED1=0;	 //LED1被点亮disnum++;if(disnum==10){disnum=0;}while(!KEY1);  //重要}else{LED1=1;P0=table_duan[disnum];dula=1;dula=0;}}
}

按键在闭合和断开的时候,触电会存在抖动的现象:

 

按键抖动时间是由按键的机械特性决定:

一般为5ms到10ms之间。

按键前沿抖动消除和按键后延抖动的消除:

#include<reg52.h>#define uchar unsigned char
#define uint unsigned intsbit LED1=P1^0;
sbit KEY1=P3^4;sbit dula=P2^6;
sbit wela=P2^7;uchar disnum;uchar code table_duan[]={
0x3f,0x06,0x5b,0x4f,0x66,0x6d,
0x7d,0x07,0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};void delay(uchar);void main()
{P0=0xfe;wela=1;wela=0;KEY1=1;while(1){if(KEY1==0)	 //KEY1按下{delay(10);    //按键前沿抖动的消除if(KEY1==0)   //按键前沿抖动的消除{LED1=0;	 //LED1被点亮disnum++;if(disnum==10){disnum=0;}while(!KEY1);  //重要delay(10);	   //按键后延抖动的消除while(!KEY1);  //按键后延抖动的消除}		 	}else{LED1=1;P0=table_duan[disnum];dula=1;dula=0;}}
}void delay(uchar x)
{uchar a, b;for(a=x;a>0;a--){for(b=200;b>0;b--);}	
}

在代码中增加了延时和判断的代码来消除按键抖动的问题。

然后测试,可以看到数码管的数字显示非常稳定。

http://www.lryc.cn/news/246013.html

相关文章:

  • 微服务系列(三)--通过spring cloud zuul过滤器实现线上流量复制
  • 微信小程序image组件图片设置最大宽度 宽高自适应
  • 虚幻学习笔记—文本内容处理
  • WhatsApp API号解封教程(内含图片指引和申诉模板)
  • 爬取极简壁纸
  • docker操作手册
  • css Vue尺子样式
  • C++ 数据结构之-最小栈(MinStack)
  • 【日常总结】优雅升级Swagger 2 升至 3.0, 全局设置 content-type application/json
  • 2023.11.27如何使用内网穿透工具实现Java远程连接操作本地Elasticsearch搜索引擎
  • HNU 练习八 结构体编程题1. 评委打分
  • 数据结构:字典树(前缀树,Trie树),压缩字典树(Radix)
  • 前端学习系列之html
  • Star History 十月开源精选 |AI for Postgres
  • 网络运维与网络安全 学习笔记2023.11.23
  • 红黑树(万字图文详解)
  • Kotlin学习——kt入门合集博客 kt里的委派模式Delegation kt里的特性
  • 数据挖掘 朴素贝叶斯
  • UI自动化测试工具有哪些优势?
  • 【论文阅读笔记】InstructDiffusion: A Generalist Modeling Interface for Vision Tasks
  • 笔记62:注意力汇聚 --- Nadaraya_Watson 核回归
  • 给定一个n×n的方阵,本题要求计算该矩阵除副对角线、最后一列和最后一行以外的所有元素之和。
  • Go语言的学习笔记3——Go语言项目布局
  • 70-76-堆、贪心算法
  • Qt Network
  • Win10电脑用U盘重装系统的步骤
  • 安防视频监控/磁盘阵列/集中云存储平台EasyCVR设备录像保活不生效原因是什么?该如何解决?
  • 【JDK21】详解虚拟线程
  • UE5 - 虚幻引擎各模块流程图
  • vue3实现element table缓存滚动条