?? main.c
字號:
case 7:showchar(i+3,0,'7');break;
case 8:showchar(i+3,0,'8');break;
case 9:showchar(i+3,0,'9');break;
}
}
}
void factor_display(void)
{
uchar i;
showstring(0,0,"factor: ");
factor[8] = correction1%10; //最低位
factor[7] = correction1/10%10;
factor[6] = correction1/100%10;
factor[5] = correction1/1000%10;
factor[4] = correction1/10000%10;
factor[3] = correction1/100000%10;
factor[2] = correction1/1000000%10;
factor[1] = '.'; //小數(shù)點(diǎn)位
factor[0] = correction1/10000000; //最高位
for(i=0;i<9;i++) //顯示9位數(shù)據(jù)
{
switch(factor[i])
{
case 0:showchar(i+7,0,'0');break;
case 1:showchar(i+7,0,'1');break;
case 2:showchar(i+7,0,'2');break;
case 3:showchar(i+7,0,'3');break;
case 4:showchar(i+7,0,'4');break;
case 5:showchar(i+7,0,'5');break;
case 6:showchar(i+7,0,'6');break;
case 7:showchar(i+7,0,'7');break;
case 8:showchar(i+7,0,'8');break;
case 9:showchar(i+7,0,'9');break;
case '.':showchar(i+7,0,'.');break;
}
}
}
void correction_set(void)
{
uchar temp; //標(biāo)志是否處于修正系數(shù)的設(shè)定狀態(tài)
fq1=fq; //當(dāng)前頻率值“入棧”
fq=850000; //設(shè)置修正系數(shù)時以850KHZ為參考頻率
showstring(0,1,"set correction "); //提示可以設(shè)置修正系數(shù)
factor_display(); //當(dāng)前修正系數(shù)的值顯示在LCD上
temp=1; //temp為1表明修正系數(shù)還沒有修改完畢,依然執(zhí)行下邊的循環(huán)
while(temp)
{
key_num = get_key();
switch(key_num)
{
case '#': fq=fq1; //#按下表明修正系數(shù)修改完畢,將當(dāng)前頻率值回寫到fq中,以保證前后的頻率值不變
_EEPUT(0x01,factor[0]);/*寫EEPROM地址0X01*/ //修正系數(shù)存入EEPROM中
_EEPUT(0x02,factor[2]);/*寫EEPROM地址0X02*/
_EEPUT(0x03,factor[3]);/*寫EEPROM地址0X03*/
_EEPUT(0x04,factor[4]);/*寫EEPROM地址0X04*/
_EEPUT(0x05,factor[5]);/*寫EEPROM地址0X05*/
_EEPUT(0x06,factor[6]);/*寫EEPROM地址0X06*/
_EEPUT(0x07,factor[7]);/*寫EEPROM地址0X07*/
_EEPUT(0x08,factor[8]);/*寫EEPROM地址0X08*/
_EEPUT(0x00,1);/*寫EEPROM地址0X00*/
showstring(0,1,"correction seted"); //提示已經(jīng)過盛修正系數(shù)的修改
delay_nms(1000);
correction_temp = correction1/10000000.0; //重新計(jì)算頻率值,并寫入頻率控制字到DDS中
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
showstring(0,1,"set frequency ");
fq_display();
temp=0; //temp清零,完成修正系數(shù)的修改
break;
/******************按下一邊任一鍵,對修正系數(shù)作相應(yīng)的修改,并實(shí)時輸出經(jīng)修正后的參考頻率**************************/
case '1': correction1 += 1; //按1號鍵加1
correction_temp = correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case '4': correction1 -= 1; //按4號鍵減1
correction_temp = correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case '2': correction1 += 10; //按2號鍵加10
correction_temp =correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case '5': correction1 -= 10; //按5號鍵減10
correction_temp =correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case '3': correction1 += 100; //按3號鍵加100
correction_temp =correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case '6': correction1 -= 100; //按6號鍵減100
correction_temp =correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case 'A': correction1 += 1000; //按A鍵加1000
correction_temp =correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
case 'B': correction1 -= 1000; //按B鍵減1000
correction_temp =correction1/10000000.0;
con_word_temp=fq*4294967296*correction_temp/Fosc;
con_word=con_word_temp;
con_word_array[0]=con_word%256;
con_word_array[1]=con_word/256%256;
con_word_array[2]=con_word/256/256%256;
con_word_array[3]=con_word/256/256/256;
write_word(con_word_array);
factor_display();
break;
default:break;
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -