C51 独立按键 个人笔记
2024-09-30 17:29:57
独立按键类似于一个开关,按下时开关闭合
防抖
硬件防抖
软件防抖
通过延时,滤掉抖动的部分
电路图
普中科技的开发板,独立按键电路图如下
判断按键按下
因此判断是否按下开关的方法是看引脚是否为低电平(按下则接地了)
独立按键控制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();
}
}
最新文章
- Linux安装MySQL
- JavaScript之毒瘤
- 嵌入式 fork与vfork的区别
- LOAD DATA INFILE – performance case study
- http错误码大全
- jQuery 的 $(";someobjectid”).event() 的绑定
- r个有标志的球放进n个不同的盒子里,要求无一空盒,问有多少种不同的分配方案?
- android edittext 点击回车会响应两次的解决方案
- 微信小程序开发之大坑记之post请求
- poj 3669 Meteor Shower(bfs)
- <;hdu - 3999>; The order of a Tree 水题 之 二叉搜索的数的先序输出
- Spring MVC之RequestMapping
- 框架学习:ibatis框架的结构和分析
- BZOJ_1101_[POI2007]Zap_莫比乌斯反演
- Jmeter简单回顾
- 传统HTML页面实现模块化加载
- JavaScript读取对象属性遇到的问题
- MySQL master-slave主从复制环境搭建初试
- [CTSC2006]歌唱王国
- Golang Vendor 包机制 及 注意事项
热门文章
- LoadRunner_11破解教程完整版
- synchronized(5)修饰语句块之:synchronized(XXX.class)
- zojDakar Rally(01背包)
- JDK11源码分析之集合类(一)----HashMap
- poj2718 Smallest Difference
- R in action读书笔记(7)-第七章:基本统计分析(下)
- SQL Server性能调优——报表数据库与业务数据库分离
- Node.js——post方式提交的图片如何保存
- PostgreSQL 数据库错误状态编号解释[附带列表
- 批处理 reg add /?