?? yh_t3_new.c
字號:
//菜單三:波特率選擇
//dis_zone[0]=0xf2; //LCD第一個字位顯示”b“
//dis_zone[1]=discode_low[4]; //LCD第一個字位顯示”d“
//dis_zone[4]=0xbe;
//dis_zone[5]=0xbe;
dis_zone[0]=discode_low[2];
dis_zone[1]=discode_low[4];
dis_zone[4]=discode_num[0];
dis_zone[5]=discode_num[0];
while(1)
{
if(TARE==0)
{
delay_nms(50);
if(TARE==0)
{
while(!TARE);
alarm(200);//按鍵音
count_baud++;
if(count_baud==4)
count_baud=0;
}
}
if(MENU==0)
{
delay_nms(50);
if(MENU==0)
{
while(!MENU);
alarm(200);//按鍵音
buf_24c02_4B[2]=count_baud;
break;
}
}
switch(count_baud)
{
case 0: //dis_zone[2]=0x06;
//dis_zone[3]=0x7c;
dis_zone[2]=discode_num[1];
dis_zone[3]=discode_num[2];
break;//波特率1200
case 1: //dis_zone[2]=0x7c;
//dis_zone[3]=0xc6;
dis_zone[2]=discode_num[2];
dis_zone[3]=discode_num[4];
break;//波特率2400
case 2: //dis_zone[2]=0xc6;
//dis_zone[3]=0xfe;
dis_zone[2]=discode_num[4];
dis_zone[3]=discode_num[8];
break;//波特率4800
case 3: //dis_zone[2]=0xde;
//dis_zone[3]=discode_low[2];
dis_zone[2]=discode_num[9];
dis_zone[3]=discode_num[6];
break;//波特率9600
default: //顯示錯誤號“Err 8”
alarm(800);
dis_zone[0]=0x00;
//dis_zone[1]=discode_cap[5];
//dis_zone[2]=discode_low[18];
//dis_zone[3]=discode_low[18];
dis_zone[1]=discode_cap[5];
dis_zone[2]=discode_low[18];
dis_zone[3]=discode_low[18];
dis_zone[4]=0x00;
dis_zone[5]=discode_num[8];
display_1621();
//此處延時很長,目的是讓使用者
//看清楚錯誤號。
delay_nms(5000);
}
display_1621();
}
//菜單四:背光開關(guān)
//dis_zone[0]=0xf2;
//dis_zone[1]=discode_cap[12];
dis_zone[0]=discode_low[2];
dis_zone[1]=discode_cap[12];
dis_zone[2]=0x00;
while(1)
{
if(count_BL==0)
{
//顯示“OFF”
//dis_zone[3]=0xbe;
//dis_zone[4]=discode_cap[6];
//dis_zone[5]=discode_cap[6];
dis_zone[3]=discode_cap[15];
dis_zone[4]=discode_cap[6];
dis_zone[5]=discode_cap[6];
}
else
{
//顯示“ON”
dis_zone[3]=0x00;
//dis_zone[4]=0xbe;
//dis_zone[5]=0xae;
dis_zone[4]=discode_cap[15];
dis_zone[5]=discode_low[14];
}
display_1621();
if(TARE==0)
{
delay_nms(50);
if(TARE==0)
{
while(!TARE);
alarm(200);//按鍵音
count_BL++;
if(count_BL==2)
count_BL=0;
}
}
if(MENU==0)
{
delay_nms(50);
if(MENU==0)
{
while(!MENU);
alarm(200);//按鍵音
buf_24c02_4B[3]=count_BL;
break;
}
}
}
//菜單五:量程
//----------------------------------
temp_range=buf_24c02_2L[0];
f_cal=0;
while(1)
{
if(TARE==0)
{
delay_nms(50);
if(TARE==0)
{
while(!TARE);
alarm(200);//按鍵音
if(f_cal==0)
{
temp_range=0;
count_range=0;
f_cal=1;
}
else
{
count_range++;
if(count_range>9)
count_range=0;
temp_range-=arr_BCD[5];
temp_range+=count_range;
}
}
}
if(ZERO==0)
{
delay_nms(50);
if(ZERO==0)
{
while(!ZERO);
alarm(200);//按鍵音
if(f_cal==0)
{
temp_range=0;
f_cal=1;
}
else
{
temp_range*=10;
if(temp_range>=100000)
temp_range%=100000;
count_range=0;
}
}
}
//注意:此處可以優(yōu)化一下,如果不想進行校準,
if(MENU==0)
{
delay_nms(50);
if(MENU==0)
{
while(!MENU);
alarm(200);//按鍵音
break;
}
}
//-------------------------------------
BIN_to_BCD(temp_range);
dis_zone[0]=discode_cap[12];
if((dis_zone[1]==0xbe)&&(count_point!=4))
{
dis_zone[1]=0x00;
if((dis_zone[2]==0xbe)&&(count_point!=3))
{
dis_zone[2]=0x00;
if((dis_zone[3]==0xbe)&&(count_point!=2))
{
dis_zone[3]=0x00;
if((dis_zone[4]==0xbe)&&(count_point!=1))
dis_zone[4]=0x00;
}
}
}
if(count_point!=0)
dis_zone[5-count_point]|=0x01;
display_1621();
}
//校準部分
if(f_cal==1)
{
f_cal=0;
//開始就顯示“nLoAd”
dis_zone[0]=0x00;
//dis_zone[1]=discode_low[14];
//dis_zone[2]=discode_cap[12];
//dis_zone[3]=discode_low[15];
//dis_zone[4]=0xee;
//dis_zone[5]=discode_low[4];
dis_zone[1]=discode_low[14];
dis_zone[2]=discode_cap[12];
dis_zone[3]=discode_low[15];
dis_zone[4]=discode_cap[1];
dis_zone[5]=discode_low[4];
display_1621();
while(1)
{
if(MENU==0)
{
delay_nms(50);
if(MENU==0)
{
while(!MENU);
alarm(200);
break;
}
}
}
i=0;
while(i<3)//最開始取3次AD值,存放在ad3數(shù)據(jù)緩沖區(qū)
{
cmd_5460(0x5e);//輸入向狀態(tài)寄存器寫數(shù)據(jù)命令
write_5460(0x00800000);//向5460中寫入24位數(shù)據(jù)DRDY清零
while(1)
{
cmd_5460(0x1e);//輸入讀狀態(tài)寄存器命令
buf_5460=read_5460();//從5460讀出24位數(shù)據(jù)查詢DRDY
if(((buf_5460)&0x00020000)==0x00020000)
{
cmd_5460(0x16);//讀取平均電流寄存器
ad3[i]=read_5460();
break;
}
}
i++;
}
ave3_ad=average3();
i=0;
while(i<13)
{
ad13[i].ad=ave3_ad;
ad13[i].times=i;
i++;
}
while(1)
{
rotate3();
cmd_5460(0x5e);//輸入向狀態(tài)寄存器寫數(shù)據(jù)命令
write_5460(0x00800000);//向5460中寫入24位數(shù)據(jù)DRDY清零
while(1)
{
cmd_5460(0x1e);//輸入讀狀態(tài)寄存器命令
buf_5460=read_5460();//從5460讀出24位數(shù)據(jù)查詢DRDY
if(((buf_5460)&0x00020000)==0x00020000)
{
cmd_5460(0x16);//讀取平均電流寄存器
ad3[0]=read_5460();
break;
}
}
//此處省略了超載判斷模塊,因為前面剛剛設(shè)定量程,
//校準時超載的可能性不大。
//over_load();
ave3_ad=average3();
i=0;
while(i<13)
{
ad13[i].times++;
if(ad13[i].times==13)
{
temp_j=i;
ad13[i].ad=ave3_ad;
ad13[i].times=0;
}
i++;
}
rotate();
sort();
BIN_to_BCD(ad13[6].ad);
if((dis_zone[0]==0xbe)&&(count_point!=5))
{
dis_zone[0]=0x00;
if((dis_zone[1]==0xbe)&&(count_point!=4))
{
dis_zone[1]=0x00;
if((dis_zone[2]==0xbe)&&(count_point!=3))
{
dis_zone[2]=0x00;
if((dis_zone[3]==0xbe)&&(count_point!=2))
{
dis_zone[3]=0x00;
if((dis_zone[4]==0xbe)&&(count_point!=1))
dis_zone[4]=0x00;
}
}
}
}
display_1621();
if(MENU==0)
{
delay_nms(50);
if(MENU==0)
{
while(!MENU);
alarm(200);
delay_nms(500);
if(f_cal==0)
{
buf_24c02_AD[0]=ad13[6].ad;
//顯示“LoAd”,提示使用者放置校準砝碼
dis_zone[0]=0x00;
dis_zone[1]=0x00;
//dis_zone[2]=discode_cap[12];
//dis_zone[3]=discode_low[15];
//dis_zone[4]=0xee;
//dis_zone[5]=discode_low[4];
//dis_zone[6]=0x00;
dis_zone[2]=discode_cap[12];
dis_zone[3]=discode_low[15];
dis_zone[4]=discode_cap[1];
dis_zone[5]=discode_low[4];
display_1621();
f_cal=1;
while(1)
{
if(MENU==0)
{
delay_nms(50);
if(MENU==0)
{
while(!MENU);
alarm(200);
break;
}
}
}
}
else
{
buf_24c02_AD[1]=ad13[6].ad-buf_24c02_AD[0];
break;
}
}
}
}
//顯示上次砝碼的重量
//----------------------------------
temp_FaMa=buf_24c02_2L[1];
f_FaMa=0;
while(1)
{
if(TARE==0)
{
delay_nms(50);
if(TARE==0)
{
while(!TARE);
alarm(200);//按鍵音
if(f_FaMa==0)
{
temp_FaMa=0;
count_FaMa=0;
f_FaMa=1;
}
else
{
count_FaMa++;
if(count_FaMa>9)
count_FaMa=0;
temp_FaMa-=arr_BCD[5];
temp_FaMa+=count_FaMa;
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -