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

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

?? oledwinch.c

?? 一種深度和拉力測量系統
?? C
?? 第 1 頁 / 共 4 頁
字號:
//**********************************************************************************
//    File:              Mywinch.c for PPS66JC Depth Measure System
//    Written By:        YE ZHAOBO, R&D Center SPT.Inc. 2005.06	
//	  Last	Version 2005
//**********************************************************************************
// This code implements a PPS66JC surface interface box using the P18F6620 MCU;
// The code was compiled using the MC18 compliler ver. 8.01pl3;
// The device frequency should be 3.6864 MHz; 
// The PCB is PPS66JC
//
//關鍵更新信息
//...存貯功能
//...已經修正時間錯誤
//...realtime計時
//...用戶自定義時鐘
//...模式控制
//...采樣控制
//...支持OLED顯示
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// The following files should be included in the MPLAB project:
//
//     mywinch.c      	   -- Main source code file
//	   winch.h
//                
// Use Bootloader tech
// Support Upgrade Online
// Support E-mail: yezhaobo@hotmail.com
// All Right Reserved 
//---------------------------------------------------------------------

#include <p18f6620.h>        		// Register definitions

#include "winch.h"


///-------------
void high_routine (void); 
void low_routine (void); 
void InitPorts();
void ADCone(void);
void Sample(void);
void Version(int c1,int c2);
void Dectime(void);
void SampleInit(void);
void ADNow(void);
void NoSaveSample(void);
void Newlcd_init(void);
//--Wait
void OLED_CLR(char x);
unsigned char MEM_status(void);
char rdyADC(void);
void OLED_Dis2(char c,int x,int y,int z);
void OLED_Dis1(char c,int x,int y,int z);
//--
//---------------------------------------------------------------------
// Interrupt routine	中斷處理程序
//---------------------------------------------------------------------
#pragma code high_ISR = 0x08
void high_ISR(void) 
{
_asm
	goto high_routine
_endasm
}
#pragma code  

#pragma code low_ISR=0x18
void low_ISR(void)
{
	_asm 
	goto low_routine
	_endasm 
}
#pragma code

#pragma interruptlow  low_routine save=PROD
void low_routine(void)
{	
//	INTCONbits.GIEL=1;
	if(PIR1bits.RCIF!=0){
	*in++=RCREG1;
	if((in-Buf)>=80) in=Buf;//超過緩沖則將指針復位(指向緩沖的第一個地址)
	}
} 
#pragma interrupt high_routine
void high_routine (void) 
{
	if(INTCON3bits.INT1IF) {//down
		if(PORTBbits.RB0)
			depth1.u++;
		else 
			depth1.u--;
		INTCON3bits.INT1IF = 0;
	}

	if(INTCON3bits.INT2IF) {//up
		if(PORTBbits.RB0)
			depth2.u--;
		else 
			depth2.u++;
		INTCON3bits.INT2IF = 0;
	}

	if(INTCONbits.TMR0IF) {
		TMR0H = 0x1F;
		TMR0L = 0x03; //+4
		d0 = d1;
//		depth1.u = 100;
//		depth2.u = 100;
		depth.u = (depth1.u + depth2.u)/2;
//		d1 = depth1.u/2 + depth2.u/2;
		d1 = depth.u;
		speed = d1 - d0;
//		f0 = f1;
//		f1 = force;
//		delta = f1 - f0;
		TL++;
		if(TL==0x02){time.l++;TL=0;}
		INTCONbits.TMR0IF = 0;
	}
}
//---------------------------------------------------------------------
//           ERR Functions
//---------------------------------------------------------------------
void DisERR(char x)
{
	int i;
	i = x*16;
	OLED_Dis2(1,4,8,288);
	OLED_Dis2(1,4,16,304);
	OLED_Dis2(1,4,24,304);
	OLED_Dis2(1,4,32,i);
}
void DisWrong(unsigned int cmdx)
{
	OLED_CLR(0x00);
	switch(cmdx)
	{
	case 1:
		DisERR(1);while(1);	//Com-port ERR
	case 2:
		DisERR(2); ErrNo=928; Delay10KTCYx(3000); NoSaveSample(); //Memory ERR
	case 3:
		DisERR(3); ErrNo=960; Delay10KTCYx(3000); NoSaveSample();//RealTime ERR
	case 4:
		DisERR(4); ErrNo=992; Delay10KTCYx(3000); NoSaveSample();//E2prom ERR
	case 5:
		DisERR(5); ErrNo=1024; Delay10KTCYx(3000); NoSaveSample();; // Filter ERR
	default: 
		DisERR(0);while(1); //Unkown ERR
	}
}

void WaitSSPCON2SEN(void)
{
	int countx;
	for(countx=0;countx<30;countx++){
      if(SSPCON2bits.SEN==0) return;
	}
	DisWrong(3);	
//	do{
//	if(SSPCON2bits.SEN==0) break;
//	countx++;	
//	}while(countx<30);
}

void WaitSSPCON2PEN(void)
{
	int countx;
	for(countx=0;countx<30;countx++){
      if(SSPCON2bits.PEN==0) return;
	}
	DisWrong(3);
}

void WaitSSPCON2ACKEN(void)
{
	int countx;
	for(countx=0;countx<30;countx++){
    if(SSPCON2bits.ACKEN==0) return;
	}
	DisWrong(3);
}

void WaitTXSTA1TRMT(void)
{
	int countx;
	for(countx=0;countx<30;countx++){
     if(TXSTA1bits.TRMT==1) return;
	}
	DisWrong(1);
}

void WaitMEM_Stu(void)
{
	int countx;
	char stux;
	for(countx=0;countx<100;countx++){
	   stux = 0x40 & MEM_status();		
 	     if(!stux == 0) return;
	}
	MEM_CE=1;
//	lcd_init();
	DisWrong(2);
}

void WaitEECON1WR(void)
{
	int countx;
	for(countx=0;countx<200;countx++){
      if(EECON1bits.WR==0) return;
	}
	MEM_CE=1;
//	lcd_init();
	DisWrong(4);
}

void WaitrdyADC(void)
{
	int countx;
	for(countx=0;countx<1000;countx++){
      if(!rdyADC()==0) return;
	}
	DisWrong(5);
}
//---------------------------------------------------------------------
//           Time Functions
//---------------------------------------------------------------------

void Get_RealTimeClock(void);
void Init_RealTimeClock(void);

/**********************************************************************************/
void Get_RealTimeClock(void)
{

	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010000);				// Write DS1307:D0H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		WriteI2C(0x00);					// DS1307 : REG Addr.
		NotAckI2C();
	}
	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);				// wait until stop condition is over
	WaitSSPCON2PEN();
	//------------------------------------------------------------------------

	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010001);				// Read DS1307:D1H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		real_time.Seconds = ReadI2C();
		AckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();

		real_time.Minutes = ReadI2C();
		AckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();

		real_time.Hours = ReadI2C();
		AckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();

		real_time.Day = ReadI2C();
		AckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();

		real_time.Date = ReadI2C();
		AckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();

		real_time.Month = ReadI2C();
		AckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();

		real_time.Year = ReadI2C();
		NotAckI2C();
//		while(SSPCON2bits.ACKEN);
		WaitSSPCON2ACKEN();
	}

	IdleI2C();	
	StopI2C();
