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

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

?? 44blib.c

?? 入門試驗代碼
?? C
字號:
/************************************************
 * NAME    : 44BLIB.C				*
 * Version : 17.APR.00				*
 ************************************************/
#include "..\inc\44b.h"
#include "..\inc\44blib.h"
#include "..\inc\option.h"

#include <stdarg.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>

#define STACKSIZE    0xa00 //SVC satck size(do not use user stack)
#define HEAPEND     (_ISR_STARTADDRESS-STACKSIZE-0x500) // = 0xc7ff000




extern char Image$$RW$$Limit[];

void *mallocPt=Image$$RW$$Limit;


/************************* SYSTEM *************************/
static int delayLoopCount=400;

void Delay(int time)
// time=0: adjust the Delay function by WatchDog timer.
// time>0: the number of loop time
// 100us resolution.
{
    int i,adjust=0;
    if(time==0)
    {
	time=200;
	adjust=1;
	delayLoopCount=400;
	rWTCON=((MCLK/1000000-1)<<8)|(2<<3);  // 1M/64,Watch-dog,nRESET,interrupt disable
	rWTDAT=0xffff;
	rWTCNT=0xffff;	 
	rWTCON=((MCLK/1000000-1)<<8)|(2<<3)|(1<<5); // 1M/64,Watch-dog enable,nRESET,interrupt disable 
    }
    for(;time>0;time--)
	for(i=0;i<delayLoopCount;i++);
    if(adjust==1)
    {
	rWTCON=((MCLK/1000000-1)<<8)|(2<<3);
	i=0xffff-rWTCNT;   //  1count/16us?????????
	delayLoopCount=8000000/(i*64);	//400*100/(i*64/200)   
    }
}

/************************* PORTS ****************************/

static int whichUart=0;

void Uart_Init(int mclk,int baud)
{
    int i;
    if(mclk==0)
	mclk=MCLK;
    rUFCON0=0x0;     //FIFO disable
    rUFCON1=0x0;
    rUMCON0=0x0;
    rUMCON1=0x0;
//UART0
    rULCON0=0x3;     //Normal,No parity,1 stop,8 bit
//    rULCON0=0x7;     //Normal,No parity,2 stop,8 bit
    rUCON0=0x245;    //rx=edge,tx=level,disable timeout int.,enable rx error int.,normal,interrupt or polling
    rUBRDIV0=( (int)(mclk/16./baud + 0.5) -1 );
//UART1
//    rULCON1=0x7;     //Normal,No parity,2 stop,8 bit
    rULCON1=0x3;
    rUCON1=0x245;
    rUBRDIV1=( (int)(mclk/16./baud + 0.5) -1 );

    for(i=0;i<100;i++);
}


void Uart_Select(int ch)
{
    whichUart=ch;
}


void Uart_TxEmpty(int ch)
{
    if(ch==0)
	while(!(rUTRSTAT0 & 0x4)); //wait until tx shifter is empty.
    else
    	while(!(rUTRSTAT1 & 0x4)); //wait until tx shifter is empty.
}


char Uart_Getch(void)
{
    if(whichUart==0)
    {	    
	while(!(rUTRSTAT0 & 0x1)); //Receive data read
	return RdURXH0();
    }
    else
    {
	while(!(rUTRSTAT1 & 0x1)); //Receive data ready
	return	rURXH1;
    }
}


char Uart_GetKey(void)
{
    if(whichUart==0)
    {	    
	if(rUTRSTAT0 & 0x1)    //Receive data ready
    	    return RdURXH0();
	else
	    return 0;
    }
    else
    {
	if(rUTRSTAT1 & 0x1)    //Receive data ready
	    return rURXH1;
	else
	    return 0;
    }
}


void Uart_GetString(char *string)
{
    char *string2=string;
    char c;
    while((c=Uart_Getch())!='\r')
    {
	if(c=='\b')
	{
	    if(	(int)string2 < (int)string )
	    {
		Uart_Printf("\b \b");
		string--;
	    }
	}
	else 
	{
	    *string++=c;
	    Uart_SendByte(c);
	}
    }
    *string='\0';
    Uart_SendByte('\n');
}


int Uart_GetIntNum(void)
{
    char str[30];
    char *string=str;
    int base=10;
    int minus=0;
    int lastIndex;
    int result=0;
    int i;
    
    Uart_GetString(string);
    
    if(string[0]=='-')
    {
        minus=1;
        string++;
    }
    
    if(string[0]=='0' && (string[1]=='x' || string[1]=='X'))
    {
	base=16;
	string+=2;
    }
    
    lastIndex=strlen(string)-1;
    if( string[lastIndex]=='h' || string[lastIndex]=='H' )
    {
	base=16;
	string[lastIndex]=0;
	lastIndex--;
    }

    if(base==10)
    {
	result=atoi(string);
	result=minus ? (-1*result):result;
    }
    else
    {
	for(i=0;i<=lastIndex;i++)
	{
    	    if(isalpha(string[i]))
	    {
		if(isupper(string[i]))
		    result=(result<<4)+string[i]-'A'+10;
		else
		    result=(result<<4)+string[i]-'a'+10;
	    }
	    else
	    {
		result=(result<<4)+string[i]-'0';
	    }
	}
	result=minus ? (-1*result):result;
    }
    return result;
}


void Uart_SendByte(int data)
{
	int data1;
	data1=data;
    if(whichUart==0)
    {
		if(data=='\n')
		{
		    while(!(rUTRSTAT0 & 0x2));
		    Delay(10);	//because the slow response of hyper_terminal 
		    WrUTXH0('\r');
		};
	while(!(rUTRSTAT0 & 0x2)); //Wait until THR is empty.
	Delay(10);
	WrUTXH0(data1);
    }
    else
    {
	if(data=='\n')
	{
    	    while(!(rUTRSTAT1 & 0x2));
	    Delay(10);	//because the slow response of hyper_terminal 
	    rUTXH1='\r';
	}
	while(!(rUTRSTAT1 & 0x2));  //Wait until THR is empty.
	Delay(10);
	rUTXH1=data1;
    }	
}		


void Uart_SendString(char *pt)
{
    while(*pt)
	Uart_SendByte(*pt++);
}


//if you don't use vsprintf(), the code size is reduced very much.
void Uart_Printf(char *fmt,...)
{
    va_list ap;
    char string[256];

    va_start(ap,fmt);
    vsprintf(string,fmt,ap);
    Uart_SendString(string);
    va_end(ap);
}

/******************** S3C44B0X EV. BOARD LED **********************/
//		 -g--		a: data0	b: data1		
//	       a/_b_/f		c: data2	d: data3	dp: data4
//	       c/_d_/e dp	e: data5	f: data6	g: data7
void Led_Display(int LedStatus)
{

	if((LedStatus&0x01)==0x01)		//PE7狀態設置
		{	rPDATC=rPDATC&0xfffD;
			Delay(50);
		}
	else
		{	rPDATC=rPDATC|0x02;
			Delay(50);
		}
	
	if((LedStatus&0x02)==0x02)		//PE6狀態設置
		{
			rPDATC=rPDATC&0xfffB;
			Delay(50);
		}
	else
		{
			rPDATC=rPDATC|0x04;
			Delay(50);
		}

	if((LedStatus&0x04)==0x04)		//PE5狀態設置
		{
			rPDATC=rPDATC&0xfff7;
			Delay(50);
		}
	else
		{
			rPDATC=rPDATC|0x08;
			Delay(50);
		}

	//if((LedStatus&0x08)==0x08)		//PE4狀態設置
	//	rPDATC=rPDATC&0x1ef;
	//else
	//	rPDATC=rPDATC|0x10;
//    Uart_Printf("\n keyboard is %d\n\n",data);
}

/************************* PLL ********************************/
void ChangePllValue(int mdiv,int pdiv,int sdiv)
{
    rPLLCON=(mdiv<<12)|(pdiv<<4)|sdiv;
}


/************************* General Library **********************/

void * malloc(unsigned nbyte) 
{
    void *returnPt=mallocPt;

    mallocPt= (int *)mallocPt+nbyte/4+((nbyte%4)>0); //to align 4byte

    if( (int)mallocPt > HEAPEND )
    {
	mallocPt=returnPt;
	return NULL;
    }
    return returnPt;
}
void free(void *pt)

