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

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

?? uart.c

?? RC522完整程序無需修改可放心使用
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include  "My_head.h"
#include  "MyProtocol.h"
#include  "carddef.h"
#include  "DS_addr.h"
#include  "DataFlash.H"
/****************************************************/
#define   DE_RE           P3_6
#define   UARTBUF_SIZE    180
//===================================================
BYTE  code   TieUpBus_Ordors[4]={0xAA,0X55,0x55,0xAA};
BYTE  code   BoardCast_ADDR[2]={0xAA,0xFF};

BYTE  xdata  uartSbuf[UARTBUF_SIZE];
BYTE  pdata  uartRbuf[UARTBUF_SIZE];
static  BYTE  uartRbuf_count = 0;
bit   my_ti = FALSE;
bit   dowith_receive_flag = FALSE;

BYTE  idata  receive_head[4];
BYTE  receive_head_counte =0;
BYTE  receive_timer = 0;
BYTE  enble_send_count = 0;
//===================================================
void  Uart_Int(void) interrupt 4 using 2
{
   bit  no_my_data_flag= FALSE;
   register  BYTE  ch;
   if(RI)
     {
	  RI = FALSE;enble_send_count = 2;
	  ch = SBUF;
	  /**************** test ***********
      if(uartRbuf_count<UARTBUF_SIZE)
	    {
	     uartRbuf[uartRbuf_count++] = ch;
	    }
  	  if(uartRbuf_count>ORDOR_PLACE)
	    {
	     dowith_receive_flag = TRUE; //this is a test!
		}
	  /**********************************/
	  if(!receive_timer)
	    {
		 receive_timer=2;
		 receive_head_counte=0;
		}
      if(receive_timer<3)
	    {
	     receive_head[receive_head_counte]=ch;
		 if(++receive_head_counte>3)
	  	   {
            if(  (receive_head[0]!=TieUpBus_Ordors[0])
			   ||(receive_head[1]!=TieUpBus_Ordors[1])
		       ||(receive_head[2]!=TieUpBus_Ordors[2])
			   ||(receive_head[3]!=TieUpBus_Ordors[3]))
			   {
			    receive_timer=0;
				//receive_head_counte=0;
			   }
			else{
			     receive_timer=45;
				 uartRbuf_count=0;
			     //receive_head_counte=0;
				 //dowith_receive_flag = TRUE; //for test.
			    }
		   }
		 return;
		}
	  if((receive_timer<10)||(receive_timer>45))
	    {
		 receive_timer=0;
		 return;
		}
	  //=================================================================
      if(uartRbuf_count<UARTBUF_SIZE)
	    {
	     uartRbuf[uartRbuf_count++] = ch;
		 ch = uartRbuf_count-1;
	    }
	  else ch = uartRbuf_count;
	  switch(ch)
	  {
	   case  ASP_PLACE:
		     if(uartRbuf[ch] != DOWN_ASP)
			  {
				no_my_data_flag = TRUE;
			  }
			 break;
	    case TYPE_PLACE:
			 if(uartRbuf[ch] != equip_addr.ntype)
			  {
				no_my_data_flag = TRUE;
			  }
  			 //dowith_receive_flag = TRUE; //this is a test!
			 break;
		case NUMBER_PLACE1:
  		      if((uartRbuf[ch] != ((BYTE *)(&equip_addr.number_addr))[0])
			     &&(uartRbuf[ch] != BoardCast_ADDR[0]))//并且不等于廣播地址
			  {
				no_my_data_flag = TRUE;
			  }
			  break;
		 case NUMBER_PLACE2:
			  if((uartRbuf[ch] != ((BYTE *)(&equip_addr.number_addr))[1])
  			      &&(uartRbuf[ch] != BoardCast_ADDR[1]))//并且不等于廣播地址
			  {
				no_my_data_flag = TRUE;
			  }
			  break;
         case DATLENGTH_PLACE:
			  if((uartRbuf[ch]<FRAMELENGTH_MIN)||(uartRbuf[ch]>FRAMELENGTH_MAX))
			  {
				no_my_data_flag = TRUE;
			  }
			  break;
		 default:
			  if((ch>ORDOR_PLACE) && (ch>=uartRbuf[DATLENGTH_PLACE]))
		 	  {
				 REN = FALSE;  //for run-time!
		         dowith_receive_flag = TRUE;
			  }
			  break;
	   }
      if(no_my_data_flag)
	   {
		 REN=FALSE;  //for run-time!
         receive_timer=1;
		 receive_head_counte=0; //MUST!!
		 //uartRbuf_count=0;
	   }
	  /********************************/
     }
   if(TI){my_ti=TI=FALSE;}
}


/*************************************************************/
/*       uart_send                                           */
/*************************************************************/
void  Uart_Putc(BYTE  ch)
{
   while(my_ti);
   SBUF = ch;
   my_ti= TRUE;
}


bit  SendStr(BYTE *ptr,int  count)  //"BYTE"  modiry to "int" by 2004-6-18
{                                   //"void"  modify "bit"  by  2004-07-08
  int  i;
  //if(count>512)return;
  Set_Timer20ms(5);
  while(enble_send_count)if(!Get_Timer20ms())return(FALSE);
  REN   = FALSE;
  DE_RE = 0;
  TB8   = 1;
  for(i=0;i<count;i++)
    {
	 //Save_My_TestData(ptr[i]);
	 Uart_Putc(ptr[i]);
	}
  delay_ms(2);//must for RS485!
  DE_RE = 1;
  REN   = TRUE;
  return(TRUE);
}


/*************************************************************/
void  UartBuf_Clear(void)
{
   BYTE   i=0;
   for(;i<UARTBUF_SIZE;i++)uartRbuf[i]=0;
   uartRbuf_count=0;
   dowith_receive_flag = FALSE;
   my_ti = FALSE;
}


void  Uart_Init(void)
{
   TR1   = 0;
   IP   |= 0X10;   // ES優先級1
   //SCON  = 0x50;   // 8位UART,波特率可變 REN=1
   SCON  = 0xF0,TB8=1;   // 9位UART,波特率可變 REN=1,摸停止位。
   TMOD &= 0x0f;   // 方式寄存器
   TMOD |= 0x20;   // T1設為自動再裝入8位計數器,或者分成2個8位計數器
   ES    = 1;      //(ES為串行口中斷允許位)
   TH1=TL1=0xFA;   // 0xfA--9600bps(22.1184Mhz)
   PCON |= 0x80;   // PCON.7為波特率加倍,PCON的其他位為掉電控制位
                   // 2004-7-21改為波特率19200
   TR1 = 1;        // TCON |= 0x40;

#if(MCU_IC==SST564)  //EXTRAM = AUXR^2;
   AUXR  &= ~0x02;   //0: Internal Expanded RAM access.
#elif(MCU_IC==SM5964)//OME = SCONF^2;
   SCONF |= 0x02;    //1: default is enable.
#endif

   DE_RE = 1;
   UartBuf_Clear();
   //delay_ms(1);
}


bit  Check_BCCsum(BYTE *buf)
{
  BYTE len,BCC_sum;//ii;
  for(BCC_sum=0,len=0;len<buf[DATLENGTH_PLACE];len++)
   {
     BCC_sum ^= buf[len];
   }
  if(~BCC_sum != buf[len])return(FALSE); //CRCERR;
  return(TRUE);
}


void  Set_BCCsum(BYTE *buf,BYTE nCount)
{
    BYTE   ii;
    for(buf[nCount]=0,ii=0;ii<nCount;ii++)
	{
	  buf[nCount]^=buf[ii];
	}
	buf[nCount]=~buf[nCount];
}


/*****************************************************
BYTE  Do_Uart_Event(BYTE dat)  //這樣可以把uartSbuf節約出來?
   {
    PostMessage(MY_UART_EVENT,0);
    dowith_receive_flag = FALSE;
	return(TRUE);
   }
/*---------------------------------------------------*/
bit   close_dis_led = FALSE;
bit   Check_Uart_Event(void)
{
   BYTE  len;//,BCC_sum;//ii;
   if(!dowith_receive_flag)
   {
	 if(receive_timer && !close_dis_led)
	   {
		 Dis_Comming_Led(TRUE);//0-close;1--open.
		 close_dis_led = TRUE; //for time and spi bus.
	   }
	 else if(close_dis_led)
	   {
	     Dis_Comming_Led(FALSE);//0-close;1--open.
	     close_dis_led = FALSE; //for time and spi bus.
	   }
	 return(FALSE);
   }

   memcpy(uartSbuf,uartRbuf,uartRbuf_count);
   len=uartRbuf_count,uartRbuf_count = 0;
   dowith_receive_flag = FALSE;
   receive_timer  = 45; //for continue!
   REN = TRUE;
   if(uartSbuf[FRAMECODE_PLACE]&THELAST_FRAME)
   {
     receive_timer = 0; //for renew  the head str!
   }
   /***********this is a test!!************************
   Set_BCCsum(uartSbuf,uartSbuf[DATLENGTH_PLACE]);
   SendStr(uartSbuf,len);//REN = TRUE;
   do_buzzer(1);
   /***************************************************/
   if(!Check_BCCsum(uartSbuf))return(FALSE);//CRCERR;
   //do_buzzer(1);
   //SendStr("OK",2);
   switch(uartSbuf[ORDOR_PLACE])
   {
	case CHECKEQUIP_ORDOR://         0x50
         Do_CheckEquip(Equip_CurStatus);
		 break;
	case SetNumber_ORDOR://          0x52
	     Do_SetNumber();
	     break;
	case GetNumber_ORDOR://          0x99
	     Do_GetNumber();
	     break;
    
	//自動充值數據
	case SetAutoGainCards_ORDOR://	 0xC5
		Do_SetAutoGainCards();
		break;
	case GetAutoGainCards_ORDOR://	 0xC6
		Do_GetAutoGainCards();
		break;
	//自動充值限制
	case SetAutoGainParam_ORDOR://    0xC7
		Do_SetAutoGainParam();
		break;
	case GetAutoGainParam_ORDOR://    0xC8
		Do_GetAutoGainParam();
		break;
    //=========================================

	case ClearConParam_ORDOR://      0x57
	     Do_ClearConParam();
	     break;
	case SetBh_Money_ORDOR://  	     0x58
        // Do_SetBh_Money();
		 break;
	case GetBh_Money_ORDOR://        0x59
        // Do_GetBh_Money();
		 break;
	case SendDcpeoples_ORDOR://	     0x5A
	    // Do_SendDcpeoples();
	     break;

	case SetSystemTime_ORDOR://      0x60
	     Do_SetSystemTime();
		 break;
   	case GetSystemTime_ORDOR://      0x61
	     Do_GetSystemTime();
		 break;

	case SetLostCardTime_ORDOR://    0x63
	     //Do_SetLostCardTime();
		 break;
	case GetLossCardsTime_ORDOR://   0x64
	    // Do_GetLossCardsTime();
		 break;
    /************************************/
	case SendCardStatus_ORDOR://     0x62 
	     Do_SendCardStatus();
		 break;
	case GetCardStatus_ORDOR://      0x65
	     Do_GetCardStatus();
         break;
    /************************************/
	case ReadConData_ORDOR://        0x70
         Do_ReadConData();
		 break;
	case SetConRecode_ORDOR://       0x71
	     Do_SetConRecode();
		 break;
	case SendCardGain_ORDOR://       0x72
	     //Do_SendCardGain();
		 break;
	case GetCardGain_ORDOR://        0x73
         //Do_GetCardGain();
	     break;
	case GetConStatusInfo_ORDOR://     0x75
         Do_GetConStatusInfo();
		 break;
	case GetEquipVersionInfo_ORDOR://  0x76
         Do_GetEquipVersionInfo();
		 break;
	/**************************************/
	case GetCardLevel_ORDOR://         0x80
	     //Do_GetCardLevel();
		 break;
	case SetSeedCard_ORDOR://          0x81
	     //Do_SetSeedCard();
	     break;
	case GetUserCardInfo_ORDOR://      0x82
	     //Do_GetUserCardInfo();
		 break;
	case SetUserCardInfo_ORDOR://      0x83
         //Do_SetUserCardInfo();
		 break;
	/**************************************/
	case SetOpUserInfo_ORDOR://        0x90
	     //Do_SetOpUserInfo();
		 break;
	case GetCurOpUserInfo://           0x91
	    // Do_GetCurOpUserInfo();
		 break;
	case GetOpUserInfo://              0x92
	     //Do_GetOpUserInfo();
		 break;
	default:break;
   }

   return(TRUE); //len
}


void   Do_CheckEquip(BYTE dat)
{
    BYTE  nCount            = ASP_PLACE;
    uartSbuf[ASP_PLACE]     = UP_ASP;
	uartSbuf[TYPE_PLACE]    = equip_addr.ntype;
	uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
	uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
	//uartSbuf[DATLENGTH_PLACE]=
	//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原來下傳的不變。
	uartSbuf[ORDOR_PLACE]    = EQUIPANSWER_ORDOR;//0x51,所有重要數據都對方需要回答
    nCount   = DATAST_PLACE;
	uartSbuf[nCount++] = dat;//Equip_CurStatus; //最近運行情況。
	uartSbuf[DATLENGTH_PLACE] = nCount;

    Set_BCCsum(uartSbuf,nCount);
    if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}


//恢復設備到初始出廠狀態。
void  Do_ClearConParam(void) 
{
    BYTE  nCount,dat = SUCCESS;
	if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE != 0)
	{
	  dat = FORMAT_ERR;
	}
    else
    {
      dat=ClearConParam_From_Mem(); //恢復到初始出廠狀態。
	}
    uartSbuf[ASP_PLACE]     = UP_ASP;
	uartSbuf[TYPE_PLACE]    = equip_addr.ntype;
	uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
	uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
	//uartSbuf[DATLENGTH_PLACE]=
	//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原來下傳的不變。
	uartSbuf[ORDOR_PLACE]    = AckSetGet_ORDOR;
    nCount   = DATAST_PLACE;
	uartSbuf[nCount++] = dat;
	uartSbuf[DATLENGTH_PLACE] = nCount;

    Set_BCCsum(uartSbuf,nCount);
    if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);

	if(dat==SUCCESS)
	{
	   //Dis_ConMode();
	   do_buzzer(BUZZER_WAIT);
	}
}

//設置自動充值參數
void Do_SetAutoGainParam(void)
{
    BYTE  nCount = ASP_PLACE;
    BYTE  dat = SUCCESS;

	if(uartSbuf[DATLENGTH_PLACE]-DATAST_PLACE<sizeof(sttFillLimitInfo))
	  dat = FORMAT_ERR;
    else
      dat=WriteFillLimitInfo((sttFillLimitInfo*)&uartSbuf[DATAST_PLACE]);

    uartSbuf[ASP_PLACE]     = UP_ASP;
	uartSbuf[TYPE_PLACE]    = equip_addr.ntype;
	uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
	uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
	//uartSbuf[DATLENGTH_PLACE]=
	//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原來下傳的不變。
	uartSbuf[ORDOR_PLACE]    = AckSetGet_ORDOR;
    nCount   = DATAST_PLACE;
	uartSbuf[nCount++] = dat;
	uartSbuf[DATLENGTH_PLACE] = nCount;

    Set_BCCsum(uartSbuf,nCount);
    if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);

	if(dat==SUCCESS)
	{
	   //Dis_ConMode();
	   do_buzzer(BUZZER_WAIT);
	}
}



