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

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

?? communication.c

?? 基于PIC單片機
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*******************************************************************/
#include "allhead.h"

uchar tx_buff[12];              //存放要發向轉換器的數
uchar  errorflag  = 0;                                     //485出錯
uchar fl=0;             //服了(fule),自動搜索用!
extern uchar can_cuo_flag[32];                  //轉換器故障 用
//TWI 相關全局變量
uchar i2c_rd_buff[32];   //i2c讀出的數最初存放的地方
uchar i2c_wt_buff[35];   //寫
uchar fhz;               //讀寫完返回值0或1
uchar autoc[5];

uchar nnn=0;
extern uchar canuse[4];
extern uchar zhongbuff[33][10];
extern uchar detuse[33][4];
extern uchar det_link[33];
extern uchar keyc;
extern uchar jiemian;
extern uchar denglu;
extern uchar gal3data;
//延時1us;晶振為8M時1us延時函數
void delay_1us(void)
{
  asm("nop");
}
//延時n us
void delay_nus(unsigned int n)
{
  unsigned int i;
  for(i=0;i<n;i++)
    delay_1us();
} 
//延時1ms;
void delay_1ms(void)
{
  unsigned int i;
  for(i=1;i<(unsigned int)(xtal*143-2);i++)
  ;
}
//延時n ms
void delay_nms(unsigned int n)
{
  unsigned int j;
  wdr();
  for(j=0;j<n;j++)
    delay_1ms();
}
//復位MCP
void reset_MCP(void)
{  
  //unsigned char 
  PORTB&=~(1<<CS_CAN);			 //	CS  Low -> MCP enable
  SPDR=RESET_MCP;			    //	send Reset command
  while(!(SPSR & (1<<SPIF)))
  ; 	                       //	wait
  PORTB|=(1<<CS_CAN);		  //	CS  High -> MCP disable
  delay_1ms();		         //	waiting
}
//寫函數
void write_MCP(unsigned char adress, unsigned char value)
{
  PORTB&=~(1<<CS_CAN);				//	CS  Low -> MCP enable
  SPDR=0x02;					//	sende Write command
  while(!(SPSR & (1<<SPIF)));	//	warten bis das Byte gesendet wurde
  SPDR=adress;					//	Addresse senden
  while(!(SPSR & (1<<SPIF)));	//	warten bis das Byte gesendet wurde
  SPDR=value;					//	Wert senden
  while(!(SPSR & (1<<SPIF)));	//	warten bis das Byte gesendet wurde
  PORTB|=(1<<CS_CAN);					//	CS  High -> MCP disable
}
//讀函數
unsigned char read_MCP(unsigned char adress)
{
	unsigned char spidata;
	PORTB&=~(1<<CS_CAN);				//	CS  Low -> MCP enable
	SPDR=0x03;					//	sende Read command
	while(!(SPSR&(1<<SPIF)));	//	wait
	SPDR=adress;					//	adress send
	while(!(SPSR&(1<<SPIF)));	//	wait
	SPDR=0xAA;					//	不懂
	while(!(SPSR&(1<<SPIF)));	//	wait
	spidata = SPDR;				//	Data return
	PORTB|=(1<<CS_CAN);				//	CS  High -> MCP disable
	return (spidata);
}
//位調整函數
void bit_modify(unsigned char adress,unsigned char cc, unsigned char value)
{  
    PORTB&=~(1<<CS_CAN);		   //	CS  Low -> MCP enable
    SPDR=0x05;					   //	bit modify Write command
	while(!(SPSR & (1<<SPIF)));	   //	
	SPDR=adress;				   //	sende Write command
	while(!(SPSR & (1<<SPIF)));	   //	
	SPDR=cc;					   //	sende Write command
	while(!(SPSR & (1<<SPIF)));	   //	warten bis das Byte gesendet wurde
	SPDR=value;					  //	sende Write command
	while(!(SPSR & (1<<SPIF)));	 //	
    PORTB|=(1<<CS_CAN);					//	CS  High -> MCP disable
}
 //發送緩沖器0
void send_box_0(void)   //此處好像應該加發送緩沖器空標志查詢!!!!!
{
	write_MCP (TXB0CTRL, 0x0B);			//	sende Telegramm mit h鯿hster Priori
	//0x0B--緩沖區等待報文發送,最高的報文發送優先級
	PORTB&=~(1<<CS_CAN);				//	CS  Low -> MCP enable
	SPDR=(RTS | 0x01);			//	sende Mailbox Nummer 0
	while(!(SPSR & (1<<SPIF)));	//	warten bis das Byte gesendet wurde
	PORTB|=(1<<CS_CAN);					//	CS  High -> MCP disable
}
//數據請求數據幀函數
void remotesend(uchar id_addr)
{
    NOP();
    write_MCP(TXB0SIDH,id_addr);//接收方的地址,
   // write_MCP(TXB0SIDL,0x48);   //擴展幀格式 且4就表示是發送請求命令
	write_MCP(TXB0SIDL,0xc8);   //擴展幀格式 且4就表示是發送請求命令
    write_MCP(TXB0EID8,0x00);   //標識發送方地址主控制器為0x00
    write_MCP(TXB0EID0,0x00);   //   
    write_MCP(TXB0DLC, 0x08);    //發送8個字節
    write_MCP(TXB0D0,  0x00);  //
    write_MCP(TXB0D1,  0x00);  //
    write_MCP(TXB0D2,  0x00);  //
    write_MCP(TXB0D3,  0x00);  //
    write_MCP(TXB0D4,  0x00);  //
    write_MCP(TXB0D5,  0x00);  //
    write_MCP(TXB0D6,  0x00);  //
    write_MCP(TXB0D7,  0x00);
	send_box_0();
	NOP();
}
//裝載報文 TXB0
void fill_msg_box_0(void)
{  
   tx_buff[9]=8;   
   write_MCP(TXB0SIDH,tx_buff[1]);         //接收方的地址
   write_MCP(TXB0SIDL,tx_buff[7]);         //擴展幀格式   
   write_MCP(TXB0EID8,tx_buff[8]);         //標識發送方地址
   write_MCP(TXB0EID0,tx_buff[2]);         //485節點地址
   write_MCP(TXB0DLC, tx_buff[9]);         //發送8個字節
   write_MCP(TXB0D0,  tx_buff[2]);         //485NA節點地址
   write_MCP(TXB0D1,  tx_buff[0]);         //命令字節
   write_MCP(TXB0D2,  tx_buff[3]);         //高報點高字節
   write_MCP(TXB0D3,  tx_buff[4]);         //高報點低字節
   write_MCP(TXB0D4,  tx_buff[5]);         //低報點高字節
   write_MCP(TXB0D5,  tx_buff[6]);         //低報點低字節
   write_MCP(TXB0D6, tx_buff[10]);         //校驗
   write_MCP(TXB0D7, tx_buff[11]);
} 
//485收發函數
void Usart_Transmit_Data(uchar data,uchar i) 
{  
   int aaa=0;
   cs_485_send();           
   for(aaa=1000;aaa>0;aaa--);//等待PB3引腳穩定 1000
   while(!(UCSR0A&(1<<UDRE0)))
   ;
   if(i==1)
      UCSR0B|=(1<<TXB80);  //發送地址
   else
   {
      UCSR0B&=~(1<<TXB80); //發送數據
   }
   UDR0=data;
   while(!(UCSR0A&(1<<TXC0)))
   ;
   UCSR0A|=1<<TXC0;
   cs_485_receive();
} 
//發送多個字節函數
void usart_transmits(unsigned char n, unsigned char *p)
{
    uchar *pr;int bbb=0;
    cs_485_send(); 
    for(bbb=1000;bbb>0;bbb--);//等待PB3引腳穩定 
    for(pr=p;pr<(p+n);pr++)
    {
        while(!(UCSR0A&(1<<UDRE0)))
	    ;
	    UDR0= *pr;
    }
    while(!(UCSR0A&(1<<TXC0))) 
    ;
    UCSR0A|=1<<TXC0;
    cs_485_receive(); 
}
//8位數據單字節接收函數Usart_Receive_Data()
uchar Usart_Receive_Data(void)
{
     int flag5=0;uchar j=0;int tcounter=0;
     while(!(UCSR0A&(1<<RXC0)))
     {
	    flag5++; 
		//wdr();
	    if(flag5>5000)
	    {
		    wdr();
		    flag5=0; 
	        tcounter++;
	    }  	 
		if(tcounter>2)       //原來是3
	    {  
	         tcounter=0;
	         errorflag=1;    //最多等待50s還沒有數據傳上來說明節點斷開
	         break;          //errorflag 為未接受到數據 標識
	    }		 
     }	 
     j=UCSR0B;
     return UDR0;  
}   
//8位數據單字節接收函數Usart2_Receive_Data() 調零專用
uchar Usart2_Receive_Data(void)
{
     int flag5=0;uchar j=0;int tcounter=0;
     while(!(UCSR0A&(1<<RXC0)))
     {
	    flag5++; 
	    if(flag5>5000)
	    {
		    wdr();
		    flag5=0; 
	        tcounter++;
	    }  	 
		if(tcounter>500)        //
	    {  
		     wdr();
	         tcounter=0;
	         errorflag=1;    //最多等待50s還沒有數據傳上來說明節點斷開
	         break;          //errorflag 為未接受到數據 標識
	    }		 
     }	 
     j=UCSR0B;
     return UDR0;  
}   
//發送一個字節
void usart_transmit_char(uchar c)            
{ 
  uchar a=0;
  //delay_nus(6);     //很重要,有待思考
  delay_nus(9);
  a=PIND;
  while((a&0x20)==0x20)
  {
    a=PIND;
	wdr();
  }
  while(!(UCSR1A&(1<<UDRE1)))
  {
     wdr();
  }
  //;
  UDR1=c;
  while(!(UCSR1A&(1<<TXC1))) 	  
  ;
  UCSR1A|=1<<TXC1;
  delay_nus(1);
}
/**********************************************************************
                       TWI相關的函數開始
 **********************************************************************/
 //一個字節的高低位的翻轉函數
uchar byte_revert(uchar data)
{
     unsigned char a, b, c;
     a = data;
     if( ( b = a | 0x81 ) != a
     && ( c = a^0x81 ) != b )
           a = c;
     if( ( b = a | 0x42 ) != a
     && ( c = a^0x42 ) != b )
           a = c;
     if( ( b = a | 0x24 ) != a
     && ( c = a^0x24 ) != b )
           a = c;
     if( ( b = a | 0x18 ) != a
     && ( c = a^0x18 ) != b )
           a = c;
     return a;
}
/****************************************************************************
Call this function to set up the TWI master to its initial standby state.
Remember to enable interrupts from the main application after initializing the TWI.
****************************************************************************/
void TWI_Master_Initialise(void)
{
    TWBR = TWI_TWBR;     // Set bit rate register (Baudrate)4k. Defined in header file.
    // TWSR = TWI_TWPS;         // Not used. Driver presumes prescaler to be 00.
    TWDR = 0xFF;                // Default content = SDA released.
    TWCR = (1<<TWEN)|           // Enable TWI-interface and release TWI pins.
           (0<<TWIE)|(0<<TWINT)|                      // Disable Interupt.
           (0<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|           // No Signal requests.
           (0<<TWWC);                                 //
}       
/***************************  TWI相關函數結束*****************************/
//寫數據到TWDR
void i2c_wt_8bit(unsigned char data)
{
    TWDR=data;
	TWCR=(1<<TWINT)|(1<<TWEN)|(0<<TWEA)|
	     (0<<TWSTA)|(0<<TWSTO)|(0<<TWWC); 
}	
//device_addr為器件地址,addrhi,addrlo為全地址,num 要連續讀的個數
//返回1:失敗,0:成功 一次最多寫32個字節
uchar I2cRead(uchar device_wt,uchar device_rd, uchar addrhi,uchar addrlo,uchar num)
{
    uchar j=0;
	Start()	;          //I2C開始
	Wait()  ;          //等待TWIINT標志為1
	if(TestAck()!=TWI_START )
	{
		TWI_Master_Initialise(); 
		return 1;     //出錯
	}	
	i2c_wt_8bit(device_wt);  //寫I2C從器件地址及寫方式	
	Wait();                 //等
	if(TestAck()!=TWI_MTX_ADR_ACK )  //ACK
	{
		TWI_Master_Initialise(); 
		return 1;    //出錯
	}	
	i2c_wt_8bit(addrhi); //高地址
	Wait();                 //等
	if(TestAck()!=TWI_MTX_DATA_ACK  )  //ACK
	{
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  	
	}	
	i2c_wt_8bit(addrlo); //低地址
	Wait();                 //等
	if(TestAck()!=TWI_MTX_DATA_ACK  )  //ACK
	{  
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  
	}	
	Start()	;          //I2C從新開始
	Wait()  ;          //等待TWIINT標志為1	
	if(TestAck()!=TWI_REP_START  )  //ACK
	{   
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  	
	}	
	i2c_wt_8bit(device_rd);  //寫I2C從器件地址及讀方式	
	Wait();                 //等
	if(TestAck()!=TWI_MRX_ADR_ACK )  //ACK
	{
	    TWI_Master_Initialise(); 
	    return 1;    //出錯	
	}	
	TWCR = (1<<TWEN)|                          // TWI Interface enabled
           (0<<TWIE)|(1<<TWINT)|               // Enable TWI Interupt and clear the flag to read next byte
           (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|    // Send ACK after reception
           (0<<TWWC); 
	delay_nus(25);  //最低值!25 
    for(j=1;j<num;j++)   //讀取num-1個
	{
	    if(TestAck()!= TWI_MRX_DATA_ACK  )  //ACK
		{
		    TWI_Master_Initialise(); 
	        return 1;    //出錯	
		}	
		i2c_rd_buff[j-1]=TWDR;  //讀取數
		TWCR = (1<<TWEN)|                          // TWI Interface enabled
               (0<<TWIE)|(1<<TWINT)|               // Enable TWI Interupt and clear the flag to read next byte
               (1<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|    // Send ACK after reception
               (0<<TWWC); 	
		delay_nus(25);   //最低值! 25
	}	
	if(TestAck()!= TWI_MRX_DATA_ACK  )  //ACK
	{
	    TWI_Master_Initialise(); 
	    return 1;    //出錯	
	}	
    i2c_rd_buff[num-1]=TWDR;  //讀取數
	TWCR = (1<<TWEN)|                          // TWI Interface enabled
           (0<<TWIE)|(1<<TWINT)|               // Enable TWI Interupt and clear the flag to read next byte
           (0<<TWEA)|(0<<TWSTA)|(0<<TWSTO)|    // Send NACK after reception
           (0<<TWWC); 
	delay_nus(25);	 //最低值!   25
	if(TestAck()!= TWI_MRX_DATA_NACK   )  //NACK
	{
	    TWI_Master_Initialise(); 
	    return 1;    //出錯		
	}	   
	Stop();   //I2C停止
	return 0;   //整個過程正常時返回0	   
}
//num ,msg寫的數組 num包括前面的三個字節的地址
//返回1:失敗,0:成功
uchar I2cWrite(uchar *msg,uchar num)
{
    uchar i=0;  //一般用途 
    i2c_wt_buff[0]=msg[0] ;  //器件
	i2c_wt_buff[1]=msg[1] ;  // 地址高字節
	i2c_wt_buff[2]=msg[2] ;  // 地址低字節
	for(i=3;i<num;i++)
	    i2c_wt_buff[i]=msg[i];   //轉移字節
	Start()	;          //I2C開始
	Wait()  ;          //等待TWIINT標志為1
	if(TestAck()!=TWI_START )
	{  
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  
	}	
	i2c_wt_8bit(i2c_wt_buff[0])	;   //從器件地址和寫方式
	Wait();                 //等
	if(TestAck()!=TWI_MTX_ADR_ACK )  //ACK
	{  
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  
	}	
	i2c_wt_8bit(i2c_wt_buff[1])	;       //寫地址高	
	Wait();                 //等
	if(TestAck()!=TWI_MTX_DATA_ACK  )  //ACK
	{  
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  
	}	
	i2c_wt_8bit(i2c_wt_buff[2])	;       //寫地址低	
	Wait();                 //等
	if(TestAck()!=TWI_MTX_DATA_ACK  )  //ACK
	{  
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  
	}	
	for(i=3;i<num;i++)   //寫真正的數據
	{
	    i2c_wt_8bit(i2c_wt_buff[i])	;       //寫地址高	
		Wait();                 //等
		if(TestAck()!=TWI_MTX_DATA_ACK  )  //ACK
		{  
	    TWI_Master_Initialise(); 
	    return 1;    //出錯  
	    }	
		delay_nus(25);                 //沒必要
	}	
	Stop();   //I2C停止
	return 0;   //整個過程正常時返回0
	
}
//時鐘的讀寫
uchar clock_wt(uchar *msg,uchar num)
{
    uchar i=0;
    for(i=0;i<num;i++)
	    i2c_wt_buff[i]=msg[i];   //轉移字節
    Start()	;          //I2C開始
	Wait()  ;          //等待TWIINT標志為1
	if(TestAck()!=TWI_START )
	{  
	    Stop();   //I2C停止
	    return 1;     //出錯
	}	
	i2c_wt_8bit(i2c_wt_buff[0])	;   //從器件地址和寫方式
	//delay_nms(8);
	Wait();                 //等
	if(TestAck()!=TWI_MTX_ADR_ACK )  //ACK
	    return 1;    //出錯	
	for(i=1;i<num;i++)   //寫真正的數據
	{
	    i2c_wt_8bit(i2c_wt_buff[i])	;       //寫地址高	

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产1区2区3区| 国产三级欧美三级日产三级99 | 在线观看日韩一区| 久久99在线观看| 亚洲韩国一区二区三区| 久久欧美中文字幕| 欧美日韩国产首页在线观看| 成人综合日日夜夜| 伦理电影国产精品| 亚洲永久精品国产| 中文字幕欧美一区| 久久婷婷国产综合精品青草| 欧美亚洲动漫精品| 99视频国产精品| 国产一区二区美女| 青娱乐精品在线视频| 一区二区三区在线免费观看| 国产日韩欧美制服另类| 欧美一级日韩不卡播放免费| 日本福利一区二区| 国产91精品露脸国语对白| 美女视频黄a大片欧美| 亚洲精品乱码久久久久久久久| 日本一二三不卡| 精品国产一区二区三区久久影院| 欧美视频一区二区在线观看| 91在线视频官网| 成人sese在线| 成人性生交大合| 国产精品一区二区x88av| 免费看欧美女人艹b| 午夜精品福利一区二区三区av| 亚洲色图制服诱惑| |精品福利一区二区三区| 欧美国产精品一区二区三区| 久久亚洲一区二区三区四区| 日韩欧美中文一区二区| 91麻豆精品国产91久久久久久久久 | 亚洲欧洲精品天堂一级| 日本一区二区在线不卡| 国产亚洲欧美在线| 久久久高清一区二区三区| 国产日韩欧美综合一区| 国产精品素人视频| 中文字幕一区二区三区在线播放| 亚洲国产激情av| 国产精品私人影院| 亚洲情趣在线观看| 亚洲日本欧美天堂| 亚洲伊人伊色伊影伊综合网| 亚洲国产精品久久艾草纯爱| 香港成人在线视频| 日韩和欧美的一区| 激情偷乱视频一区二区三区| 国内精品久久久久影院色| 国产91露脸合集magnet| 成人18视频日本| 欧美在线观看禁18| 欧美美女一区二区三区| 91精品国产综合久久蜜臀| 日韩欧美视频在线| 国产三级三级三级精品8ⅰ区| 国产精品二三区| 亚洲午夜一区二区| 久久精品国产亚洲5555| 国产成人精品免费网站| 91视频精品在这里| 精品视频在线看| 日韩欧美另类在线| 国产精品网友自拍| 亚洲成av人片在线观看| 国内精品嫩模私拍在线| 91在线无精精品入口| 5858s免费视频成人| 久久久久久久国产精品影院| 中文字幕中文字幕在线一区 | 国产老肥熟一区二区三区| 国产91精品一区二区| 欧美天堂亚洲电影院在线播放| 日韩欧美国产电影| 18成人在线视频| 人人爽香蕉精品| av成人动漫在线观看| 欧美老肥妇做.爰bbww| 国产欧美综合在线观看第十页| 亚洲另类色综合网站| 老汉av免费一区二区三区| 一本大道av伊人久久综合| 欧美一级xxx| 中文字幕一区二区三区色视频| 日韩精品一级中文字幕精品视频免费观看 | 欧美大胆人体bbbb| 亚洲欧美激情插| 经典三级一区二区| 在线观看欧美日本| 日韩免费性生活视频播放| 国产精品美日韩| 亚洲国产成人高清精品| 狠狠色狠狠色综合系列| 欧美三片在线视频观看 | 国产精品视频看| 亚州成人在线电影| 国产成人在线看| 欧美日韩在线播| 久久久久久9999| 香蕉影视欧美成人| 成人午夜视频福利| 欧美一区二区三区婷婷月色| 欧美国产一区视频在线观看| 五月天亚洲精品| 国产尤物一区二区在线| 日本精品视频一区二区| 久久精品一区二区三区不卡牛牛| 亚洲精品视频自拍| 国产精品亚洲午夜一区二区三区| 精品视频一区 二区 三区| 在线观看91av| 亚洲一区免费视频| 丁香婷婷综合色啪| 制服丝袜亚洲播放| 国产欧美日韩三区| 青青草精品视频| 欧洲另类一二三四区| 国产精品三级av在线播放| 日产欧产美韩系列久久99| 91在线无精精品入口| 亚洲丝袜制服诱惑| 国产一区二三区| 91精品国产高清一区二区三区| 日韩理论片网站| 国产成人精品www牛牛影视| 欧美日韩一级大片网址| 亚洲在线观看免费视频| 91网站视频在线观看| 欧美激情一二三区| 国产高清在线精品| 精品国产一区二区三区久久影院| 舔着乳尖日韩一区| 欧美亚洲图片小说| 日韩一区有码在线| 成人国产在线观看| 欧美—级在线免费片| 久久www免费人成看片高清| 久久久亚洲高清| 六月丁香综合在线视频| 欧美一区二区三区婷婷月色| 日韩激情一区二区| 在线视频欧美区| 亚洲日韩欧美一区二区在线| 韩国av一区二区三区| 日韩精品一区二区三区视频在线观看 | 天天影视涩香欲综合网| 欧美日韩在线播放三区四区| 亚洲一区在线播放| 国产精品一区二区久久精品爱涩| 日本一二三四高清不卡| 成人av在线看| 国产精品丝袜一区| jlzzjlzz国产精品久久| 国产精品你懂的在线欣赏| 成人综合婷婷国产精品久久蜜臀| 日本一区二区免费在线观看视频| 国产风韵犹存在线视精品| 久久精品视频一区二区| 成人中文字幕合集| 亚洲欧美日韩小说| 欧美性大战久久久久久久蜜臀 | 99久久久精品免费观看国产蜜| 亚洲欧美日本韩国| 在线视频欧美精品| 日韩高清中文字幕一区| 日韩色视频在线观看| 天天操天天干天天综合网| 亚洲精品一区二区三区四区高清 | 亚洲国产精品久久人人爱 | 欧美日韩成人高清| 免费观看日韩av| 国产午夜精品一区二区三区四区| 99国产精品一区| 亚洲va欧美va人人爽| 日韩欧美国产wwwww| 懂色av一区二区三区免费看| 国产午夜亚洲精品羞羞网站| 欧美亚洲国产怡红院影院| 奇米精品一区二区三区在线观看| 久久久亚洲精华液精华液精华液| av成人免费在线| 亚洲第一成人在线| 国产人成一区二区三区影院| 91毛片在线观看| 麻豆精品一区二区av白丝在线| 国产日韩亚洲欧美综合| 欧美老年两性高潮| 成人精品视频一区| 五月婷婷久久综合| 欧美高清在线一区| 91啪亚洲精品| 国产精品主播直播| 亚洲综合网站在线观看| 久久综合成人精品亚洲另类欧美|