{
    mallocPt=pt;
}


void Cache_Flush(void)
{
    int i,saveSyscfg;
    
    saveSyscfg=rSYSCFG;

    rSYSCFG=SYSCFG_0KB; 		      
    for(i=0x10004000;i<0x10004800;i+=16)    
    {					   
	*((int *)i)=0x0;		   
    }
    rSYSCFG=saveSyscfg; 			    
}
/************************* Timer ********************************/

void Timer_Start(int divider)  //0:16us,1:32us 2:64us 3:128us
{
    rWTCON=((MCLK/1000000-1)<<8)|(divider<<3);
    rWTDAT=0xffff;
    rWTCNT=0xffff;   

    // 1/16/(65+1),nRESET & interrupt  disable
    rWTCON=((MCLK/1000000-1)<<8)|(divider<<3)|(1<<5);	
}


int Timer_Stop(void)
{
//    int i;
    rWTCON=((MCLK/1000000-1)<<8);
    return (0xffff-rWTCNT);
}

/****************************************************************************
【功能說明】蜂鳴器鳴叫time個100us
****************************************************************************/
void Beep(unsigned int time)
{
	rPDATE = (rPDATE | 0x08);
	Delay(time);		//延時若干個100us
	rPDATE = (rPDATE & 0x1f7);
}
//***************************************************************************
/****************************************************************************
【功能說明】定時器初始化,讓PE7、6、5、4輸出PWM信號
****************************************************************************/
void Timer_Pwm(void)
{
	rPCONE = 0xaa6b;		
	//PE8-P0的引腳功能依次為:ENDIAN TOUT4、3、2、1、0 RXD0 TXD0 FOUT
	rPUPE |= 0xf0;		//TOUT4、3、2、1、0設置成不上拉,其他引腳上拉

	rTCFG0 = 0x23f3f3f;		//死區長度為2;    Prescaler0/1/2=3f,3f,3f
	//定時器輸入時鐘頻率計算公式 = MCLK/{prescaler+1}/{divider value}
	rTCFG1 = 0x0;		// Interrupt; Devider value = 1/2
	//定時器時鐘 = (MCLK/prescaler+1)/2

	rTCNTB0 = 20000;		//決定TOUT 0引腳PWM輸出信號的頻率
	rTCNTB1 = 32000;		//決定TOUT 1引腳PWM輸出信號的頻率
	rTCNTB2 = 43000;		//決定TOUT 2引腳PWM輸出信號的頻率
	rTCNTB3 = 53000;		//決定TOUT 3引腳PWM輸出信號的頻率
	rTCNTB4 = 64000;		//決定TOUT 4引腳PWM輸出信號的頻率

	rTCMPB0 = 12000;		//決定TOUT 0引腳PWM輸出高電平的信號寬度(rTCMPB0<rTCNTB0)
	rTCMPB1 = 18000;		//決定TOUT 1引腳PWM輸出高電平的信號寬度(rTCMPB1<rTCNTB1)
	rTCMPB2 = 25000;		//決定TOUT 2引腳PWM輸出高電平的信號寬度(rTCMPB2<rTCNTB2)
	rTCMPB3 = 28000;		//決定TOUT 3引腳PWM輸出高電平的信號寬度(rTCMPB3<rTCNTB3)
	rTCMPB4 = 36000;		//決定TOUT 4引腳PWM輸出高電平的信號寬度(rTCMPB4<rTCNTB4)

//	rTCON = 0xaaaa0a;		//自動重裝,輸出取反關閉,更新TCNTBn、TCMPBn,死區控制器關閉
//	rTCON = 0x999909;		//開始PWM輸出(不使用死區控制器,上升沿會非常陡峭,是標準矩形波)
//	rTCON = 0xeeee0e;		//自動重裝,輸出取反打開,更新TCNTBn、TCMPBn,死區控制器關閉
//	rTCON = 0xdddd0d;		//開始PWM輸出(不使用死區控制器,上升沿會非常陡峭,是標準矩形波)
//	rTCON = 0xaaaa1a;		//自動重裝,輸出取反關閉,更新TCNTBn、TCMPBn,死區控制器打開
//	rTCON = 0x999919;		//開始PWM輸出(使用死區控制器,上升沿會變得平滑,適用于功率器件控制)

	//Delay(7500);		//延時若干個100us
	rTCON = 0xaaaa0a;		//自動重裝,輸出取反關閉,更新TCNTBn、TCMPBn,死區控制器關閉
	rTCON = 0x999900;		//停止蜂鳴器的叫聲
//	rTCON = 0x0;		//停止定時器
	rPCONE = 0xaa6b;		//
	//PE8-P0的引腳功能依次為:ENDIAN TOUT4、3、2、1 OUTPUT RXD0 TXD0 FOUT
}

