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

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

?? main.c

?? 程序概述: 這是個具體產(chǎn)品程序
?? C
?? 第 1 頁 / 共 4 頁
字號:
// Copyright (c)2005 - 2006 by Laser Electronics, All Rights Reserved.
/*----------------------------------------------------------------------------+
|  File Name:  Main.c, v1.0.1                                                 |
|  Author:     								                                  |
|  Date:                                                                      |
+-----------------------------------------------------------------------------+
|  Description: 聯(lián)網(wǎng)型智能樓宇對講系統(tǒng) -- 管理中心機主程序文件                |
|               器件選擇 -- STC89C58RD+, PQFP-44                              |
|               時鐘頻率 -- 24.000 MHz                                        |
+-----------------------------------------------------------------------------+
|  Release Notes:                                                             |
|                                                                             |                                                                             |
+----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------+
| Include files                                                               |
+----------------------------------------------------------------------------*/
#include "Main.h"
#include "LCD.h"
#include "UART.h"
#include "Timer.h"
#include "KeyProcess.h"
#include "RouteTable.h"

/*----------------------------------------------------------------------------+
| Type Definition & Macro                                                     |
+----------------------------------------------------------------------------*/
// I2C存儲器的配置:使用24C512,64K字節(jié)空間, 0x0000 ~ 0xFFFF, 這里只用到16K字節(jié)
/*----------------------------------------------------------------------------+
| 0x0000(2字節(jié)): 系統(tǒng)標志
| 0x0002(1字節(jié)): 雙擊間隔時間
| 0x0003(1字節(jié)): 管理機輪檢門口機的時間間隔
| 0x0004(2字節(jié)): 小區(qū)的路由信息I2C起始地址
| 0x0006(2字節(jié)): 小區(qū)的路由信息長度
| 0x0008(2字節(jié)): 射頻卡信息起始地址
| 0x000A(2字節(jié)): 射頻卡信息長度
| 0x000C(2字節(jié)): 報警信息起始地址
| 0x000E(2字節(jié)): 報警信息長度
| 0x0010(2字節(jié)): 報警記錄第一條記錄的地址
| 0x0012(2字節(jié)): 報警記錄最后一條記錄的地址
| 0x0020 - 0x002F (16字節(jié)): 系統(tǒng)密碼+密碼長度
| 0x0030 - 0x003F (16字節(jié)): 管理機LOGO,在管理機空閑模式下LCD屏的第一行顯示的字符
| 0x0400 - 0x07FF (1K字節(jié)): 
| 0x0800 - 0x0FFF (2K字節(jié)): 存放小區(qū)的路由信息,每個單元占用8個字節(jié),所以可以存放256個單元的路由信息
| 0x1000 - 0x1FFF (4K字節(jié)): 存放卡號,每張卡號占用16個字節(jié),所以可以存放256張卡號
| 0x2000 - 0x3FFF (8K字節(jié)): 存放報警記錄,每條報警記錄占用16個字節(jié),所以可以存放512條報警記錄
+----------------------------------------------------------------------------*/
#define DEFAULT_ROUTE_INFO_START_ADDR	0x0800	// 從0x0800地址處開始
#define DEFAULT_ROUTE_INFO_LENGTH		0x0800	// 用2K字節(jié)來存放小區(qū)路由信息,每個單元需要8字節(jié),可以存放256個單元的路由信息
#define DEFAULT_RFCARDTAB_START_ADDR	0x1000	// 從0x1000地址處開始
#define DEFAULT_RFCARDTAB_LENGTH		0x1000	// 用4K字節(jié)來存放臨時射頻卡號,每張卡需16字節(jié),可以存放256張臨時卡
#define DEFAULT_ALARM_RECORD_START_ADDR	0x2000	// 從0x2000地址處開始
#define DEFAULT_ALARM_RECORD_LENGTH		0x2000	// 用8K字節(jié)來存放分機報警記錄,每條記錄需16字節(jié),可以存放512條報警記錄

/*----------------------------------------------------------------------------+
| Extern Variables                                                            |
+----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------+
| Global Variables                                                            |
+----------------------------------------------------------------------------*/