//讀取自動充值參數
void Do_GetAutoGainParam(void)
{
    BYTE  nCount = ASP_PLACE;
    uartSbuf[ASP_PLACE]     = UP_ASP;
	uartSbuf[TYPE_PLACE]    = equip_addr.ntype;
	uartSbuf[NUMBER_PLACE1] = ((BYTE*)&(equip_addr.number_addr))[0];
	uartSbuf[NUMBER_PLACE2] = ((BYTE*)&(equip_addr.number_addr))[1];
	//uartSbuf[DATLENGTH_PLACE]=
	//uartSbuf[FRAMECODE_PLACE]= THELAST_FRAME;//保持原來下傳的不變。
	uartSbuf[ORDOR_PLACE]    = AckSetGet_ORDOR;
    nCount   = DATAST_PLACE;
	ReadFillLimitInfo((sttFillLimitInfo*)&uartSbuf[DATAST_PLACE]);
    //dat=restoreparam_from_Mem();
    //memcpy(&uartSbuf[DATAST_PLACE],&stOrderDinnerTimeList,sizeof(stOrderDinnerTimeList));
    nCount+=sizeof(sttFillLimitInfo);
	uartSbuf[DATLENGTH_PLACE] = nCount;

    Set_BCCsum(uartSbuf,nCount);
    if(!SendStr(uartSbuf,nCount+1))Dis_Err(COMMERR);
}


