51單片機(jī)實(shí)現(xiàn)單鍵重復(fù)按鍵檢測
Copyright: 2013-07-27.version1.0
File name: key.c
Description: 自己做的單鍵識(shí)別實(shí)現(xiàn)重復(fù)按鍵功能
Author:
Version: version1.0
Date: 2013.7.27
History:無
*******************************************************/
#include
sbit key=P0^0;
int num=0;
/*************************************************
Function: delay_press()
Description: 鍵按下時(shí)的延時(shí)的功能
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: 延時(shí)的功能
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: 單鍵識(shí)別功能
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: 程序的主函數(shù)
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;
}
}
評論