bit bHandleUp;							// 指示手柄是否提起,TRUE為提起狀態(tài),F(xiàn)ALSE為壓下狀態(tài)
bit LineIdle;							// 當前線路上是否有數(shù)據(jù),如果沒有才可以發(fā)數(shù)據(jù)
bit TxOK;								// 當前字節(jié)是否已經(jīng)發(fā)送完成

data t_SystemStatus SystemStatus;		// 當前選擇的命令,是監(jiān)視、查詢還是呼叫等等

data UINT RS485SendWaitTimer;			// RS485總線超時重發(fā)計數(shù)器,當這個數(shù)減計數(shù)到MAX_RS485_WAIT_TIMES的倍數(shù)的時候重發(fā),減到0的時候表示放棄這一次發(fā)送

data UINT MessageShowTimer;				// 消息顯示的時間長短計數(shù)器,當這個數(shù)減到0的時候清除顯示的消息并回到之前的狀態(tài)

data UINT BeepTimer;					// 蜂鳴器發(fā)聲定時器

idata BYTE WDT_Counter;					// 看門狗狗糧

idata UINT LineIdleWaitTime;			// 等待485總線空閑需要等待的時間, 根據(jù)地址而各不相同

idata UINT RingTimeCounter;				// 振鈴信號持續(xù)時間,超過這個時間就會停止振鈴

idata UINT AlarmTimeCounter;			// 報警持續(xù)時間,超過這個時間就會停止報警

idata UINT ViewTimeCounter;				// 監(jiān)視定時器,當這個計數(shù)器減計數(shù)到0的時候向門口機發(fā)送取消監(jiān)視請求的命令

xdata BYTE ConnectingAddr[4];			// 管理機正在監(jiān)視的門口機地址

xdata BYTE KeyBuffer[KEY_BUF_LENGTH+1];	// 按鍵緩沖

xdata BYTE CardBuffer[Card_BUF_LENGTH+1];	// 卡號緩沖

xdata t_RouteInfo RouteInfo;			// 路由信息緩沖區(qū)

idata BYTE DoubleKeyPressTimer;			// 設(shè)定雙擊按鍵的時間間隔,以10ms為單位
idata BYTE CheckDoorIntervalTimer;		// 設(shè)定管理機輪檢門口機的時間間隔

idata UINT RouteInfoStartAddr;			// 用于存放各個用戶的路由信息的表格在I2C存儲器中的起始地址
idata UINT RouteInfoLength;				// 用于存放各個用戶的路由信息的表格的長度

idata UINT RFCardTabStartAddr;			// 用于存放各個單元所有卡號對應(yīng)的I2C地址的表格的頭地址,即表格的地址
idata UINT RFCardTabLength;				// 用于存放各個單元所有卡號對應(yīng)的I2C地址的表格的長度的地址

idata UINT AlarmRecordStartAddr;		// 存放的報警記錄的首地址
idata UINT AlarmRecordLength;			// 存放的報警記錄的長度

xdata BYTE SystemPassword[MAX_SYSTEM_PASSWORD_LENGTH+1]; // 存放系統(tǒng)管理員密碼,第一個字節(jié)為密碼長度

xdata t_AlarmRecord AlarmRecord;		// 報警記錄緩沖區(qū)
idata t_AlarmRecord *pAlarmRecord;		// 指向報警記錄的指針

xdata t_RFCardUser RFCardUser;			// 定義記錄刷卡用戶的結(jié)構(gòu)體,包括卡號,用戶名
idata t_RFCardUser *p_RFCardUser;

xdata BYTE I2CBuffer[I2C_PAGE_SIZE] _at_ 0x0000;		// 讀寫I2C存儲器的內(nèi)存緩沖

xdata BYTE CheckDoorIntervalArray[MAX_DOOR_NUM] _at_ I2C_PAGE_SIZE;// 管理機輪檢各個門口機所用到的數(shù)據(jù)緩存,每一個門口機對應(yīng)一個字節(jié)
data  UINT DoorNumber;					// 在I2C存儲器中設(shè)置的單元的數(shù)量,根據(jù)這個數(shù)量管理機決定需要對多少個門口機進行輪檢

code UINT SystemPasswordAddress = 0x20;	// 用于存放系統(tǒng)管理員密碼的I2C地址,長度為16個字節(jié),用一頁來存放

code BYTE NullString[NULL_STRING_LENGTH] = {0x00};		// 常量空字符串

code BYTE Logo[DISP_BUF_LENGTH] = "    雷森電子    ";

/*----------------------------------------------------------------------------+
| Internal Variables                                                          |
+----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------+
| Type Definition & Macro                                                     |
+----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------+
| System Initialization Routines                                              |
+----------------------------------------------------------------------------*/
//
// 初始化定時器0, 定時1.1ms作為檢測線路是否沖突的時間界限
void InitTimer0(void)
{
	// initial timer0 interrupt
	TMOD &= 0xF0;                       // zero low nibble
	TMOD |= 0x01;                       // 設(shè)置 Timer 0 為16位計數(shù)器工作方式

	// Init Timer0 counter
	TH0 = LineIdleWaitTime >> 8;
	TL0 = LineIdleWaitTime & 0xFF;

	TF0 = 0;                            // clear timer 0 overflow flag
	ET0 = 1;                            // enable timer 0 interrupt
}

//
// 初始化定時器2, Auto Reload方式定時10ms作為系統(tǒng)心跳信號
void InitTimer2(void)
{
	// initial timer2
//  T2CON                           __    ___
//	TF2	 EXF2 RCLK TCLK EXEN2 TR2 C/T2 CP/RL2
//	 0	   0    0    0    0    0    0    0
//	T2CON  = 0x00;                      // Mode 0, 16Bit Auto-Reload Mode
	TR2 = 0;                            // Clear Interrupt Flag
	EXF2 = 0;                           // reset flag
	TCLK = 0; RCLK = 0;                 // disable baud rate generator
	EXEN2 = 0;                          // ignore events on T2EX
	C_T2 = 0;                           // timer mode
	CP_RL2 = 0;                         // reload mode

	T2MOD &= 0xFC;                      // T2OE(Timer 2 Output Enable bit)=0; DCEN(up/down counter)=0;

	// initial timer2 reload value (1.1ms) @ fosc=24MHz
	RCAP2H = TIMER2_H;                  // 自動裝載寄存器, 高8位
	RCAP2L = TIMER2_L;                  // 自動裝載寄存器, 低8位
	// Init timer2 counter
	TH2 = TIMER2_H;
	TL2 = TIMER2_L;

	ET2    = ENABLE;                    // enable timer2 interrupt
	TR2    = ENABLE;                    // timer2 run
}

// 初始化
void CopyDefaultSettings(void)
{

	EA = DISABLE;                       // 關(guān)閉總中斷

	AUXR = 0x01;                        // 禁止ALE信號輸出,提升系統(tǒng)的EMI性能,STC單片機專用

	// 修改中斷優(yōu)先級,讓Timer2中斷有最高優(yōu)先級,其次是INT0
	IP		= 0x00;
	XICON	= 0x00;                     ////////////////////////////////////////////////////

	PT2 	= 0;
	PT2H 	= 1;                        // 設(shè)置Timer2具有優(yōu)先級2

	IT2 	= 1;						//INT2邊沿觸發(fā)
	PX2H 	= 1;						
	PX2		= 1;						// 設(shè)置INT2具最高優(yōu)先級
	EX2		= 1;
	
	
	P_VIDEO = P_OFF;                    // 電源關(guān)閉
	P_AUDIO = P_OFF;                    // 電源關(guān)閉

	BeepTimer = 0;

	ViewTimeCounter = 0x0000;           // 監(jiān)視定時器,當這個計數(shù)器減計數(shù)到0的時候向門口機發(fā)送取消監(jiān)視請求的命令

	MessageShowTimer = 0x0000;

	RS485SendWaitTimer = 0x0000;        // RS485總線超時重發(fā)計數(shù)器,當這個數(shù)減計數(shù)到MAX_RS485_WAIT_TIMES的倍數(shù)的時候重發(fā),減到0的時候表示放棄這一次發(fā)送

	KeyBuffer[0] = 0x00;

	LineIdleWaitTime = 0xF6A0;          // (65536-1200*2), 如果有地址,則在后面減去與地址相關(guān)的數(shù)

	InitTimer0();
	InitTimer2();

	InitMessagePool();
}

