15W401AS單片機
單個IO口ADC檢測4個按鍵,采用ADC查詢方式。
1,按鍵檢測很不穩(wěn)定,如何增加穩(wěn)定性;
2,如何做到松鍵有效的功能;
P1M1 = 0x83;
P1M0 = 0x00;
while(set_state ==0)
{
//CTR按鍵檢測---------------
key_vol = GetADCResult_key()*100; //按鍵電壓放大100倍
//reset = 375
if(key_vol>365 && key_vol<385) //reset按鍵
{
delay_us(10);
if(key_vol>365 && key_vol<385)
{ CTR = CTRoff;
state_cur = 0;
}
}
//set按鍵檢測
if(key_vol>0 && key_vol<100)
//set = 0
{
delay_us(10);
if(key_vol>0 && key_vol<100)
{
set_state=1;
setplace=0;
}
}
//while(!key_vol>1 && key_vol<20);
} //默認狀態(tài)結(jié)束
while(set_state==1)//設(shè)置狀態(tài)
{
key_vol = GetADCResult_key()*100; //按鍵電壓放大100倍
//k2-=335,k1+=252,set=0
if(setplace==0)
{
DisplayData[0]=0x31;//時間設(shè)置T00分鐘
DisplayData[1]=DIG_CODE[set1/10%10];
DisplayData[2]=DIG_CODE[set1%10];
}
if(setplace==1)
{
DisplayData[0]=0x73;//檢測功率閥值設(shè)置P00
DisplayData[1]=DIG_CODE[set2/10%10];
DisplayData[2]=DIG_CODE[set2%10];
}
if(setplace==2)
{
DisplayData[0]=0x39;//下降比例設(shè)置C00
DisplayData[1]=DIG_CODE[set3/10%10];
DisplayData[2]=DIG_CODE[set3%10];
}
if(setplace==3)
{
DisplayData[0]=0x3F;//過流功率設(shè)置
DisplayData[1]=0x3E;
DisplayData[2]=0x73;
DisplayData[3]=DIG_CODE[set4/100];
DisplayData[4]=DIG_CODE[set4/10%10];
DisplayData[5]=DIG_CODE[set4%10];
}
if(key_vol>240 && key_vol<265) //K1+按鍵設(shè)置
{
delay_us(10);
if(key_vol>240 && key_vol<265)
{
if(setplace==0)
{
set1++;
if(set1>10)
set1=10;
}
if(setplace==1)
{
set2++;
if(set2>20)
set2=20;
}
if(setplace==2)
{
set3++;
if(set3>99)
set3=99;
}
if(setplace==3)
{
set3++;
if(set3>150)
set3=150;
}
}
save();
while(key_vol>240 && key_vol<265);
}
if(key_vol>325 && key_vol<345) //K2-按鍵設(shè)置
{
delay_us(10);
if(key_vol>325 && key_vol<345)
{
if(setplace==0)
{
set1--;
if(set1<1)
set1=0;
}
if(setplace==1)
{
set2--;
if(set2<1)
set2=1;
}
if(setplace==2)
{
set3--;
if(set3<1)
set3=1;
}
if(setplace==3)
{
set4--;
if(set4<1)
set3=1;
}
}
save();
while(key_vol>325 && key_vol<345);
}
if(key_vol>0 && key_vol<100)
{
delay_us(10);
if(key_vol>0 && key_vol<100)
{
setplace++;
if(setplace>=4)
{
setplace=0;
set_state=0;//返回
}
}
while(key_vol>0 && key_vol<100);
}
} //參數(shù)設(shè)置結(jié)束
|