//		while(SSPCON2bits.PEN);				// wait until stop condition is over
		WaitSSPCON2PEN();
}
/*------------------------------------------------------------------------------------*/
void Init_RealTimeClock(void)
{
	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010000);				// Write DS1307:D0H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		WriteI2C(0x00);					// DS1307 : REG Addr.
		NotAckI2C();

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Seconds);	// Configuration data  
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Minutes);	// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Hours);		// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Day);		// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Date);		// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Month);		// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Year);		// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.ctr_reg);	// Control REG
			NotAckI2C();
		}
	}

	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);					// wait until stop condition is over
	WaitSSPCON2PEN();
}
///
void Init_RealTime(void)
{
	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010000);				// Write DS1307:D0H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		WriteI2C(0x00);					// DS1307 : REG Addr.
		NotAckI2C();

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Seconds);	// Configuration data  
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Minutes);	// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Hours);		// Configuration data
			NotAckI2C();
		}
	}

	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);					// wait until stop condition is over
	WaitSSPCON2PEN();
}
void Init_RealDate(void)
{
	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010000);				// Write DS1307:D0H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		WriteI2C(0x04);					// DS1307 : REG Addr.
		NotAckI2C();

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Date);	// Configuration data  
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Month);	// Configuration data
			NotAckI2C();
		}

		IdleI2C();			
		if ( !SSPCON2bits.ACKSTAT )   	
		{
			WriteI2C(real_time.Year);		// Configuration data
			NotAckI2C();
		}
	}

	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);					// wait until stop condition is over
	WaitSSPCON2PEN();
}
////
char hextodec(unsigned char temp)
{
	unsigned char a,b,c;
	a=(temp&0xf0)>>4;
	b=(temp&0x0f);
	c=10*a+b;
	return c;
}

void Recorddepth(void)
{
	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010000);				// Write DS1307:D0H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		WriteI2C(0b00010000);					// DS1307 : REG Addr.0x10
		NotAckI2C();

		for(i=0;i<4;i++){
			IdleI2C();			
			if ( !SSPCON2bits.ACKSTAT ){
				WriteI2C(depth.c[i]);	// Configuration data  
				NotAckI2C();
			}
		}
	}

	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);					// wait until stop condition is over
	WaitSSPCON2PEN();
}

void Readrecord(void)
{
char e,i;

	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010000);				// Write DS1307:D0H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{
		WriteI2C(0b00010000);					// DS1307 : REG Addr.0x10
		NotAckI2C();
	}
	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);				// wait until stop condition is over
	WaitSSPCON2PEN();

Nop();
Nop();
///------------------------------------------------------------------------

	IdleI2C();
	StartI2C();
//	while (SSPCON2bits.SEN);     		// wait until start condition is over 
	WaitSSPCON2SEN();
	WriteI2C(0b11010001);				// Read DS1307:D1H
	NotAckI2C();

	IdleI2C();							// ensure module is idle
	if ( !SSPCON2bits.ACKSTAT )   		// test for ACK condition, if received
	{

	for(i=0;i<4;i++){
			depth1.c[i] = depth2.c[i] = ReadI2C();
//			depth.c[i] = ReadI2C();
			AckI2C();
//			while(SSPCON2bits.ACKEN);
			WaitSSPCON2ACKEN();
		}

			e = ReadI2C();
			AckI2C();
//			while(SSPCON2bits.ACKEN);
			WaitSSPCON2ACKEN();
	}

	IdleI2C();	
	StopI2C();
//	while(SSPCON2bits.PEN);				// wait until stop condition is over
	WaitSSPCON2PEN();
}
//////
void Dectime(void)
{
	Get_RealTimeClock();

	sec=hextodec(real_time.Seconds);
	min=hextodec(real_time.Minutes);
	hour=hextodec(real_time.Hours);
	mday=hextodec(real_time.Date);
	mon=hextodec(real_time.Month);
	year=hextodec(real_time.Year)+2000;
}
unsigned int sleyear(unsigned int yr)
{
if(yr%4==0||(yr%4==0&&yr%100!=0)) return(366);
  else return(365);
}

void DostoUnix(void)
{
unsigned int i;
unsigned  long j;

j=0;
///從1970到現在的天數
 for(i=2000; i<year; i++){
  j=j+sleyear(i);///2000~2005
 }

///計算本年到現在天數  
 for(i=0; i<(mon-1); i++){
  j+=moninit[i]; 
 }
j=j+mday;

///若本年為閏年則加1天
 if(mon >= 2 && sleyear(year) == 366)  j++;
j=j-1;

 j=j*86400;
 j=j+(hour*3600);
 j=j+(min*60);
 j=j+sec;
 totalsec=j;

time.l=totalsec;	///給計時賦初值

Nop();
Nop();
}
///
//-------------------------------------
//-------------串口接收與發送
//-------------------------------------
char getch(void)
{
	char c;
	while(in==out);//相等表示沒有新數據進來
	c = *out;
	out++;
	if((out-Buf)>=80) out=Buf;
	return c;
}
void SCISend(char c)
{
//	while(TXSTA1bits.TRMT==0);
	WaitTXSTA1TRMT();
	TXREG1=c;
}
void putch(char c)
{
//	while(TXSTA1bits.TRMT==0);
	WaitTXSTA1TRMT();
	TXREG1=c;
}
void ResetMem(void)
{
//MEM
	MEM_CE=0;
	MEM_CLE=0;
	MEM_WE=1;
	MEM_ALE=0;
	MEM_RE=1;
}
//======================
//-----存儲器代碼-------
//======================
void SCILoadAddr(void)
{
	MEM_sector = (Buf[5] & 0x0f);
	MEM_block  =  Buf[6];
	MEM_page   =  Buf[7];
	MEM_line   =  Buf[8];
}
//--------------
void MEM_COMD(char command)
{
	TRISD=0X00;
	PORTD=0X00;
	MEM_CLE=0;
//command
	MEM_CLE=1;
	MEM_CE=0;
	MEM_ALE=0;
	MEM_WE=0;
	PORTD=command;
	MEM_WE=1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
heyzo一本久久综合| 成人免费黄色在线| 国产欧美日韩在线| 欧美三区在线视频| 成人美女在线观看| 美女一区二区三区| 亚洲乱码国产乱码精品精98午夜| 日韩精品一区二区三区视频| 色偷偷久久一区二区三区| 国产精品主播直播| 热久久一区二区| 亚洲一区二区成人在线观看| 国产精品―色哟哟| 精品国产乱码久久久久久蜜臀| 欧美电影在线免费观看| 色国产综合视频| av中文字幕亚洲| 国产精品77777| 国内成人免费视频| 日本不卡一区二区三区高清视频| 亚洲综合无码一区二区| 一区在线观看免费| 国产精品丝袜91| 国产网站一区二区| 2023国产精品| 精品国产伦理网| 精品国产1区二区| 欧美xxxx在线观看| 日韩你懂的在线播放| 欧美日本国产一区| 在线播放91灌醉迷j高跟美女| 色婷婷国产精品| 色www精品视频在线观看| 99久久婷婷国产综合精品| 国产精品一区二区久久不卡 | 欧美四级电影网| 99久久国产综合精品色伊| 国产成人亚洲综合a∨猫咪| 国产一区二区在线视频| 国产一区二区三区免费| 国产精品亚洲视频| 国产河南妇女毛片精品久久久| 国内不卡的二区三区中文字幕| 经典三级一区二区| 国产一二三精品| 国产成人精品午夜视频免费| 国产成人丝袜美腿| av午夜精品一区二区三区| caoporen国产精品视频| 色婷婷综合久久久中文一区二区 | 久久狠狠亚洲综合| 久久se这里有精品| 国产一区二区剧情av在线| 国产河南妇女毛片精品久久久 | 成人黄色在线网站| 99精品视频免费在线观看| 色综合久久综合网欧美综合网| 色综合久久久网| 欧美色男人天堂| 日韩精品专区在线影院重磅| 久久综合资源网| 中文字幕中文字幕在线一区| 亚洲天堂2014| 日日噜噜夜夜狠狠视频欧美人| 蜜桃视频一区二区三区在线观看| 狠狠色狠狠色综合| 成人av午夜电影| 欧美日韩国产精选| 精品国产一区二区在线观看| 国产精品毛片无遮挡高清| 亚洲精品国产a| 日本中文字幕不卡| 国产99精品国产| 欧美性色黄大片| 天天色天天操综合| 国产一区 二区| 91成人免费在线| 欧美www视频| 亚洲激情图片小说视频| 美女www一区二区| 成人a区在线观看| 在线电影一区二区三区| 国产欧美一区二区三区网站| 亚洲一区在线免费观看| 精品亚洲成a人| 色综合久久综合网97色综合| 精品卡一卡二卡三卡四在线| 亚洲视频中文字幕| 麻豆国产精品官网| 色悠悠亚洲一区二区| 26uuu亚洲综合色欧美| 亚洲视频 欧洲视频| 久久不见久久见免费视频7| 91小视频免费观看| 精品日产卡一卡二卡麻豆| 亚洲欧美激情一区二区| 狠狠色狠狠色综合| 欧美顶级少妇做爰| 亚洲乱码国产乱码精品精的特点| 国产一区二区毛片| 91麻豆精品国产91久久久久久久久 | 成人高清视频在线观看| 欧美一区二区三区视频免费播放| 亚洲欧洲另类国产综合| 极品少妇一区二区三区精品视频 | 国产主播一区二区三区| 在线日韩av片| 国产精品久久久久久户外露出| 六月丁香综合在线视频| 欧美三级中文字| 亚洲色欲色欲www| 国产精品一区免费在线观看| 91精品国产色综合久久久蜜香臀| 亚洲视频在线一区| 成人污污视频在线观看| 精品久久久久久久久久久院品网| 亚洲mv在线观看| 色av综合在线| 亚洲欧美色图小说| jvid福利写真一区二区三区| 久久久久久久久99精品| 久久精品国产成人一区二区三区 | 欧洲av在线精品| 中文字幕在线观看一区二区| 国产精品综合二区| 欧美精品一区二区三区在线 | 亚洲国产一区二区视频| 91丨九色丨蝌蚪丨老版| 中文字幕巨乱亚洲| 国产a精品视频| 亚洲国产精品激情在线观看| 国产福利一区二区三区在线视频| 欧美变态口味重另类| 精品国产乱码久久久久久闺蜜| 亚洲永久精品大片| 亚洲精品国产第一综合99久久| 成人午夜短视频| 国产精品色婷婷久久58| 99视频精品免费视频| 国产精品毛片大码女人 | 欧美亚洲尤物久久| 夜夜操天天操亚洲| 欧洲av在线精品| 日韩专区欧美专区| 亚洲成人精品影院| 欧美日韩三级一区| 爽好久久久欧美精品| 欧美一区二区三区婷婷月色| 日韩成人免费看| 精品va天堂亚洲国产| 国产成人日日夜夜| 亚洲欧美综合网| 欧洲精品在线观看| 免费视频一区二区| 久久久久久日产精品| 国产不卡在线一区| 一区二区三区精品在线| 欧美无砖专区一中文字| 日本不卡123| 国产亚洲综合在线| 91美女在线看| 三级久久三级久久久| 精品国产91久久久久久久妲己| 成人午夜私人影院| 亚洲午夜羞羞片| 欧美成人精品3d动漫h| 成人中文字幕电影| 亚洲综合视频在线| 日韩精品一区二区三区视频播放| 国产91精品在线观看| 亚洲综合无码一区二区| 欧美videofree性高清杂交| 国产精品一品二品| 一区二区三国产精华液| 欧美美女网站色| 国产精品一区二区在线看| 一区二区三区日韩在线观看| 日韩三级免费观看| 99v久久综合狠狠综合久久| 性感美女极品91精品| 精品99久久久久久| 色偷偷久久一区二区三区| 韩国欧美国产1区| 99久久精品久久久久久清纯| 日本中文字幕一区二区视频| 国产精品久久二区二区| 欧美丰满嫩嫩电影| 91丨九色porny丨蝌蚪| 久久99精品国产.久久久久 | 亚洲成av人片观看| 国产欧美日韩三级| 制服丝袜成人动漫| 91亚洲午夜精品久久久久久| 久久精品国产亚洲aⅴ| 亚洲综合一区二区三区| 亚洲国产高清不卡| 日韩丝袜情趣美女图片| 在线观看91视频| 福利一区福利二区| 毛片一区二区三区|