亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? t10a2_main.c

?? avr 單片機的學習
?? C
?? 第 1 頁 / 共 5 頁
字號:
{
	PORTD|=BIT(0);   // i2c SCL on ATmega128,64
	PORTD|=BIT(1);   // i2c SDA on ATmega128,64
	TWCR|=1<<TWEN;// I2C總線使能
	TWCR|=1<<TWIE;
	TWCR|=1<<TWEA;
	TWCR= 0x00; //disable twi
	TWBR= 0x20; //set bit rate
	TWSR= 0x00; //set prescale
	TWAR= 0xB0; //set slave address 要更改
	TWCR= 0x45; //enable twi
}
void i2cReceiveByte(unsigned char ackFlag)
{
	//開始通過 i2c 接收
	if( ackFlag )
	{
		// ackFlag = TRUE: 數據接收后回應ACK
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA);
	}
	else
	{
		// ackFlag = FALSE: 數據接收后無回應
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT);
	}
}
#pragma vector= TWI_vect//:34
__interrupt void twi_isr(void)
{
	unsigned char status;
	//SEI();
	status = TWSR & 0xf8;
	switch(status)
	{
		// 從接收狀態碼
		case TW_SR_SLA_ACK:              // 0x60: 自己的SLA+W 已經被接收,ACK 已返回
		case TW_SR_ARB_LOST_SLA_ACK:     // 0x68: SLA+R/W 作為主機的仲裁失敗;自己的SLA+W 已經被接收,ACK 已返回
		case TW_SR_GCALL_ACK:            // 0x70: 接收到廣播地址,ACK 已返回
		case TW_SR_ARB_LOST_GCALL_ACK:   // 0x78: SLA+R/W 作為主機的仲裁失敗;接收到廣播地址,ACK 已返回
		line=0;
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA);
		break;
		case TW_SR_DATA_ACK:            // 0x80: 以前以自己的 SLA+W 被尋址;數據已經被接收,ACK 已返回
		case TW_SR_GCALL_DATA_ACK:   // 0x90: 以前以廣播方式被尋址;數據已經被接收,ACK 已返回
		receive_data[line]=TWDR;/*保存數據*/
		line++;
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA);

		break;
		case TW_SR_DATA_NACK:            // 0x88: 以前以自己的 SLA+W 被尋址;數據已經被接收,NOT ACK 已返回
		case TW_SR_GCALL_DATA_NACK:   // 0x98: 以前以廣播方式被尋址;數據已經被接收,NOT ACK 已返回
		// 接收數據,回應 NACK
		i2cReceiveByte(FALSE);
		break;
		case TW_SR_STOP:               // 0xA0: 在以從機工作時接收到STOP或重復START
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA);
		// i2c 接收完成
		//if(i2cSlaveReceive)
		//   i2cSlaveReceive(I2cReceiveDataIndex, I2cReceiveData);
		// 設置狀態
		//I2cState = I2C_IDLE;
		bdata3_flag|=BIT(TWI_RECEIVED_F);
		if(receive_data[0]==0)
		{
			if(receive_data[1]==0x01)
			{
				cd_input_f|=BIT(USB_INSERT_F);
				//USB接入
				state_counter=6;
				VFD_Variable = 0;
				Display_Proc(USB_CARD_Connect_DisMode);
			}
			else	
			{
				cd_input_f|=BIT(CARD_INSERT_F);
				receive_data_card4=receive_data[1];
				//CARD接入
				state_counter=6;
				VFD_Variable = 2;
				Display_Proc(USB_CARD_Connect_DisMode);
			}
		}
		else if(receive_data[0]==1)
		{
			if(receive_data[1]==0x01)
			{
				cd_input_f&=~BIT(USB_INSERT_F);
				//USB拔出
				state_counter=6;
				VFD_Variable = 1;
				Display_Proc(USB_CARD_Connect_DisMode);
			}
			else
			{
				cd_input_f&=~BIT(CARD_INSERT_F);
				receive_data_card4=receive_data[1];
				//CARD拔出
				state_counter=6;
				VFD_Variable = 3;
				Display_Proc(USB_CARD_Connect_DisMode);
			}
		}
		else if(receive_data[0]==0x20)
		{
			bdata4_flag|=BIT(NUMBER_SINGLE_F);
			bdata3_flag&=~BIT(DIGITAL_SIGNAL_ON);
		}
		else if((receive_data[0]&0xf0)==0x30)
		{
			bdata4_flag|=BIT(NUMBER_SINGLE_F);
			bdata3_flag|=BIT(DIGITAL_SIGNAL_ON);
			receive_number_single[0]=receive_data[0];
			receive_number_single[1]=receive_data[1];
		}
		else if((receive_data[0]&0xf0)==0x80)
		{
			bdata4_flag|=BIT(RECEIVE_8X_DATA_F);
			receive_data_8x[0]=receive_data[0];
			receive_data_8x[1]=receive_data[1];
		}
		else	asm("nop");
		break;
		// 從發?
		case TW_ST_SLA_ACK:               // 0xA8: 自己的SLA+R 已經被接收,ACK 已返回
		case TW_ST_ARB_LOST_SLA_ACK:// 0xB0: SLA+R/W 作為主機的仲裁失敗;自己的SLA+R 已經被接收,ACK 已返回

		TWDR=osd_byte[0];
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA);
		break;
		case TW_ST_DATA_ACK:            // 0xB8: TWDR 里數據已經發送,接收到ACK
		TWDR=osd_byte[1];
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT);
		PORTC&=~BIT(TWI_TRANS_F);//附加,數據傳送完成,標志位置1

		break;
		case TW_ST_DATA_NACK:            // 0xC0: TWDR 里數據已經發送接收到NOT ACK
		case TW_ST_LAST_DATA:            // 0xC8: TWDR 的一字節數據已經發送(TWAE = “0”);接收到ACK
		// 全部完成
		// 從方式開放
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA);
		// 設置狀態
		//I2cState = I2C_IDLE;
		break;
		case TW_NO_INFO:                 // 0xF8: 沒有相關的狀態信息;TWINT = “0”
		// 無操作
		break;
		case TW_BUS_ERROR:                   // 0x00: 由于非法的START 或STOP 引起的總線錯誤
		TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWSTO)|(1<<TWEA);// 設置狀態
		//I2cState = I2C_IDLE;
		break;
		default:
		break;
	}
}
void init_devices(void)
{
	//stop errant interrupts until set up
	CLI(); //disable all interrupts
	XDIV  = 0x00; //xtal divider
	XMCRA = 0x00; //external memory
	port_init();
	//watchdog_init();
	timer0_init();
	timer1_init();
	timer2_init();//新加
	timer3_init();
	twi_init();
	adc_init();  //AD初始化
	MCUCR = 0x00;
	EICRA = 0x00; //extended ext ints
	EICRB = 0x02; //extended ext ints
	EIMSK = 0x10;
	TIMSK = 0x00; //timer interrupt sources
	ETIMSK = 0x04; //extended timer interrupt sources
	//SEI(); //re-enable interrupts
	//all peripherals are now initialized	
}
void auto_search_channel_theatre(void)
{
	if(vol_down_time!=0)return;	//為0時才切換通道.

	if((bdata4_flag&BIT(AUTO_SEARCH_F))&&(!(bdata0_flag&BIT(INPUT_FLAG))))//自動搜之前
	{	
		//if(	Detect_Signal_Timer > 150)
		//{	
			switch(input_select)//
			{
				case 0:
				case 1:
				case 4:
				if(!(PING&BIT(SPDIF_DET)))single_counter++;
				break;
				case 2:
				case 3:
				case 5:
				case 6:
				if(!(PINC&BIT(CHECK_SINGLE)))single_counter++;
				break;

				default:
				single_counter=0;
				break;
			}
			switch(theatre_mode)
			{
				case 0:
				counter1_10ms++;
				if((input_select != 4 && (counter1_10ms<50))||(input_select ==4 && (counter1_10ms<50)))
				{
					if((input_select != 4 && (single_counter>35))||(input_select == 4 && (single_counter>35)))
					//if(single_counter>360)//自動搜之后,沒有啟動解碼板
					{bdata4_flag&=~BIT(AUTO_SEARCH_F);
						tv_input_select=input_select;
						single_counter=0;
						state_reg=0x01;
						display_init();
						if(touch_flag&BIT(fai_autosearch_tv))
						{
					   	touch_flag&=~BIT(fai_autosearch_tv);
						}
	//					write_data_display(0,13,allinput_select_disp[input_select]);
						
						//王明文添加
						VFD_Variable = input_select;
						Display_Proc(Detect_Source_DisMode);	
					}
				}
				else
				{
					counter1_10ms=0;
					single_counter=0;
					input_select_autojia();
					//if((input_select>6)||(input_select<4))input_select=4;
					if((input_select>6)||(input_select<4))//2007/5/17
							{
								if(touch_flag&BIT(fai_autosearch_tv))
									{
				 				  	touch_flag&=~BIT(fai_autosearch_tv);
									}
								if(tv_input_f&BIT(TV_COAXIAL_ON))
								input_select=4;
								else if(tv_input_f&BIT(TV_5CH1_ON))
								input_select=5;
								else
								input_select=6;
							}
					input_select_disposal();
				}
				break;
				case 1:
				counter1_10ms++;
				if(((input_select == 2 || input_select == 3) && (counter1_10ms<50))||((input_select == 0 || input_select == 1) && (counter1_10ms<50)))
				{
					if(((input_select == 2 || input_select == 3) && (single_counter>35))||((input_select == 0 || input_select == 1) && (single_counter>35)))
					{bdata4_flag&=~BIT(AUTO_SEARCH_F);
						ht_input_select=input_select;
						single_counter=0;
						state_reg=0x02;
						display_init();
						if(bdata7_flag&BIT(ai_autosearch))
						{
							bdata7_flag&=~BIT(ai_autosearch);
						}	
	//					write_data_display(0,13,allinput_select_disp[input_select]);
						//王明文添加
						VFD_Variable = input_select;
						Display_Proc(Source_DisMode);	
					}
				}
				else
				{
					counter1_10ms=0;
					single_counter=0;
					input_select_autojia();
					if(input_select>3)
					{
						if(bdata7_flag&BIT(ai_autosearch))
						{
							bdata7_flag&=~BIT(ai_autosearch);
							touch_flag|=BIT(fai_autosearch_tv);
						}
						input_select=0;
					}
					input_select_disposal();
				}
				break;
				default:break;
			}	
		//}				
		//else
		//{
		//	Detect_Signal_Timer++;
		//}
	}
}

