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

📄 t10a2_menu.c

📁 AVR单片机基础程序实例! 十个程序源代码。
💻 C
📖 第 1 页 / 共 2 页
字号:
#include <iom64.h>
#include <inavr.h>
#include <ioavr.h>
#define uchar unsigned char
#define uint  unsigned int
#include "T10A2_flash_extern.H"
#include "T10A2_extern_data.H"

void tv_anjian_disposal1(void)
{
	osd_byte[0]=menu_address;
	if(menu_address==0)osd_byte[1]=0;
	else
	osd_byte[1]=ram[10*pingduan+7];	//
	if(ram[10*pingduan+7]>5)
	osd_byte[1]=ram[10*pingduan+7]-6;
}
void ht_anjian_disposal2(void)
{
	osd_byte[0]=menu_address;
	if(menu_address==0)osd_byte[1]=0;
	else
	osd_byte[1]=mode_select_ht;//
}
void cd_anjian_disposal3(void)
{
	osd_byte[0]=menu_address;
	if(menu_address==0)osd_byte[1]=0;
	else
	{
		switch(cd_input_f)
		{
			case 0:
			osd_byte[1]=0;
			break;
			case 1:
			osd_byte[1]=0x01;
			break;
			case 2://只有卡插入
			osd_byte[1]=0x10;//改
			break;
			default:
			osd_byte[1]=0x11;
			break;
		}
	}
}
void mic_anjian_disposal5(void)
{
	osd_byte[0]=menu_address;
	if(menu_address==0)osd_byte[1]=0;
	else
	osd_byte[1]=kalaok_mode;
}
void setup_anjian_disposal6(void)
{
	osd_byte[0]=menu_address;
	osd_byte[1]=0;
}
void setup_anjian_disposal6_0(void)
{
	osd_byte[0]=menu_address;
	osd_byte[1]=system_setup;
}
void menu_disposal(void)
{
	uchar temp0,i;
	address_buffer=menu_address;
	switch(address_buffer)
	{
		case 0x00:
		if(anjian==6)
		{
			bdata3_flag|=BIT(MENU_OPEN_F);//菜单打开
			menu_address=0x01;
			ht_anjian_disposal2();
		}
		anjian=0xff;
		break;
		case 0x01:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==2)
		setup_anjian_disposal6();
		else if(anjian==3)
		tv_anjian_disposal1();
		else if((anjian==1)||(anjian==5))
		{menu_address=mode_select_ht+6;
			ht_anjian_disposal2();
		}
		else 	ht_anjian_disposal2();
		//display_state=1;
		//if(menu_address!=0)
		//write_data_display(0,13,disp_zi[menu_address>>4]);
		anjian=0xff;
		break;
		case 0x06:
		case 0x07:
		case 0x08:
		case 0x09:
		case 0x0a:
		case 0x0b:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==1)   //返回上一级时ht-mode显示的不是实际值
		{
			mode_select_ht=menu_address-6;
			menu_address=0x01;
			if(theatre_mode==1)
			{
				bdata0_flag|=BIT(VOL_DOWN_FLAG);//新加
				vol_max();
		//		bdata0_flag|=BIT(INPUT_FLAG);
				//write_data_display(0,13,mode[mode_select_ht+6]);
			}
		}
		ht_anjian_disposal2();
		anjian=0xff;
		break;
		case 0x10:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==2)
		ht_anjian_disposal2();
		else if(anjian==3)
		cd_anjian_disposal3();
		else if((anjian==1)||(anjian==5))
		{menu_address=ram[10*pingduan+7]+24;
			if(ram[10*pingduan+7]>5)
			menu_address=ram[10*pingduan+7]+18;
			tv_anjian_disposal1();
		}
		else	tv_anjian_disposal1();
		//display_state=1;
		//if(menu_address!=0)
		//write_data_display(0,13,disp_zi[menu_address>>4]);
		anjian=0xff;
		break;
		case 0x18:
		case 0x19:
		case 0x1a:
		case 0x1b:
		case 0x1c:
		case 0x1d:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==1)   //返回上一级时tv-mode显示的不是实际值
		{
			ram[10*pingduan+7]=menu_address-24;//按确认键后返回上一?			menu_address=0x10;
			if(theatre_mode==0)
			{
				bdata0_flag|=BIT(VOL_DOWN_FLAG);//新加
				vol_max();
		//		bdata0_flag|=BIT(INPUT_FLAG);
				//write_data_display(0,13,mode[ram[10*pingduan+7]]);
			}
		}
		tv_anjian_disposal1();
		anjian=0xff;
		break;
		case 0x20://因为这个地址另外加的,需修改,menu需重写表格,select 加一个no input,同时mode需修改
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==2)
		tv_anjian_disposal1();
		else if(anjian==3)
		mic_anjian_disposal5();
		else if((anjian==1)||(anjian==5))
		{
			switch(cd_input_f)
			{
				case 0:
				menu_address=0x20;
				osd_byte[0]=menu_address;
				osd_byte[1]=0;
				break;
				case 1:
				osd_byte[0]=menu_address;
				osd_byte[1]=0x01;
				break;
				case 2://只有卡插入
				menu_address=0x24;
				osd_byte[0]=menu_address;
				osd_byte[1]=0x10;//改
				break;
				default:
				osd_byte[0]=menu_address;
				osd_byte[1]=0x11;
				break;
			}
		}
		else
		cd_anjian_disposal3();
		//display_state=1;
		//if(menu_address!=0)
		//write_data_display(0,13,disp_zi[menu_address>>4]);
		anjian=0xff;
		break;
		case 0x21:
		case 0x22:
		case 0x23:
		case 0x24:
		case 0x25:
		case 0x26:
		temp0=address_buffer-0x21;
		switch(cd_input_f)
		{
			case 1:
			menu_address=table1_menu[temp0][anjian];
			break;
			case 2:
			menu_address=table2_menu[temp0][anjian];
			break;
			case 3:
			menu_address=table3_menu[temp0][anjian];
			break;
			default:
			menu_address=table_menu[address_buffer][anjian];
			break;
		}
		cd_anjian_disposal3();
		if(anjian==1)
		{
			menu_address=0;
			bdata3_flag&=~BIT(MENU_OPEN_F);
			cd_input_select=temp0;
			input_select_init();
			remote_disposal_usbcard_inputselect();
			remote_usbcard_on_disposal_1();
		}
		anjian=0xff;
		break;
		case 0x30:
		menu_address=table_menu[address_buffer][anjian];
		setup_anjian_disposal6();
		anjian=0xff;
		break;
		case 0x31:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==1)
		{
			reset_disposal();
			bdata4_flag|=BIT(RESET_FLAG);
	/*		if(input_select==1)
			{
				state_reg=0x32;//改成自动搜索家庭影院
				//input_select=0;
				input_select_autojia();
				if(input_select>3)input_select=0;
				input_select_init();
				single_counter=0;
				auto_search_counter=Switch_Channel_Timer;//暂用
				bdata4_flag|=BIT(AUTO_SEARCH_F);
//				write_data_display(0,13,home_theatre);//显示家庭影院,并自动搜台
				
				//王明文添加
				VFD_Variable = HT_Mode;
				Display_Proc(Input_DisMode);	
			}
			else if(input_select==5)
			{
				//input_select_autojia();
				//if(input_select>6)input_select=6;
				//input_select_init();
				state_reg=0x32;//改成电视影院自动搜索
				//input_select=4;
				input_select_autojia();
				if(input_select>6)input_select=6;
				input_select_init();
				single_counter=0;
				auto_search_counter=Switch_Channel_Timer;//暂用
				bdata4_flag|=BIT(AUTO_SEARCH_F);
//				write_data_display(0,13,tv_theatre);//显示电视影院,并自动搜台
				
				//王明文添加
				VFD_Variable = TV_Mode;
				Display_Proc(Input_DisMode);	
							
				//bdata3_flag|=BIT(DECODER_START);//新加,一按电视影院就启动解码 改
			}
			else	asm("nop");
			*/
		}
		setup_anjian_disposal6();
		anjian=0xff;
		break;
		case 0x32:
		anjian=0xff;
		break;
		case 0x33:
		menu_address=table_menu[address_buffer][anjian];
		setup_anjian_disposal6();
		anjian=0xff;
		break;
		case 0x40:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==2)
		{
			cd_anjian_disposal3();
		}
		else if(anjian==3)
		setup_anjian_disposal6();
		else if((anjian==1)||(anjian==5))
		{menu_address=kalaok_mode+67;
			mic_anjian_disposal5();
		}
		else 	mic_anjian_disposal5();
		//display_state=1;
		//if(menu_address!=0)
		//write_data_display(0,13,disp_zi[menu_address>>4]);
		anjian=0xff;
		break;
		case 0x43:
		case 0x44:
		case 0x45:
		case 0x46:
		case 0x47:
		menu_address=table_menu[address_buffer][anjian];
		if(anjian==1)
		{
			kalaok_mode=menu_address-67;
			menu_address=0x40;
			//write_data_display(0,13,ok_mode_disp[kalaok_mode]);
			
			//state_counter=6;
			//VFD_Variable = kalaok_mode;
			//Display_Proc(OK_Mode_DisMode);
								
			if(kalaok_mode!=5)
			{
				for(i=0;i<4;i++)
				{ram_2[i]=kalaok_parameter[kalaok_mode][i];}//mic_bass mic_treble
			}
			else
			{
				for(i=0;i<4;i++)
				{ram_2[i]=ram[114+i];}//mic_bass=mic_bass_user;用户模式调出
			}
			/*送参数to karaok*/
			write_2313_page();
			write_mic_delay();
		}
		mic_anjian_disposal5();
		anjian=0xff;
		break;
		case 0x48:
		menu_address=table_menu[address_buffer][anjian];
		if((anjian==1)||(anjian==5))
		{
			kalaok_mode=5;//new
			osd_byte[0]=menu_address;
			osd_byte[1]=mic_echo;
			mic_select=2;

			if(kalaok_mode!=5)
			{
				for(i=0;i<4;i++)
				{ram_2[i]=kalaok_parameter[kalaok_mode][i];}//mic_bass mic_treble
			}
			else
			{
				for(i=0;i<4;i++)
				{ram_2[i]=ram[114+i];}//mic_bass=mic_bass_user;用户模式调出
			}
			/*送参数to karaok*/
			write_2313_page();
			write_mic_delay();
		}
		else
		mic_anjian_disposal5();
		anjian=0xff;

⌨️ 快捷键说明

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