void  Do_SetSystemTime(void)
{
    BYTE  buf[7];// = {0x00,0x45,0x23,0x16,0x06,0x03,0x04};
    BYTE  nCount;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91年精品国产| 亚洲欧美日韩电影| 亚洲日本va午夜在线影院| 天天影视网天天综合色在线播放| 激情文学综合插| 欧美怡红院视频| 国产精品五月天| 国产在线一区观看| 91精品国产综合久久精品性色| 欧美激情一区二区三区| 男女视频一区二区| 欧美伊人久久久久久午夜久久久久| 国产日韩视频一区二区三区| 日韩中文字幕一区二区三区| 色狠狠综合天天综合综合| 国产欧美一区二区精品婷婷| 麻豆视频一区二区| 91麻豆精品国产| 亚洲成av人影院在线观看网| 99免费精品在线观看| 国产精品素人一区二区| 国产综合色视频| 精品国产一区二区三区av性色 | 色噜噜狠狠成人网p站| 国产女主播视频一区二区| 激情综合网av| 精品理论电影在线| 寂寞少妇一区二区三区| 日韩一区二区三区电影在线观看 | 亚洲精品成人天堂一二三| 99re热这里只有精品视频| 国产精品视频看| 国产91清纯白嫩初高中在线观看| 久久午夜老司机| 国产一区二区成人久久免费影院 | 一区二区在线观看视频在线观看| 91影院在线观看| 亚洲精品水蜜桃| 一本大道av伊人久久综合| 不卡视频免费播放| 亚洲mv在线观看| 国产综合成人久久大片91| 精品欧美一区二区三区精品久久| 天堂一区二区在线| 欧美一区二区三区四区五区| 久久9热精品视频| 久久蜜臀中文字幕| k8久久久一区二区三区| 亚洲欧洲av另类| 精品1区2区3区| 美国十次了思思久久精品导航| 欧美成人精品1314www| 国产精选一区二区三区| 中文在线资源观看网站视频免费不卡 | 久久久综合视频| 国产.欧美.日韩| 一区二区三区在线免费| 欧美猛男gaygay网站| 久久精品久久99精品久久| 国产偷国产偷亚洲高清人白洁| a在线欧美一区| 亚洲成人av免费| 久久精品亚洲一区二区三区浴池 | 欧美喷潮久久久xxxxx| 麻豆成人av在线| 国产精品国产三级国产普通话99| 一本久久a久久精品亚洲| 日韩精品一二三区| 国产亚洲女人久久久久毛片| 欧美特级限制片免费在线观看| 精品在线播放免费| 亚洲男人的天堂在线观看| 欧美一区二区日韩一区二区| 国产成人av一区二区三区在线观看| 一区二区三区在线免费播放| 欧美成人a∨高清免费观看| 99久久婷婷国产精品综合| 日韩高清欧美激情| 自拍偷拍亚洲欧美日韩| 制服.丝袜.亚洲.中文.综合| 成人午夜大片免费观看| 日韩av在线发布| 亚洲免费av高清| 久久精品日产第一区二区三区高清版| 91福利区一区二区三区| 国产精品一品视频| 青青草97国产精品免费观看无弹窗版| 中文字幕在线不卡视频| 精品成人一区二区三区四区| 欧美日韩免费一区二区三区| av在线不卡网| 国产精品一区在线观看乱码 | 精品成人私密视频| 欧美日韩第一区日日骚| 一本一道久久a久久精品| 国产福利一区二区三区在线视频| 日韩影院在线观看| 一级日本不卡的影视| 国产精品美女一区二区| 久久综合久色欧美综合狠狠| 制服丝袜亚洲播放| 欧美日本国产视频| 在线观看中文字幕不卡| 91在线观看高清| 不卡的av在线播放| 国产成人av一区二区三区在线观看| 免费成人在线网站| 免费在线一区观看| 奇米影视一区二区三区| 视频一区视频二区中文| 亚洲丶国产丶欧美一区二区三区| 亚洲精品免费在线观看| 亚洲人成亚洲人成在线观看图片 | 国产精品毛片久久久久久久| 久久精品一区二区三区av| 久久综合999| 国产视频一区在线观看| 欧美激情一二三区| 国产精品美女一区二区三区 | 欧美性欧美巨大黑白大战| 91丨porny丨户外露出| 91女厕偷拍女厕偷拍高清| 91在线视频播放地址| 91久久久免费一区二区| 日本道免费精品一区二区三区| 91国偷自产一区二区三区观看| 91久久国产最好的精华液| 色偷偷一区二区三区| 欧洲亚洲精品在线| 欧美一区二区久久| 精品欧美一区二区久久| 久久久av毛片精品| 中文字幕一区二区三区乱码在线| 综合网在线视频| 夜夜精品视频一区二区| 丝袜美腿亚洲一区| 国产在线一区二区| bt欧美亚洲午夜电影天堂| 在线视频你懂得一区二区三区| 欧美日韩一区二区三区视频| 日韩一区二区三区高清免费看看| 久久只精品国产| 亚洲摸摸操操av| 日产国产高清一区二区三区| 国产自产v一区二区三区c| 99久久精品国产麻豆演员表| 欧美日韩在线播| 久久久av毛片精品| 亚洲国产视频a| 激情国产一区二区| 色综合天天狠狠| 日韩免费一区二区三区在线播放| 国产欧美一区二区精品性| 亚洲一二三区在线观看| 国内精品不卡在线| 91福利精品视频| 国产欧美一区二区三区网站| 亚洲图片欧美色图| 不卡av在线网| 欧美mv和日韩mv的网站| 一区二区三区中文字幕精品精品 | 亚洲主播在线播放| 国产成人免费视频网站| 777xxx欧美| 亚洲欧美综合另类在线卡通| 狠狠狠色丁香婷婷综合激情| 91在线码无精品| 中文字幕第一区| 久久99国产精品久久| 欧美亚洲综合色| 最近日韩中文字幕| 国产精品夜夜嗨| 日韩免费性生活视频播放| 亚洲成人av一区二区三区| 92国产精品观看| 成人免费一区二区三区视频| 国产精品一区在线观看你懂的| 日韩欧美中文字幕一区| 亚洲亚洲精品在线观看| 色av成人天堂桃色av| 国产精品精品国产色婷婷| 国产精品影视在线| 久久久久国色av免费看影院| 青青草伊人久久| 日韩一区二区在线看| 日韩中文字幕1| 91精品国产综合久久久蜜臀图片 | 亚洲欧美日韩成人高清在线一区| 国产成a人亚洲精| 久久伊人蜜桃av一区二区| 日韩不卡一区二区三区| 日本久久一区二区| 3d成人动漫网站| 亚洲一区二区三区四区五区黄 | 日韩一区二区电影| 亚洲自拍欧美精品| 91免费版在线| 亚洲裸体在线观看| 成人免费不卡视频| 亚洲精品一区二区三区在线观看|