ai_autosearch_tv()
{
	output_state_tv=ram_cd[9];
	if(theatre_mode==1)
	{
		output_state_tv=output_state_ht;		
		Detect_Signal_Timer = 0;
	}
	theatre_mode=0;
	state_reg=0x32;//新加
	//input_select=4;
	if(tv_input_f&BIT(TV_COAXIAL_ON))//2007/5/17
	input_select=4;
	else if(tv_input_f&BIT(TV_5CH1_ON))
	input_select=5;
	else    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);		
}

ai_autosearch_ht()
{
	output_state_ht=ram_cd[9];
	if(theatre_mode==0)
	{
		output_state_ht=output_state_tv;
		Detect_Signal_Timer = 0;
	}
	theatre_mode=1;
	state_reg=0x32;//新加
	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);	
}

void Initial_Channel(void)
{	
	remote_disp_init_1();
	menu_address=0;/*按此鍵跳出菜單*/
	if(bdata3_flag&BIT(MENU_OPEN_F))
	{bdata3_flag&=~BIT(MENU_OPEN_F);
		bdata4_flag|=BIT(MENU_INIT_F);//新附加, 以后要刪
	}
	if(bdata4_flag&BIT(TUICHU_ANJIAN_F))//新加,發0x01,0xXX初始化(播放無文件)
	{bdata4_flag&=~BIT(TUICHU_ANJIAN_F);//改,跳出菜單
		osd_byte[0]=0;
		osd_byte[1]=0;
		remote_usbcard_on_disposal_1();
		delay_ms(10);
	}
	if(bdata3_flag&BIT(USB_CARD_PLAYER_F))//停止解碼USB,卡
	{bdata3_flag&=~BIT(USB_CARD_PLAYER_F);
		//bdata4_flag|=BIT(MENU_INIT_F);
		osd_byte[0]=0xb0;
		osd_byte[1]=0x09;
		remote_usbcard_on_disposal_1();
	}

}
void Menu_Return(void)
{
	if(bdata3_flag&BIT(MENU_OPEN_F))
	{
        menu_address=0;
		bdata3_flag&=~BIT(MENU_OPEN_F);
        osd_byte[0]=0;
		osd_byte[1]=0;
		remote_usbcard_on_disposal_1();		
		if(theatre_mode==0)
		  video_select=3;//新加視頻切換
		else if(theatre_mode==1)
		  video_select=1;
		else
		  video_select=2;
		  video_disposal();
     }
}



