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

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

?? main12.c

?? 透明傳輸的DTU。實現配置:microchip 18F6520,協議DL/T645。 全部C源碼文件。
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* **************************************************
3.14	改為透傳
3.15	Line 1583 delay4ms()刪除,加快發給模塊速度
3.19	powerkey 上電之后延時過短(40s)會導致cipstart不能連接。
		不使用透傳,改回成AT命令模式發送
		發完at+cipsend=xx之后,必須等待大于號的應答
		加上對send ok 的判斷。
5。29	最新版和小莊帶到廈門的手工版只有在線燈的改變,只在FuntionPin.h中改動了。		
6.6     莊添加:目的:實現信號強度燈指示
        1.屏蔽掉所有信號強度燈操作;
        2.在proc_min中加讀信號強度;
		3.在proc_timeover中加信號強度燈的亮暗設置
		4.在主循環while(1)之前加信號強度讀取
6.16    刪除SoftDog,移動初上電55AA里的語句
6.19    掌機設置終端號的協議解釋里加了個ConnectIP(),目的:讓后臺原來連接的終端號斷線,讓新設的終端號上線		
6.21	增加采集器對掌機的485端口檢查命令的應答(原來只有紅外)
*/
// GPRS data terminal unit
// MPLAB6.30 + C18 2.40.01
// MPLAB7.10 + C18 2.42
// MPLAB7.50 + C18 3.04
//
#include <p18f6520.h>  /* for the special function register declarations */
#include <usart.h> 
#include <string.h> 
#include <ctype.h>
#include "Parameters.h"
#include "always.h"
#include "delay.h"
#include "FuntionPin.h"

#pragma config CP0 = OFF
#pragma config CP1 = OFF
#pragma config CP2 = OFF
#pragma config CP3 = OFF
#pragma config OSC = HS
#pragma config WDT = OFF				//狗打開,分頻比默認1:128,最大延時2304ms
#pragma config LVP = OFF
#pragma config DEBUG = ON

#pragma udata mydata2 =0x0200		//初始化了的數據放到idata
unsigned char RecvFromMS[240];		//AT+CMGR的回送最長142,再加上port=2020(9x4=36)
unsigned char MeterNumber[6];
unsigned char delayus_variable;
unsigned char WaitReturn;		//=0:發送的是初始化幀,接受到除了起始符外的回車即收到一幀
								//=3:發送的是cipstart,需要接收3個回車,相當于兩幀
								//=4:發送的是cmgr,需要接收4個回車,相當于3幀

#pragma udata mydata3 =0x0300
//每一個section的空間不能超過256個,利用對數組的初始化就可以把它定義到別的section。
unsigned char BUF_METER[256];		//只作為從485接口接受數據的緩沖區

#pragma udata mydata4 =0x0400		//短信數據
//短信最長140+15=155(還有一個長度字節,則數組定義為156)
unsigned char SMS_Return[DataLength];
//18F6520:2kRAM,最大到7FFH

#pragma udata mydata5 =0x0500
//接收到的主站命令,提取出來放到此處
unsigned char YC_CMD_BUF[250];

#pragma udata mydata7 =0x0700
unsigned char SMS_CMD_BUF[50];							//接收到的主站命令,提取出來放到此處
//unsigned char APN[16];

#pragma udata access my_access							//放入ACCESS BANK
//定義一個數組存儲發送數據
near unsigned char k,j,tt,cRet,DataAddr,parity;
near unsigned char LengthCipstart,LengthCipsend,LengthBUF2,LengthIPDNS;
near unsigned char dLength,tempArr[3];
near unsigned char SecCounter,MinCounter,temp1,temp2,temp3,temp4,LampDelay,SigQua,bitFL;
near unsigned char SMS_CMD,NOAddr,NOLength;
near unsigned char EnergyDataAddr,UDLAddr,UDLLength,SMS_Start,AllLength;
near unsigned char Date,Hour,Minute,Second,CantLinkMin;		//CantLinkMin:不能建立連接一共多少分鐘
near unsigned char MaxTry;								//最大嘗試次數,以便從while(1)死循環中退出
near unsigned char BUFFER_ID,OnLineTime,MetersNum;
near unsigned char IrTX9D,Ir_ByteToSend;			//紅外發送第九位

near volatile unsigned int SoftDog;
near volatile unsigned int T1DELAY;
near volatile unsigned char ReceivedReturn,ByteReceived,ByteRecvUART2;
near volatile unsigned char RevTemp,IPDHead,Length;
near volatile unsigned char CMDLengthLow,CMDLengthHigh;
//   !!!!!!!! 滿了!FULL!!!!!!          

//*********    位域定義    ***********
near union
{														//用法:if (Flags.Bit.Timeout == 1)
  struct
  {
//    unsigned isIr:1;			//是紅外通訊
    unsigned aFrame:1;			//收到電表回送的一幀
    unsigned RecvMeter:1;
    unsigned :6;
  } Bit;
  unsigned char Comm1Byte;
} MeterComm;
near union
{								//用法:if (Flags.Bit.Timeout == 1)
  struct
  {
    unsigned RecvGPRS:1;		//收到主站從GPRS信道傳過來的命令
    unsigned RecvUART2:1;
    unsigned CMD_Frame:1;		//收到主站的命令幀
    unsigned :5;
  } Bit;
  unsigned char Comm2Byte;
} GPRSComm;
near union
{		
  struct
  {
    unsigned RecvEcho:1;		//收到module的應答 or 主動上報的狀態
    unsigned EchoModule:1;		//module應答完畢
	unsigned CMGSSent:1;		//是發送短信
    unsigned :5;
  } Bit;
  unsigned char ModuleBYTE;
} ModulFlags;

near union
{		
  struct
  {
    unsigned TimerOver:1;
    unsigned TCPLink:1;
    unsigned :6;
  } Bit;
  unsigned char FlagsByte;
} OtherFlags;

#pragma udata my_data1 = 0x0100
unsigned char TranToMS[DataLength];

#pragma udata datatest = 0x0060
unsigned char Text1,Text2,Text3;
unsigned char DepNOLow,DepNOHigh;
unsigned int RWDTemp;
unsigned int OverTimeMeter,OverTimeGPRS;
unsigned int cMinute,t1use,PWRUP55AA;
unsigned long EnergyValue=0,LeftLong=0,MidLong=0;
unsigned long LargeValueHigh=0,LargeValueLow=0;
unsigned char NowPosition;
unsigned char EnergyOfMonth;
unsigned char Ip_start_buf2[MaxDNSIPSize];
unsigned char EnergyData[4],EnergyDataUCS2[36];
unsigned char PortNO[4];
unsigned char LeftedMoney[4];
unsigned char MeterNO[6];
unsigned char TotalE_Addr;
unsigned char SharpE_Addr;
unsigned char PeakE_Addr;
unsigned char DayE_Addr;
unsigned char LowE_Addr;
unsigned char invE_Addr;
unsigned char leftedM_Addr;
unsigned char Address_Length,IndexOfTP_UDL,TP_UDL,IndexOfTP_DCS,TP_DCS,CMGR_CMGD_SIZE;

unsigned char DTU_Number[4],Index0,Index1;
unsigned char TxData,RxData;
unsigned char Link_Mode[2];
unsigned char BT;


// *****************************************************************
//funtion prototype
void INT_Procedure (void);   /* prototype needed for 'goto' below */

void LoadCMD_AT(void);
void LoadCMD_CSCS(void);
void LoadCMD_ATE0(void);
void LoadCMD_CIPSPRT(void);
void LoadCMD_CREG(void);
void LoadCMD_CREGAsk(void);
void LoadCMD_CCLK(void);
void LoadCMD_CSQ(void);
void LoadCMD_CNUM(void);
void LoadCMD_CIPHEAD(void);
void LoadCMD_CIPSTATUS(void);
void LoadCipstartBuf(void);
void LoadCMD_ATO(void);
void LoadCMD_CIPSEND(void);
void LoadCMD_CMGS(void);
void LoadCMD_CIPCLOSE(void);
void LoadCMD_CIPSHUT(void);
void LoadCMD_CMGR(void);
void LoadCMD_CMGD(void);
void LoadCMD_CMGL(void);
void LoadCMD_CIICR(void);
void LoadCMD_CIFSR(void);

void ThreeCommand(void);
void ClearMeterREG(void);
void ClearGPRSREG(void);
void GenParity(unsigned char DataWillSend);
void CHECKSUM(void);
void YC_CHECKSUM(void);
void TT_CHECKSUM(void);
void SMS_CHECKSUM(void);
void SendCMDtoMeter(unsigned char num);
void ReturnDataToHander(unsigned char num);
void Proc_SMS(void);
void SMS_Energy(void);
void OK_Data(void);
void SendSMS(void);
void HandleData(unsigned char ei);
void ConvertToUCS2(void);
void TimeDataToUCS2(void);
void ASC2B(void);
void B2ASC(void);
void Load645Header(void);
void ErrorMSG(void);

void Timer1_setup(void);
void PWM_setup(void);
void Proc_TimerOver(void);
void Proc_min(void);
void ConfigInt(void);
void SendBeatPack(void);
void FirstTimeInitial(void);
void Module_Init(void);
void PowerOnModule(void);
void PowerOffModule(void);
void PWRKeyOn(void);
void PWRKeyOff(void);

void SetDateTime(void);
void DTUNO2Str(void);
void ReadTime(void);
void ConvertTime(void);
void ConnectIP(void);
void ReInitial(void);
void Close_Shut(void);
void SendDTUNO(void);
void CMDtoDTU(void);

void W_eeprom(char *pData,unsigned int addr,unsigned char DataLen);
void R_eeprom(char *pData,unsigned int addr,unsigned char Datalen);
void Read_IP(void);
void Read_APN(void);
void HanderCMD(void);
void InitPeriph(void);
//void LedOn(void);
void UART1_setup(void);
void UART2_setup(void);
void SPI_setup(void);
void SPIRX(unsigned int sAddr,unsigned char *DestAddr,unsigned char rCount);
void SPIDX(unsigned char TrData);
void SendToModule(unsigned int num);
void Proc_0HourData(void);
void UploadData(void);

void DelaySeconds(unsigned char cSec);
void PassSeconds(unsigned char PSec);

/* delay10ms is found in an assembly file */
extern void delay4ms (void);
extern void delay10ms (void);
extern void delay20ms (void);
extern void delay50ms (void);
extern void delay200ms (void);

extern void RB0INT (void);		//外部中斷:紅外接收
extern void SendByte (void);	//紅外單字節發送

// ************************************************************************

#pragma code LOW_INTERRUPT_VECTOR = 0x08
void low_ISR (void) 
{
  _asm
    goto INT_Procedure
  _endasm
}

#pragma code  /* allow the linker to locate the remaining code */

//*************   中斷處理程序   ****************
#pragma interrupt INT_Procedure
void INT_Procedure (void) 
{
  volatile unsigned char tLength,arr;
  if(PIR1bits.TMR1IF == 1)		//50ms中斷一次
  { 
	T1CONbits.TMR1ON = 0;	//關閉TMR1
	TMR1H = hibyte(T1DELAY);
	TMR1L = lobyte(T1DELAY);	

	T1CONbits.TMR1ON = 1;	//啟動TMR1
  	PIR1bits.TMR1IF = 0;
	OtherFlags.Bit.TimerOver = 1;
/*
	SoftDog += 1;			//50ms增1
	if(SoftDog > 2000)		//2000 * 50ms =100秒
	{
		SoftDog = 0x00;
		RESET();
	}
*/
  }//END if(PIR1bits.TMR1IF)

	if(INTCONbits.INT0IF == 1)	//紅外接收起始位觸發下降沿中斷
	{
       RB0INT();
	}
  
// -------------------------------------------------------------
// 在這里處理從電表收到的應答。
  if(PIR1bits.RC1IF == 1 || INTCONbits.INT0IF == 1)		//串口 1 與電表連接,加超時處理
  {							//1200bps,8,E
	if(PIR1bits.RC1IF == 1)
  		RevTemp = RCREG1;		//讀RCREG1清PIR1bits.RCIF
	else
//如果是INTCONbits.INT0IF == 1,RevTemp就已被賦值
		INTCONbits.INT0IF = 0;
	OverTimeMeter = 0;	//清零防止接收超時

//*******************************************************
//   	BUF_METER[ByteReceived]=RevTemp;
//   	ByteReceived++;
//*******************************************************
	if(MeterComm.Bit.RecvMeter == 0)
	{//未收到68H
		
		if(RevTemp == 0x68)
		  MeterComm.Bit.RecvMeter = 1;
		else
		  return;
	}
// 讀出接收到的第9位數據
//  	if(RCSTA1bits.RX9D==1)
//  	  MeterComm.Bit.RX9D_copy=1;
//  	else
//  	  MeterComm.Bit.RX9D_copy=0;
  
// 計算偶校驗位,與RX9D_copy比較 ......
// 清除OERR
	RCSTA1bits.OERR=0;
	if(ByteReceived<=9)
	{  
	  switch (ByteReceived)
    	  {
      		case 0:
      		case 7:
				if(RevTemp==0x68)
	     	  	{  
	     	  		BUF_METER[ByteReceived]=RevTemp;
	     	     	ByteReceived++;
	     	  	}
                break;

      		case 8:
					BUF_METER[ByteReceived]=RevTemp;	
	     	   		ByteReceived++;
                break;
      		case 9:
				if(RevTemp > DataLength)	//大于最大長度
                {
		     		ByteReceived = 0;
                    break;
		  		}
		  //否則往下執行
      		default:  
		  		BUF_METER[ByteReceived]=RevTemp;
		  		ByteReceived++;
                break;
    	  }//end switch  
	}//end if(ByteReceived<=9)
	else
	{  
		arr=BUF_METER[9]+11;		//DI0,DI1記入長度L
	   	if(ByteReceived == arr)
	   	{
	   		if(RevTemp == 0x16)
	   		{  
	   	   		BUF_METER[ByteReceived] = RevTemp;
				MeterComm.Bit.aFrame = 1;
	     		ByteReceived++;
	   		}
			else
	   		{  
				ByteReceived = 0;
		  		MeterComm.Bit.RecvMeter = 0;
	   		}
	   }
	   else
	   {
	     	BUF_METER[ByteReceived]=RevTemp;
	     	ByteReceived++;
	   }
	}
  }//END if(PIR1bits.RC1IF == 1 || INTCONbits.INT0IF == 1)

//--------------------------------------------------
  if(PIR3bits.RC2IF == 1)		//串口 2 與module連接
  {							//9600bps,8,N
  	RevTemp = RCREG2;			//讀RCREG2清PIR3bits.RCIF
	OverTimeGPRS = 0;
	if(ByteRecvUART2>250)
		ByteRecvUART2 = 0;
	
	if(GPRSComm.Bit.RecvUART2 == 0x00)
	{				//未收到起始符:0D 或 +
		if(RevTemp == _CR)
		{
		  ModulFlags.Bit.RecvEcho = 1 ;
		  GPRSComm.Bit.RecvUART2 = 1;
		  RecvFromMS[ByteRecvUART2]=RevTemp;
	 	  ByteRecvUART2++;
		}
		else if(RevTemp == _PLUS)	//+:遠端(主站)發來的命令前導符
		{
		  GPRSComm.Bit.RecvGPRS = 1 ;
		  GPRSComm.Bit.RecvUART2 = 1;
		  RecvFromMS[ByteRecvUART2]=RevTemp;
	 	  ByteRecvUART2++;
		}
		else
		  return;
	}
	else			//已收到起始符:0D 或 +
	{
		RecvFromMS[ByteRecvUART2]=RevTemp;
		ByteRecvUART2++;

		if(ModulFlags.Bit.RecvEcho == 0x01)
		{
		  if(ModulFlags.Bit.CMGSSent == 0x01)	//發送短信
		  {
		  	if(RevTemp == _SPACE)
		  		ModulFlags.Bit.EchoModule = 1;
		  }
		  if(RevTemp == _CR)
		  {
		  	if(WaitReturn == 0x03)
		  	{
		  		ReceivedReturn++;
		  		if(ReceivedReturn == 0x03) 
				{
		  	  		ModulFlags.Bit.EchoModule = 1 ;
			  		ReceivedReturn = 0;
				}
		  	}
		  	else if(WaitReturn == 0x04)
		  	{
		  		ReceivedReturn++;
		  		if(ReceivedReturn == 0x04) 
				{
		  	  		ModulFlags.Bit.EchoModule = 1 ;
			  		ReceivedReturn = 0;
				}
		  	}
		  	else ModulFlags.Bit.EchoModule = 1 ;	//WaitReturn = 2的情況在這處理
		  }
		}//END of if(Flags.Bit.RecvEcho == 1)
//=+:遠端(主站)數據
		if(GPRSComm.Bit.RecvGPRS == 0x01)
		{
//從前導+IPDxx:_SPACE取出xx
		  if(RevTemp == _COLON && ByteRecvUART2 >4  && ByteRecvUART2 <8)	
//收到:后就可以取出長度
		  {
				CMDLengthLow = RecvFromMS[ByteRecvUART2-2];
				CMDLengthLow -= 0x30;		//字符轉成數字
				if(RecvFromMS[ByteRecvUART2-3] == _D)	// || RecvFromMS[ByteRecvUART2-2] == _d)
				{
	  				Length = CMDLengthLow;
				}
				else
				{
					CMDLengthHigh = RecvFromMS[ByteRecvUART2-3];
	  				CMDLengthHigh -= 0x30;
					tLength = CMDLengthHigh;
//轉換成10進制:Length = CMDLengthHigh*10+CMDLengthLow
	  				Length = tLength <<3;
	  				Length = Length + CMDLengthHigh + CMDLengthHigh + CMDLengthLow;
					
				}
				IPDHead = ByteRecvUART2;
		  }//BED of if(RevTemp == _COLON && ByteRecvUART2 >4  && ByteRecvUART2 <8)	
	  	  if(ByteRecvUART2 == IPDHead + Length)//+IPDxx:FE.. 68 NO 68 CMD L CHECKSUM 16
	  	  {
				GPRSComm.Bit.CMD_Frame = 1;
				//SignalLed = HIGH;			//關閉信號強度燈
		  }
		}//END of if(Flags.Bit.RecvGPRS == 1)
	}//END of else
  }//END if(PIR3bits.RCIF)
}//END void INT_Procedure (void)

