📄 ss_sweep.c
字号:
showchinese(264+16,144,CC2CA);//率
show_num(264+32,144,CC010);//:*/
break;
case 2:
showchinese(x,y,C0000);//00
x=x+16;
showchinese(x,144,C0000);//00
x=x+16;
show_num(x,144,C0000);
/* showchinese(264,144,C0000);//00
showchinese(264+16,144,C0000);//00
showchinese(264+32,144,C0000);*/
break;
default:break;
}
}
void sweep_amp(unsigned char flag)//flag=0,扫频;flag=1,调幅
{
unsigned int x=256,y=64;
switch(flag)
{
case 0:
showchinese(x,y,CC9A8);//扫
x=x+16;
showchinese(x,y,CC6B5);//频
x=x+16;
showchinese(x,y,CB7BD);//方
x=x+16;
showchinese(x,y,CCABD);//式
/* showchinese(264,64,CC9A8);//扫
showchinese(264+16,64,CC6B5);//频*/
break;
case 1:
showchinese(x,y,C0000);//00
x=x+16;
showchinese(x,y,CB5F7);//调
x=x+16;
showchinese(x,y,CB7F9);//幅
x=x+16;
showchinese(x,y,C0000);//00
/* showchinese(264,64,CB5F7);//调
showchinese(264+16,64,CB7F9);//幅*/
break;
case 2:
showchinese(x,y,C0000);//00
x=x+16;
showchinese(x,y,C0000);//00
x=x+16;
showchinese(x,y,C0000);//00
x=x+16;
showchinese(x,y,C0000);//00
/* showchinese(264,64,C0000);//00
showchinese(264+16,64,C0000);//00*/
break;
default:break;
}
}
void log_lin(unsigned char flag)//flag=0,对数;flag=1,线性
{
unsigned int x=280,y=104;
switch(flag)
{
case 0:
showchinese(x,y,CB6D4);//对
x=x+16;
showchinese(x,y,CCAFD);//数
/* showchinese(280,104,CB6D4);//对
showchinese(280+16,104,CCAFD);//数*/
break;
case 1:
showchinese(x,y,CCFDF);//线
x=x+16;
showchinese(x,y,CD0D4);//性
/* showchinese(280,104,CCFDF);//线
showchinese(280+16,104,CD0D4);//性*/
break;
case 2:
showchinese(x,y,C0000);//00
x=x+16;
showchinese(x,y,C0000);//00
/* showchinese(280,104,C0000);//00
showchinese(280+16,104,C0000);//00*/
break;
default:break;
}
}
void last_line(unsigned char flag)//flag=0,对数;flag=1,线性
{
uchar x=8;
uchar y=220;
switch(flag)
{
case 0:
showchinese(x,y,CC7EB);//请
x=x+16;
showchinese(x,y,CB0B4);//按
x=x+16;
showchinese(x,y,CC8B7);//确
x=x+16;
showchinese(x,y,CB6A8);//定
x=x+16;
showchinese(x,y,CBCFC);//键
x=x+16;
showchinese(x,y,CCAE4);//输
x=x+16;
showchinese(x,y,CC8EB);//入
x=x+16;
showchinese(x,y,CC6B5);//频
x=x+16;
showchinese(x,y,CC2CA);//率
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
/* showchinese(x,y,CC7EB);//请
showchinese(x+16,y,CB0B4);//按
showchinese(x+32,y,CC8B7);//确
showchinese(x+48,y,CB6A8);//定
showchinese(x+64,y,CBCFC);//键
showchinese(x+80,y,CCAE4);//输
showchinese(x+96,y,CC8EB);//入
showchinese(x+112,y,CC6B5);//频
showchinese(x+128,y,CC2CA);//率
showchinese(x+144,y,C0000);//
showchinese(x+160,y,C0000);//
showchinese(x+176,y,C0000);//
showchinese(x+192,y,C0000);//
showchinese(x+208,y,C0000);//
showchinese(x+224,y,C0000);//
showchinese(x+240,y,C0000);//*/
//showchinese(x+256,y,C0000);//
break;
case 1:
showchinese(x,y,CC9A8);//扫
x=x+16;
showchinese(x,y,CC6B5);//频
x=x+16;
showchinese(x,y,CB7B6);//范
x=x+16;
showchinese(x,y,CCEA7);//围
x=x+16;
show_num(x,y,CC010);//:
x=x+8;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
x=x+16;
showchinese(x,y,C0000);//
// x=x+16;
// showchinese(x,y,C0000);//
/* showchinese(x,y,CC6B5);//频
showchinese(x+16,y,CC2CA);//率
showchinese(x+32,y,CB7B6);//范
showchinese(x+48,y,CCEA7);//围
show_num(x+64,y,CC010);//:
showchinese(x+72,y,C0000);//
showchinese(x+80,y,C0000);//
showchinese(x+96,y,C0000);//
showchinese(x+112,y,C0000);//
showchinese(x+128,y,C0000);//
showchinese(x+144,y,C0000);//
showchinese(x+160,y,C0000);//
showchinese(x+176,y,C0000);//
showchinese(x+192,y,C0000);//
showchinese(x+208,y,C0000);//
showchinese(x+224,y,C0000);//
showchinese(x+240,y,C0000);//
showchinese(x+256,y,C0000);//*/
break;
/* showchinese(x+48,y,CB6A8);//
showchinese(x+64,y,CBCFC);//
showchinese(x+80,y,CCAE4);//*/
case 2:
x=x+112;
show_num(x,y,CCCCC);//-
// show_num(x+112,y,CCCCC);//-
break;
case 3:
x=x+168;
showchinese(x,y,CC9A8);//扫
x=x+16;
showchinese(x,y,CCBD9);//速
x=x+16;
show_num(x,y,CC010);//:
/* showchinese(x+168,y,CC9A8);//扫
showchinese(x+184,y,CCBD9);//速
show_num(x+200,y,CC010);//:*/
break;
case 4:
/* showchinese(x+208,y,CCFB5);//系
showchinese(x+224,y,CCAFD);//数
show_num(x+240,y,CC010);//:*/
x=x+168;
showchinese(x,y,CC9A8);//扫
x=x+16;
showchinese(x,y,CCBD9);//速
x=x+16;
show_num(x,y,CC010);//:
/* showchinese(x+168,y,CC9A8);//扫
showchinese(x+184,y,CCBD9);//速
show_num(x+200,y,CC010);//:*/
break;
/* showchinese(x+224,y,C0000);//
showchinese(x+240,y,C0000);//
showchinese(x+256,y,C0000);//*/
default:break;
}
}
/***************************************************************
*名称:showchinese(uchar x,uchar y,int chin)
*描述:在x,y位置处,显示字符码为chin
*参数:坐标x,坐标y
*返回:
****************************************************************/
void showchinese(unsigned int x,unsigned int y,int chin)
{
int temp1,temp2;
uchar hi,lo;
uchar b,c;
unsigned int d=x;
temp2=chin;
outcode(0x4F);
for(c=0;c<2;c++)
{
temp1=0x5000+d/8+y*AP;//5218
hi=temp1>>8;//hi=temp1/256;
lo=(uchar)temp1;//lo=temp1%256;
outcode(0x46);
outdata(lo);
outdata(hi);
outcode(0x42);
for(b=0;b<16;b++){
outdata(hzdot[temp2]);
temp2++;
}
d=d+8;
}
}
/***************************************************************
*名称:display_lead(void)
*描述:初始化液晶屏上第三层的汉字
*参数:
*返回:
****************************************************************/
void display_lead(void)
{
/* uchar x=8;
uchar y=220;
showchinese(x,y,CC7EB);//请
showchinese(x+16,y,CB0B4);//按
showchinese(x+32,y,CC8B7);//确
showchinese(x+48,y,CB6A8);//定
showchinese(x+64,y,CBCFC);//键
showchinese(x+80,y,CCAE4);//输
showchinese(x+96,y,CC8EB);//入
showchinese(x+112,y,CC6B5);//频
showchinese(x+128,y,CC2CA);//率
*/
last_line(0);//请按确定键输入频率
display_mod(0);//无信号
/* showchinese(264,24,CC4A3);//模
showchinese(264+16,24,CCABD);//式
show_num(264+32,24,CC010);//:
showchinese(264,144,CC6B5);//频
showchinese(264+16,144,CC2CA);//率*/
set_up(1);//频率
// show_num(264+32,144,CC010);//:
// show_num(304,184,CC011);//H
// show_num(312,184,CC012);//z
}
/***************************************************************
*名称:display_init(void)
*描述:初始化液晶屏和相关图形
*参数:
*返回:
****************************************************************/
void display_init(void)
{
turnoff();
init();
initram();
turnon();
DrawFrame();
DrawGrid();
display_lead();
}
/***************************************************************
*名称:showsine (void)
*描述:显示采样的结果,采64个点但显示256点
*参数:xr_temp[]显示数组,N_temp数组元素个数,
start_add图形开始的x地址,last上次显示最后一个元素
*返回:
****************************************************************/
/*void showsine (uchar xr_temp[],uchar N_temp,uchar start_add,uchar last)
{
uchar i ;
WriteD(start_add,xr_temp[1]>>1);
vector(start_add-1,last>>1,xr_temp[1]>>1);
for(i=2;i<N_temp;i++)
{
WriteD(i-1+start_add,xr_temp[i]>>1);
vector(i-2+start_add,xr_temp[i-1]>>1,xr_temp[i]>>1);
}
}*/
void show_num (unsigned int x, unsigned int y, int chin)
{
int temp1,temp2;
uchar hi,lo;
uchar b;
unsigned int d=y;
temp2=chin;
outcode(0x4f);
temp1=0x5000+x/8+d*AP;//5218
hi=temp1>>8;//hi=temp1/256;
lo=(uchar)temp1;//lo=temp1%256;
outcode(0x46);
outdata(lo);
outdata(hi);
outcode(0x42);
for(b=0;b<16;b++){
outdata(hzdot[temp2]);
temp2++;
}
}
#define Start 0
#define Screen 1
#define Setup 2
#define FreqScan 3
#define TiaoFu 4
#define enter_num 0
#define wait_key 1
#define exit_setup 2
#define scan_start 3
#define scan_select 4
unsigned long int Freq,FreqS,step,minF,maxF;
unsigned long int Freq_temp;
unsigned char MainSM=0;
unsigned char SetupSM=0;
//unsigned char SetFSM=4;//扫频状态的子状态
unsigned long int SetFSM=0;
unsigned long int aa=0;//aa是扫频状态中表示子状态的一个参数,记录按下setup的次数
unsigned long int bb=1;//bb is freq scan mod select
void main(void)
{
unsigned char mod,value_index;
init_port();
init_interrupt();
_nop_();
_nop_();
_nop_();
display_init();
//cls();
while(1){
switch(MainSM)
{
case Start: MainSM=Screen;
SetPhase(0);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -