📄 button.c
字号:
/*------------------------------------------------------------------------
BUTTON.C
Fireware for XYYQ demo board
Copyright 2000 Xingyuan Instrument and equipment Co.,Ltd
-------------------------------------------------------------------------*/
#include <reg51.h>
#include "demo.h"
//=========================================================================
// send total scan bytes
//=========================================================================
BYTE sendTotal(void)
{
BYTE mark = 0,temp;
P2 = BIT37;
ShortDelay(5);
temp = P2;
temp &= BIT34;
if(temp == BIT34)
return mark;
else
return (~mark);
}
//=========================================================================
//check ENTER_DOWN button
//=========================================================================
BYTE checkButtonEnterDown(void)
{
BYTE mark =0,temp;
P2 = BIT17;
ShortDelay(5);
temp =P2;
temp &= BIT4;
if(temp ==BIT4)
return mark;
else
return(~mark);
}
//=========================================================================
//check ENTER_UP button
//=========================================================================
BYTE checkButtonEnterUp(void)
{
BYTE mark=0,temp;
P2 = BIT17;
ShortDelay(5);
temp = P2;
temp &= BIT3;
if(temp == BIT3)
return(mark);
else
return(~mark);
}
//=========================================================================
//check MNINUS button
//=========================================================================
BYTE checkButtonMns(void)
{
BYTE mark=0,temp;
P2 = 0xfd;
ShortDelay(5);
temp = P2;
temp &= BIT3;
if(temp ==BIT3)
return(mark);
else
return(~mark);
}
//=========================================================================
//check PLUS button
//=========================================================================
BYTE checkButtonPlus(void)
{
BYTE mark=0,temp;
P2 = 0xfd;
ShortDelay(5);
temp = P2;
temp &= BIT4;
if(temp ==BIT4)
return(mark);
else
return(~mark);
}
//=========================================================================
//checi SAVE button
//=========================================================================
BYTE checkButtonSave(void)
{
BYTE mark =0,temp;
P2 = 0xfb;
ShortDelay(5);
temp = P2;
temp &= BIT4;
if(temp == BIT4)
return mark;
else
return(~mark);
}
BYTE checkButtonReset(void)
{
BYTE mark =0,temp;
P2 = 0xfb;
ShortDelay(5);
temp = P2;
temp &= BIT3;
if(temp == BIT3)
return mark;
else
return(~mark);
}
//=========================================================================
//scan button and do function
//=========================================================================
void scanButton(void)
{
BYTE flag,FlagEnterDown=0,FlagPlus=0,FlagMns=0,FlagSave=0,FlagEnterUp=0;
BYTE flag_reset=0;
flag = sendTotal();
if(flag)
{
flag = sendTotal();
if(flag)
{
FlagEnterDown = checkButtonEnterDown();
if(~FlagEnterDown)
{
FlagPlus = checkButtonPlus();
if(~FlagPlus)
{
FlagMns = checkButtonMns();
if(~FlagMns)
{
FlagSave = checkButtonSave();
if(~FlagSave)
{
flag_reset= checkButtonReset();
if(~flag_reset)
FlagEnterUp = checkButtonEnterUp();
}
}
}
}
}
while(flag)
{
flag = sendTotal();
}
if(FlagEnterDown)
ButtonEnterDown();
else if(FlagPlus)
ButtonPlus();
else if(FlagMns)
ButtonMns();
else if(FlagSave)
ButtonSave();
else if(FlagEnterUp)
ButtonEnterUp();
else if(flag_reset)
reset_CPU();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -