这是头文件
#ifndef _key_single_H
#define _key_single_H
#include “STC8A.H”
#define OKKey 3
#define SelKey 2
#define AddKey 0
#define SubKey 1
#define NoKey 100
sbit key0=P1^0;
sbit key1=P1^1;
sbit key2=P1^2;
sbit key3=P1^3;
int KeyScan(void);
#endif
//这是C文件,注意延时的时间,在这个程序是对的,在其他场合需要自己调节,延时去抖动。因为是IT的工作模式。
#include “key_single.h”
#include “myfun.h”
int KeyScan(void)
{
if(key00)
{
delay100ms(); delay35ms();
if(key00)
{delay35ms();
if(key00)
return AddKey;
}
else return NoKey;
}
else if(key10)
{
delay100ms();delay35ms();
if(key10)
{delay35ms();
if(key10)
return SubKey;
}
else return NoKey;
}
else if(key20)
{
delay100ms(); delay35ms();
if(key20)
{delay35ms();
if(key20)
return SelKey;
}
else return NoKey;
}
else if(key30)
{
delay100ms();delay35ms();
if(key3==0)
{
delay35ms();
if(key3==0)
return OKKey;
}
else return NoKey;
}
else
return NoKey;
}