main()
{
	uchar i,j;	

	init_devices();

	
	PORTD&=~BIT(STANDBY_SWITCH);
	PORTC|=BIT(STANDBY);
	
   	Initial_VFD();
	
	bdata1_flag&=~BIT(WIRELESS_F);

//	data_4094&=~BIT(led_green);
//	data_4094&=~BIT(led_blue);
//	data_4094&=~BIT(BT_Sel);	
//	data_4094|=BIT(W2_4_Sel);
	//data_4094&=~BIT(coder);
//	data_4094&=~BIT(fan_con);
//	data_4094&=~BIT(MUTE_ALL);
//	data_4094&=~BIT(MUTE_SURROUND);
	write4094(0x24);
	
	Cn_En_Mode = 0;	//中文顯示,次變量需要保存	
	
	vol_dec=0x00;
	touch_flag&=~BIT(autofit);
	counter_1s_poweroff=0x00;

	counter1_10ms=0;
    single_counter=0;
	Detect_Signal_Timer = 0;

	Signal_Detect_Time = 0;
	Signal_Detect_Time1 = 0;
	Signal_Detect_Time2 = 0;
	Signal_Detect_OK = 0;
	
	for(i=0;i<120;i++)//先清零內存變量;
	{ram[i]=0x00;}
	for(i=0;i<46;i++)
	{ram_ht[i]=0x00;}
	for(i=0;i<13;i++)
	{ram_cd[i]=0x00;}
	//for(i=0;i<65;i++)
	//{disp_reg[i]=0;}
	//for(i=0;i<65;i++)
	//{disp_reg_copy[i]=0;}//清0

	
	j=SREG;
	CLI();
	
	for(i=1;i<114;i++)
	{
		__EEGET(ram[i-1],i);
	}
	for(i=114;i<118;i++)
	{
		__EEGET(ram_2[i-114],i);
	}
	for(i=121;i<176;i++)
	{
		__EEGET(ram_ht[i-121],i);
	}
	for(i=176;i<189;i++)
	{
		__EEGET(ram_cd[i-176],i);
	}
	__EEGET(kalaok_mode,189);
	__EEGET(Speaker_Mode,190);
	__EEGET(Cn_En_Mode,191);
        if(Cn_En_Mode>1)Cn_En_Mode=0;
	
	SEI();
	SREG=j;	

	if (Speaker_Mode == 1)
	{		
		bdata6_flag|=BIT(SPEAKER_BIG_FLAG);
	}
	else
	{	
		bdata6_flag&=~BIT(SPEAKER_BIG_FLAG);
	}	
	bdata6_flag|=BIT(CHANGE_SPEAKER);

	AutoFit_Volume = 0;
	fcounter1=0x00;
	fcounter2=0x00;
	scounter1=0x00;
	scounter2=0x00;
	fvol = 0;
	svol = 0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品888| 欧美日韩激情一区| 91高清视频在线| 久久久国产午夜精品| 亚洲自拍偷拍麻豆| 福利91精品一区二区三区| 欧美精品视频www在线观看| 国产精品免费人成网站| 精彩视频一区二区| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 日韩av中文字幕一区二区 | 精品在线播放免费| 欧美日本国产一区| 91福利资源站| 91在线视频18| 国产拍揄自揄精品视频麻豆| 国产精品日日摸夜夜摸av| 日韩高清一区二区| 欧美精品久久久久久久多人混战 | 国产精品一色哟哟哟| 欧美一区二区三区视频在线观看 | 欧美四级电影在线观看| 国产精品久久久久久久浪潮网站| 欧美aⅴ一区二区三区视频| 在线一区二区三区做爰视频网站| 国产精品夫妻自拍| 高清成人免费视频| 欧美极品aⅴ影院| 成人午夜私人影院| 国产精品青草综合久久久久99| 久久国产精品99久久久久久老狼| 在线综合视频播放| 免费人成黄页网站在线一区二区| 欧美乱妇一区二区三区不卡视频| 午夜精品免费在线| 欧美日韩国产123区| 亚洲一区影音先锋| 欧美日高清视频| 日韩av在线免费观看不卡| 在线观看91av| 久久99在线观看| 久久久国产午夜精品| 成人自拍视频在线| 中文字幕制服丝袜成人av| 91在线国内视频| 亚洲一区二区三区四区五区黄| 欧美性欧美巨大黑白大战| 五月婷婷激情综合网| 日韩一级片在线观看| 狠狠色综合日日| 国产精品美女久久福利网站| 91精品国产综合久久久久| 日韩二区三区四区| 久久久久久久精| 97久久超碰国产精品| 亚洲欧美电影院| 欧美精品一级二级三级| 老色鬼精品视频在线观看播放| www久久精品| 91在线精品秘密一区二区| 视频一区视频二区中文| 精品国产人成亚洲区| 99re亚洲国产精品| 免费xxxx性欧美18vr| 中文字幕av一区二区三区免费看 | 国产91精品精华液一区二区三区 | 欧美日韩一区二区三区在线看| 免费观看成人av| 国产精品视频一区二区三区不卡| 色狠狠桃花综合| 国产一区在线精品| 亚洲免费资源在线播放| 欧美mv日韩mv国产网站app| 99精品视频在线观看免费| 丝袜诱惑制服诱惑色一区在线观看 | 日韩国产欧美三级| 亚洲天堂精品视频| 精品国产凹凸成av人导航| 色婷婷亚洲精品| 在线影视一区二区三区| 国产又黄又大久久| 亚洲观看高清完整版在线观看| 精品成人a区在线观看| 欧美日韩国产综合视频在线观看| 国产高清一区日本| 日韩中文字幕亚洲一区二区va在线| 久久久国产精品不卡| 欧美精品黑人性xxxx| 91高清在线观看| 国产一区二区在线免费观看| 午夜精品一区二区三区免费视频| 欧美国产日韩精品免费观看| 91精品啪在线观看国产60岁| 91丨porny丨户外露出| 国产精品系列在线播放| 免费欧美日韩国产三级电影| 亚洲制服丝袜av| 亚洲国产精品ⅴa在线观看| 欧美成人猛片aaaaaaa| 欧美日韩一区二区三区视频| 99re成人精品视频| 成人国产在线观看| 国产成人在线视频网站| 精品一区二区三区的国产在线播放 | 日产欧产美韩系列久久99| 亚洲一区二区av在线| 亚洲欧洲精品天堂一级| 中文字幕一区二区三区蜜月| 91国偷自产一区二区三区成为亚洲经典| 久久97超碰国产精品超碰| 精品国产一区二区在线观看| 色综合av在线| 成人黄色网址在线观看| 加勒比av一区二区| 奇米777欧美一区二区| 日本在线不卡一区| 日产国产高清一区二区三区| 天天av天天翘天天综合网 | 91在线观看污| 成人av小说网| gogo大胆日本视频一区| 91一区一区三区| 色屁屁一区二区| 欧美日韩www| 欧美xxxxxxxx| 国产日韩欧美不卡在线| 国产精品嫩草99a| 一区二区三区中文免费| 亚洲国产精品一区二区久久| 亚洲午夜视频在线观看| 日本免费新一区视频| 强制捆绑调教一区二区| 国产精品一区二区你懂的| 国产大陆a不卡| 日本精品一级二级| 欧美日韩国产经典色站一区二区三区| 欧美一区二区视频在线观看2022| 精品免费国产二区三区| 国产精品人成在线观看免费| 亚洲制服丝袜在线| 狂野欧美性猛交blacked| 国产成人无遮挡在线视频| 99久免费精品视频在线观看| 欧美色网站导航| 精品国产91乱码一区二区三区 | 色综合久久久久综合体桃花网| 在线观看三级视频欧美| 精品日韩在线观看| 亚洲国产精品黑人久久久| 亚洲国产成人av网| 国产成人超碰人人澡人人澡| 色一区在线观看| 久久男人中文字幕资源站| 亚洲女同一区二区| 久久97超碰色| 欧美优质美女网站| 久久久综合激的五月天| 国产精品亚洲а∨天堂免在线| 91片黄在线观看| 精品乱码亚洲一区二区不卡| 亚洲欧美日韩中文字幕一区二区三区 | 欧美国产激情二区三区 | 欧美系列一区二区| 国产三级久久久| 日本va欧美va精品发布| 91丝袜美腿高跟国产极品老师 | 色国产综合视频| 久久老女人爱爱| 亚洲v精品v日韩v欧美v专区 | 1区2区3区欧美| 激情小说亚洲一区| 3atv一区二区三区| 国产精品免费av| 精品一区二区三区蜜桃| 欧美精品xxxxbbbb| 亚洲精品国产a| av不卡免费在线观看| 精品国产123| 日本免费在线视频不卡一不卡二| 一本一道波多野结衣一区二区| 久久精品日韩一区二区三区| 日韩综合一区二区| 欧美午夜片在线观看| ...xxx性欧美| 北条麻妃一区二区三区| 久久日韩粉嫩一区二区三区| 天天影视网天天综合色在线播放| 91福利资源站| 亚洲综合色噜噜狠狠| 91丨九色丨国产丨porny| 欧美国产精品久久| 成人午夜激情影院| 国产蜜臀97一区二区三区| 久久机这里只有精品| 欧美一级搡bbbb搡bbbb| 日欧美一区二区| 在线免费观看日本欧美| 成人国产在线观看| 三级影片在线观看欧美日韩一区二区| 国产亚洲欧美中文|