📄 main.c
字号:
#include <reg52.h>
#include <intrins.h>
#include <main.h>
#include <i2c.h>
#include <fq1216.h>
#include <lcd.h>
unsigned char in_data = 0x26;
unsigned char auto_scan = 0;
unsigned char i;
unsigned char tune_coarse;
unsigned char tune_fine;
unsigned char total_ch_no=0;
unsigned char cur_ch_no = 0;
/*
unsigned int code tab_channel[] =
{ 4975, 5775, 6575, 7675, 17625,
18425, 19225, 20825, 21625, 29625,
31225, 32025, 32825, 33625, 34425,
47125, 47925, 48725, 49525, 50325,
51125, 54325
};
*/
void store_ch_freq(void)
{
if(total_ch_no >= MAX_CH_NO)
return;
lo_freq = (in_freq + UP_IF)*16/100;
pdivider_lo = lo_freq&0xff;
pdivider_hi = ((lo_freq>>8)&0xff);
i2c_data = pdivider_lo;
i2c_write(x2402dev,total_ch_no*2);
delay30ms();
i2c_data = pdivider_hi;
i2c_write(x2402dev,(total_ch_no*2)+1);
total_ch_no++;
tcom_data(0x20);
tcom_data(0x53);
dis_data(total_ch_no);
tcom_data(0x20);
}
void restore_ch_freq(void)
{
if(cur_ch_no >= MAX_CH_NO)
return;
i2c_read(x2402dev,cur_ch_no*2);
pdivider_lo = i2c_data;
delay30ms();
i2c_read(x2402dev,cur_ch_no*2+1);
pdivider_hi = i2c_data;
tcom_data(0x0a);
tcom_data(0x0d);
dis_data(cur_ch_no);
// dis_data(total_ch_no);
tcom_data(0x20);
dis_data(pdivider_hi);//for trace
tcom_data(0x20);
dis_data(pdivider_lo);//for trace
tcom_data(0x20);
lo_freq = (unsigned long)(pdivider_hi<<8) + (unsigned long)pdivider_lo;
lo_freq = lo_freq*25l;
lo_freq = lo_freq/4l;
in_freq = lo_freq - UP_IF;
fine_value = 20;
wr_fq1216_rf();
}
void skip_next_ch(void)
{
if( tune_coarse == 0)
// in_freq = 5725;
in_freq = 5750;
else if( tune_coarse == 1)
// in_freq = 6525;
in_freq = 6550;
else if( tune_coarse == 2)
// in_freq = 7675;
in_freq = 7700;
else if( tune_coarse == 3)
// in_freq = 8475;
in_freq = 8500;
else if(tune_coarse > 3 && tune_coarse < 48)
// in_freq = (unsigned long) (tune_coarse*800l) +7975l;//11175-3200 = 7975
in_freq = (unsigned long) (tune_coarse*800l) +8000l;//11200-3200 = 8000
else if(tune_coarse > 47 && tune_coarse < 61)
// in_freq = (unsigned long) (tune_coarse*800l) + 7875l; //46275-38400 = 7875
in_freq = (unsigned long) (tune_coarse*800l) + 7900l; //46300-38400 = 7900
else if(tune_coarse > 60 && tune_coarse < 94)
// in_freq = (unsigned long) (tune_coarse*800l) + 11875l; //60675-48800 = 11875
in_freq = (unsigned long) (tune_coarse*800l) + 11900l; //60675-48800 = 11900
else
{
i2c_data = total_ch_no;
// i2c_write(x2402dev,120);
i2c_write(x2402dev,124);
tcom_data(0x0a);
tcom_data(0x0d);
dis_data(total_ch_no);
tcom_data(0x0a);
tcom_data(0x0d);
delay30ms();
auto_scan = 0;
cur_ch_no = 0;
restore_ch_freq();
init_fq1216();
dis_freq();
}
tune_coarse++;
tune_fine = 0;
}
/*
void set_next_freq(void)
{
in_freq = tab_channel[cur_ch_no];
fine_value = 20;
wr_fq1216_rf();
}
*/
void main()
{
unsigned char key;
unsigned char oldkey;
main_init();
init_lcd();
i2c_init();
i2c_read(x2402dev,124);
if(i2c_data > MAX_CH_NO)
total_ch_no = MAX_CH_NO;
else
total_ch_no = i2c_data;
if(total_ch_no > 0)
cur_ch_no = total_ch_no - 1;
tcom_data(0x6c); //l
tcom_data(0x6f); //o
tcom_data(0x63); //c
tcom_data(0x6b); //k
tcom_data(0x65); //e
tcom_data(0x64); //d
tcom_data(0x20);
dis_data(total_ch_no);
tcom_data(0x20);
test_lcd();
init_fq1216();
wr_fq1216_rf();
wr_fq1216_if();
dis_freq();
while(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -