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

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

?? ch374hft.c

?? CH374 USB-HOST文件系統單片機子程序庫
?? C
字號:
/* 2004.06.05
****************************************
**  Copyright  (C)  W.ch  1999-2004   **
**  Web:  http://www.winchiphead.com  **
****************************************
**  USB Host File Interface for CH374 **
**  TC2.0@PC, KC7.0@MCS51             **
****************************************
*/
/* CH374 主機文件系統接口 */
/* 支持: FAT12/FAT16/FAT32 */

/* MCS-51單片機C語言的U盤文件讀寫示例程序, 適用于89C52或者更大程序空間的單片機 */
/* 本程序用于演示檢查U盤是否寫保護,演示模擬計算機端的安全移除,也可以參考用于自行處理其它命令 */
/* CH374的INT#引腳采用查詢方式處理, 適用于所有MCS51單片機 */


/* C51   CH374HFT.C */
/* LX51  CH374HFT.OBJ , CH374HF6.LIB, C51DPTR1.LIB */
/* OHX51 CH374HFT */

#include <reg52.h>
#include <stdio.h>
#include <string.h>

/* 以下定義的詳細說明請看CH374HF6.H文件 */
#define	MAX_BYTE_IO				48		/* 以字節為單位單次讀寫文件時的最大長度,默認值是29,值大則占用內存多,值小則超過該長度必須分多次讀寫 */

#define LIB_CFG_INT_EN			0		/* CH374的INT#引腳連接方式,0為"查詢方式",1為"中斷方式" */

#define CH374_IDX_PORT_ADDR		0xBDF1	/* CH374索引端口的I/O地址 */
#define CH374_DAT_PORT_ADDR		0xBCF0	/* CH374數據端口的I/O地址 */
/* 62256提供的32KB的RAM分為兩部分: 0000H-01FFH為磁盤讀寫緩沖區, 0200H-7FFFH為文件數據緩沖區 */
#define	DISK_BASE_BUF_ADDR		0x0000	/* 外部RAM的磁盤數據緩沖區的起始地址,從該單元開始的緩沖區長度為CH374vSectorSize */

#define CH374_INT_WIRE			INT0	/* P3.2, INT0, CH374的中斷線INT#引腳,連接CH374的INT#引腳,用于查詢中斷狀態 */
/* 如果未連接CH374的中斷引腳,那么應該去掉上述定義,自動使用寄存器查詢方式 */

//#define DISK_BASE_BUF_LEN		2048	/* 默認的磁盤數據緩沖區大小為512字節,建議選擇為2048甚至4096以支持某些大扇區的U盤,為0則禁止在.H文件中定義緩沖區并由應用程序在pDISK_BASE_BUF中指定 */
/* 如果需要復用磁盤數據緩沖區以節約RAM,那么可將DISK_BASE_BUF_LEN定義為0以禁止在.H文件中定義緩沖區,而由應用程序在調用CH375Init之前將與其它程序合用的緩沖區起始地址置入pDISK_BASE_BUF變量 */

#define NO_DEFAULT_CH374_F_ENUM		1		/* 未調用CH374FileEnumer程序故禁止以節約代碼 */
#define NO_DEFAULT_CH374_F_QUERY	1		/* 未調用CH374FileQuery程序故禁止以節約代碼 */
#define NO_DEFAULT_CH374_RESET		1		/* 未調用CH374Reset程序故禁止以節約代碼 */

#include "..\CH374HF6.H"

/* 在P1.4連接一個LED用于監控演示程序的進度,低電平LED亮,當U盤插入后亮 */
sbit P1_4  = P1^4;
#define LED_OUT_INIT( )		{ P1_4 = 1; }	/* P1.4 高電平 */
#define LED_OUT_ACT( )		{ P1_4 = 0; }	/* P1.4 低電平驅動LED顯示 */
#define LED_OUT_INACT( )	{ P1_4 = 1; }	/* P1.4 低電平驅動LED顯示 */
sbit P1_5  = P1^5;
/* 在P1.5連接一個LED用于監控演示程序的進度,低電平LED亮,當對U盤操作時亮 */
#define LED_RUN_ACT( )		{ P1_5 = 0; }	/* P1.5 低電平驅動LED顯示 */
#define LED_RUN_INACT( )	{ P1_5 = 1; }	/* P1.5 低電平驅動LED顯示 */
sbit P1_6  = P1^6;
/* 在P1.6連接一個LED用于監控演示程序的進度,低電平LED亮,當對U盤寫操作時亮 */
#define LED_WR_ACT( )		{ P1_6 = 0; }	/* P1.6 低電平驅動LED顯示 */
#define LED_WR_INACT( )		{ P1_6 = 1; }	/* P1.6 低電平驅動LED顯示 */

/* 檢查操作狀態,如果錯誤則顯示錯誤代碼并停機,應該替換為實際的處理措施 */
void	mStopIfError( UINT8 iError )
{
	if ( iError == ERR_SUCCESS ) return;  /* 操作成功 */
	printf( "Error: %02X\n", (UINT16)iError );  /* 顯示錯誤 */
/* 遇到錯誤后,應該分析錯誤碼以及CH374DiskStatus狀態,例如調用CH374DiskConnect查詢當前U盤是否連接,如果U盤已斷開那么就重新等待U盤插上再操作,
   建議出錯后的處理步驟:
   1、調用一次CH374DiskReady,成功則繼續操作,例如Open,Read/Write等,在CH374DiskReady中會自動調用CH374DiskConnect,不必另外調用
   2、如果CH374DiskReady不成功,那么強行將CH374DiskStatus置為DISK_CONNECT狀態,然后從頭開始操作(等待U盤連接CH374DiskConnect,CH374DiskReady等) */
	while ( 1 ) {
		LED_OUT_ACT( );  /* LED閃爍 */
		CH374DelaymS( 200 );
		LED_OUT_INACT( );
		CH374DelaymS( 200 );
	}
}

/* 為printf和getkey輸入輸出初始化串口 */
void	mInitSTDIO( )
{
	SCON = 0x50;
	PCON = 0x80;
	TMOD = 0x21;
	TH1 = 0xf3;  /* 24MHz晶振, 9600bps */
	TR1 = 1;
	TI = 1;
}

/* 檢查U盤是否寫保護, 返回ERR_SUCCESS說明可以寫,返回0xFF說明只讀/寫保護,返回其它值說明是錯誤代碼 */
/* 其它BulkOnly傳輸協議的命令可以參考這個例子處理,修改前必須了解USB MassStorage和SCSI規范 */
UINT8	IsDiskWriteProtect( void )
{
	UINT8	mLength, mStatus, mDevSpecParam;
	mLength = 0x10;
	mBOC.mCBW.mCBW_Flag = 0x80;  /* 傳輸方向為輸入 */
	if ( CH374vRetryCount & (1<<5) ) {  /* 根據子類選擇命令碼,位5為1則USB存儲設備的子類為6 */
		mBOC.mCBW.mCBW_DataLen0 = mLength;  /* 數據傳輸長度 */
		mBOC.mCBW.mCBW_CB_Len = 0x06;  /* 命令塊長度 */
		mBOC.mCBW.mCBW_CB_Buf[0] = 0x1A;  /* 命令塊首字節, MODE SENSE(6) */
		mBOC.mCBW.mCBW_CB_Buf[1] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[2] = 0x3F;
		mBOC.mCBW.mCBW_CB_Buf[3] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[4] = mLength;
		mBOC.mCBW.mCBW_CB_Buf[5] = 0x00;
	}
	else {
		mBOC.mCBW.mCBW_DataLen0 = mLength;  /* 數據傳輸長度 */
		mBOC.mCBW.mCBW_CB_Len = 0x0A;  /* 命令塊長度 */
		mBOC.mCBW.mCBW_CB_Buf[0] = 0x5A;  /* 命令塊首字節, MODE SENSE(10) */
		mBOC.mCBW.mCBW_CB_Buf[1] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[2] = 0x3F;
		mBOC.mCBW.mCBW_CB_Buf[3] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[4] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[5] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[6] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[7] = 0x00;
		mBOC.mCBW.mCBW_CB_Buf[8] = mLength;
		mBOC.mCBW.mCBW_CB_Buf[9] = 0x00;
	}
	mStatus = CH374BulkOnlyCmd( );  /* 執行基于BulkOnly協議的命令,對USB存儲器執行MODE SENSE命令 */
	if ( mStatus == ERR_SUCCESS ) {  /* 操作成功 */
		mLength -= mBOC.mCBW.mCBW_DataLen0;  /* 操作成功后mBOC.mCBW.mCBW_DataLen0為剩余長度,計算得到實際傳輸長度 */
		if ( mLength > 3 ) {  /* MODE SENSE命令返回數據的長度有效 */
			if ( CH374vRetryCount & (1<<5) ) mDevSpecParam = *(pDISK_BASE_BUF+2);  /* MODE SENSE(6), device specific parameter */
			else mDevSpecParam = *(pDISK_BASE_BUF+3);  /* MODE SENSE(10), device specific parameter */
			if ( mDevSpecParam & 0x80 ) return( 0xFF );  /* U盤寫保護 */
			else return( ERR_SUCCESS );  /* U盤沒有寫保護 */
		}
		return( ERR_USB_DISK_ERR );
	}
	mLength = 0x12;  /* 如果真的需要REQUEST SENSE命令的返回數據,那么此處的長度必須大于0x12 */
	mBOC.mCBW.mCBW_Flag = 0x80;
	mBOC.mCBW.mCBW_DataLen0 = mLength;
	mBOC.mCBW.mCBW_CB_Len = 0x06;  /* 命令塊長度 */
	mBOC.mCBW.mCBW_CB_Buf[0] = SPC_CMD_REQUEST_SENSE;
	mBOC.mCBW.mCBW_CB_Buf[1] = 0;
	mBOC.mCBW.mCBW_CB_Buf[2] = 0;
	mBOC.mCBW.mCBW_CB_Buf[3] = 0;
	mBOC.mCBW.mCBW_CB_Buf[4] = mLength;
	mBOC.mCBW.mCBW_CB_Buf[5] = 0;
	CH374BulkOnlyCmd( );  /* 執行基于BulkOnly協議的命令,對USB存儲器執行REQUEST SENSE命令 */
	return( mStatus );
}

/* 安全移除U盤, 返回ERR_SUCCESS說明可以安全移除,否則說明不能安全移除,只能強行移除 */
/* 在操作完U盤準備讓用戶拔出U盤前調用, 防止用戶過早拔出U盤丟失數據 */
UINT8	SafeRemoveDisk( void )
{
	UINT8	i, s;
	for ( i = 0; i < 10; i ++ ) {  /* 有的U盤總是返回未準備好,不過可以被忽略 */
		CH374DelaymS( 100 );
		if ( CH374DiskReady( ) == ERR_SUCCESS ) break;  /* 查詢磁盤是否準備好 */
	}
	CH374DelaymS( 10 );
	CH374_WRITE_BLOCK_C( 8, (PUINT8C)"\x00\x09\x00\x00\x00\x00\x00" );
	s = CH374CtrlTransfer( );  /* 設置USB設備端的配置值,取消配置,會導致很多U盤的LED燈滅 */
	CH374DelaymS( 10 );
	if ( i < 5 && s == ERR_SUCCESS ) return( ERR_SUCCESS );  /* 操作成功 */
	else return( 0xFF );
/* 以下取消SOF包會導致絕大多數U盤的LED燈滅,CH374在檢測到U盤插入后會自動恢復SOF包 */
//	CH374_WRITE_REGISTER( REG_USB_SETUP, BIT_SETP_HOST_MODE );  /* USB主機模式,USB總線空閑,停止發出SOF包 */
//	CH374DelaymS( 1 );
}

main( ) {
	UINT8	i;
	LED_OUT_INIT( );
	LED_OUT_ACT( );  /* 開機后LED亮一下以示工作 */
	CH374DelaymS( 100 );  /* 延時100毫秒 */
	LED_OUT_INACT( );
	mInitSTDIO( );  /* 為了讓計算機通過串口監控演示過程 */
	printf( "Start\n" );

	i = CH374LibInit( );  /* 初始化CH374程序庫和CH374芯片,操作成功返回0 */
	mStopIfError( i );
/* 其它電路初始化 */

	while ( 1 ) {
		printf( "Wait Udisk\n" );

		while ( 1 ) {  /* 支持USB-HUB */
			CH374DelaymS( 50 );  /* 沒必要頻繁查詢 */
			if ( CH374DiskConnect( ) == ERR_SUCCESS ) {  /* 查詢方式: 檢查磁盤是否連接并更新磁盤狀態,返回成功說明連接 */
				CH374DelaymS( 200 );  /* 延時,可選操作,有的USB存儲器需要幾十毫秒的延時 */

/* 對于檢測到USB設備的,最多等待100*50mS,主要針對有些MP3太慢,對于檢測到USB設備并且連接DISK_MOUNTED的,最多等待5*50mS,主要針對DiskReady不過的 */
				for ( i = 0; i < 100; i ++ ) {  /* 最長等待時間,100*50mS */
					CH374DelaymS( 50 );
					printf( "Ready ?\n" );
					if ( CH374DiskReady( ) == ERR_SUCCESS ) break;  /* 查詢磁盤是否準備好 */
					if ( CH374DiskStatus < DISK_CONNECT ) {  /* 檢測到斷開,重新檢測并計時 */
						printf( "Device gone\n" );
						break;  /* 重新等待 */
					}
					if ( CH374DiskStatus >= DISK_MOUNTED && i > 5 ) break;  /* 有的U盤總是返回未準備好,不過可以忽略,只要其建立連接MOUNTED且嘗試5*50mS */
					if ( CH374DiskStatus == DISK_CONNECT ) {  /* 有設備連接 */
						if ( CH374vHubPortCount ) {  /* 連接了一個USB-HUB,但可能沒有U盤 */
							printf( "No Udisk in USB_HUB\n" );
							break;
						}
						else {  /* 未知USB設備,有可能是U盤反應太慢,所以要再試試 */
						}
					}
				}
				if ( CH374DiskStatus >= DISK_MOUNTED ) {  /* 是U盤 */
					break;  /* 開始操作U盤 */
				}
				if ( CH374DiskStatus == DISK_CONNECT ) {  /* 多次嘗試還是不行,估計不是U盤 */
					if ( CH374vHubPortCount ) {  /* 連接了一個USB-HUB,但可能沒有U盤 */
/* 在while中等待HUB端口有U盤 */
					}
					else {  /* 未知USB設備,例如USB鍵盤、打印機等,而且已經試了很多次還不行 */
						printf( "Unknown device\n" );
						goto UnknownUsbDevice;
					}
				}
			}
		}

		LED_OUT_ACT( );  /* LED亮 */

		CH374DelaymS( 20 );

/* 查詢磁盤物理容量 */
//		printf( "DiskSize\n" );
//		i = CH374DiskSize( );
//		mStopIfError( i );
//		printf( "TotalSize = %u MB \n", (unsigned int)( mCmdParam.DiskSize.mDiskSizeSec * ( CH374vSectorSize / 512 ) >> 11 ) );  /* 顯示為以MB為單位的容量 */
		printf( "Current disk sector size = %d Bytes \n", CH374vSectorSize );  /* CH374vSectorSize是U盤的實際扇區大小 */
		LED_RUN_ACT( );  /* 開始操作U盤 */

		printf( "Check Disk Write Protect ? ...\n" );
		i = IsDiskWriteProtect( );  /* 檢查U盤是否寫保護, 返回ERR_SUCCESS說明可以寫,返回0xFF說明只讀/寫保護,返回其它值說明是錯誤代碼 */
		if ( i != ERR_SUCCESS && i != 0xFF ) {  /* 操作失敗 */
			printf( "Again ...\n" );
			CH374DelaymS( 100 );
			i = IsDiskWriteProtect( );  /* 再試一次 */
		}
		if ( i == ERR_SUCCESS ) {  /* 可以寫 */
			printf( "... No !\n" );
			LED_WR_ACT( );  /* 寫操作 */
			printf( "Create a File\n" );
			strcpy( mCmdParam.Create.mPathName, "\\NEWFILE.TXT" );  /* 新文件名,在根目錄下 */
			i = CH374FileCreate( );  /* 新建文件并打開,如果文件已經存在則先刪除后再新建 */
			mStopIfError( i );
			mCmdParam.ByteWrite.mByteBuffer[0] = 'O';
			mCmdParam.ByteWrite.mByteBuffer[1] = 'K';
			mCmdParam.ByteWrite.mByteCount = 2;  /* 寫入數據的字符數,單次讀寫的長度不能超過MAX_BYTE_IO,第二次調用時接著剛才的向后寫 */
			i = CH374ByteWrite( );  /* 向文件寫入數據 */
			mStopIfError( i );
			printf( "Close\n" );
			mCmdParam.Close.mUpdateLen = 0;  /* 不要自動計算文件長度,如果自動計算,那么該長度總是CH374vSectorSize的倍數 */
			i = CH374FileClose( );
			mStopIfError( i );
			LED_WR_INACT( );
			if ( SafeRemoveDisk( ) == ERR_SUCCESS ) {  /* 安全移除U盤 */
				printf( "Safe Remove !\n" );
			}
			else {
				printf( "Unsafe Remove !\n" );
			}
		}
		else if ( i == 0xFF ) {  /* 寫保護 */
			printf( "... Yes !\n" );
		}
		else {
			mStopIfError( i );  /* 顯示錯誤代碼 */
		}
		LED_RUN_INACT( );
UnknownUsbDevice:
		printf( "Take out\n" );
		while ( 1 ) {  /* 支持USB-HUB */
			CH374DelaymS( 10 );  /* 沒必要頻繁查詢 */
			if ( CH374DiskConnect( ) != ERR_SUCCESS ) break;  /* 查詢方式: 檢查磁盤是否連接并更新磁盤狀態,返回成功說明連接 */
		}
		LED_OUT_INACT( );  /* LED滅 */
		CH374DelaymS( 200 );
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美成人一区| 日本美女一区二区三区| 午夜精品一区二区三区免费视频| 激情成人午夜视频| 日本高清成人免费播放| 国产欧美日韩另类视频免费观看| 亚洲第一主播视频| 99国产欧美久久久精品| 精品剧情v国产在线观看在线| 一区二区三区在线免费播放| 国产suv一区二区三区88区| 日韩一区二区免费在线电影| 夜夜操天天操亚洲| av一区二区三区在线| 国产亚洲婷婷免费| 秋霞国产午夜精品免费视频| 欧美丝袜丝交足nylons| 亚洲免费观看高清| 成人成人成人在线视频| 国产欧美精品一区二区色综合 | 精品一区二区三区免费播放 | 婷婷丁香激情综合| 日本韩国视频一区二区| 亚洲丝袜美腿综合| 99九九99九九九视频精品| 欧美精品一区二区久久婷婷| 日本不卡在线视频| 3d动漫精品啪啪| 日产国产高清一区二区三区| 欧美日韩视频在线一区二区| 亚洲免费在线视频一区 二区| 99视频一区二区三区| 中文字幕一区二区三区av| 99久久免费精品高清特色大片| 欧美激情一区在线观看| 成人妖精视频yjsp地址| 中文字幕在线观看不卡| 色综合久久88色综合天天免费| 亚洲天堂免费看| 色综合一区二区三区| 亚洲你懂的在线视频| 色八戒一区二区三区| 亚洲成人免费在线观看| 91麻豆精品久久久久蜜臀| 久久9热精品视频| 久久精品网站免费观看| 97久久超碰国产精品电影| 亚洲欧美日韩中文播放| 欧美日韩一区不卡| 美女在线一区二区| 国产性做久久久久久| 94-欧美-setu| 香蕉久久夜色精品国产使用方法| 日韩一区二区三区视频| 国产精品一二三| 国产精品福利一区| 欧美日韩国产123区| 国产尤物一区二区| 亚洲三级免费电影| 91精品久久久久久久91蜜桃| 国产一区二区剧情av在线| 亚洲欧美偷拍三级| 日韩精品一区二区三区swag| 粉嫩欧美一区二区三区高清影视| 亚洲男人天堂一区| 日韩欧美在线影院| 不卡的电视剧免费网站有什么| 亚洲一区在线观看网站| 2021中文字幕一区亚洲| 一本一道波多野结衣一区二区| 看国产成人h片视频| 亚洲人成网站精品片在线观看| 51精品秘密在线观看| 波多野结衣欧美| 日本 国产 欧美色综合| 亚洲色图.com| 久久男人中文字幕资源站| 欧美影视一区在线| 国产91丝袜在线18| 日本成人在线电影网| 亚洲女女做受ⅹxx高潮| 久久精品视频一区| 在线91免费看| 欧洲一区在线电影| 成人一区二区三区中文字幕| 蜜臀av性久久久久蜜臀aⅴ | 国产精品乱码一区二区三区软件 | 午夜亚洲国产au精品一区二区| 久久久久国产精品人| 欧美一级在线免费| 在线观看精品一区| 99在线热播精品免费| 国产精品一区二区91| 日韩精品久久理论片| 亚洲欧美日韩小说| 国产精品久久久久久久久免费相片 | 国产精品福利电影一区二区三区四区| 欧美三级午夜理伦三级中视频| 成人做爰69片免费看网站| 美女视频网站久久| 青青草伊人久久| 亚洲午夜成aⅴ人片| 亚洲精品美国一| 亚洲男女毛片无遮挡| 自拍偷拍亚洲欧美日韩| 国产精品剧情在线亚洲| 日本一区免费视频| 国产色产综合色产在线视频| 欧美成人a视频| 欧美tk—视频vk| 精品久久久久久久久久久久久久久久久 | 精品国产区一区| 精品国免费一区二区三区| 精品久久久久一区| 欧美精品一区二区三区蜜桃| 欧美白人最猛性xxxxx69交| 欧美一级夜夜爽| 欧美成人乱码一区二区三区| 精品美女在线播放| 久久久91精品国产一区二区精品| 久久伊99综合婷婷久久伊| 久久女同性恋中文字幕| 中文字幕国产一区二区| 中文字幕在线不卡| 夜色激情一区二区| 日本午夜精品视频在线观看 | 亚洲一线二线三线视频| 亚洲成av人在线观看| 免费在线观看不卡| 国产精品自拍av| 91视频一区二区三区| 欧美色图一区二区三区| 欧美另类高清zo欧美| 日韩精品一区二区三区视频在线观看 | 国产精品污网站| 伊人婷婷欧美激情| 日本va欧美va精品发布| 精品亚洲成a人| av福利精品导航| 精品视频全国免费看| 欧美本精品男人aⅴ天堂| 国产精品国产精品国产专区不片| 一个色妞综合视频在线观看| 免费观看成人av| 成人av小说网| 欧美高清激情brazzers| 久久青草国产手机看片福利盒子 | 色呦呦国产精品| 9191国产精品| 国产精品欧美一级免费| 亚洲一区二区三区不卡国产欧美| 日本中文在线一区| 不卡视频在线看| 日韩女同互慰一区二区| 国产精品毛片大码女人| 琪琪一区二区三区| 99热精品一区二区| 精品日韩一区二区三区免费视频| 国产日韩精品一区二区浪潮av| 亚洲专区一二三| 国产二区国产一区在线观看| 欧美午夜一区二区三区| 久久久无码精品亚洲日韩按摩| 亚洲免费视频中文字幕| 狠狠色丁香九九婷婷综合五月| 日本精品裸体写真集在线观看| 精品国产污污免费网站入口| 亚洲午夜成aⅴ人片| 成人精品高清在线| 久久先锋影音av| 亚洲一区二区三区四区的| 国产99久久久国产精品潘金网站| 69堂成人精品免费视频| 亚洲伦理在线精品| 国产精品白丝jk白祙喷水网站| 69p69国产精品| 亚洲精品中文在线影院| 丁香婷婷综合色啪| 欧美tickling挠脚心丨vk| 五月天激情综合| 91精品91久久久中77777| 国产精品国产a| 成人午夜在线免费| 久久婷婷色综合| 日本不卡的三区四区五区| 欧美久久久久中文字幕| 亚洲精品你懂的| 色香蕉久久蜜桃| 亚洲日本电影在线| 91一区二区在线| 国产精品高清亚洲| 99视频在线精品| 国产精品传媒入口麻豆| 不卡的av网站| 国产精品福利在线播放| 不卡大黄网站免费看| 亚洲手机成人高清视频| 91在线观看下载| 一区二区三区四区激情| 91麻豆精品一区二区三区|