/*****************************************************************************************
<Author:>	Sun		<Creat time:>	6/21/2005

【功能說明】A/D轉換器初始化
******************************************************************************************/
void ADC_Start(void)
{
	rCLKCON=0x07ff8;	//時鐘控制寄存器,使能MCLK作為ADC時鐘源
	rADCCON=0x1|(0<<2);	//啟用A/D轉換
	Delay(100);			//等待一定時間使ADC的參考電壓穩定下來		
	rADCPSR=0x20;		//設置時鐘預分頻值
	
}
/*****************************************************************************************
<Author:>	Sun		<Creat time:>	6/21/2005

【功能說明】讀取A/D轉換數值子程序
【參數說明】int ch 采樣通道
【返回類型】int 轉換結果
******************************************************************************************/
int ReadAdc(int ch)
{
	//ADCCON
	/*	Bit 6			5			4		3		2		1			0			*/
	/*		0: 正在轉換	0;正常模式	輸入選擇000~111			0:允許讀	0:無操作	*/
	/*		1;轉換結束	1:睡眠模式							1:禁止讀	1:啟動轉換	*/
	
	int i;
	static int prevCh = -1;			// 靜態變量,第一次進入該程序是,ADC通道一定不為-1,因此必須等待信號建立
									// 以后進入該程序時,該語句賦值被忽略,preCh的值為上一次轉換的通道號 
	if(prevCh!=ch)					// 若當前的轉換通道不是上一次轉換的通道,等待信號建立 								
	{	
		rADCCON=0x0|(ch<<2);		//設置采樣通道
		for(i=0;i<150;i++);  		//等待最小15us
		
	}
	
	rADCCON=0x1|(ch<<2);       		//啟動A/D轉換
	
	while(rADCCON & 0x1);     		//To avoid The frist FLAG error case
									//(The START bit is cleared in one ADC clock)
	while(! (rADCCON & 0x40));	//A/D轉換是否結束?
		
	for(i=0;i<rADCPSR;i++);	//To avoid the second FLAG error case
			
	prevCh=ch;			// 將此時的通道號,作為相對下一次轉換的上一次轉換通道號 

	
	//Uart_Printf("ADCPSR=%03xh   ",rADCPSR);
	return rADCDAT;					//返回轉換結果
}
/*****************************************************************************************
 <Author:>	Sun		<Creat time:>	6/21/2005
 
【功能說明】信號調理板控制程序
【參數說明】int parameter	選擇138控制的門和采樣保持器
【返回類型】0
******************************************************************************************/
int IOCtrl(int parameter)
{
	int a;	//138輸入選擇
	int b;	//138輸入選擇
	int c;	//138輸入選擇
	int data;
	int temp;
	
	switch ( parameter )						//通過parameter來確定138的三根選擇線a,b,c
	{
		case 1:	c=0;	b=0;	a=0;	break;	//"DGTL_IN"
								
		case 2:	c=0;	b=0;	a=1;	break;	//"Switch_IN"
								
		case 3:	c=0;	b=1;	a=0;	break;	//"DGTL_OUT"
								
		case 4:	c=0;	b=1;	a=1;	break;	//"Switch_OUT"
								
		case 5:	c=1;	b=0;	a=0;	break;	//"S/H1"
								
		case 6:	c=1;	b=0;	a=1;	break;	//"S/H2"
		
		case 7:	c=1;	b=1;	a=0;	break;	//"S/H3"
		
		case 8:	c=1;	b=1;	a=1;	break;	//"S/H4"
	}
	
	//PORT F GROUP
	/*  Bit	8		7		6		5		 4		3		2		1		0		*/   
	/*  	IISCLK	IISDI	IISDO	IISLRCK	Output	Output	Output	IICSDA	IICSCL	*/
	/*		111		111		111		111		00		00		00		11		11		*/
	//11 1111 1111 1100 0000 1111 b=3FFC0FX;
	
	temp=(rPCONF & 0x3FFC0F);
	//PORT F GROUP
	/*  Bit	8		7		6		5		 4		3		2		1		0		*/   
	/*  	IISCLK	IISDI	IISDO	IISLRCK	Output	Output	Output	IICSDA	IICSCL	*/
	/*		000		000		000		000		01		01		01		00		00		*/
	//01 0101 0000 b=150X;
	
	rPCONF=temp+0x150;
	
	//PORT F GROUP
	/*  Bit	8		7		6		5		4		3		2		1		0		*/   
	/*		1		1		1		1		0		0		0		1		1		*/
	//111100011b=483d; a(bit2)2^2; b(bit4)2^4; c(bit3)2^3
	data=483;  

	temp=(rPDATF & data);
	
	data=b*16+c*8+a*4;
	
	rPDATF=temp+data;
	
	
	return 0;
}	
/*****************************************************************************************
<Author:>	Sun		<Creat time:>	6/18/2005

【功能說明】信號調理板數據總線輸入輸出控制
【參數說明】char IO		in & out
【返回類型

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲乱码精品一二三四区日韩在线| 国产成人在线视频免费播放| 久久99国产乱子伦精品免费| 99热在这里有精品免费| 精品国产乱码久久久久久久久 | 欧美日韩在线播放三区四区| 国产欧美一区二区精品性| 午夜精品久久久久久久久久| av不卡免费电影| 精品成人免费观看| 免费在线看成人av| 欧美色网一区二区| 亚洲老妇xxxxxx| 国产成人av电影免费在线观看| 精品女同一区二区| 青青草国产精品97视觉盛宴| 精品视频免费在线| 亚洲一区二区三区四区五区黄 | 国产一区二区三区在线观看精品| 欧美日韩在线电影| 亚洲综合色区另类av| 99久久婷婷国产综合精品| 久久精品视频一区| 国产一区在线不卡| 精品欧美乱码久久久久久 | 精品国产一区二区国模嫣然| 婷婷成人激情在线网| 欧美日韩在线播| 午夜精品在线看| 91麻豆精品国产91| 日本怡春院一区二区| 欧美久久久一区| 亚洲va欧美va人人爽午夜| 欧美日韩国产首页| 婷婷久久综合九色综合伊人色| 欧美日韩不卡一区二区| 日韩中文字幕一区二区三区| 欧美精品黑人性xxxx| 日韩av中文在线观看| 精品国产乱码久久久久久久| 国产乱子轮精品视频| 国产日韩欧美精品电影三级在线 | 欧美日韩精品久久久| 视频在线观看一区二区三区| 欧美挠脚心视频网站| 美女视频网站久久| 国产区在线观看成人精品| 99re热视频这里只精品| 亚洲精品亚洲人成人网| 欧美日韩久久一区二区| 麻豆极品一区二区三区| 国产亚洲精品精华液| 97se亚洲国产综合在线| 亚洲国产美国国产综合一区二区| 欧美日韩精品电影| 国产一区二区网址| 综合电影一区二区三区 | 国产精品色在线观看| 色婷婷综合中文久久一本| 日韩精品每日更新| 国产三级一区二区三区| 一本到三区不卡视频| 人禽交欧美网站| 国产亚洲一区二区三区四区| 91福利社在线观看| 精品一区精品二区高清| 18成人在线视频| 日韩欧美中文字幕制服| 成人18视频日本| 日韩av成人高清| 日韩美女啊v在线免费观看| 欧美一区二区视频免费观看| jvid福利写真一区二区三区| 日韩av网站在线观看| 中文字幕日韩av资源站| 日韩午夜激情视频| 色综合久久久久综合体桃花网| 免费精品视频在线| 一区二区三区成人在线视频| 久久影院视频免费| 欧美日韩国产一级片| 不卡在线观看av| 韩国v欧美v日本v亚洲v| 午夜精品久久久久久久蜜桃app| 国产日韩综合av| 欧美大白屁股肥臀xxxxxx| 色狠狠色狠狠综合| 成人福利电影精品一区二区在线观看| 日韩黄色在线观看| 亚洲精品伦理在线| 国产日韩欧美在线一区| 精品国产乱子伦一区| 91精品国产美女浴室洗澡无遮挡| 一本久久a久久免费精品不卡| 国产69精品久久777的优势| 免费的国产精品| 首页国产欧美日韩丝袜| 亚洲高清在线精品| 亚洲精品高清视频在线观看| 国产精品全国免费观看高清| 亚洲精品在线一区二区| 日韩欧美国产综合| 在线综合+亚洲+欧美中文字幕| 欧美日韩在线播| 欧美日韩一区高清| 欧美三级蜜桃2在线观看| 91搞黄在线观看| 欧美亚一区二区| 在线欧美日韩国产| 在线观看不卡一区| 欧美日韩国产免费一区二区| 欧美网站大全在线观看| 91成人网在线| 欧美性感一类影片在线播放| 欧美三级视频在线观看| 欧美日韩精品一区二区三区蜜桃| 欧美日韩第一区日日骚| 欧美一区二区网站| 久久综合九色综合欧美98| 欧美精品一区男女天堂| 亚洲国产高清在线| 中文字幕亚洲欧美在线不卡| 一区二区三区四区乱视频| 亚洲一区二区三区爽爽爽爽爽| 亚洲国产三级在线| 日本中文一区二区三区| 国模一区二区三区白浆| 不卡视频一二三四| 在线观看av不卡| 日韩一区二区中文字幕| 国产日本欧洲亚洲| 亚洲免费在线电影| 香蕉成人伊视频在线观看| 久久国产精品第一页| 国产91精品在线观看| 91色婷婷久久久久合中文| 欧美日韩亚洲综合| 久久综合给合久久狠狠狠97色69| 欧美国产综合色视频| 亚洲一级在线观看| 黄色成人免费在线| 91香蕉视频mp4| 91精品国产欧美一区二区成人| 国产日韩欧美精品电影三级在线| 亚洲欧美经典视频| 日本中文在线一区| va亚洲va日韩不卡在线观看| 欧美乱熟臀69xxxxxx| 欧美激情在线观看视频免费| 亚瑟在线精品视频| 国产成人精品亚洲午夜麻豆| 欧美日韩一区成人| 久久久精品国产免费观看同学| 一级女性全黄久久生活片免费| 精品亚洲国产成人av制服丝袜| 97久久人人超碰| 欧美不卡一区二区| 亚洲高清免费观看高清完整版在线观看| 久久99精品久久久久婷婷| 色婷婷精品大视频在线蜜桃视频 | 在线视频欧美精品| 国产日韩精品一区二区三区在线| 亚洲二区在线观看| hitomi一区二区三区精品| 日韩欧美www| 亚洲成av人片在线观看| 成人免费电影视频| 精品91自产拍在线观看一区| 婷婷久久综合九色国产成人| 99久久精品国产一区二区三区| 精品久久久三级丝袜| 日韩精品1区2区3区| 91免费国产视频网站| 久久久精品人体av艺术| 久久精品国产久精国产爱| 一本色道久久综合亚洲精品按摩| 国产欧美一区二区在线观看| 久久爱www久久做| 欧美日韩国产123区| 亚洲最新视频在线观看| 成熟亚洲日本毛茸茸凸凹| 久久婷婷国产综合精品青草| 日韩国产高清在线| 欧美日韩亚洲国产综合| 亚洲精品乱码久久久久久久久| 高清视频一区二区| 国产亚洲精品精华液| 韩国av一区二区三区四区| 精品久久久久久最新网址| 麻豆极品一区二区三区| 日韩欧美国产精品一区| 蜜芽一区二区三区| 日韩欧美一级特黄在线播放| 日本免费在线视频不卡一不卡二| 欧美日韩电影在线播放| 石原莉奈一区二区三区在线观看| 欧美日韩国产综合一区二区 | 日韩丝袜美女视频| 日韩高清中文字幕一区| 制服丝袜一区二区三区|