void Load_SigQua(void)   //信號強度讀取:莊
{
   	LoadCMD_CSQ();
	SendToModule (CSQ_SIZE);
	DelaySeconds(2);
	temp4=((RecvFromMS[8]-0x30)*10+(RecvFromMS[9]-0x30))/7;
    if(ModulFlags.Bit.EchoModule == 1)  
    {
		if(temp4!=SigQua)
		{
     		SigQua=temp4;
      		LampDelay=0;
      		if(SigQua==0)
      		{
      	    	bitFL=1;  //從暗開始
      			SignalLed=CLOSE;
      		}
      		else 
      		{
      			bitFL=0;
      			SignalLed=LIGHT;
      		}
		}	
     }
	else 
	{
		SigQua=0;    //GPRS模塊未響應時燈暗
 		SignalLed=CLOSE;
	}
 	ModulFlags.Bit.EchoModule = 0 ;
  	ByteRecvUART2 = 0;
}

void main (void) 
{
  unsigned char *p;
  near unsigned int ClearNum;
  temp4=0;        //增加信號強度部分 :莊
  SigQua=0;
  LampDelay=0;
  bitFL=1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区在线观看视频| 91麻豆精品国产91久久久资源速度 | 91精品国产色综合久久不卡电影 | 亚洲成人福利片| 91在线视频免费91| 亚洲理论在线观看| 欧美性猛交一区二区三区精品| 日韩视频免费观看高清完整版| 蜜桃久久精品一区二区| 精品国产乱码久久久久久蜜臀| 国产精品1区2区3区| 国产精品久久777777| 一本到不卡免费一区二区| 久久久另类综合| 天天综合网 天天综合色| jizzjizzjizz欧美| 亚洲一区二区精品久久av| 国产福利视频一区二区三区| 亚洲视频你懂的| 欧美日韩成人一区二区| 国产一区二区美女诱惑| 综合久久给合久久狠狠狠97色| 欧美日韩中文国产| 国产自产视频一区二区三区| 亚洲色图20p| 欧美日本乱大交xxxxx| 中文字幕欧美三区| 欧美日韩免费电影| 国产麻豆视频一区| 欧美一区二区三区公司| 丰满岳乱妇一区二区三区| 午夜私人影院久久久久| 国产偷v国产偷v亚洲高清| 欧美性生活久久| 国产精品系列在线观看| 亚洲h在线观看| 色狠狠桃花综合| 一区二区三区**美女毛片| 精品少妇一区二区三区在线视频| av中文字幕不卡| 久久成人av少妇免费| 欧美一级理论片| 99久久伊人精品| 黑人巨大精品欧美一区| 亚洲自拍都市欧美小说| 在线视频一区二区免费| 国产不卡在线一区| 欧美精品一区二区蜜臀亚洲| 91毛片在线观看| 亚洲欧美日韩在线| 国产亚洲视频系列| 99久久亚洲一区二区三区青草| 亚洲天堂2016| 欧美一a一片一级一片| 国产1区2区3区精品美女| 中文字幕一区二区三区四区| 日韩欧美一区中文| 精品视频1区2区| 波多野结衣亚洲一区| 国产一区二区在线影院| 久久久777精品电影网影网| 欧美一区二区三区免费在线看| 久久国产人妖系列| 日韩和欧美一区二区| 日韩精品一区二区三区在线播放 | 亚洲国产成人在线| 欧美成人bangbros| 日韩欧美一级在线播放| 欧美挠脚心视频网站| 在线看国产一区| 久久9热精品视频| 久久91精品国产91久久小草| 麻豆精品视频在线观看视频| 日韩av午夜在线观看| 日韩中文字幕区一区有砖一区 | 亚洲婷婷综合久久一本伊一区| 国产亲近乱来精品视频| 国产精品素人一区二区| 国产精品素人视频| 欧美情侣在线播放| 高清beeg欧美| 日韩不卡手机在线v区| 久久影音资源网| 26uuuu精品一区二区| 99热国产精品| 91网站在线播放| 蜜臀久久99精品久久久久久9| 久久久精品中文字幕麻豆发布| a级精品国产片在线观看| 三级亚洲高清视频| 亚洲天堂成人在线观看| 一区二区三区在线不卡| 亚洲第一福利视频在线| 国产日韩欧美精品综合| 国产夜色精品一区二区av| 国产精品剧情在线亚洲| 91精品国产综合久久香蕉麻豆| 欧美人动与zoxxxx乱| 成人av在线影院| 久久99精品久久久久久久久久久久 | 理论片日本一区| 国产成人啪免费观看软件| 99久久精品免费| 精品视频一区二区不卡| 2欧美一区二区三区在线观看视频| 国产精品视频观看| 亚洲午夜一区二区| 国产精品综合av一区二区国产馆| 日本最新不卡在线| 国产99久久久国产精品免费看 | 午夜精品爽啪视频| 国产精品中文字幕日韩精品| 91麻豆精品秘密| av中文字幕亚洲| 成人性生交大片免费看中文| 国产综合久久久久久久久久久久| 日本午夜精品视频在线观看| 亚洲成人一二三| 亚洲成人在线免费| 亚洲成av人片在线| 亚洲成人免费av| 国产成人综合亚洲91猫咪| 国产精品一品二品| 欧美日韩免费高清一区色橹橹 | 欧美精品在线观看播放| 欧美在线免费播放| 在线观看中文字幕不卡| 91免费版pro下载短视频| 在线成人午夜影院| 亚洲精品水蜜桃| 亚洲一区在线观看免费观看电影高清 | 欧美亚洲动漫另类| 国产日韩欧美电影| 男女男精品网站| 欧美亚洲国产一区二区三区va| 亚洲国产激情av| 国精品**一区二区三区在线蜜桃| 色网站国产精品| 国产目拍亚洲精品99久久精品| 日本一区二区免费在线| 最新日韩在线视频| 国产精品18久久久久久久久| 5月丁香婷婷综合| 精品国产自在久精品国产| 一区二区理论电影在线观看| 成人av动漫网站| 国产清纯白嫩初高生在线观看91| 久久精品免费观看| 在线播放中文一区| 久久久综合九色合综国产精品| 久久嫩草精品久久久精品| 日韩avvvv在线播放| 国产一区二区福利| 成人av网站在线观看| 久久麻豆一区二区| 久久99在线观看| 成人av电影在线观看| 国产网红主播福利一区二区| 国产美女精品在线| 26uuu国产在线精品一区二区| 久久er精品视频| 色综合久久综合网| 欧美大片免费久久精品三p| 石原莉奈在线亚洲三区| 国产成人一区二区精品非洲| 91浏览器打开| 亚洲欧美色图小说| 色婷婷综合久色| 精品sm在线观看| 亚洲一区二区黄色| 狠狠色2019综合网| 久久久久久久免费视频了| 国产精品一区二区在线播放| 欧美性一区二区| 2017欧美狠狠色| 黄色日韩三级电影| 欧美在线你懂的| 午夜电影久久久| 日韩欧美国产综合一区| 国产精品影音先锋| 国产精品久久久久久久久免费桃花| 天涯成人国产亚洲精品一区av| 欧美一区二区视频在线观看2022| 日本美女视频一区二区| 精品国产乱码久久久久久老虎| 国产高清在线精品| 3d动漫精品啪啪1区2区免费 | 成人精品一区二区三区中文字幕 | 久久精品一区二区三区四区| 婷婷亚洲久悠悠色悠在线播放| 国产成人免费xxxxxxxx| 中文字幕在线一区| 精品一区二区三区的国产在线播放| 精品国产人成亚洲区| 懂色av一区二区三区蜜臀| 亚洲精品一二三四区| 日韩视频不卡中文| 亚洲成a人v欧美综合天堂下载| 欧美电视剧免费全集观看| 国产**成人网毛片九色|