⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ss_sweep.c

📁 在采用 320x240 屏的设计实验箱上运行
💻 C
📖 第 1 页 / 共 3 页
字号:
			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 + -