📄 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] = '.'; //小数点位
factor[0] = correction1/10000000; //最高位
for(i=0;i<9;i++) //显示9位数据
{
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; //标志是否处于修正系数的设定状态
fq1=fq; //当前频率值“入栈”
fq=850000; //设置修正系数时以850KHZ为参考频率
showstring(0,1,"set correction "); //提示可以设置修正系数
factor_display(); //当前修正系数的值显示在LCD上
temp=1; //temp为1表明修正系数还没有修改完毕,依然执行下边的循环
while(temp)
{
key_num = get_key();
switch(key_num)
{
case '#': fq=fq1; //#按下表明修正系数修改完毕,将当前频率值回写到fq中,以保证前后的频率值不变
_EEPUT(0x01,factor[0]);/*写EEPROM地址0X01*/ //修正系数存入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"); //提示已经过盛修正系数的修改
delay_nms(1000);
correction_temp = correction1/10000000.0; //重新计算频率值,并写入频率控制字到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清零,完成修正系数的修改
break;
/******************按下一边任一键,对修正系数作相应的修改,并实时输出经修正后的参考频率**************************/
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;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -