51单片机实现单键重复按键检测
2013-07-27 18:08
211 查看
/*****************************************************************************
Copyright: 2013-07-27.version1.0
File name: key.c
Description: 自己做的单键识别实现重复按键功能
Author:
Version: version1.0
Date: 2013.7.27
History: 无
*******************************************************/
#include <reg51.h>
sbit key=P0^0;
int num=0;
/*************************************************
Function: delay_press()
Description: 键按下时的延时的功能
Calls: 无
Called By: key_test()
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: 1->按下
0->松开
Others: 无
*************************************************/
int delay_press(void)
{
int press=1;
int i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
press=1;
press=0;
return press;
}
/*************************************************
Function: delay()
Description: 延时的功能
Calls: 无
Called By: key_test()
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: void
Others: 无
*************************************************/
void delay(void)
{
int i,j;
for(j=0;j<25;j++)
for(i=0;i<25;i++);
}
/*************************************************
Function: key_test()
Description: 单键识别功能
Calls: delay()
Called By: main()
Table Accessed: 无
Table Updated: 无
Input: void
Output: num,按键按一次num自加一
Return: void
Others: 无
*************************************************/
void key_test(void)
{
if(!key)
{
delay();
if(!key)
{
num++;
if(num>255)
num=0;
}
}while(delay_press());
}
/*************************************************
Function: main()
Description: 程序的主函数
Calls: key_test()
Called By: 无
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: void
Others: 无
*************************************************/
void main(void)
{
//int i;
while(1)
{
key_test();
P2=~num;
}
}
Copyright: 2013-07-27.version1.0
File name: key.c
Description: 自己做的单键识别实现重复按键功能
Author:
Version: version1.0
Date: 2013.7.27
History: 无
*******************************************************/
#include <reg51.h>
sbit key=P0^0;
int num=0;
/*************************************************
Function: delay_press()
Description: 键按下时的延时的功能
Calls: 无
Called By: key_test()
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: 1->按下
0->松开
Others: 无
*************************************************/
int delay_press(void)
{
int press=1;
int i,j;
for(i=0;i<255;i++)
for(j=0;j<255;j++)
press=1;
press=0;
return press;
}
/*************************************************
Function: delay()
Description: 延时的功能
Calls: 无
Called By: key_test()
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: void
Others: 无
*************************************************/
void delay(void)
{
int i,j;
for(j=0;j<25;j++)
for(i=0;i<25;i++);
}
/*************************************************
Function: key_test()
Description: 单键识别功能
Calls: delay()
Called By: main()
Table Accessed: 无
Table Updated: 无
Input: void
Output: num,按键按一次num自加一
Return: void
Others: 无
*************************************************/
void key_test(void)
{
if(!key)
{
delay();
if(!key)
{
num++;
if(num>255)
num=0;
}
}while(delay_press());
}
/*************************************************
Function: main()
Description: 程序的主函数
Calls: key_test()
Called By: 无
Table Accessed: 无
Table Updated: 无
Input: void
Output: 无
Return: void
Others: 无
*************************************************/
void main(void)
{
//int i;
while(1)
{
key_test();
P2=~num;
}
}
相关文章推荐
- 单线程中实现while循环中检测按键退出
- 如何让程序检测你的按键,实现WEB热键功能呢?
- 实现检测系统按键和模拟系统按键
- pygame中使用事件扫描实现对按键的检测以及小游戏的编写
- 检测按键(Linux中kbhit()函数的实现)
- Python实现检测文件的MD5值来查找重复文件
- UE4实现按键双击检测
- 第六节:在主函数中利用累计主循环次数来实现独立按键的检测
- input输入系统中是如何实现按键重复
- linux下面实现检测按键(Linux中kbhit()函数的实现)
- 51单片机STC89C52 独立按键检测
- 51单片机入门之七:按键检测
- 用Python实现通过哈希算法检测图片重复的教程
- 第七节:在主函数中利用累计定时中断的次数来实现独立按键的检测
- 深度学习之《社交网络问答系统-问题重复检测任务》实现
- 基于51单片机的按键控制超声波测距及显示(带提示音)的实现
- 51单片机STC89C52 4个独立按键的检测
- 51单片机外设之——按键的检测(快速识别)
- 检测重复文件功能实现(改进版本1)
- 发一个用状态机实现的按键检测是VERILOG代码