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

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

?? i2c.#3

?? C8051f020是基于51核的業界8位單片機最高速的
?? #3
字號:
#include <c8051f020.h>					// SFR declarations

//------------------------------------------------------------------------------------
// Global CONSTANTS
//------------------------------------------------------------------------------------

#define 	WRITE	0x00						// SMBus WRITE command
#define		READ 	0x01						// SMBus READ command

// Device addresses (7 bits, lsb is a don't care)
#define		CLOCK3530_ADDRESS_RESET		0x60		//1 ack
#define		CLOCK3530_ADDRESS_STATUS	0x62		//2 ack
#define		CLOCK3530_ADDRESS_DATEHOUR	0x64		//8 ack  year month day week hour minute second
#define		CLOCK3530_ADDRESS_HOUR		0x66		//4 ack  hour minute second
#define		CLOCK3530_ADDRESS_INT1		0x68		//3 ack  
#define		CLOCK3530_ADDRESS_INT2		0x6A		//3 ack  

union 
{
unsigned char ClockString[7];
struct RealClock
	{
		unsigned char Year,Month,Day,Week,Hour,Minute,Second;
	} RT;
} RealTime;


// SMBus states:
// MT = Master Transmitter
// MR = Master Receiver
#define	SMB_BUS_ERROR	0x00			// (all modes) BUS ERROR
#define	SMB_START		0x08			// (MT & MR) START transmitted
#define	SMB_RP_START	0x10			// (MT & MR) repeated START
#define	SMB_MTADDACK	0x18			// (MT) Slave address + W transmitted;
										//  ACK received
#define	SMB_MTADDNACK	0x20			// (MT) Slave address + W transmitted;
										//  NACK received
#define	SMB_MTDBACK		0x28			// (MT) data byte transmitted; ACK rec'vd
#define	SMB_MTDBNACK	0x30			// (MT) data byte transmitted; NACK rec'vd
#define	SMB_MTARBLOST	0x38			// (MT) arbitration lost
#define	SMB_MRADDACK	0x40			// (MR) Slave address + R transmitted;
										//  ACK received
#define	SMB_MRADDNACK	0x48			// (MR) Slave address + R transmitted;
										//  NACK received
#define	SMB_MRDBACK		0x50			// (MR) data byte rec'vd; ACK transmitted
#define	SMB_MRDBNACK	0x58			// (MR) data byte rec'vd; NACK transmitted


//-----------------------------------------------------------------------------------
//Global VARIABLES
//-----------------------------------------------------------------------------------
char COMMAND;			// Holds the slave address + R/W bit for use in the SMBus ISR.

unsigned char *I2CDataBuff;						

char BYTE_NUMBER;							// Used by ISR to check what data has just been
												// sent - High address byte, Low byte, or data byte

unsigned char HIGH_ADD, LOW_ADD;		// High & Low byte for EEPROM memory address
				
bit SM_BUSY;								// This bit is set when a send or receive
												// is started. It is cleared by the
												// ISR when the operation is finished.


//------------------------------------------------------------------------------------
// Function PROTOTYPES
//------------------------------------------------------------------------------------

void SMBus_ISR (void);								

//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
//
// Main routine configures the crossbar and SMBus, and tests
// the SMBus interface between the three EEPROMs


void ResetRealClock(void)
{
	while (SM_BUSY);									// Wait for SMBus to be free.
	SM_BUSY = 1;										// Occupy SMBus (set to busy)
	SMB0CN = 0x44;										// SMBus enabled, ACK on acknowledge cycle
	BYTE_NUMBER = 0;									// 2 address bytes.
	COMMAND = (CLOCK3530_ADDRESS_RESET | READ);		// Chip select + READ
	STA = 1;											// Start transfer
	while (SM_BUSY);									// Wait for transfer to finish
}

//======================寫S-3530A內部實時數據寄存器程序=====================
//功能:將設定年、月、日、星期、時、分、秒數據寫入S-3530A                  |
//入口:發送數據放在年、月、日、星期、時、分、秒各寄存器                   |
//出口:NONE                                                               |
//==========================================================================
void SetRealClock(void)
{
	while (SM_BUSY);									// Wait for SMBus to be free.
	SM_BUSY = 1;										// Occupy SMBus (set to busy)
	SMB0CN = 0x44;										// SMBus enabled, ACK on acknowledge cycle
	BYTE_NUMBER = 7;									// 2 address bytes.
	COMMAND = (CLOCK3530_ADDRESS_DATEHOUR | WRITE);		// Chip select + WRITE
	I2CDataBuff = &RealTime.ClockString[0];				// Data to be writen
	STA = 1;											// Start transfer
}

//==================讀S-3530A實時數據寄存器子程序===========================
//功能:從S-3530A讀入當前時間數據                                          |
//入口:NONE                                                               |
//出口:接收數據放在年、月、日、星期、時、分、秒各寄存器                   |
//==========================================================================
void GetRealClock(void)
{
	while (SM_BUSY);									// Wait for SMBus to be free.
	SM_BUSY = 1;										// Occupy SMBus (set to busy)
	SMB0CN = 0x44;										// SMBus enabled, ACK on acknowledge cycle
	BYTE_NUMBER = 7;									// 2 address bytes.
	COMMAND = (CLOCK3530_ADDRESS_DATEHOUR | READ);		// Chip select + READ
	I2CDataBuff = &RealTime.ClockString[0];				// Data to be writen
	STA = 1;											// Start transfer
	while (SM_BUSY);									// Wait for transfer to finish
}

//============================寫狀態寄存器程序==============================
//功能:讀/寫S-3530A狀態寄存器,對S-3530A進行設置                          |
//入口:NONE           出口:NONE                                          |
//==========================================================================
unsigned char  GetRealClockStatus(void)
{
	unsigned char result; 
	while (SM_BUSY);									// Wait for SMBus to be free.
	SM_BUSY = 1;										// Occupy SMBus (set to busy)
	SMB0CN = 0x44;										// SMBus enabled, ACK on acknowledge cycle
	BYTE_NUMBER = 1;									
	COMMAND = (CLOCK3530_ADDRESS_STATUS | READ);		
	I2CDataBuff = &result;								
	STA = 1;											// Start transfer
	while (SM_BUSY);									// Wait for transfer to finish
	return result;
}
void SetRealClockStatus(unsigned char status)
{
	while (SM_BUSY);									// Wait for SMBus to be free.
	SM_BUSY = 1;										// Occupy SMBus (set to busy)
	SMB0CN = 0x44;										// SMBus enabled, ACK on acknowledge cycle
	BYTE_NUMBER = 1;									
	COMMAND = (CLOCK3530_ADDRESS_STATUS | WRITE);		
	I2CDataBuff = &status;								
	STA = 1;											// Start transfer
}
/*
void  SetRealClockINT1(unsigned int Int1)
{
	while (SM_BUSY);									// Wait for SMBus to be free.
	SM_BUSY = 1;										// Occupy SMBus (set to busy)
	SMB0CN = 0x44;										// SMBus enabled, ACK on acknowledge cycle
	BYTE_NUMBER = 2;									
	COMMAND = (CLOCK3530_ADDRESS_INT1 | WRITE);		
	I2CDataBuff = (unsigned char*)&Int1;								
	STA = 1;											// Start transfer
}
*/
#include "INTRINS.H"

unsigned char revolve(unsigned char val)
{
char i;
unsigned char val1=0;
	for (i=0;i<8;i++)
	{
		if (val&0x1)
			val1++;
		val1=_crol_(val1,1);
		val=_cror_(val,1);
	}
	val1=_cror_(val1,1);
	return val1;
}

/*--  文字:  時  --*/

char code Shi[]=
{
	0x00,0x00,0xFC,0x44,0x44,0xFC,0x00,0x08,0x48,0x88,0x08,0xFF,0x08,0x08,0x08,0x00,
	0x00,0x00,0x1F,0x04,0x04,0x0F,0x00,0x00,0x00,0x11,0x20,0x1F,0x00,0x00,0x00,0x00,
};

/*--  文字:  鐘  --*/
char code Zhong[]=
{
	0x00,0x60,0x38,0xE7,0x24,0x24,0x04,0x00,0xF8,0x88,0x88,0xFF,0x88,0x88,0xF8,0x00,
	0x00,0x01,0x01,0x3F,0x11,0x09,0x01,0x00,0x01,0x00,0x00,0x3F,0x00,0x00,0x01,0x00,
};


