📄 main.c
字号:
}
buttonflag=1;
}
}
}
}
//===================================================================
void PQiPaoSet()
{
bit qipaodisplayflag;
uchar gewei;
uchar shiwei;
uchar baiwei;
uchar qipao1copy,qipao2copy;
qipaodisplayflag=0;
qipao1copy=0;
qipao2copy=0;
if(qipao>2)
qipao=2;
Displayonebmp3(4,200,26,20,Bmp007);//显示气泡灵敏度调节
Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
Displayonebmp3(3,24,11,39,Bmp046); //显示”低“
Displayonebmp3(3,24,11,108,Bmp047);//显示”中“
Displayonebmp3(3,24,11,177,Bmp048);//显示”高“
//------显示气泡值---------------------
switch(qipao)
{
case 0: DisplayOn(14,33,17,69); break;
case 1: DisplayOn(14,102,20,138); break;
case 2: DisplayOn(14,171,23,207); break;
default: break;
}
while(1)
{
if(qipaodisplayflag==1)
{
GetsAdData();
if(qipao1copy!=Adqipao1)
{
qipao1copy=Adqipao1;
gewei=Adqipao1%10;
shiwei=Adqipao1/10;
shiwei%=10;
baiwei=Adqipao1/100;
baiwei%=10;
Displayyedichar(8,58,baiwei); //显示气泡值
Displayyedichar(8,70,shiwei); //显示气泡值
Displayyedichar(8,82,gewei); //显示气泡值
}
if(qipao2copy!=Adqipao2)
{
qipao2copy=Adqipao2;
gewei=Adqipao2%10;
shiwei=Adqipao2/10;
shiwei%=10;
baiwei=Adqipao2/100;
baiwei%=10;
Displayyedichar(8,154,baiwei); //显示气泡值
Displayyedichar(8,166,shiwei); //显示气泡值
Displayyedichar(8,178,gewei); //显示气泡值
}
}
CLRWDT;
if(KeyOn)
{
KeyOn=0; //button flag clear zero
if(buttonflag==0)
{
sound=1;
if(KeyData==SELECT) //如果为设置键则跳出设置
{
Display2(2);
break;
}
if(KeyData==ZHUHE)
{
qipaodisplayflag=1;
}
//------参数调整-----------
if((KeyData==INC)|(KeyData==DEC))
{
Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
if(KeyData==INC) //判断是否是增加键
qipao++;
if(KeyData==DEC) //判断是否是减少键
qipao--;
if(qipao>250)
qipao=0;
if(qipao>2)
qipao=2;
Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
switch(qipao)
{
case 0: DisplayOn(14,33,17,69); break;
case 1: DisplayOn(14,102,20,138); break;
case 2: DisplayOn(14,171,23,207); break;
default: break;
}
}
buttonflag=1;
}
}
}
}
//===================================================================
void PYaLiSet()
{
bit yalidisplayflag;
uchar gewei;
uchar shiwei;
uchar baiwei;
uchar yalicopy;
yalidisplayflag=0;
yalicopy=0;
if(yali>3)
yali=2;
Displayonebmp3(4,198,26,21,Bmp013);//显示阻塞灵敏度调节
Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
Displayonebmp3(3,24,11,39,Bmp046); //显示”低“
Displayonebmp3(3,24,11,108,Bmp047);//显示”中“
Displayonebmp3(3,24,11,177,Bmp048);//显示”高“
switch(yali)
{
case 0: DisplayOn(14,33,17,69); break;
case 1: DisplayOn(14,102,20,138); break;
case 2: DisplayOn(14,171,23,207); break;
default: break;
}
while(1)
{
if(yalidisplayflag==1)
{
GetsAdData();
if(yalicopy!=Adyali)
{
yalicopy=Adyali;
gewei=Adyali%10;
shiwei=Adyali/10;
shiwei%=10;
baiwei=Adyali/100;
baiwei%=10;
Displayyedichar(8,102,baiwei); //显示压力值
Displayyedichar(8,114,shiwei); //显示压力值
Displayyedichar(8,126,gewei); //显示压力值
}
}
CLRWDT;
if(KeyOn)
{
KeyOn=0; //button flag clear zero
if(buttonflag==0)
{
sound=1;
if(KeyData==SELECT) //如果为设置键则跳出设置
{
Display2(3);
break;
}
if(KeyData==ZHUHE)
{
yalidisplayflag=1;
}
//------参数调整-----------
if((KeyData==INC)|(KeyData==DEC))
{
Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
if(KeyData==INC) //判断是否是增加键
yali++;
if(KeyData==DEC) //判断是否是减少键
yali--;
if(yali>250)
yali=0;
if(yali>2)
yali=2;
Displayonebmp3(3,36,14,33,Bmp043); //显示气泡值符号
Displayonebmp3(6,36,14,102,Bmp044);//显示气泡值符号
Displayonebmp3(9,36,14,171,Bmp045);//显示气泡值符号
switch(yali)
{
case 0: DisplayOn(14,33,17,69); break;
case 1: DisplayOn(14,102,20,138); break;
case 2: DisplayOn(14,171,23,207); break;
default: break;
}
}
buttonflag=1;
}
}
}
}
/********************************************************************
* 名称: PSetDataUp(uchar a)
* 功能: 各路参数调整
* 调用:
* 输入: a为调整哪一路参数值
* 说明:
* 返回值:无
***********************************************************************/
void PSetDataUp(uchar a)
{
LcmClear();
CLRWDT;
extbmp(33,10,Bmp166);//显示警示标志
Displayonebmp3(4,104,33,78,Bmp019);//显示调试状态
Displayonebmp3(4,178,4,31,Bmp036);//显示减少-0-增加
Displayonebmp3(3,172,0,34,Bmp037);//显示请按+和-键调节!
if((mode==1)&&(a==1))
{
YeDiJingDuSet();
goto PSetDataUpback;
}
//------对各参数值校正---------
CLRWDT;
switch(a)
{
case 1: PJingDuSet(); break;
case 2: PQiPaoSet(); break;
case 3: PYaLiSet(); break;
default: break;
}
PSetDataUpback:{};
}
//================参数校正函数==================
void ParameterSet()
{
uchar PSetData;
PSetData=1;
Display2(1);
while(1)
{CLRWDT;
if(clrcount>250) //按住调试键超过5S退出调试状态
{
buttoncount=0;
JingDuSet();
LcmClear();
CLRWDT;
hourdata=hourdata2;
minutedata=minutedata2;
seconddata=seconddata2;
cumulatedata=cumulatedata2;
Display1(1);//显示待机
Display3();//显示输液值
WriteEeprom(&jingdudata,4,1);
//WriteEeprom(&jingducudata,5,1);
WriteEeprom(&qipao,6,1);
WriteEeprom(&yali,7,1);
break;
}
//===============按键判断============================
if(KeyOn)
{
KeyOn=0; //button flag clear zero
if(KeyRepeatFlag==0)
{
sound=1;
KeyAgain();
}
if(buttonflag==0)
{
switch(KeyData)
{
case SELECT: PSetDataUp(PSetData); break;
case INC: buttonflag=1;PSetData--; break;
case DEC: buttonflag=1;PSetData++; break;
case CLR: clrflag=1; break;
default: buttonflag=1; break;
}
//---------圆点轮回显示-----------
if(PSetData>3)
PSetData=1;
if(PSetData==0)
PSetData=3;
if((KeyData==INC)||(KeyData==DEC))
{
DisplayClear(3,20,25,25); //清圆点
DisplayClear(3,20,20,25); //清圆点
DisplayClear(3,20,15,25); //清圆点
switch(PSetData)
{
case 1: Displayonebmp(25,25,Bmp110); break;
case 2: Displayonebmp(20,25,Bmp110); break;
case 3: Displayonebmp(15,25,Bmp110); break;
default: break;
}
}
}
}
}//while
}
/********************************************************************
* 名称: void ClrKey();
* 功能: 短按总输液量清零,长按5秒后进入参数设置
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************bbb************/
void ClrKey()
{
buttonflag=1;
while(buttonflag==1)
{
CLRWDT;
if(KeyData==CLR)
{
hourdata2=hourdata;
minutedata2=minutedata;
seconddata2=seconddata;
cumulatedata2=cumulatedata;
second1=0;
minute1=0;
hour1=0;
hourdata=0;
minutedata=0;
seconddata=0;
cumulatedata=0;
second1=0;
minute1=0;
hour1=0;
if(buttoncount>250)
{
buttoncount=0;
ParameterSet(); //参数校正函数
break;
}
}
}
KeyOn=0;
JingDuSet();
Display1(1);
if(selectdata!=3)
Display3();
}
/**********************************************************************
* 名称: void StartKey();
* 功能: 运行键处理程序
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void StartKey()
{
if(StartFlag==0)
{
qipaofirstvalue1=Adqipao1;
qipaofirstvalue2=Adqipao2;
if(shudu.b!=0)
{
STOPFLAG=0;
LEDSUBFF=GLED1;
LEDSUBFF|=STOPLEDOFF;
HC164(LEDSUBFF);
KvoFlag=0; //
StartFlag=1;
if(selectdata==3)
{
DisplayClear(15,240,2,0);
selectdata=4;
}
CLRWDT;
Display1(3);
CLRWDT;
cumulate=cumulatedata;
second=seconddata;
minute=minutedata;
hour=hourdata;
Display3();
CLRWDT;
}
}
else
{
if(shudu.b<11)
{
if(StartOnFlag==1) //短时内是否有启动键按下标志
{
QuickRunFlag=1; //冲洗标志置1
StartOnFlag=0;
quickruncount=0;//清计数器,防止第二次按冲洗无效(间隔时间短)
goto startback;
}
}
}
StartOnFlag=1;
startback:
{;}
}
/********************************************************************
* 名称: void StopKey();
* 功能: 运行键处理程序
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void StopKey()
{
if(StartFlag==1)
{
StartFlag=0;
Display1(1);
}
cumulatedata=cumulate;
seconddata=second;
minutedata=minute;
hourdata=hour;
second1=0;
minute1=0;
hour1=0;
EX1=1; //开外部中断1
Ex0Count=0;
led=0; //指示灯从第一个开始亮
KvoFlag=0;
StopMotor(); //切断电机供电电路
if(warnflag==1)
{
warndata=0;
LcmClear();
CLRWDT;
Display1(1);
Display3();
warnflag=0; //消报警界面
MovFlag=0;
}
STOPFLAG=1;
LEDSUBFF=GFLED;
LEDSUBFF&=STOPLEDON;
HC164(LEDSUBFF);
yaliseton=0;
yedicountl=0;
yedicounth=0;
QIPAO1FLAG=1;
qipao2hiflag=0;
qipao2hicount=0;
}
void InccKey()
{
buttonflag=1;
while(buttonflag==1)//等待按键释放
{
CLRWDT;
if(YEDIFlag==1)
{
if(KeyData==INCC)
{
/*if(buttoncount>250)
{
buttoncount=0;
YYYFLAG=!YYYFLAG;
if(YYYFLAG==1)
extbmp(33,92,Bmp173); //显示营养液输液
else
extbmp(33,92,Bmp105); //显示"滴数式输液
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -