独立按键类似于一个开关,按下时开关闭合

防抖

硬件防抖

软件防抖

通过延时,滤掉抖动的部分

电路图

普中科技的开发板,独立按键电路图如下

判断按键按下

因此判断是否按下开关的方法是看引脚是否为低电平(按下则接地了)

独立按键控制led和蜂鸣器代码

#include <reg51.h>
typedef unsigned int u16;
typedef unsigned char u8;
#define delaytime 500000
sbit led = P0^0;
sbit k1 = P1^0;
sbit beep = P0^7; void delay(u16 i)
{
while(i--);
}
void ring()
{
beep=~beep;
delay(200);
}
void keypros()
{
if(k1==0) //按键按下
{
delay(1000); //过十毫秒 (防抖)
if(k1==0) //还是按下了
{
led = ~led; }
// 确保一次按键只调用一次keypros
while(!k1)
{
ring();
} //按键按下时一直在此处循环,松开时离开,
}
}
void main(void)
{
led = 0; //led is off by default
while(1)
{
keypros();
}
}

最新文章

  1. Linux安装MySQL
  2. JavaScript之毒瘤
  3. 嵌入式 fork与vfork的区别
  4. LOAD DATA INFILE – performance case study
  5. http错误码大全
  6. jQuery 的 $(&quot;someobjectid”).event() 的绑定
  7. r个有标志的球放进n个不同的盒子里,要求无一空盒,问有多少种不同的分配方案?
  8. android edittext 点击回车会响应两次的解决方案
  9. 微信小程序开发之大坑记之post请求
  10. poj 3669 Meteor Shower(bfs)
  11. &lt;hdu - 3999&gt; The order of a Tree 水题 之 二叉搜索的数的先序输出
  12. Spring MVC之RequestMapping
  13. 框架学习:ibatis框架的结构和分析
  14. BZOJ_1101_[POI2007]Zap_莫比乌斯反演
  15. Jmeter简单回顾
  16. 传统HTML页面实现模块化加载
  17. JavaScript读取对象属性遇到的问题
  18. MySQL master-slave主从复制环境搭建初试
  19. [CTSC2006]歌唱王国
  20. Golang Vendor 包机制 及 注意事项

热门文章

  1. LoadRunner_11破解教程完整版
  2. synchronized(5)修饰语句块之:synchronized(XXX.class)
  3. zojDakar Rally(01背包)
  4. JDK11源码分析之集合类(一)----HashMap
  5. poj2718 Smallest Difference
  6. R in action读书笔记(7)-第七章:基本统计分析(下)
  7. SQL Server性能调优——报表数据库与业务数据库分离
  8. Node.js——post方式提交的图片如何保存
  9. PostgreSQL 数据库错误状态编号解释[附带列表
  10. 批处理 reg add /?