void LCD_WriteHZ(char x,char y,char *Dot);
void LCD_DispChar(char x,char y,char ch); //128*64  取值x=0-128 y=0-8
void 	InitLCD(void);
void Delay1ms(unsigned char T);

void TestI2C (void)
{
unsigned char var ;
	WDTCN = 0xde;									// disable watchdog timer
	WDTCN = 0xad;
	
	OSCICN |= 0x03;								// Set internal oscillator to highest setting
														// (16 MHz)

	XBR0 |= 0x07;									// Route SMBus to GPIO pins through crossbar
	XBR2 |= 0x44;									// Enable crossbar and weak pull-ups

    P0MDOUT |= 0x1D; 
    P1MDOUT |= 0x01; 
	
	SMB0CN = 0x44;									// Enable SMBus with ACKs on acknowledge cycle
	SMB0CR = -80;									// SMBus clock rate = 100kHz.

	EIE1 |= 2;										// SMBus interrupt enable
	EA = 1;											// Global interrupt enable

	SM_BUSY = 0;									// Free SMBus for first transfer.

//	SetRealClockINT1(0x8000);
	var = GetRealClockStatus();
	ResetRealClock();
	var = GetRealClockStatus();
	SetRealClockStatus(0x82);
	var = GetRealClockStatus();
	GetRealClock();
	RealTime.RT.Year=0x02;	
	RealTime.RT.Month=0x10;	
	RealTime.RT.Day=0x06;	
	RealTime.RT.Week=0x05;	
	RealTime.RT.Hour=0x11;	
	RealTime.RT.Minute=0x58;	
	RealTime.RT.Second=0x00;	
	SetRealClock();
	GetRealClock();
	InitLCD();
	LCD_WriteHZ(0,0,Shi); 
	LCD_WriteHZ(16,0,Zhong); 
//在0,2處顯示00:00:00
	LCD_DispChar(0,2,0); //128*64  取值x=0-128 y=0-8
	LCD_DispChar(8,2,0);
	LCD_DispChar(16,2,10);
	LCD_DispChar(24,2,0);
	LCD_DispChar(32,2,0);
	LCD_DispChar(40,2,0xa);
	LCD_DispChar(48,2,0);
	LCD_DispChar(56,2,0);
//在0,4處顯示02/01/01
	LCD_DispChar(0,4,0); //128*64  取值x=0-128 y=0-8
	LCD_DispChar(8,4,2);
	LCD_DispChar(16,4,0xb);
	LCD_DispChar(24,4,0);
	LCD_DispChar(32,4,1);
	LCD_DispChar(40,4,0xb);
	LCD_DispChar(48,4,0);
	LCD_DispChar(56,4,1);
	for (;;)
	{
		GetRealClock();
		
		LCD_DispChar(0,2,(RealTime.RT.Hour>>4)&0x0f);//(RealTime.RT.Hour>>4)&0x0f); //128*64  取值x=0-128 y=0-8
		LCD_DispChar(8,2,RealTime.RT.Hour&0x0f);
		LCD_DispChar(24,2,(RealTime.RT.Minute>>4)&0x0f);
		LCD_DispChar(32,2,RealTime.RT.Minute&0x0f);
		LCD_DispChar(48,2,(RealTime.RT.Second>>4)&0x0f);
		LCD_DispChar(56,2,RealTime.RT.Second&0x0f);
		//在0,4處顯示02/01/01
		LCD_DispChar(0,4,(RealTime.RT.Year>>4)&0x0f); 
		LCD_DispChar(8,4,RealTime.RT.Year&0x0f);
		LCD_DispChar(24,4,(RealTime.RT.Month>>4)&0x0f);
		LCD_DispChar(32,4,RealTime.RT.Month&0x0f);
		LCD_DispChar(48,4,(RealTime.RT.Day>>4)&0x0f);
		LCD_DispChar(56,4,RealTime.RT.Day&0x0f);
		Delay1ms(100);	
	}
}


