📄 main.c
字号:
clrcount=0;
//=======起动键判断==========================
if(QuickRunFlag==1)
{ //快速冲洗计时,0.6秒钟(0.1mL)
quickruncount++;
if(quickruncount>30)
{
quicktotalcount++;
quicktotal=quicktotalcount/5;
quickruncount=0;
QuickRunFlag=0; //冲洗时间到,清冲洗标志
}
}
else
{
if(StartOnFlag==1)
{ //有启动键按下,开始计时
quickruncount++;
if(quickruncount>80) //判断上次按下起动键是否超过两秒
{
StartOnFlag=0; //超过2秒,起动键标志无效,不能进行冲洗
quickruncount=0;
}
}
}
//========================================================
KeySound(sound); //按键声音判断
//===============KVO计时===================================
if(KvoFlag==1)
{
Kvotime++;
if(Kvotime>49)
{
Kvotime=0;
Kvosecond++;
if(Kvosecond>59)
{
Kvosecond=0;
Kvominute++;
if(Kvominute>59)
{
Kvominute=0;
Kvohour++;
}
}
}
}
//===========气泡检测计时==========================
if(QIPAO1FLAG==1)
{
qipao1flagcount++;
if(qipao1flagcount>15000)
QIPAO1FLAG=0;
qipao1flagcount=0;
}
//===========电池欠压报警显示时间==================
if(batlowflag==1)
batlowcount++;
if((Adbat<195)||(batlowflag==1))
batlowglingcount++;
if(batlowflag1==1)
batlowtimecount++;
//===========故障报警指示灯闪=====================
if(warnflag==1)
{
ledcount++;
if(ledcount>20)
{
ledcount=0;
MovFlag=1;
} //if(ledcount>20)
} //if(warnflag==1)
}
/********************************************************************
* 名称: void PowerKey();
* 功能: 打开或关闭电源
* 调用:
* 输入:
* 说明: 电源按键处理程序
* 返回值:
***********************************************************************/
void PowerKey()
{
if(StartFlag==0)
{
TurnOffSystem();
}
}
/********************************************************************
* 名称: void selectKey();
* 功能: 选择键,在流速和流量数据之间切换
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void IncSet()
{
if(selectdata==1)
{
if(mode==1)
{
if(dropfactdata<150)
dropfactdata++;
}
else
{
if(shudu.b<1000)
shudu.b++;
}
}
if(selectdata==2)
{
if(zhonglian.b<9999)
zhonglian.b++;
}
}
void InccSet()
{
if(selectdata==1)
{
if(mode==1)
{
if(dropfactdata<141)
dropfactdata+=10;
}
else
{
if(shudu.b<991)
shudu.b+=10;
}
}
if(selectdata==2)
{
if(zhonglian.b<9990)
zhonglian.b+=10;
}
}
void DecSet()
{
if(selectdata==1)
{
if(mode==1)
{
if(dropfactdata>1)
dropfactdata--;
}
else
{
if(shudu.b>1)
shudu.b--;
}
}
if(selectdata==2)
{
if(zhonglian.b>0)
zhonglian.b--;
}
}
void DeccSet()
{
if(selectdata==1)
{
if(mode==1)
{
if(dropfactdata>10)
dropfactdata-=10;
}
else
{
if(shudu.b>10)
shudu.b-=10;
}
}
if(selectdata==2)
{
if(zhonglian.b>9)
zhonglian.b-=10;
}
}
/********************************************************************
* 名称: void SelectKey();sss
* 功能: 输液速度及预置量选择键
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
void SelectKey()
{
uchar shanshuoflag,i;
Display1(2); //
DisplayClear(15,240,2,0);
for(i=5;i<235;i++)
LcdDrawPoint(128,i,1);
extbmp(4,25,Bmp119); //显示设置提示
selectdata=1; //输液、预输液量选择寄存器
glintreg=1; //数值闪烁
while(1)
{
CLRWDT;
if(glintreg==1)
{
glintreg=0;
if(shanshuoflag)
{
if(selectdata==1)
{
if(mode==1)
DisGlint(1,dropfactdata);
else
DisGlint(1,shudu.b); //
}
if(selectdata==2)
DisGlint(2,zhonglian.b);
shanshuoflag=0;
}
else
{
if(selectdata==1)
{
if(mode==1)
DisGlint(1,clrdata);
else
DisGlint(1,clrdata); //刷新显示屏数据
}
if(selectdata==2)
DisGlint(2,clrdata);
shanshuoflag=1;
}
}
if(selectdata>2)
{
JingDuSet();
Display1(1); //显示本机进入待机状态
extbmp(3,25,Bmp171);
// if(mode==1)
// DisGlint(1,dropfactdata);
// else
// DisGlint(1,shudu.b); //
// DisGlint(2,zhonglian.b); //刷新显示屏数据
break;
}
else
{
if(KeyOn)
{
KeyOn=0; //button flag clear zero
if(KeyRepeatFlag==0)
{
sound=1;
KeyAgain();
}
if(buttonquickflag==1) //判断是否进入快进、退状态
{
if(buttonquickcount>4) //20ms*5=0.1S 加减1
{
buttonquickcount=0;
switch(KeyData)
{
case SELECT: selectdata++;
if(mode==1)
DisGlint(1,dropfactdata);
else
DisGlint(1,shudu.b); //
break; //预输液量闪烁
case INC: IncSet(); break;
case INCC: InccSet(); break;
case DEC: DecSet(); break;
case DECC: DeccSet(); break;
default: break;
}
if(selectdata==1)
{
if(mode==1)
DisGlint(1,dropfactdata);
else
DisGlint(1,shudu.b); // //刷新显示屏数据
}
if(selectdata==2)
DisGlint(2,zhonglian.b);
}
}
else //1
{
if(buttonflag==1) //2
{
if(buttoncount>75) //3
{
buttoncount=0;
buttonquickflag=1;
}
}
else //4
{
switch(KeyData)
{
case SELECT: selectdata++;
if(mode==1)
DisGlint(1,dropfactdata);
else
DisGlint(1,shudu.b); //
break; //预输液量闪烁
case INC: buttonflag=1; IncSet(); break;
case INCC: buttonflag=1; InccSet(); break;
case DEC: buttonflag=1; DecSet(); break;
case DECC: buttonflag=1; DeccSet(); break;
default: break;
}
if(selectdata==1)
{
if(mode==1)
DisGlint(1,dropfactdata);
else
DisGlint(1,shudu.b); // //刷新显示屏数据
}
if(selectdata==2)
DisGlint(2,zhonglian.b);
//==========================
if(KeyData==SELECT)
{
if(selectdata==2)
{
extbmp(7,65,Bmp172);//显示“设置预输液量"
}
}
}//4
} //1
}
}
}
}
/********************************************************************
* 名称: void PIncSet();
* 功能: 调整校正参数,选择相应的参数值加一
* 调用:
* 输入:
* 说明:
* 返回值:
***********************************************************************/
//个位值加一
void PIncSet()
{
if(jingdudata<12)
jingdudata++;
switch(jingdudata)
{
case 0: DisplayCanShu(canshuadrh,canshuadr,7); break;
case 1: DisplayCanShu(canshuadrh,canshuadr+18*1,8); break;
case 2: DisplayCanShu(canshuadrh,canshuadr+18*2,9); break;
case 3: DisplayCanShu(canshuadrh,canshuadr+18*3,10); break;
case 4: DisplayCanShu(canshuadrh,canshuadr+18*4,11); break;
case 5: DisplayCanShu(canshuadrh,canshuadr+18*5,12); break;
case 6: DisplayCanShu(canshuadrh,canshuadr+18*6,13); break;
case 7: DisplayCanShu(canshuadrh,canshuadr+18*7,12); break;
case 8: DisplayCanShu(canshuadrh,canshuadr+18*8,11); break;
case 9: DisplayCanShu(canshuadrh,canshuadr+18*9,10); break;
case 10: DisplayCanShu(canshuadrh,canshuadr+18*10,9); break;
case 11: DisplayCanShu(canshuadrh,canshuadr+18*11,8); break;
case 12: DisplayCanShu(canshuadrh,canshuadr+18*12,7); break;
default: break;
}
}
//======个位值减一=======
void PDecSet()
{
if(jingdudata>0)
jingdudata--;
switch(jingdudata)
{
case 0: DisplayCanShu(canshuadrh,canshuadr,7); break;
case 1: DisplayCanShu(canshuadrh,canshuadr+18*1,8); break;
case 2: DisplayCanShu(canshuadrh,canshuadr+18*2,9); break;
case 3: DisplayCanShu(canshuadrh,canshuadr+18*3,10); break;
case 4: DisplayCanShu(canshuadrh,canshuadr+18*4,11); break;
case 5: DisplayCanShu(canshuadrh,canshuadr+18*5,12); break;
case 6: DisplayCanShu(canshuadrh,canshuadr+18*6,13); break;
case 7: DisplayCanShu(canshuadrh,canshuadr+18*7,12); break;
case 8: DisplayCanShu(canshuadrh,canshuadr+18*8,11); break;
case 9: DisplayCanShu(canshuadrh,canshuadr+18*9,10); break;
case 10: DisplayCanShu(canshuadrh,canshuadr+18*10,9); break;
case 11: DisplayCanShu(canshuadrh,canshuadr+18*11,8); break;
case 12: DisplayCanShu(canshuadrh,canshuadr+18*12,7); break;
default: break;
}
}
void PFace(uchar b)
{
switch(b)
{
case 0: DisplayCanShu(canshuadrh,canshuadr,7); break;
case 1: DisplayCanShu(canshuadrh,canshuadr+18*1,8); break;
case 2: DisplayCanShu(canshuadrh,canshuadr+18*2,9); break;
case 3: DisplayCanShu(canshuadrh,canshuadr+18*3,10); break;
case 4: DisplayCanShu(canshuadrh,canshuadr+18*4,11); break;
case 5: DisplayCanShu(canshuadrh,canshuadr+18*5,12); break;
case 6: DisplayCanShu(canshuadrh,canshuadr+18*6,13); break;
case 7: DisplayCanShu(canshuadrh,canshuadr+18*7,12); break;
case 8: DisplayCanShu(canshuadrh,canshuadr+18*8,11); break;
case 9: DisplayCanShu(canshuadrh,canshuadr+18*9,10); break;
case 10: DisplayCanShu(canshuadrh,canshuadr+18*10,9); break;
case 11: DisplayCanShu(canshuadrh,canshuadr+18*11,8); break;
case 12: DisplayCanShu(canshuadrh,canshuadr+18*12,7); break;
default: break;
}
}
//===================================================================
void PJingDuSet()
{
bit jingdudisplayflag;
jingdudisplayflag=0;
if(jingdudata>12)
jingdudata=6;
Displayonebmp3(4,171,26,34,Bmp035);//显示输液精度调节
DisplayCanShu(canshuadrh,canshuadr,0);
DisplayCanShu(canshuadrh,canshuadr+18*1,1);
DisplayCanShu(canshuadrh,canshuadr+18*2,2);
DisplayCanShu(canshuadrh,canshuadr+18*3,3);
DisplayCanShu(canshuadrh,canshuadr+18*4,4);
DisplayCanShu(canshuadrh,canshuadr+18*5,5);
DisplayCanShu(canshuadrh,canshuadr+18*6,6);
DisplayCanShu(canshuadrh,canshuadr+18*7,5);
DisplayCanShu(canshuadrh,canshuadr+18*8,4);
DisplayCanShu(canshuadrh,canshuadr+18*9,3);
DisplayCanShu(canshuadrh,canshuadr+18*10,2);
DisplayCanShu(canshuadrh,canshuadr+18*11,1);
DisplayCanShu(canshuadrh,canshuadr+18*12,0);
PFace(jingdudata);//显示相应反黑显示的调节杆
while(1)
{
if(jingdudisplayflag==1)
{
Displayyedichar(8,78,date[0]); //显示编号
Displayyedichar(8,90,date[1]); //显示编号
Displayyedichar(8,102,date[2]); //显示日期
Displayyedichar(8,114,date[3]); //显示日期
Displayyedichar(8,126,date[4]); //显示日期
Displayyedichar(8,138,date[5]); //显示日期
Displayyedichar(8,150,date[6]); //显示编号
}
CLRWDT;
if(KeyOn)
{
KeyOn=0; //button flag clear zero
if(buttonflag==0)
{
sound=1;
if(KeyData==SELECT) //如果为设置键则跳出设置
{
Display2(1);
break;
}
if(KeyData==ZHUHE)
{
jingdudisplayflag=1;
}
//------参数调整-----------
if((KeyData==INC)|(KeyData==DEC))
{
DisplayCanShu(canshuadrh,canshuadr,0);
DisplayCanShu(canshuadrh,canshuadr+18*1,1);
DisplayCanShu(canshuadrh,canshuadr+18*2,2);
DisplayCanShu(canshuadrh,canshuadr+18*3,3);
DisplayCanShu(canshuadrh,canshuadr+18*4,4);
DisplayCanShu(canshuadrh,canshuadr+18*5,5);
DisplayCanShu(canshuadrh,canshuadr+18*6,6);
DisplayCanShu(canshuadrh,canshuadr+18*7,5);
DisplayCanShu(canshuadrh,canshuadr+18*8,4);
DisplayCanShu(canshuadrh,canshuadr+18*9,3);
DisplayCanShu(canshuadrh,canshuadr+18*10,2);
DisplayCanShu(canshuadrh,canshuadr+18*11,1);
DisplayCanShu(canshuadrh,canshuadr+18*12,0);
if(KeyData==INC) //判断是否是增加键
PIncSet();
else //判断是否是减少键
PDecSet();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -