超聲波流量計(jì)的主程序研究與設(shè)計(jì) 十四
P2=0xfb;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
delay(10);
if(temp!=0xf0)
switch(temp)
{
case 0xe0: key_num=8;break;
case 0xd0: key_num=9;break;
case 0xb0: key_num=10;break;//設(shè)置直徑
case 0x70: key_num=11;break;//設(shè)置角度
}
P2=0xf7;
temp=P2;
temp=temp&0xf0;
if(temp!=0xf0)
delay(10);
if(temp!=0xf0)
switch(temp)
{
case 0xe0:key_num=12;break;//將直徑和角度清零
case 0xd0:flag_sure=1;break;//sure確認(rèn)標(biāo)志位
case 0xb0:key_num=14;break;//加1建
case 0x70:key_num=15;break;//減1建
}
return key_num;
}
//3.對(duì)按鍵值進(jìn)行處理子函數(shù)
void key_do()
{
uint i;
while(1)
{
getkey=key_num();//調(diào)用鍵值函數(shù)
if(getkey==10&&flag_sure==1)//如果鍵值為10則設(shè)置直徑d的大小
{
flag_sure=0;//將確認(rèn)標(biāo)志位清零
delay(1);//延時(shí)1ms
for(i=0;i<3;i++)
{
getkey=key_num();
delay(1);
if(getkey<9)//必須是0---9之間的數(shù)據(jù)
{
data_d[i]=getkey;//將設(shè)定的直徑送到數(shù)組中
delay(10);
}
}
}
getkey=key_num();//再次調(diào)用鍵值函數(shù),獲取新的鍵值
if(getkey==11&&flag_sure==1)//如果鍵值為12則,設(shè)置安裝角度的大小
{
flag_sure==0;
delay(1);//延時(shí)1ms
for(i=0;i<3;i++)
{
getkey=key_num();
delay(1);
if(getkey<9) //如果是0--9之間的數(shù)據(jù)則賦給對(duì)應(yīng)的數(shù)組
{
data_jiao[i]=getkey;//將設(shè)定的角度送到數(shù)組中
delay(10);
}
}
}
if(getkey==12)//如果鍵值為12,則清所設(shè)定的直徑和角度參數(shù)
{
delay(1);//延時(shí)1ms
for(i=0;i<3;i++)
{
data_d[i]=0x00;//參數(shù)清零
data_jiao[i]=0x00;
}
}
}
超聲波流量計(jì)