//------------------------------------------------------------------------------------
// Interrupt Service Routine
//------------------------------------------------------------------------------------
void SMBUS_ISR (void) interrupt 7
{
	switch (SMB0STA)
		{ 	// SMBus 狀態碼SMB0STA 寄存器
			// 主發送器/接收器起始條件已發送
		case SMB_START:
			SMB0DAT = COMMAND ; // 裝入要訪問的從器件的地址
			STA = 0; 			// 手動清除START 位
			break;
			//主發送器/接收器重復起始條件已發送
			// 該狀態只應在讀操作期間出現在存儲器地址已發送并得到確認之后 ?
		case SMB_RP_START:
			SMB0DAT = COMMAND; // COMMAND 中應保持從地址 + R.
			STA = 0;
			break;
			// 主發送器從地址 + WRITE 已發送收到ACK
		case SMB_MTADDACK:
			// 主發送器數據字節已發送收到ACK
		case SMB_MTDBACK:
			if (BYTE_NUMBER)
			{
					SMB0DAT = revolve(*I2CDataBuff);					// If R/W=WRITE, load byte to write.
					I2CDataBuff++;
					BYTE_NUMBER--;			
			}
			else
			{
				STO = 1;	SM_BUSY = 0;						// Free SMBus
			}
			break;
			// 主發送器從地址 + WRITE 已發送收到NACK
			// 從器件不應答發送STOP + START 重試
		case SMB_MTADDNACK:
			STO = 1;			STA = 1;
		break;
			// 主發送器數據字節已發送收到NACK
			// 從器件不應答發送STOP + START 重試
		case SMB_MTDBNACK:
			STO = 1;			STA = 1;
		break;
			// 主發送器競爭失敗
			// 不應出現如果出現重新開始傳輸過程
		case SMB_MTARBLOST:
			STO = 1;			STA = 1;
		break;

			// 主接收器從地址 + READ 已發送,收到ACK
		case SMB_MRADDACK:
			AA = 1; // 在應答周期ACK
			if (!BYTE_NUMBER)
			{	
				STO = 1;	SM_BUSY = 0; // 釋放SMBus
			}
		break;
			// 主接收器從地址 + READ 已發送收到NACK
			// 從器件不應答發送重復起始條件重試
		case SMB_MRADDNACK:
			STA = 1;
		break;
			// 收到數據字節ACK 已發送
			// 該狀態不應出現因為AA 已在前一狀態被清0 如果出現發送停止條件
		case SMB_MRDBACK:
			if (BYTE_NUMBER)
			{
				*I2CDataBuff=revolve(SMB0DAT);		
				I2CDataBuff++;
				BYTE_NUMBER--;			
			}
			if (!BYTE_NUMBER)	AA= 0;
		break;
			// 收到數據字節NACK 已發送
			// 讀操作已完成讀數據寄存器后發送停止條件
		case SMB_MRDBNACK:
			STO = 1;
			SM_BUSY = 0; // 釋放SMBus
		break;
			// 在本應用中所有其它狀態碼沒有意義通信復位
		default:
			STO = 1; // 通信復位
			SM_BUSY = 0; 
		break;
		}
	SI=0; // 清除中斷標志
}
/*
{
	switch (SMB0STA){			// Status code for the SMBus (SMB0STA register)
		case SMB_START:					
			SMB0DAT = COMMAND;					// COMMAND should hold slave address + R.
			break;
		case SMB_MTADDNACK:
			STO = 1;
			STA = 1;
			break;
		case SMB_RP_START:
//			SMB0DAT = COMMAND;					// COMMAND should hold slave address + R.
//			STA = 0;											
//			break;
		case SMB_MTADDACK:
		case SMB_MTDBACK:
			if (BYTE_NUMBER)
			{
					if (COMMAND & 0x01)					// If R/W=READ, 
					{
						STA = 1;
					}
					else
					{
						SMB0DAT = *I2CDataBuff;					// If R/W=WRITE, load byte to write.
						I2CDataBuff++;
						BYTE_NUMBER--;			
					}
			}
			else
			{
				STO = 1;
				SM_BUSY = 0;						// Free SMBus
			}
			break;
		
		// Master Transmitter: Data byte transmitted.  NACK received.
		// Slave not responding.  Send STOP followed by START to try again.
		case SMB_MTDBNACK:
			STO = 1;
			STA = 1;
			break;
		
		// Master Transmitter: Arbitration lost.
		// Should not occur.  If so, restart transfer.
		case SMB_MTARBLOST:
			STO = 1;
			STA = 1;
			break;

		// Master Receiver: Slave address + READ transmitted.  NACK received.
		// Slave not responding.  Send repeated start to try again.
		case SMB_MRADDNACK:
			STA = 1;
			break;

		// Data byte received.  ACK transmitted.
		// State should not occur because AA is set to zero in previous state.
		// Send STOP if state does occur.
		case SMB_MRDBACK:
			STO = 1;
			SM_BUSY = 0;
			break;

		// Master Receiver: Slave address + READ transmitted.  ACK received.
		// Set to transmit NACK after next transfer since it will be the last (only) byte.
		case SMB_MRADDACK:
//			AA = 0;										// NACK sent on acknowledge cycle.
//			break;

		// Data byte received.  NACK transmitted.
		// Read operation has completed.  Read data register and send STOP.
		case SMB_MRDBNACK:
			if (BYTE_NUMBER)
			{
					if (COMMAND & 0x01)					// If R/W=READ, 
					{
						*I2CDataBuff=SMB0DAT;		
						I2CDataBuff++;
					}
					BYTE_NUMBER--;			
			}
			else
			{
				STO = 1;
				SM_BUSY = 0;						// Free SMBus
			}
			break;
		// All other status codes meaningless in this application. Reset communication.
		default:
			STO = 1;										// Reset communication.
			SM_BUSY = 0;
			break;
		}
	
	SI=0;													// clear interrupt flag
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线电影院国产精品| 国产v日产∨综合v精品视频| 欧美中文字幕亚洲一区二区va在线| 国产精品美女久久久久久久 | 首页国产丝袜综合| 色天天综合久久久久综合片| 一区二区三区.www| 欧美日韩精品一区二区三区| 日本v片在线高清不卡在线观看| 日韩视频免费观看高清完整版| 国产一区二区剧情av在线| 国产欧美在线观看一区| 色综合久久六月婷婷中文字幕| 亚洲二区在线视频| 日韩精品一区二区三区视频播放| 国产精品456露脸| 亚洲欧洲成人精品av97| 欧美日韩国产美| 国产乱理伦片在线观看夜一区| 国产精品免费免费| 欧美三级乱人伦电影| 九九国产精品视频| 国产精品国产三级国产普通话三级| 91福利在线播放| 美日韩一级片在线观看| 中文字幕乱码日本亚洲一区二区| 色婷婷精品大在线视频| 久久精品国产99| 一区在线观看免费| 日韩亚洲欧美综合| av欧美精品.com| gogo大胆日本视频一区| 日韩精品每日更新| 日韩一区有码在线| 色狠狠综合天天综合综合| 美女爽到高潮91| 亚洲另类在线制服丝袜| 精品美女一区二区| 欧美丝袜丝交足nylons图片| 精品一区二区免费| 亚洲综合一二三区| 国产精品全国免费观看高清| 欧美午夜一区二区| 成人免费毛片嘿嘿连载视频| 亚洲一区在线观看视频| 国产日产亚洲精品系列| 欧美精品色一区二区三区| 99久久99久久精品国产片果冻| 免费亚洲电影在线| 亚洲综合在线观看视频| 中文字幕欧美国产| 久久综合狠狠综合久久综合88 | 99精品一区二区三区| 日韩高清在线电影| 亚洲男人的天堂网| 欧美国产欧美综合| 久久香蕉国产线看观看99| 91麻豆精品国产自产在线观看一区| 色综合久久综合网| 成人h精品动漫一区二区三区| 青青草国产精品亚洲专区无| 亚洲一二三四久久| 亚洲卡通欧美制服中文| 中文字幕一区二区三区四区| 精品电影一区二区三区| 欧美一区二区久久久| 欧美精品久久99久久在免费线| 色婷婷综合在线| 99国产一区二区三精品乱码| 成人少妇影院yyyy| 国产高清在线精品| 国产精品一区不卡| 国产伦精一区二区三区| 精品一区二区三区蜜桃| 国模一区二区三区白浆| 韩国欧美一区二区| 国产做a爰片久久毛片| 国内成人精品2018免费看| 国产在线国偷精品产拍免费yy| 精品一区二区三区在线观看 | 国内精品第一页| 欧美美女一区二区| 在线观看欧美黄色| 欧美日韩亚洲综合一区二区三区| 欧美性极品少妇| 7777精品伊人久久久大香线蕉| 欧美日韩激情一区二区三区| 欧美精品日韩一区| 欧美videossexotv100| 久久先锋影音av| 中文字幕免费在线观看视频一区| 国产精品色在线观看| 亚洲三级在线播放| 亚洲综合小说图片| 蜜臀av一区二区在线免费观看| 国精品**一区二区三区在线蜜桃| 国产高清精品在线| proumb性欧美在线观看| 欧美日韩一区三区四区| 日韩视频一区二区三区在线播放| 欧美精品一区在线观看| 国产精品久久久久久久久免费相片| 国产精品理伦片| 五月天国产精品| 久久爱www久久做| 菠萝蜜视频在线观看一区| 欧美在线观看视频在线| 日韩一区二区精品葵司在线 | 欧美日韩一级片网站| 欧美精品123区| 久久精品男人的天堂| 一区二区中文字幕在线| 日韩精品亚洲专区| 成人毛片在线观看| 4438成人网| 国产精品色一区二区三区| 香港成人在线视频| 国产99久久久国产精品潘金网站| 91黄视频在线| 欧美精品一区男女天堂| 亚洲激情自拍偷拍| 国产在线播放一区| 欧美日韩aaa| 国产精品国产三级国产有无不卡| 婷婷综合另类小说色区| 欧美成人三级电影在线| 亚洲欧美乱综合| 国产一区美女在线| 欧美亚洲一区二区在线观看| 久久久亚洲精品石原莉奈| 亚洲韩国精品一区| 成人性生交大片免费看在线播放 | 777久久久精品| 成人欧美一区二区三区视频网页| 日本欧美在线看| 色菇凉天天综合网| 欧美国产综合一区二区| 蜜臀av一区二区在线观看| 91福利社在线观看| 国产精品免费久久久久| 国内精品第一页| 日韩一区二区三区视频| 亚洲国产精品久久人人爱| 成人理论电影网| 久久九九全国免费| 麻豆91免费看| 欧美一区国产二区| 亚洲午夜电影网| 91丨九色丨蝌蚪富婆spa| 久久精品日产第一区二区三区高清版| 午夜精品在线看| 欧美亚洲国产一区二区三区| 成人欧美一区二区三区1314| 国产黄色精品视频| 精品美女被调教视频大全网站| 天堂va蜜桃一区二区三区| 在线观看成人免费视频| 最新高清无码专区| 日韩精品一区二区三区swag | 日韩亚洲欧美高清| 天堂影院一区二区| 欧美日本在线播放| 丝袜亚洲另类丝袜在线| 欧美探花视频资源| 午夜不卡av免费| 欧美精品粉嫩高潮一区二区| 亚洲一区在线观看免费 | 成人亚洲一区二区一| 久久综合99re88久久爱| 久久99久久精品| 亚洲精品一区二区三区香蕉| 久99久精品视频免费观看| 日韩精品一区二区三区视频在线观看| 男男gaygay亚洲| 精品日产卡一卡二卡麻豆| 狠狠色狠狠色综合| 国产午夜精品美女毛片视频| 国产精品资源网| 欧美国产激情二区三区 | 91蝌蚪porny| 一区二区三区精品在线| 欧美日韩一区二区三区在线| 亚洲国产精品久久一线不卡| 欧美久久久久久久久中文字幕| 日本成人在线看| 337p粉嫩大胆噜噜噜噜噜91av | 国产999精品久久久久久绿帽| 国产精品三级电影| 91久久久免费一区二区| 首页国产欧美日韩丝袜| 精品av综合导航| 99re这里只有精品6| 亚洲成人第一页| 欧美mv日韩mv国产| 欧美成人精品高清在线播放| 国产一区二区看久久| 亚洲欧美色综合| 日韩视频免费观看高清完整版在线观看 | 午夜在线成人av| 精品国产一区二区三区久久久蜜月|