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

📄 udp6453gd101.c

📁 NEC6453与51系列单片机通讯子程序
💻 C
📖 第 1 页 / 共 5 页
字号:
	if(data_addr_ls0>8)		R_OE=1;
	else					R_OE=data_addr_ls0;
	
	data_addr_ls0=eerom_rd(B_ADDR);
	if(data_addr_ls0>8)		B_OE=1;
	else					B_OE=data_addr_ls0;
	
	data_addr_ls0=eerom_rd(LEVEL_ADDR);
	if(data_addr_ls0>8)		LEVEL_OE=1;
	else					LEVEL_OE=data_addr_ls0;
	
	data_addr_ls0=eerom_rd(ALARM_ADDR);
	if(data_addr_ls0==0)	ALARM_OE=0;
	else			ALARM_OE=1;	
	
	data_addr_ls0=eerom_rd(BW_TINE_ADDR);
	if(data_addr_ls0>3)	BW_TIME_OE=0;
	else			BW_TIME_OE=data_addr_ls0;	
	
	data_addr_ls0=eerom_rd(BW_LEVEL_ADDR);
	if(data_addr_ls0==0)	BW_LEVEL_OE=0;
	else			BW_LEVEL_OE=1;	
	
	data_addr_ls0=eerom_rd(UP_SIDE_DOWN_ADDR);
	if(data_addr_ls0==0)	UP_SIDE_DOWN_OE=0;
	else			UP_SIDE_DOWN_OE=1;	
	
	data_addr_ls0=eerom_rd(CHROMA_GAIN_ADDR);
	if(data_addr_ls0>8)	CHROMA_GAIN_OE=0;
	else			CHROMA_GAIN_OE=data_addr_ls0;	
	
	data_addr_ls0=eerom_rd(AP_GAIN_ADDR);
	if(data_addr_ls0>8)	AP_GAIN_OE=0;
	else			AP_GAIN_OE=data_addr_ls0;	
	
	data_addr_ls0=eerom_rd(PEDESTAL_ADDR);
	if(data_addr_ls0>8)	PEDESTAL_OE=0;
	else			PEDESTAL_OE=data_addr_ls0;	
	
	data_addr_ls0=eerom_rd(BW_ADDR);
	if(data_addr_ls0>4)	BW_OE=0;
	else			BW_OE=data_addr_ls0;	
	
	data_addr_ls0=eerom_rd(BURST_ADDR);
	if(data_addr_ls0==0)	BURST_OE=0;
	else			BURST_OE=1;	
}
/*******键盘扫描******/
void	key_scan()
{
	UCHAR	i;
	if(vactive==1)	return;	
	keyrd_ls=P0;
	keyrd_ls=keyrd_ls | 0xE0;
	if((keyrd_ls==VACTIVE_RL)||(keyrd_ls==VACTIVE_RLSET))
		{
		for(i=0;i<5;i++)	delay(200);
		if((keyrd_ls==VACTIVE_RL)||(keyrd_ls==VACTIVE_RLSET))
			{
			keyval=keyrd_ls;
			vactive=1;
			bitkey=0;
			}
		return;
		}
	if(bitkey==0)
		{		
		keyrd_ls=P0;
		keyrd_ls=keyrd_ls | 0xE0;
		
		if(keyrd_ls==0xFF)
			{
			keyval_ls=0xFF;
			return;
            		}
		if((key_lr_bz==1)&&(keyrd_ls==keyval_ls))
			{
			if((keyval==VACTIVE_L)||(keyval==VACTIVE_R))
				{
				TR0=1;
				if(dsbz==0)  	return;		
				dsbz=0;
				TH0=0xBE;		/*设置定时器0为10ms*/
				TL0=0xE5;
				TR0=0;		
				DOG=!DOG;
				bitkey=0;				
				delay(200);				
				vactive=1;
				return;
				}
			}
		if((key_ud_bz==1)&&(keyrd_ls==keyval_ls))
			{
			if((keyval==VACTIVE_UP)||(keyval==VACTIVE_DOWN))
				{
				TR0=1;
				if(dsbz==0)  	return;		
				dsbz=0;
				TH0=0xBE;		/*设置定时器0为10ms*/
				TL0=0xE5;
				TR0=0;
				DOG=!DOG;
				bitkey=0;
				delay(200);				
				vactive=1;
				return;
				}
			}
		if(keyrd_ls>=keyval_ls)
			{
			keyval_ls=keyrd_ls;
			return;
			}		
		keyval=keyrd_ls;
		bitkey=1;		
		}
	else	{		
		TR0=1;
		if(dsbz==0)  	return;		
		dsbz=0;
		TH0=0xBE;		/*设置定时器0为10ms*/
		TL0=0xE5;
		TR0=0;		
		DOG=!DOG;
		bitkey=0;
		keyrd_ls=P0;
		keyrd_ls=keyrd_ls | 0xE0;
		if(keyval!=keyrd_ls)
			{
			keyval_ls=keyrd_ls;			
			return;
			}		
		//keyval=keyval_ls ^ keyval;
		//keyval=keyval_ls ^ 0xff;
		//keyval=keyval & 0x1f;
		keyval_ls=keyrd_ls;
		vactive=1;
		bitkey=0;				
		if((key_lr_bz==1)&&((keyval==VACTIVE_L)||(keyval==VACTIVE_R)))	
			{
			delay(250);
			delay(250);
			}
		if((key_ud_bz==1)&&((keyval==VACTIVE_UP)||(keyval==VACTIVE_DOWN)))	
			{
			delay(250);
			delay(250);
			}
		}
}
/*菜单退出子程序*/
void	menu_esc_cl()
{
	UCHAR	data_addr_ls0,data_addr_ls1,i;
	
	eerom_byte_wr(BT_CAM_X_ADDR,bt_cam_x);
	eerom_byte_wr(BT_CAM_Y_ADDR,bt_cam_y);	
	for(i=0;i<16;i++)
		{
		if(bt_cam[i]=='^')	bt_cam[i]='q';
		}		
	menu_esc_bz=0;		/*菜单标志:1=菜单状态;0=否*/
	cam_id_lx=0;
	cam_id_hz_x=0;
	cam_id_hz_y=0;
	clr_crt();			/*清屏*/				
	bt_cam_xy_cl();
	if(CAM_ID_OE==1)	crtzf_ch(2,1,bt_cam,0);
	else			crtzf_ch(2,1,"qqqqqqqqqqqqqqqqqq",0);
	
	for(data_addr_ls0=0;data_addr_ls0<16;data_addr_ls0++)
		{
		data_addr_ls1=data_addr_ls0+BT_ADDR;
		eerom_byte_wr(data_addr_ls1,bt_cam[data_addr_ls0]);		
		}			
		
	eerom_byte_wr(CAM_ID_ADDR,CAM_ID_OE);
	eerom_byte_wr(ALC_ELC_ADDR,ALC_ELC_OE);
	eerom_byte_wr(SHUTTER_ADDR,SHUTTER_OE);
	eerom_byte_wr(AGC_ADDR,AGC_OE);
	eerom_byte_wr(SENS_UP_ADDR,SENS_UP_OE);
	eerom_byte_wr(LL_INT_ADDR,LL_INT_OE);
	eerom_byte_wr(ATW_AWC_ADDR,ATW_AWC_OE);
	eerom_byte_wr(DET_ADDR,DET_OE);
	eerom_byte_wr(DC_VIDEO_ADDR,DC_VIDEO_OE);
	
	eerom_byte_wr(ELC_ALC_CONT_ADDR,ELC_ALC_CONT);
	eerom_byte_wr(BLCOF_ADDR,BLCOF_OE);
	eerom_byte_wr(COARSE_ADDR,COARSE_OE);	
	eerom_byte_wr(FINE_ADDR,FINE_OE);
	eerom_byte_wr(R_ADDR,R_OE);
	eerom_byte_wr(B_ADDR,B_OE);
	eerom_byte_wr(LEVEL_ADDR,LEVEL_OE);	
	eerom_byte_wr(ALARM_ADDR,ALARM_OE);
	
	eerom_byte_wr(BW_TINE_ADDR,BW_TIME_OE);
	eerom_byte_wr(BW_LEVEL_ADDR,BW_LEVEL_OE);
	eerom_byte_wr(UP_SIDE_DOWN_ADDR,UP_SIDE_DOWN_OE);
	eerom_byte_wr(CHROMA_GAIN_ADDR,CHROMA_GAIN_OE);
	eerom_byte_wr(AP_GAIN_ADDR,AP_GAIN_OE);
	eerom_byte_wr(PEDESTAL_ADDR,PEDESTAL_OE);
	eerom_byte_wr(BW_ADDR,BW_OE);
	eerom_byte_wr(BURST_ADDR,BURST_OE);
}
/*主菜单显示子程序*/
void	main_menu_crt()
{	
	UCHAR	i;	
	if(menu_p[0]!=0)    	/*判断是否在主菜单*/
		{
		menu_p[0]=0;
		clr_crt();			/*清屏*/	
		uPD6453_16(0x86,0x00);	/*显示位置命令*/
		for(i=0;i<36;i++)
			{		
			uPD6453_16(enter[i],enter[i+1]);	/*显示位置命令*/
			i++;
			}	
		uPD6453_16(0x86,0x20);	/*显示位置命令*/
		for(i=0;i<36;i++)
			{		
			uPD6453_16(tszf[i],tszf[i+1]);	/*显示位置命令*/
			i++;
			}		
		uPD6453_16(0x80,0xC7);	/*显示位置命令*/	
		crtzf_ch(4,menu_main_y[1],menu_main0,0);
		crtzf_ch(0,menu_main_y[2],menu_main1,0);
		crtzf_ch(0,menu_main_y[3],menu_main2,0);
		crtzf_ch(0,menu_main_y[4],menu_main3,0);
		crtzf_ch(0,menu_main_y[5],menu_main4,0);
		crtzf_ch(0,menu_main_y[6],menu_main5,0);
		crtzf_ch(0,menu_main_y[7],menu_main6,0);
		crtzf_ch(0,menu_main_y[8],menu_main7,0);
		crtzf_ch(0,menu_main_y[9],menu_main8,0);
		crtzf_ch(0,menu_main_y[10],menu_main9,0);
		crtzf_ch(1,menu_main_y[11],menu_end,0);
		crtzf_ch(9,menu_main_y[11],menu_main11,0);
		}
	if(CAM_ID_OE==1)	crtzf_ch(13,menu_main_y[2],crt_on_off[1],0);	
	else			crtzf_ch(13,menu_main_y[2],crt_on_off[0],0);	
	crtzf(17,menu_main_y[2],'a',0);
	if(ALC_ELC_OE==0)	crtzf_ch(13,menu_main_y[3],crt_alc_elc[0],0);
	else			crtzf_ch(13,menu_main_y[3],crt_alc_elc[1],0);
	crtzf(17,menu_main_y[3],'a',0);
	crtzf_ch(13,menu_main_y[4],crt_shutter[SHUTTER_OE],0);
	crtzf_ch(13,menu_main_y[5],crt_agc[AGC_OE],0);	
	/********/
	if(SENS_UP_OE==0)	crtzf_ch(17,menu_main_y[6],"qqqq",0);
	else	{
		if(SENS_UP_OE==5)	crtzf_ch(17,menu_main_y[6],"qqqq",0);		
		else	
			{
			if(SENS_UP_OE<5)	crtzf_ch(17,menu_main_y[6],crt_auto_fix[1],0);	
			else				crtzf_ch(17,menu_main_y[6],crt_auto_fix[0],0);	
			}
		}
	crtzf_ch(13,menu_main_y[6],crt_sens_up[SENS_UP_OE],0);	
	/********/
	crtzf_ch(13,menu_main_y[7],crt_ll_int[LL_INT_OE],0);	
	
	switch(LL_INT_OE)
		{
		case	0:	
			crtzf_ch(17,menu_main_y[7],"qqqqqq",0);
			break;
		case	1:
			crtzf_ch(17,menu_main_y[7],"aqqqqq",0);
			break;
		case	2:
			crtzf(22,menu_main_y[7],'a',0);
			break;
		case	3:
			crtzf_ch(21,menu_main_y[7],"aq",0);
			break;
		}			
			
	//if(LL_INT_OE==1)	crtzf(17,menu_main_y[7],'a',0);
	//else			crtzf(17,menu_main_y[7],'q',0);
	/*******/	
	if(ATW_AWC_OE==2)	
		{
		crtzf_ch(13,menu_main_y[8],crt_atw_awc[ATW_AWC_OE],0);	
		crtzf_ch(16,menu_main_y[8],"#PUSH SW",0);			
		}
	else
		{
		crtzf_ch(16,menu_main_y[8],"qqqqqqqq",0);	
		crtzf_ch(13,menu_main_y[8],crt_atw_awc[ATW_AWC_OE],0);	
		crtzf(17,menu_main_y[8],'a',0);
		}
	/*******/
	//crtzf_ch(13,menu_main_y[9],crt_on_off[DET_OE],0);	
	if(DET_OE==1)		
		{
		crtzf_ch(13,menu_main_y[9],crt_on_off[1],0);
		crtzf(17,menu_main_y[9],'a',0);
		}
	else	{
		crtzf_ch(13,menu_main_y[9],crt_on_off[0],0);
		crtzf(17,menu_main_y[9],'q',0);
		}
	/*******/
	if(DC_VIDEO_OE==0)	crtzf_ch(13,menu_main_y[10],crt_dc_video[0],0);
	else			crtzf_ch(13,menu_main_y[10],crt_dc_video[1],0);
	crtzf_ch(1,menu_main_y[11],menu_end,0);
	if(MENU_OE==0)	crtzf_ch(16,menu_main_y[11],crt_enable_disable[0],0);	
	else		crtzf_ch(16,menu_main_y[11],crt_enable_disable[1],0);	
	
	switch(menu_p[1])	/*第1级菜单项目号*/
		{
		case	0:			
			if(CAM_ID_OE==1)	crtzf_ch(13,menu_main_y[2],crt_on_off[1],1);	
			else			crtzf_ch(13,menu_main_y[2],crt_on_off[0],1);	
			crtzf(17,menu_main_y[2],'a',0);
			break;		
		case	1:
			if(ALC_ELC_OE==0)	crtzf_ch(13,menu_main_y[3],crt_alc_elc[0],1);
			else			crtzf_ch(13,menu_main_y[3],crt_alc_elc[1],1);
			crtzf(17,menu_main_y[3],'a',0);
			break;		
		case	2:
			crtzf_ch(13,menu_main_y[4],crt_shutter[SHUTTER_OE],1);			
			break;
		case	3:
			crtzf_ch(13,menu_main_y[5],crt_agc[AGC_OE],1);	
			break;
		case	4:
			crtzf_ch(13,menu_main_y[6],crt_sens_up[SENS_UP_OE],1);				
			break;
		case	5:
			crtzf_ch(13,menu_main_y[7],crt_ll_int[LL_INT_OE],1);
			switch(LL_INT_OE)
				{
				case	0:
					crtzf_ch(17,menu_main_y[7],"qqqqqq",0);
					break;
				case	1:
					crtzf_ch(17,menu_main_y[7],"aqqqqq",0);
					break;
				case	2:
					crtzf(22,menu_main_y[7],'a',0);
					break;
				case	3:
					crtzf_ch(21,menu_main_y[7],"aq",0);
					break;
				}							
			break;
		case	6:				
			crtzf_ch(13,menu_main_y[8],crt_atw_awc[ATW_AWC_OE],1);	
			break;	
		case	7:
			if(DET_OE==1)	crtzf_ch(13,menu_main_y[9],crt_on_off[1],1);
			else		crtzf_ch(13,menu_main_y[9],crt_on_off[0],1);	
			break;	
		case	8:
			if(DC_VIDEO_OE==0)	crtzf_ch(13,menu_main_y[10],crt_dc_video[0],1);
			else			crtzf_ch(13,menu_main_y[10],crt_dc_video[1],1);			
			break;	
		case	9:
			crtzf_ch(1,menu_main_y[11],menu_end,1);
			break;	
		case	10:
			if(MENU_OE==0)	crtzf_ch(16,menu_main_y[11],crt_enable_disable[0],1);	
			else		crtzf_ch(16,menu_main_y[11],crt_enable_disable[1],1);
			break;	
		}	
}
void	cam_id_menu_crt()
{
	UCHAR	sel_crt_x;
	UCHAR	i;

	if(menu_p[0]!=1)
		{
		menu_p[0]=1;
		menu_p[1]=0;		/*第1级菜单项目号*/								
		clr_crt();		/*清屏*/
		uPD6453_8(0x0D);	/*显示控制命令(开)*/
		uPD6453_16(0x80,0xC7);	/*显示位置命令*/			
		//cam_id_hz_x=0;
		//cam_id_hz_y=0;
		for(i=0;i<16;i++)
			{
			if(bt_cam[i]=='q')	bt_cam[i]='^';	
			}		
		cam_id_lx=0;
		}
	
	bt_cam[16]=0;
	key_ud_bz=0;
	key_lr_bz=0;
	
	crtzf_ch(3,menu_cam_id_set_y[6],menu_cam_id_set5,0);
	crtzf_ch(3,menu_cam_id_set_y[7],menu_cam_id_set6,0);
	crtzf_ch(8,menu_cam_id_set_y[7],menu_ret,0);
	crtzf_ch(12,menu_cam_id_set_y[7],menu_end,0);
	crtzf_ch(16,menu_cam_id_set_y[7],menu_cam_id_set9,0);
	crtzf_ch(3,10,bt_cam,0);
	crtzf_ch(3,11,"qqqqqqqqqqqqqqqqqqqqqqqq",0);	
	
	if(cam_id_lx>2)	cam_id_lx=0;
	switch(cam_id_lx)
		{
		case	0:
			crtzf_ch(4,menu_cam_id_set_y[1],menu_cam_id_set0,0);
			crtzf_ch(4,menu_cam_id_set_y[2],menu_cam_id_set1,0);
			crtzf_ch(4,menu_cam_id_set_y[3],menu_cam_id_set2,0);
			crtzf_ch(4,menu_cam_id_set_y[4],menu_cam_id_set3,0);
			crtzf_ch(4,menu_cam_id_set_y[5],menu_cam_id_set4,0);
			crtzf_ch(10,menu_cam_id_set_y[6],menu_cam_id_set11,0);
			crtzf_ch(15,menu_cam_id_set_y[6],menu_cam_id_set12,0);
			if(menu_p[2]>67)	
				{
				cam_id_data_js=menu_p[2]-68;		
				crtzf_ch(cam_id_data_js+3,11,"%",1);					
				key_lr_bz=1;
				return;
				}
			else	crtzf_ch(cam_id_data_js+3,11,"%",0);
			if(menu_p[2]<10)	
				{
				crtzf_ch(4,menu_cam_id_set_y[1],menu_cam_id_set0,0);
				crtzf(4+menu_p[2],menu_cam_id_set_y[1],menu_cam_id_set0[menu_p[2]],1);
				key_lr_bz=1;
				return;
				}
			if(menu_p[2]<23)	
				{
				sel_crt_x=menu_p[2]-10;		
				crtzf_ch(4,menu_cam_id_set_y[2],menu_cam_id_set1,0);
				crtzf(sel_crt_x+4,menu_cam_id_set_y[2],menu_cam_id_set1[sel_crt_x],1);
				key_lr_bz=1;
				return;
				}
			if(menu_p[2]<36)	
				{
				sel_crt_x=menu_p[2]-23;		
				crtzf_ch(4,menu_cam_id_set_y[3],menu_cam_id_set2,0);
				crtzf(sel_crt_x+4,menu_cam_id_set_y[3],menu_cam_id_set2[sel_crt_x],1);
				key_lr_bz=1;
				return;
				}
			if(menu_p[2]<49)	
				{
				sel_crt_x=menu_p[2]-36;		
				crtzf_ch(4,menu_cam_id_set_y[4],menu_cam_id_set3,0);
				crtzf(sel_crt_x+4,menu_cam_id_set_y[4],menu_cam_id_set3[sel_crt_x],1);
				key_lr_bz=1;
				return;
				}			
			break;
		case	1:
			crtzf_ch(4,menu_cam_id_set_y[1],"aibjckdlqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[2],"qqqqqqqqqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[3],"qqqqqqqqqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[4],"qqqqqqqqqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[5],"qqqqqqqqqqqqqq",0);
			crtzf_ch(10,menu_cam_id_set_y[6],menu_cam_id_set10,0);
			crtzf_ch(15,menu_cam_id_set_y[6],menu_cam_id_set12,0);
			if(menu_p[2]>67)	
				{
				cam_id_data_js=menu_p[2]-68;		
				crtzf_ch(cam_id_data_js+3,11,"%",1);					
				key_lr_bz=1;
				return;
				}
			else	crtzf_ch(cam_id_data_js+3,11,"%",0);
			if(menu_p[2]<61)	
				{
				switch(cam_id_hz_y)
					{
					case	0:
						crtzf_ch(4,menu_cam_id_set_y[1],"ai",1);
						break;
					case	1:
						crtzf_ch(6,menu_cam_id_set_y[1],"bj",1);
						break;
					case	2:
						crtzf_ch(8,menu_cam_id_set_y[1],"ck",1);
						break;
					case	3:
						crtzf_ch(10,menu_cam_id_set_y[1],"dl",1);
						break;
					}				
				return;
				}			
			break;
		case	2:
			crtzf_ch(4,menu_cam_id_set_y[1],"aibjckdlqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[2],"qqqqqqqqqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[3],"qqqqqqqqqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[4],"qqqqqqqqqqqqqq",0);
			crtzf_ch(4,menu_cam_id_set_y[5],"qqqqqqqqqqqqqq",0);
			crtzf_ch(10,menu_cam_id_set_y[6],menu_cam_id_set10,0);
			crtzf_ch(15,menu_cam_id_set_y[6],menu_cam_id_set11,0);
			if(menu_p[2]>67)	
				{
				cam_id_data_js=menu_p[2]-68;		
				crtzf_ch(cam_id_data_js+3,11,"%",1);					
				key_lr_bz=1;
				return;
				}
			else	crtzf_ch(cam_id_data_js+3,11,"%",0);
			if(menu_p[2]<61)	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -