原理
原理图
例程1
#ifndef __KEY_H__
#define __KEY_H__
unsigned char Key();
#endif
#include <STC89C5xRC.H>
#include "delay.h"
/**
* @brief 获取独立按键键码
* @param 无
* @retval 返回键码。范围:0~4,无按键按下返回0
*/
unsigned char Key()
{
unsigned char Keynumber = 0;
//如果P31的IO口有按键按下,就延时20ms消抖,如果按键还是按下,就死循环,松开按键时,再次消抖,就跳出循环,就表示该按键按下一次。
if(P31 == 0) {Delayms(20); while(P31 == 0); Delayms(20); Keynumber = 1;}
if(P30 == 0) {Delayms(20); while(P30 == 0); Delayms(20); Keynumber = 2;}
if(P32 == 0) {Delayms(20); while(P32 == 0); Delayms(20); Keynumber = 3;}
if(P33 == 0) {Delayms(20); while(P33 == 0); Delayms(20); Keynumber = 4;}
return Keynumber;
}