/*----------------------------------------------------------------------------+
| Main Routine                                                                |
+----------------------------------------------------------------------------*/
void main(void)
{
	bit bTemp;
	UINT i;
	BYTE temp;
	MSG msg;
	GREEN_LED = P_OFF;                  // 綠色LED亮
	RED_LED = P_ON;                     // 紅色LED滅
	CopyDefaultSettings();              // 初始化系統(tǒng)變量

	RESET_WDT;
	Delayms(20);
	RESET_WDT;
	Delayms(20);
	RESET_WDT;
	Delayms(20);
	RESET_WDT;
	Delayms(20);
	RESET_WDT;
	InitLCD();
	Delayms(1);                         // LCD初始化之后要等待1ms才能正常顯示
	RESET_WDT;

	SystemStatus.PreStatus = Status_Idle;
	SystemStatus.Status = Status_Init;
	InitDispBuffer(TRUE);
	UpdateDisp(TRUE);

	InitKey();
	InitUART();                         // 初始化串口和模擬串口

	RESET_WDT;

//	i = 0x55AA;
//	I2CWriteString(0x00, 0x0000, (BYTE *)(&i), 2);  // 先寫高字節(jié),然后寫低字節(jié),說明高字節(jié)放在低地址處,低字節(jié)放在高地址處

	// 掃描按鍵并判斷'*'鍵的狀態(tài),如果是按下的狀態(tài),則進入設(shè)置模式
	KEY_ROW1 = 0;						// 掃描第1行(1  2  3  監(jiān)視)
	i <<= 4;
	i |= (P0 & 0x0F);					// 得到第1行按鍵的電平 "1, 2, 3, 13"
	KEY_ROW1 = 1;
	KEY_ROW2 = 0;						// 掃描第2行(4  5  6  呼叫)
	i <<= 4;
	i |= (P0 & 0x0F);					// 得到第2行按鍵的電平 "4, 5, 6, 14"
	KEY_ROW2 = 1;
	KEY_ROW3 = 0;						// 掃描第3行(7  8  9  開鎖)
	i <<= 4;
	i |= (P0 & 0x0F);					// 得到第3行按鍵的電平 "7, 8, 9, 15"
	KEY_ROW3 = 1;
	KEY_ROW4 = 0;						// 掃描第4行(*  0  #  查詢)
	i <<= 4;
	i |= (P0 & 0x0F);					// 得到第4行按鍵的電平 "11, 0, 12, 16"
	KEY_ROW4 = 1;
	if (i == 0xFFF7)					// 0000,0000,0000,1000,即所有按鍵中只有'*'鍵是按下的
	{
		memcpy(&DispBuffer[0][1], "系統(tǒng)正在初始化  ", DISP_BUF_LENGTH);
		memcpy(&DispBuffer[1][1], "請稍候!        ", DISP_BUF_LENGTH);
		UpdateDisp(TRUE);
		// 向I2C存儲器中寫入默認的配置
		// 清空前面2K字節(jié)空間
		for (i=0x0000; i<DEFAULT_ROUTE_INFO_START_ADDR; i+=NULL_STRING_LENGTH)
		{
			RESET_WDT;
			I2CWriteString(0x00, i, NullString, NULL_STRING_LENGTH);
		}						                                                             
		// 清空小區(qū)路由信息所占用的2K字節(jié)空間
		for (i=DEFAULT_ROUTE_INFO_START_ADDR; i<(DEFAULT_ROUTE_INFO_START_ADDR+DEFAULT_ROUTE_INFO_LENGTH); i+=NULL_STRING_LENGTH)
		{
			RESET_WDT;
			I2CWriteString(0x00, i, NullString, NULL_STRING_LENGTH);
		}						                                                             
		// 清空卡號所占用的4K字節(jié)空間
		for (i=DEFAULT_RFCARDTAB_START_ADDR; i<(DEFAULT_RFCARDTAB_START_ADDR+DEFAULT_RFCARDTAB_LENGTH); i+=NULL_STRING_LENGTH)
		{
			RESET_WDT;
			I2CWriteString(0x00, i, NullString, NULL_STRING_LENGTH);
		}						                                                             
		// 清空報警記錄所占用的8K字節(jié)空間
		for (i=DEFAULT_ALARM_RECORD_START_ADDR; i<(DEFAULT_ALARM_RECORD_START_ADDR+DEFAULT_ALARM_RECORD_LENGTH); i+=NULL_STRING_LENGTH)
		{
			RESET_WDT;
			I2CWriteString(0x00, i, NullString, NULL_STRING_LENGTH);
		}						                                                             

		// 寫入標志
		I2CWriteString(0x00, 0x0000, "\x55\xAA", 2);
		RESET_WDT;

		// 初始化系統(tǒng)變量
		RouteInfoStartAddr     = DEFAULT_ROUTE_INFO_START_ADDR;
		RouteInfoLength        = sizeof(RouteInfoTable);//小區(qū)路由長度
		RFCardTabStartAddr     = DEFAULT_RFCARDTAB_START_ADDR;
		RFCardTabLength        = DEFAULT_RFCARDTAB_LENGTH;
		AlarmRecordStartAddr   = DEFAULT_ALARM_RECORD_START_ADDR;
		AlarmRecordLength      = DEFAULT_ALARM_RECORD_LENGTH;

		DoubleKeyPressTimer    = 25;		// 設(shè)置按鍵雙擊間隔時間為25*10=250ms
		CheckDoorIntervalTimer = 0;			// 設(shè)置管理機輪檢門口機的時間間隔: 60*10=600秒

		I2CBuffer[0] = DoubleKeyPressTimer;
		I2CWriteString(0x00, 0x0002, I2CBuffer, 1); // 按鍵雙擊間隔時間
		RESET_WDT;

		I2CBuffer[0] = CheckDoorIntervalTimer;
		I2CWriteString(0x00, 0x0003, I2CBuffer, 1); // 管理機輪檢門口機時間間隔
		RESET_WDT;

		I2CBuffer[0] = RouteInfoStartAddr>>8;
		I2CBuffer[1] = RouteInfoStartAddr&0xFF;
		I2CWriteString(0x00, 0x0004, I2CBuffer, 2); // 小區(qū)的路由信息I2C起始地址
		RESET_WDT;
		I2CBuffer[0] = RouteInfoLength>>8;
		I2CBuffer[1] = RouteInfoLength&0xFF;
		I2CWriteString(0x00, 0x0006, I2CBuffer, 2); // 小區(qū)的路由信息長度
		RESET_WDT;

		I2CBuffer[0] = RFCardTabStartAddr>>8;
		I2CBuffer[1] = RFCardTabStartAddr&0xFF;
		I2CWriteString(0x00, 0x0008, I2CBuffer, 2); // 射頻卡信息起始地址
		RESET_WDT;
		I2CBuffer[0] = RFCardTabLength>>8;
		I2CBuffer[1] = RFCardTabLength&0xFF;
		I2CWriteString(0x00, 0x000A, I2CBuffer, 2); // 射頻卡信息長度
		RESET_WDT;

		I2CBuffer[0] = AlarmRecordStartAddr>>8;
		I2CBuffer[1] = AlarmRecordStartAddr&0xFF;
		I2CWriteString(0x00, 0x000C, I2CBuffer, 2); // 報警信息起始地址
		RESET_WDT;
		I2CBuffer[0] = AlarmRecordLength>>8;
		I2CBuffer[1] = AlarmRecordLength&0xFF;
		I2CWriteString(0x00, 0x000E, I2CBuffer, 2); // 報警信息長度
		RESET_WDT;

		// 初始化管理機LOGO
		I2CWriteString(0x00, 0x0030, Logo, 16);		// 管理機LOGO
		RESET_WDT;
		memcpy(MainLogo, Logo, DISP_BUF_LENGTH);

		// 初始化報警記錄存儲空間
		AlarmRecord.Index = 0x00;           // 報警記錄的長度
		AlarmRecord.PreRecord = AlarmRecordStartAddr;     // 報警記錄最后一條記錄的地址
		AlarmRecord.NextRecord = AlarmRecordStartAddr;    // 報警記錄第一條記錄的地址
		I2CWriteString(0x00, AlarmRecordStartAddr, (BYTE *)(&AlarmRecord), sizeof(t_AlarmRecord));
		RESET_WDT;

		// 寫入小區(qū)的路由信息	
		for (i=0; i<sizeof(RouteInfoTable); )
		{
			if ((sizeof(RouteInfoTable) - i) > I2C_PAGE_SIZE) // 一頁寫不完這些數(shù)據(jù),需要轉(zhuǎn)到下一頁
				temp = I2C_PAGE_SIZE;
			else
				temp = (sizeof(RouteInfoTable) - i);
					
			I2CWriteString(0x00, RouteInfoStartAddr+i, (BYTE *)(RouteInfoTable)+i, temp);//			
			RESET_WDT;
			i += temp;
		}
	}
	else
	{
		bTemp = FALSE;
		if (I2CReadString(0x00, 0x0000, I2CBuffer, 64)) // 第一次讀16各字節(jié),包括一些系統(tǒng)變量的值
		{
			if ((I2CBuffer[0] == 0x55) && (I2CBuffer[1] == 0xAA))
			{
				// 初始化系統(tǒng)變量

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区不卡精品| 日韩午夜精品电影| 日韩免费视频线观看| 中文字幕精品在线不卡| 日韩精品三区四区| 亚洲成av人片www| 三级久久三级久久久| 国产成人免费视频 | 久久久久久久性| 亚洲一区二区精品视频| 成熟亚洲日本毛茸茸凸凹| 在线观看91精品国产麻豆| 日韩美女啊v在线免费观看| 激情久久五月天| 91精品在线观看入口| 亚洲综合色视频| 99久精品国产| 国产精品美女久久久久久久久| 日韩av一二三| 国产精品全国免费观看高清| 精品一区精品二区高清| 欧亚一区二区三区| 亚洲精品欧美专区| 91小视频免费观看| 日韩久久一区二区| av福利精品导航| 国产精品美女一区二区三区 | 欧美日韩高清一区| 亚洲午夜精品在线| 91九色最新地址| 国产精品剧情在线亚洲| 精品一二三四区| 日韩一区二区在线观看视频 | 欧美va天堂va视频va在线| 日欧美一区二区| 欧美在线观看18| 亚洲国产日韩精品| 色狠狠色狠狠综合| 亚洲精品成人a在线观看| 色www精品视频在线观看| 亚洲男同1069视频| 欧美日韩小视频| 日韩一区精品视频| 日韩视频一区二区三区在线播放| 日本成人在线看| 欧美精品一区二区三区蜜桃| 国产一区二区三区| 国产精品免费观看视频| eeuss鲁片一区二区三区在线观看| 国产精品视频免费| 在线日韩国产精品| 日韩不卡一二三区| 国产亚洲一区二区三区| 99久久精品国产一区二区三区 | 欧美日韩久久不卡| 天天射综合影视| 欧美电影免费观看完整版| 久久精品国产99国产| 国产精品视频九色porn| 色中色一区二区| 蜜臀a∨国产成人精品| 国产欧美日韩在线看| av综合在线播放| 日韩二区三区四区| 欧美经典一区二区| 欧美日韩国产电影| 国产69精品久久99不卡| 亚洲综合小说图片| 欧美成人免费网站| 成人国产精品免费网站| 亚洲午夜视频在线| 久久精品人人做人人综合| 日本久久电影网| 国产麻豆精品在线| 亚洲成人动漫在线免费观看| 久久久精品国产免费观看同学| 色婷婷av一区| 国产高清精品久久久久| 丝袜诱惑制服诱惑色一区在线观看 | 欧美日韩亚洲不卡| 成人在线综合网站| 琪琪一区二区三区| 亚洲欧美综合网| 精品国产99国产精品| 在线日韩一区二区| 北条麻妃国产九九精品视频| 免费成人性网站| 亚洲第一久久影院| 亚洲欧洲av另类| 欧美韩国日本一区| 精品女同一区二区| 欧美日韩一本到| 91免费国产在线| 国产一区二区视频在线播放| 日韩综合一区二区| 亚洲欧美另类图片小说| 国产精品久久久一本精品| 久久综合狠狠综合久久综合88| 欧美精品黑人性xxxx| 91色porny| 国产综合色精品一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 一区二区三区中文字幕| 亚洲人午夜精品天堂一二香蕉| 久久久久久黄色| 欧美电影免费观看高清完整版| 制服丝袜av成人在线看| 在线亚洲+欧美+日本专区| 91蜜桃视频在线| 91蜜桃在线免费视频| 97精品超碰一区二区三区| 成人免费的视频| 粉嫩蜜臀av国产精品网站| 粉嫩一区二区三区性色av| 丁香桃色午夜亚洲一区二区三区| 国产乱子伦视频一区二区三区 | 在线观看日韩毛片| 91麻豆蜜桃一区二区三区| 99国产欧美久久久精品| av色综合久久天堂av综合| 99国产欧美另类久久久精品| 91在线视频免费观看| 色呦呦网站一区| 欧洲一区在线电影| 欧美人妇做爰xxxⅹ性高电影| 欧美日韩二区三区| 欧美大片在线观看| 国产日韩精品久久久| 国产精品久久久久久久蜜臀 | 精品美女在线播放| 久久综合狠狠综合久久综合88 | 国产在线视频一区二区| 国产精品影视在线| 波多野结衣视频一区| 色综合天天性综合| 91.com在线观看| 久久久久国产精品麻豆| 中文字幕中文字幕在线一区| 亚洲男人的天堂在线aⅴ视频 | 欧美日韩中文字幕一区| 欧美一区二区三区在线| 久久久精品人体av艺术| 中国色在线观看另类| 亚洲成人资源网| 国产精品一区二区三区网站| 99久久国产综合色|国产精品| 91成人国产精品| 欧美不卡一区二区三区| 中文字幕成人网| 调教+趴+乳夹+国产+精品| 国产一区二区精品久久91| 97精品国产露脸对白| 日韩一区二区在线观看视频播放| 国产精品久久久久久久久快鸭| 亚洲一区二区在线视频| 国产麻豆精品95视频| 在线观看亚洲精品| 欧美国产欧美综合| 首页国产欧美日韩丝袜| av一区二区不卡| 91精品国产一区二区三区蜜臀| 国产清纯美女被跳蛋高潮一区二区久久w | 午夜精品成人在线视频| 国产精品综合二区| 欧美日韩中文另类| 欧美韩国日本不卡| 日韩精品国产欧美| 91啪九色porn原创视频在线观看| 欧美成人国产一区二区| 亚洲精品日日夜夜| 成人av资源下载| 精品久久久久久综合日本欧美| 国产精品成人一区二区艾草| 久久精品国产成人一区二区三区| 欧美制服丝袜第一页| 国产欧美一区二区精品忘忧草| 蜜臀久久99精品久久久画质超高清 | 亚洲激情av在线| 国产成人免费在线视频| 日韩一级成人av| 首页国产欧美久久| 91成人免费在线视频| 亚洲丝袜美腿综合| 国产成人8x视频一区二区 | 99久免费精品视频在线观看| 精品国产一区久久| 午夜精品123| 91九色02白丝porn| 亚洲女人的天堂| 91在线精品一区二区三区| 国产精品午夜久久| 丁香啪啪综合成人亚洲小说| 久久中文字幕电影| 狠狠色狠狠色综合系列| 6080午夜不卡| 视频一区二区三区中文字幕| 欧美三级蜜桃2在线观看| 亚洲二区视频在线| 欧美性色综合网| 亚洲图片有声小说|