?? 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)
{
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 + -