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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? pcm-rtx51.c

?? 《單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)與產(chǎn)品開發(fā)》配套源碼
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/********************************************/
/**              PCM-ZXDU1500			**/
/**            操作系統(tǒng) RTX51-TINY		**/
/*******************************************/

#include "rtx51tny.h"
#include "reg52.h"
#include "intrins.h"
#include "absacc.h"

#define uchar unsigned char
#define uint  unsigned int

#define MAX_NUM_COM1		   100		//定義COM1接收緩沖區(qū)長(zhǎng)度

#define COM1_RXD_En()	  	   P1_1 = 0
#define COM1_TXD_En()		   P1_1 = 1


/********************************************/
/**              任務(wù)編號(hào)聲明              **/
/********************************************/
#define TASK_INIT 			   0				//初始化任務(wù)
#define TASK_COM1 			   1			//與上位機(jī)通信任務(wù)
#define TASK_COM2 			   2			//與設(shè)備通信任務(wù)
#define TASK_DATA			   3				//數(shù)據(jù)處理任務(wù)
#define TASK_CMD			   4				//命令處理任務(wù)
#define TASK_LEDWDT			   5			//狀態(tài)燈及看門狗

/********************************************/
/**           GM16C550寄存器聲明           **/
/********************************************/
#define RBR         		   XBYTE[0x8000]
#define THR          		   XBYTE[0x8000]
#define DLL          		   XBYTE[0x8000]
#define DLM          		   XBYTE[0x8001]
#define IER          		   XBYTE[0x8001]
#define FCR           		   XBYTE[0x8002]
#define IIR           		   XBYTE[0x8002]
#define LCR           		   XBYTE[0x8003]
#define MCR           		   XBYTE[0x8004]
#define LSR           		   XBYTE[0x8005]
#define MSR           	       XBYTE[0x8006]
#define SCR                    XBYTE[0x8007]


/********************************************/
/**             控制引腳說(shuō)明	           **/
/********************************************/
//串口1(16C550) RS485方式收發(fā)使能,0為接收,1為發(fā)送
sbit P1_1 = P1^1;							
sbit P1_2 = P1^2;							//串口1(16C550)復(fù)位信號(hào)輸出
sbit P1_3 = P1^3;							//看門狗清零輸出
sbit P3_5 = P3^5;							//運(yùn)行狀態(tài)燈輸出


void CPU_Init(void);							//系統(tǒng)初始化
void COM1_Init(void);
void COM2_Init(void);

void Get_PcmAddr(void);						//讀取PCM地址
void Hex2Ascii(uchar,uchar*);
void Int2Ascii(uint,uchar*);
uchar Ascii2Hex(uchar *);
bit Chk_Sum(uchar*);

uchar code ZXDUCMD[2][25]={
{0x10, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF6, 0x97, 0x5D, 0x01, 0x12}, 							//取實(shí)時(shí)數(shù)據(jù)
{0x10, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x74, 0x00, 0x12}, 							//取參數(shù)
};

uchar code ZXDUSET[] = {0x10, 0x00, 0x00, 0x00, 0x23, 0x01, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};  								//設(shè)置命令的前面字節(jié)
uchar AlarmParaChar[35];									//ZXDU3000告警參數(shù)段
uchar xdata BuffCOM1[MAX_NUM_COM1];							//COM1接收緩存
uchar xdata BuffCOM2[1024];									//COM2接收緩存
uchar xdata BuffCmdSet[100];								//一條設(shè)置命令
uchar xdata BuffDvcReal[1024];								//設(shè)備實(shí)時(shí)數(shù)據(jù)
uchar xdata BuffDvcPara[1024];								//設(shè)備參數(shù)


uchar PcmAddr[2];											//按ASCII存放PCM地址
uchar RXDTimeOut = 0;										//超時(shí)計(jì)時(shí)
uchar TXDTimeOut = 0;

uchar xdata *data PtrCOM1RXD;								//串口收發(fā)指針
uchar xdata *data PtrCOM1TXD;
uchar xdata *data PtrCOM2RXD;
uchar 		*data PtrCOM2TXD;

bit FlagCOM1AllOut = 1;										//COM1發(fā)送完成標(biāo)志
bit FlagCOM2AllOut = 1;										//COM2發(fā)送完成標(biāo)志
bit FlagCmdStart   = 0;										//接收命令開始標(biāo)志
bit FlagCmdSet     = 0;										//收到一條設(shè)置命令
bit FlagDataStored = 1;										//數(shù)據(jù)存儲(chǔ)完成標(biāo)志

bit CmdCnt = 0;												//讀數(shù)據(jù)或參數(shù)的命令記數(shù),只有兩條,所以用bit

/********************************************/
/**             系統(tǒng)初始化任務(wù)	           **/
/**			初始化外設(shè)并建立其它任務(wù)       **/
/********************************************/
void Task_Init(void) _task_ TASK_INIT
{
	COM1_RXD_En();											//首先釋放485線
	COM2_Init();
	COM1_Init();
	CPU_Init();
	Get_PcmAddr();
	os_create_task(TASK_COM1);
	os_create_task(TASK_COM2);
	os_create_task(TASK_DATA);
	os_create_task(TASK_CMD);
	os_create_task(TASK_LEDWDT);
	os_delete_task(TASK_INIT);
}

/********************************************/
/**               串口1任務(wù) 	           **/
/**			處理接收到的命令,發(fā)送數(shù)據(jù)      **/
/********************************************/
void Task_COM1(void) _task_ TASK_COM1
{
	uchar CmdTyp;											//命令類型
	while(1)
	{
		os_wait(K_SIG,0,0);									//等待接收到命令的信號(hào)
		CmdTyp = BuffCOM1[8];								//取命令類型
		switch(CmdTyp)										//根據(jù)命令類型作相應(yīng)處理
		{
			case 0x31:										//命令類型: 41,取實(shí)時(shí)數(shù)
			{
				COM1_TXD_En();								//充許發(fā)送
				PtrCOM1TXD = BuffDvcReal;
				FlagCOM1AllOut = 0;
				THR = *PtrCOM1TXD++;
				break;
			}//41
			
			case 0x36:										//命令類型: 46,取參數(shù)
			{
				COM1_TXD_En();								//充許發(fā)送
				PtrCOM1TXD = BuffDvcPara;
				FlagCOM1AllOut = 0;
				THR = *PtrCOM1TXD++;				
				break;
			}//46

			case 0x35:										//命令類型: 45,遙調(diào)
			{
				os_send_signal(TASK_CMD);					//通知CMD任務(wù)進(jìn)行命令轉(zhuǎn)換
				break;
			}//45
		}
		os_switch_task();
	}
}

/********************************************/
/**               串口2任務(wù) 	           **/
/**			 定時(shí)發(fā)送命令到設(shè)備		       **/
/********************************************/
void Task_COM2(void) _task_ TASK_COM2
{
	while(1)
	{
		os_wait(K_TMO,200,0);								//等待時(shí)間標(biāo)志,此段時(shí)間,從設(shè)備接收數(shù)據(jù)并存儲(chǔ)完成
		os_wait(K_TMO,200,0);
		while(!FlagDataStored);								//等待數(shù)據(jù)存儲(chǔ)完成,否則接收過程復(fù)蓋原收到數(shù)據(jù)
	
		if(FlagCmdSet)										//收到上位機(jī)下發(fā)設(shè)置命令
		{
			PtrCOM2TXD = BuffCmdSet;							//指向設(shè)置命令
			FlagCmdSet = 0;
		}
		else
		{
			PtrCOM2TXD = ZXDUCMD[CmdCnt];					//指向讀數(shù)據(jù)或參數(shù)命令
			CmdCnt = !CmdCnt;
		}
		FlagCOM2AllOut = 0;									//COM2啟動(dòng)發(fā)送
		TI = 1;
		os_switch_task();
	}
}


/********************************************/
/**              數(shù)據(jù)處理任務(wù)              **/
/********************************************/
void Task_Data(void) _task_ TASK_DATA
{
	uchar xdata *data PtrS;
	uchar xdata *data PtrD;
	uchar i;
	uchar SMR_NUM;											//整流模塊數(shù)目
	uint SUM;												//校驗(yàn)和
	union
	{
		uint i;
		uchar c[2];
	}a_int;
	union
	{
		float f;
		uchar c[4];
	}a_float;
	while(1)
	{

		BuffDvcReal[0] = 0x7E;								//存放起始數(shù)據(jù)
		BuffDvcPara[0] = 0x7E;
		BuffDvcReal[1] = 0x32;
		BuffDvcPara[1] = 0x32;
		BuffDvcReal[2] = 0x30;
		BuffDvcPara[2] = 0x30;
		BuffDvcReal[3] = 0x46;
		BuffDvcPara[3] = 0x46;
		BuffDvcReal[4] = PcmAddr[1];
		BuffDvcPara[4] = PcmAddr[1];
		BuffDvcReal[5] = 0x44;
		BuffDvcPara[5] = 0x44;
		BuffDvcReal[6] = 0x30;
		BuffDvcPara[6] = 0x30;
		BuffDvcReal[7] = 0x30;
		BuffDvcPara[7] = 0x30;
		BuffDvcReal[8] = 0x30;
		BuffDvcPara[8] = 0x30;

		BuffDvcReal[9]  = 0x44;								//實(shí)時(shí)數(shù)據(jù)LENGTH 288(10) 120(16)
		BuffDvcReal[10] = 0x31;								//D120
		BuffDvcReal[11] = 0x32;
		BuffDvcReal[12] = 0x30;
		BuffDvcReal[13] = 0x34;								//CID2
		BuffDvcReal[14] = 0x31;

		BuffDvcPara[9]  = 0x35;								//參數(shù)LENGTH  86
		BuffDvcPara[10] = 0x30;								//5056
		BuffDvcPara[11] = 0x35;		
		BuffDvcPara[12] = 0x36;
		BuffDvcPara[13] = 0x34;								//CID2
		BuffDvcPara[14] = 0x36;

		BuffDvcReal[15] = 0x30;								//協(xié)議轉(zhuǎn)換器狀態(tài)
		BuffDvcReal[16] = 0x30;
		BuffDvcPara[15] = 0x30;
		BuffDvcPara[16] = 0x30;

		BuffDvcReal[17] = 0x30;								//設(shè)備信息
		BuffDvcReal[18] = 0x30;
		BuffDvcReal[19] = 0x30;								
		BuffDvcReal[20] = 0x30;
		BuffDvcPara[17] = 0x30;
		BuffDvcPara[18] = 0x30;
		BuffDvcPara[19] = 0x30;
		BuffDvcPara[20] = 0x30;

		os_wait(K_SIG,0,0);									//等待收到數(shù)據(jù)信號(hào)
		while(!FlagCOM1AllOut);								//等待數(shù)據(jù)上傳完成,否則上傳過程中更改數(shù)據(jù)
		FlagDataStored = 0;
		switch(BuffCOM2[7])									//根據(jù)數(shù)據(jù)類型作相應(yīng)處理
		{
			case 'R':										//實(shí)時(shí)數(shù)據(jù)
			{
				PtrS = BuffCOM2 + 17;						//指向交流A相電壓
				PtrD = BuffDvcReal + 95;					//指向?qū)崟r(shí)數(shù)據(jù)段
				
				for(i = 0; i < 4; i++)						//轉(zhuǎn)換相電壓電流,int型轉(zhuǎn)float型
				{
					a_int.c[1] = *PtrS++;
					a_int.c[0] = *PtrS++;
					a_float.f = (float)(a_int.i);
					Hex2Ascii(a_float.c[3],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[2],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[1],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[0],PtrD);
					PtrD += 2;
				}

				PtrS += 12;									//跳過12個(gè)保留字節(jié)
				for(i = 0; i < 5; i++)						//0: 市電一,1:市電二 1
 			    {											//直流總輸出電壓 4
					Hex2Ascii(*PtrS,PtrD);					
					PtrS++;									
					PtrD += 2;								
				}
				
		
				a_int.c[1] = *PtrS++;					//直流總輸出電流 2
				a_int.c[0] = *PtrS++;
				a_float.f = (float)(a_int.i);
				Hex2Ascii(a_float.c[3],PtrD);
				PtrD += 2;
				Hex2Ascii(a_float.c[2],PtrD);
				PtrD += 2;
				Hex2Ascii(a_float.c[1],PtrD);
				PtrD += 2;
				Hex2Ascii(a_float.c[0],PtrD);
				PtrD += 2;
									
				for(i = 0; i < 5; i++)						//環(huán)境溫度 1
 			    {											//環(huán)境濕度 4
					Hex2Ascii(*PtrS,PtrD);					
					PtrS++;									
					PtrD += 2;								
				}											
															
				PtrS += 16;									//跳過16個(gè)保留字節(jié)				
				for(i = 0; i < 2; i++)						//第1~15路負(fù)載分路熔斷器狀態(tài)
 			    {
					Hex2Ascii(*PtrS,PtrD);
					PtrS++;
					PtrD += 2;
				}
				PtrS += 4;									//跳過4個(gè)保留字節(jié)
				for(i = 0; i < 2; i++)						//第1~2路蓄電池組分路充放電流 4
				{
					a_int.c[1] = *PtrS++;
					a_int.c[0] = *PtrS++;
					a_float.f = (float)(a_int.i);
					Hex2Ascii(a_float.c[3],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[2],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[1],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[0],PtrD);
					PtrD += 2;
				}

				for(i = 0; i < 3; i++)						
 			    {											//第1~2路蓄電池組溫度 2
					Hex2Ascii(*PtrS,PtrD);					//第1~2路蓄電池分路熔斷器狀態(tài) 1
					PtrS++;
					PtrD += 2;
				}
				SMR_NUM = *PtrS++;							//取模塊個(gè)數(shù)
				for(i = 0; i < SMR_NUM; i++)				//存單體數(shù)據(jù)
				{											
					Hex2Ascii(*PtrS,PtrD);					//SMRn輸出電流
					PtrS++;									
					PtrD += 2;
					Hex2Ascii(*PtrS,PtrD);					//SMRn主散熱器溫度
					PtrS++;									
					PtrD += 2;
					Hex2Ascii((uchar)((*PtrS)&0x01),PtrD);			//開/關(guān)機(jī)
					PtrD += 2;
					Hex2Ascii((uchar)(((*PtrS)>>2)&0x01),PtrD);		//限流
					PtrD += 2;
					PtrS++;
				}
				for(i = 0; i < ((15-SMR_NUM)*8); i++)		//不存在的單體填0
				{	
					*PtrD++ = 0x30;
				}
				SUM = 0;									//計(jì)算CHKSUM
				for(PtrD = BuffDvcReal + 1; PtrD < (BuffDvcReal + 301);PtrD++)	
				{
					SUM += *PtrD; 
				}
				SUM = SUM % 0xFFFF;  						//生成校驗(yàn)碼
				SUM = ~SUM + 1;
				Int2Ascii((uint)SUM, PtrD);
				PtrD += 4;
				*PtrD++ = 0x0D;								//放結(jié)束符
				*PtrD++ = 0x00;
				*PtrD++ = 0x00;

				break;
			}//R

			case 'P':
			{
				PtrS = BuffCOM2 + 75;						//指向告警參數(shù)設(shè)置段
				PtrD = BuffDvcPara + 21;					//指向參數(shù)數(shù)據(jù)段
				for(i = 0; i < 2; i++)						//轉(zhuǎn)換交流高/低壓告警閾值,int型轉(zhuǎn)float型
				{
					AlarmParaChar[i*2] = *PtrS;		//拷貝告警參數(shù)段
					a_int.c[1] = *PtrS++;
					AlarmParaChar[i*2+1] = *PtrS;		//拷貝告警參數(shù)段
					a_int.c[0] = *PtrS++;
					a_float.f = (float)(a_int.i);
					Hex2Ascii(a_float.c[3],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[2],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[1],PtrD);
					PtrD += 2;
					Hex2Ascii(a_float.c[0],PtrD);
					PtrD += 2;
				}
				for(i = 0; i < 31; i++)						//其余告警參數(shù)設(shè)置段
 			    {
					Hex2Ascii(*PtrS,PtrD);
					AlarmParaChar[i+4] = *PtrS;		//拷貝告警參數(shù)段
					PtrS++;
					PtrD += 2;
				}
				SUM = 0;									//計(jì)算CHKSUM
				for(PtrD = BuffDvcPara + 1; PtrD < (BuffDvcPara + 99);PtrD++)	
				{
					SUM += *PtrD; 
				}
				SUM = SUM % 0xFFFF;  						//生成校驗(yàn)碼
				SUM = ~SUM + 1;
				Int2Ascii((uint)SUM, PtrD);
				PtrD += 4;
				*PtrD++ = 0x0D;								//放結(jié)束符
				*PtrD++ = 0x00;
				*PtrD++ = 0x00;

				PtrD = BuffDvcReal + 21;					//指向系統(tǒng)控制狀態(tài)
				PtrS = BuffCOM2 + 233;					
				Hex2Ascii((uchar)(((*PtrS)>>2)&0x01),PtrD);		//控制方式
				PtrD += 2;
				Hex2Ascii((uchar)(((*PtrS)>>1)&0x01),PtrD);		//充電方式
															//此處更改了實(shí)時(shí)數(shù)據(jù),重生成校驗(yàn)
				SUM = 0;									//計(jì)算CHKSUM
				for(PtrD = BuffDvcReal + 1; PtrD < (BuffDvcReal + 301);PtrD++)	
				{
					SUM += *PtrD; 
				}
				SUM = SUM % 0xFFFF;  						//生成校驗(yàn)碼
				SUM = ~SUM + 1;
				Int2Ascii((uint)SUM, PtrD);
				PtrD += 4;
				*PtrD++ = 0x0D;								//放結(jié)束符
				*PtrD++ = 0x00;
				*PtrD++ = 0x00;

				break;
			}

			case 'A':										//告警數(shù)據(jù)
			{
				PtrS = BuffCOM2 + 78;						//指向模塊數(shù)
				SMR_NUM = *PtrS;							//存模塊數(shù)
				PtrS = BuffCOM2 + 78 + SMR_NUM*3 + 1;		//指向告警段
				PtrD = BuffDvcReal + 25;					//指向?qū)崟r(shí)數(shù)據(jù)告警段 共70字節(jié)
				for(i = 0; i < 2; i++)						//轉(zhuǎn)換AC_ALARM
 			    {
					Hex2Ascii(*PtrS,PtrD);
					PtrS++;
					PtrD += 2;
				}

				for(i = 0; i < SMR_NUM*2+1; i++)			//存單體個(gè)數(shù)及單體告警
				{
					Hex2Ascii(*PtrS,PtrD);
					PtrS++;
					PtrD += 2;
				}

				for(i = 0; i < (15 - SMR_NUM); i++)			//單體數(shù)不足15,其余保留
 			    {
					*PtrD++ = 0x30;
					*PtrD++ = 0x30;
					*PtrD++ = 0x30;
					*PtrD++ = 0x30;
				}
				for(i = 0; i < 2; i++)						//轉(zhuǎn)換DC_ALARM
 			    {
					Hex2Ascii(*PtrS,PtrD);
					PtrS++;
					PtrD += 2;
				}

				SUM = 0;									//計(jì)算CHKSUM
				for(PtrD = BuffDvcReal + 1; PtrD < (BuffDvcReal + 301);PtrD++)	
				{
					SUM += *PtrD; 
				}
				SUM = SUM % 0xFFFF;  						//生成校驗(yàn)碼
				SUM = ~SUM + 1;
				Int2Ascii((uint)SUM, PtrD);
				PtrD += 4;
				*PtrD++ = 0x0D;								//放結(jié)束符
				*PtrD++ = 0x00;
				*PtrD++ = 0x00;
				break;
			}
		}
		FlagDataStored = 1;
		os_switch_task();		
	}
}

/********************************************/
/**              命令處理任務(wù)              **/
/********************************************/
void Task_Cmd(void) _task_ TASK_CMD
{
	uchar NODE;												//命令中的節(jié)點(diǎn)號(hào)
	uchar p;
	uint sum;
	uchar i;
	uchar xdata *data PtrD;
	union
	{
		uint i;
		uchar c[2];
	}a_int;
	union
	{
		float f;
		uchar c[4];
	}a_float;
	while(1)
	{
		os_wait(K_SIG,0,0);									//等待收到設(shè)置命令的信號(hào)
		PtrD = BuffCmdSet;									//每一次都拷貝命令字符,以免存于內(nèi)存中字符出錯(cuò)
		i = 0;
		p = 0;
		sum = 0;							
		while(i<16)										//要拷貝的字節(jié)數(shù)
		{
			*PtrD++ = ZXDUSET[i++];
		}
		if(Chk_Sum(BuffCOM1))								//對(duì)收到的命令作和校驗(yàn),以免命令有誤,導(dǎo)致錯(cuò)誤設(shè)置

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩中文字幕区一区有砖一区 | 日本不卡的三区四区五区| 91麻豆国产福利在线观看| 国产精品久久久久久久久图文区| 不卡av免费在线观看| 亚洲欧洲日产国产综合网| 色婷婷综合激情| 性久久久久久久| 日韩精品一区国产麻豆| 国产精品一区专区| 中文字幕一区二区三区色视频| 一本一本久久a久久精品综合麻豆| 亚洲综合在线第一页| 在线播放中文字幕一区| 国产在线不卡一区| 亚洲视频在线观看一区| 欧美日韩大陆在线| 国产美女在线精品| 亚洲美女视频一区| 日韩欧美亚洲国产另类| 国产成人精品aa毛片| 亚洲综合男人的天堂| 日韩欧美中文字幕一区| 高清在线不卡av| 亚洲va韩国va欧美va精品| 久久视频一区二区| 在线精品视频免费播放| 激情综合五月天| 洋洋成人永久网站入口| 精品国产伦一区二区三区观看方式| 高清成人在线观看| 午夜激情综合网| 久久精品人人做人人综合| 欧美影视一区二区三区| 国产一区二区三区四区在线观看| 一区二区三区波多野结衣在线观看| 日韩精品在线看片z| 国产亚洲综合av| 日本道在线观看一区二区| 精品一区二区三区久久| 一区二区在线看| 国产三级一区二区三区| 欧美精品丝袜久久久中文字幕| 成人小视频在线观看| 婷婷夜色潮精品综合在线| 国产精品激情偷乱一区二区∴| 欧美一区二区久久久| 91视视频在线直接观看在线看网页在线看 | 亚洲一卡二卡三卡四卡| 国产欧美日韩精品一区| 欧美一区二区在线不卡| 色八戒一区二区三区| 风流少妇一区二区| 蜜桃av噜噜一区| 亚洲第一成人在线| 亚洲精品视频观看| 国产精品成人午夜| 亚洲国产精品激情在线观看| 日韩精品专区在线影院重磅| 欧美美女黄视频| 在线看国产日韩| 97se亚洲国产综合自在线观| 国产黑丝在线一区二区三区| 蜜桃av一区二区在线观看| 亚洲成av人片| 亚洲一区二区在线观看视频| 亚洲欧美综合在线精品| 国产精品视频一区二区三区不卡| 久久精品无码一区二区三区| 精品人伦一区二区色婷婷| 91精品免费观看| 欧美日韩在线精品一区二区三区激情| 91一区二区在线| 精品国产一区二区精华| 制服.丝袜.亚洲.中文.综合 | 色狠狠桃花综合| 91蜜桃网址入口| 色综合夜色一区| 色综合久久88色综合天天6| 99久久精品99国产精品| 91麻豆自制传媒国产之光| 91亚洲男人天堂| 色综合中文综合网| 久久精品人人做人人爽人人| 久久―日本道色综合久久| 亚洲精品一线二线三线无人区| 日韩精品一区在线观看| 久久一区二区三区四区| 欧美国产欧美综合| 国产精品久久久久久久久搜平片| 中文字幕佐山爱一区二区免费| 亚洲蜜臀av乱码久久精品蜜桃| 一区二区免费在线| 日韩二区三区四区| 六月丁香综合在线视频| 国产成人在线看| 91网站最新网址| 欧美午夜精品久久久久久超碰| 777久久久精品| 久久婷婷国产综合国色天香| 国产精品国产三级国产aⅴ中文| 亚洲精品成人天堂一二三| 婷婷六月综合网| 国产精品综合一区二区三区| jlzzjlzz亚洲日本少妇| 欧美日韩亚洲综合一区| 日韩欧美国产一区二区三区 | 这里只有精品电影| www久久久久| 悠悠色在线精品| 免费在线观看成人| 成人夜色视频网站在线观看| 在线免费观看一区| 精品国产制服丝袜高跟| 亚洲视频每日更新| 麻豆专区一区二区三区四区五区| 成人夜色视频网站在线观看| 欧美日韩日日骚| 国产三级精品三级| 五月婷婷综合网| 成人精品高清在线| 91精品国产综合久久久蜜臀粉嫩 | 亚洲另类色综合网站| 免费成人在线网站| 99久久精品99国产精品| 欧美v国产在线一区二区三区| 亚洲视频在线观看一区| 九色|91porny| 欧美午夜不卡在线观看免费| 久久免费午夜影院| 天天综合天天综合色| gogo大胆日本视频一区| 欧美精品一区二区三区视频| 国产成人精品网址| 制服丝袜在线91| 一区二区三区四区乱视频| 国产高清成人在线| 日韩视频一区二区三区| 一区二区三区.www| aaa亚洲精品一二三区| www国产成人免费观看视频 深夜成人网| 亚洲女性喷水在线观看一区| 国产a区久久久| 精品国产人成亚洲区| 丝袜美腿亚洲综合| 色哟哟一区二区三区| 亚洲国产精品国自产拍av| 久久精品国产亚洲高清剧情介绍| 在线免费观看视频一区| **性色生活片久久毛片| 成人夜色视频网站在线观看| 久久久久久亚洲综合影院红桃| 日韩av电影免费观看高清完整版| 欧美亚洲禁片免费| 亚洲免费资源在线播放| 成人av免费观看| 日本一区二区不卡视频| 国产福利视频一区二区三区| 欧美mv日韩mv亚洲| 蜜臀av一区二区三区| 欧美三级日韩三级| 亚洲成人av电影在线| 欧美影院精品一区| 亚洲国产成人tv| 欧美日韩久久久一区| 亚洲国产一区在线观看| 欧美日韩色一区| 香港成人在线视频| 777亚洲妇女| 日韩电影一区二区三区四区| 777色狠狠一区二区三区| 日本不卡一区二区三区| 日韩亚洲欧美高清| 国内精品伊人久久久久av一坑| 精品国产免费视频| 国产福利91精品一区二区三区| 国产色产综合产在线视频| 成人免费观看视频| 中文字幕综合网| 91国产视频在线观看| 亚洲18女电影在线观看| 欧美一卡在线观看| 国产中文字幕精品| 国产精品系列在线| 91欧美一区二区| 不卡视频一二三四| 一区二区免费在线| 日韩一区二区中文字幕| 国产一区二三区好的| 国产精品国产三级国产有无不卡| 91一区二区在线| 天天影视涩香欲综合网| 久久综合色综合88| 成人成人成人在线视频| 亚洲一本大道在线| 久久众筹精品私拍模特| 91网站视频在线观看| 日韩成人一区二区三区在线观看| 久久午夜国产精品| 色综合久久久网|