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

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

?? rc500.c

?? M64+MF RC500 程序從初始配置 -- 尋卡 -- 防沖突 -- 選卡 -- 密碼驗(yàn)證 -- 讀卡 --- 寫卡
?? C
字號(hào):
//ICC-AVR application builder : 2008-04-18 08:36:23
//Target : M64
//Crystal: 8.0000Mhz
#include <iom64v.h>
#include <macros.h>
#include "RC500.h"
#include "uart.h"

/*****************************變量定義*****************************************/
MfCmdInfo Info;

/*****************************延時(shí)程序*****************************************/
void Delay_1us(void)
{
    asm("nop");
}

void Delay_us(uint16 n)
{
    uint16 i;
	for(i=0; i<n; i++)Delay_1us();
}

void Delay_1ms(void)
{
    uint16 i;
	for(i=0; i<1142; i++);
}

void Delay_ms(uint16 n)
{
    uint16 i;
	for(i=0; i<n; i++)Delay_1ms();
}

/*********************************硬件驅(qū)動(dòng)程序*********************************/

void WriteIO(BYTE Address,BYTE value)
{
    WORD addr;
   
    addr = 0x2000 | Address;
    (*(volatile unsigned char *)0x2000) = (Address>>3) | 0x80; //選擇寄存器頁(yè)
    (*(volatile unsigned char *)addr) = value;		   	 	   //寫入一個(gè)字節(jié)
}

BYTE ReadIO(BYTE Address)
{
    WORD addr;
   
    addr = 0x2000 | Address;
    (*(volatile unsigned char *)0x2000) = (Address>>3) | 0x80; //選擇寄存器頁(yè)
    return (*(volatile unsigned char *)addr);    	   	 	   //讀取一個(gè)字節(jié)
}

/*****************************RC500功能程序************************************/
BYTE M500PcdReset(void)
{
    uint16 timecnt;
	
	CLR_RC500RST();
	Delay_ms(25);
	SET_RC500RST();
	Delay_ms(20);
	CLR_RC500RST();
	Delay_ms(10);
	
	timecnt=1000;
	while((ReadIO(RegCommand)&0x3F) & timecnt--);
	if(!timecnt)return 1;
	if(ReadIO(RegCommand)!=0x00)return 1;
	return 0;
}

//配置RC500內(nèi)部寄存器函數(shù)
BYTE M500PcdConfig(void)
{
    if (!M500PcdReset())
    {
        WriteIO(RegClockQControl,0x00); //Q時(shí)鐘復(fù)位
        WriteIO(RegClockQControl,0x40); //Q時(shí)鐘寫入0x40
        Delay_us(150);                  //延時(shí)100us以上
		WriteIO(RegClockQControl,0x00); //Q時(shí)鐘清零 
		WriteIO(RegBitPhase,0xAD);      //寫B(tài)itPhase寄存器 
        WriteIO(RegRxThreshold,0xFF);   //RxThreshold寄存器寫入0FFH 
        WriteIO(RegRxControl2,0x01); 	//RxControl2寄存器寫入01H 
        WriteIO(RegFIFOLevel,0x1A);  	//設(shè)置FIFO上溢和下溢的界限
        WriteIO(RegTimerControl,0x02);	//設(shè)置數(shù)據(jù)發(fā)送完成后停止定時(shí)器
        WriteIO(RegIRqPinConfig,0x03);  //配置IRQ管腳的輸出狀態(tài)
        M500PcdRfReset(1);				//打開(kāi)天線
		WriteIO(RegMfOutSelect,0x02);   //選擇輸出到管腳MFOUT的信號(hào)為來(lái)自內(nèi)部編碼的調(diào)制信號(hào)
		return 0;              
    }
    else 
	    return 1;
}

BYTE M500PcdRfReset(BYTE val)
{
    if(val)
    {
        ClearBitMask(RegTxControl,0x03); 
        Delay_ms(2);                
        SetBitMask(RegTxControl,0x03); 
    }
    else
    {
        ClearBitMask(RegTxControl,0x03);  
    }
    return 0;
}

//置一位
BYTE SetBitMask(BYTE reg,BYTE mask)  
{
    BYTE tmp = 0x00;

    tmp = ReadIO(reg);
    WriteIO(reg,tmp | mask);  // set bit mask
    return 0x00;
}

//清一位
BYTE ClearBitMask(BYTE reg,BYTE mask)  
{
    BYTE tmp = 0x00;

    tmp = ReadIO(reg);
    WriteIO(reg,tmp & ~mask);  // clear bit mask
    return 0x00;
}

//發(fā)送命令
BYTE  M500PcdCmd(void)
{
    BYTE i,n;
    BYTE lastBits;
    BYTE irqEn = 0x00;
    BYTE waitFor = 0x00;
	WORD timecnt = 0;

	switch(Info.cmd)
    {
        case PCD_IDLE:                  
             irqEn = 0x00;
             waitFor = 0x00;
             break;
        case PCD_WRITEE2:            
             irqEn = 0x11;
             waitFor = 0x10;
             break;
        case PCD_READE2:     
             irqEn = 0x07;
             waitFor = 0x04;
             break;
        case PCD_LOADCONFIG:  
        case PCD_LOADKEYE2:   
        case PCD_AUTHENT1:    
             irqEn = 0x05;
             waitFor = 0x04;
             break;
        case PCD_CALCCRC:
             irqEn = 0x11;
             waitFor = 0x10;
             break;
        case PCD_AUTHENT2: 
             irqEn = 0x04;
             waitFor = 0x04;
             break;
        case PCD_RECEIVE:     
             irqEn = 0x06;
             waitFor = 0x04;
             break;
        case PCD_LOADKEY: 
             irqEn = 0x05;
             waitFor = 0x04;
             break;
        case PCD_TRANSMIT: 
             irqEn = 0x05;
             waitFor = 0x04;
             break;
        case PCD_TRANSCEIVE: 
             irqEn = 0x3D;
             waitFor = 0x04;
             break;
        default: return 1;
    } 

	WriteIO(RegInterruptEn,0x7F); //清除中斷使能
    WriteIO(RegInterruptRq,0x7F); //清除中斷標(biāo)志
    WriteIO(RegCommand,PCD_IDLE); //清除Command寄存器
	SetBitMask(RegControl,0x01);  //清除FIFO指針

	for(i=0; i<Info.nBytesToSend; i++)
	   WriteIO(RegFIFOData,Info.SerBuffer[i]); //將數(shù)據(jù)寫入FIFO

    irqEn |= 0x20;                     
    waitFor |= 0x20;   
    WriteIO(RegInterruptEn,irqEn | 0x80);      //打開(kāi)中斷
	WriteIO(RegCommand,Info.cmd);              //將命令寫入命令寄存器 	
	timecnt=1000;
	while(!(ReadIO(RegInterruptRq) & waitFor || !(timecnt--)));
	WriteIO(RegInterruptEn,0x7F);      //清除中斷使能   
    WriteIO(RegInterruptRq,0x7F);      //清除中斷標(biāo)志寄存器   
    SetBitMask(RegControl,0x04);       //停止定時(shí)器     
    WriteIO(RegCommand,PCD_IDLE);      //清除命令寄存器
	
	if(!timecnt) 
	{ USART_String("timeout!\n");return 1; }                 //超時(shí)退出,返回1  
    if(ReadIO(RegErrorFlag)&0x17)
	{ USART_Hex(ReadIO(RegErrorFlag)&0x3F);USART_String("ERRor!\n");return 1; } //如果產(chǎn)生錯(cuò)誤則返回1  
	
	if(Info.cmd == PCD_TRANSCEIVE)  
	{
	     n = ReadIO(RegFIFOLength);                    //讀取FIFO中數(shù)據(jù)的總字節(jié)數(shù)
		 lastBits = ReadIO(RegSecondaryStatus) & 0x07; 
         Info.nBytesReceived = n;
		 
		 if(lastBits)
            Info.nBitsReceived = (n-1) * 8 + lastBits;
         else
            Info.nBitsReceived = n * 8;
		 if(n==0)n=1;
		 for(i=0; i<n; i++)
		    Info.SerBuffer[i]=ReadIO(RegFIFOData);
		
		 /*USART_Hex(n);
		 USART_Hex(lastBits);
		 for(i=0; i<n; i++)
		   USART_Hex(Info.SerBuffer[i]);*/
	} 
	return 0;             
}

//尋卡
BYTE M500PiccCommonRequest(void)
{
    WriteIO(RegTimerClock,0x09);        //設(shè)置定時(shí)器分頻
    WriteIO(RegTimerReload,0xA0);       //設(shè)置定時(shí)器初值
	ClearBitMask(RegControl,0x08);      //寄存器Control清0 
	WriteIO(RegBitFraming,0x07);     	//寄存器BitFramming寫入07H 		
	WriteIO(RegChannelRedundancy,0x03); //選擇RF信道上數(shù)據(jù)完整性檢測(cè)的類型和模式
    SetBitMask(RegTxControl,0x03);      //打開(kāi)天線
	//ResetInfo(Info);					
	
	Info.cmd = PCD_TRANSCEIVE;          //命令為發(fā)送命令
	Info.nBytesToSend = 1;              //發(fā)送字節(jié)長(zhǎng)度為1
	Info.nBytesReceived = 2;            //接收字節(jié)長(zhǎng)度為2
	Info.SerBuffer[0] = PICC_REQIDL;    //數(shù)據(jù)為尋卡命令
	
	if(M500PcdCmd())return 1;             //調(diào)用發(fā)送命令子函數(shù)
	if(Info.nBitsReceived != 16) return 1;//判斷接收到是不是16位,否則是錯(cuò)誤的
	if(Info.SerBuffer[0]==0x04) return 0; //如果第一個(gè)字節(jié)是0x04,則是One卡,尋卡成功
	else return 1;                        //否則返回錯(cuò)誤狀態(tài)
}

//防沖突
BYTE M500PiccCascAnticoll(void)
{
    BYTE i;
    BYTE snr_check=0;
    BYTE status=0;
	
    WriteIO(RegTimerClock,0x07);        //設(shè)置定時(shí)器分頻
    WriteIO(RegTimerReload,0X6A);       //設(shè)置定時(shí)器初值
    WriteIO(RegDecoderControl,0x28);    //防沖突處理
    ClearBitMask(RegControl,0x08);      //
    WriteIO(RegChannelRedundancy,0x03); //
    
	Info.cmd = PCD_TRANSCEIVE;          //命令為發(fā)送命令
	Info.nBytesToSend = 2;              //發(fā)送字節(jié)長(zhǎng)度為1
	Info.nBytesReceived = 5;            //接收字節(jié)長(zhǎng)度為2
	Info.SerBuffer[0] = PICC_ANTICOLL1; //數(shù)據(jù)0為防沖突命令
	Info.SerBuffer[1] = 0x20;        

	if(M500PcdCmd())status = 1;
    else 
	{
        for(i=0;i<4;i++)
            snr_check^=Info.SerBuffer[i]; //生成校驗(yàn)數(shù)據(jù)
        if(snr_check!=Info.SerBuffer[i])  //對(duì)比校驗(yàn)數(shù)據(jù)是否正確
            status = 1;
        else
        {
            for(i=0;i<5;i++)
                Info.CardNumber[i] = Info.SerBuffer[i]; //將卡號(hào)和CRC裝到卡號(hào)緩存
        }
    }
    ClearBitMask(RegDecoderControl,0x20); //結(jié)束防沖突處理
    return status;
}

//選卡
BYTE M500PiccCascSelect(void)
{
    BYTE i;
	
	WriteIO(RegTimerClock,0x07);        //設(shè)置定時(shí)器分頻
    WriteIO(RegTimerReload,0X6A);       //設(shè)置定時(shí)器初值 
    WriteIO(RegChannelRedundancy,0x0F); //
    ClearBitMask(RegControl,0x08); 		//
	
	Info.cmd = PCD_TRANSCEIVE;          //命令為發(fā)送命令
	Info.nBytesToSend = 7;              //發(fā)送字節(jié)長(zhǎng)度為1
	Info.nBytesReceived = 1;            //接收字節(jié)長(zhǎng)度為2
	Info.SerBuffer[0] = PICC_ANTICOLL1; //數(shù)據(jù)0為選卡命令
	Info.SerBuffer[1] = 0x70; 
	for(i=0; i<5; i++)
	     Info.SerBuffer[i+2] = Info.CardNumber[i];
	
	if(M500PcdCmd())return 1;
	if(Info.SerBuffer[0] != 0x08)return 1;
    return 0;
}

//直接驗(yàn)證密碼
BYTE M500PiccAuthKey(BYTE *KEY,BYTE Sector,BYTE Block)
{
    Info.cmd = PCD_LOADKEY;             //命令為發(fā)送命令
	Info.nBytesToSend = 0x0C;           //發(fā)送字節(jié)長(zhǎng)度為1
	Info.nBytesReceived = 0;            //接收字節(jié)長(zhǎng)度為2
    M500HostCodeKey(KEY,Info.SerBuffer);//將密碼轉(zhuǎn)換成固定格式
	if(M500PcdCmd())return 1;           //調(diào)用發(fā)送命令子函數(shù)
	if(M500PiccAuthState(Sector*4+Block))
	   return 1;//Crytol卡驗(yàn)證子程序  
	return 0;          
}

//密碼格式轉(zhuǎn)換
void M500HostCodeKey(BYTE *uncoded,BYTE *coded)   
{
    BYTE cnt = 0;
    BYTE ln  = 0;     
    BYTE hn  = 0;   
	   
    for (cnt=0; cnt<6; cnt++)
    {
        ln = uncoded[cnt] & 0x0F;
        hn = uncoded[cnt] >> 4;
        coded[cnt * 2 + 1] = (~ln << 4) | ln;
        coded[cnt * 2 ] = (~hn << 4) | hn;
    }
}

//Crystol卡驗(yàn)證
BYTE  M500PiccAuthState(BYTE Block)
{
	BYTE i;
	
	Info.cmd = PCD_AUTHENT1;            //命令為發(fā)送命令
	Info.nBytesToSend = 0x06;           //發(fā)送字節(jié)長(zhǎng)度為1
	Info.nBytesReceived = 0;            //接收字節(jié)長(zhǎng)度為2 
	Info.SerBuffer[0] = PICC_AUTHENT1A; //Authen1命令
	Info.SerBuffer[1] = Block; 			//塊號(hào)
	for(i=0; i<4; i++)					//卡號(hào)
	    Info.SerBuffer[i+2] = Info.CardNumber[i];

    if(M500PcdCmd())return 1;           //調(diào)用發(fā)送命令子函數(shù)
	if(ReadIO(RegSecondaryStatus)&0x07)return 1;
	
	Info.cmd = PCD_AUTHENT2;            //Authen2命令
	Info.nBytesToSend = 0; 				//發(fā)送數(shù)據(jù)為0字節(jié)
	Info.nBytesReceived = 0; 			//接收數(shù)據(jù)為0字節(jié)
	
	if(M500PcdCmd())return 1;            //調(diào)用發(fā)送命令子函數(shù)
	if(ReadIO(RegControl)==0x08)return 0;//值是否為0x08
	else return 1;
}

//讀數(shù)據(jù)
BYTE M500PiccRead(BYTE Sector,BYTE Block)
{
    BYTE tmp = 0;

	WriteIO(RegTimerClock,0x09);        //設(shè)置定時(shí)器分頻
    WriteIO(RegTimerReload,0xA0);       //設(shè)置定時(shí)器初值
    WriteIO(RegChannelRedundancy,0x0F);
    ResetInfo(Info);   
	
    Info.cmd = PCD_TRANSCEIVE;
	Info.SerBuffer[0] = PICC_READ;   
    Info.SerBuffer[1] = Sector*4+Block;
    Info.nBytesToSend   = 2;   
	Info.nBytesReceived = 0x10;            //接收字節(jié)長(zhǎng)度為
	
    if(M500PcdCmd())return 1;           //調(diào)用發(fā)送命令子函數(shù) 
	if(Info.nBytesReceived != 16) return 1; 
	for(tmp=0;tmp<0x10;tmp++)
	  USART_Hex(Info.SerBuffer[tmp]);  
	return 0;
}

//寫數(shù)據(jù)
BYTE M500PiccWrite(BYTE Sector,BYTE Block)
{
	Info.cmd = PCD_TRANSCEIVE;
	Info.SerBuffer[0] = PICC_WRITE;   
    Info.SerBuffer[1] = Sector*4+Block;
    Info.nBytesToSend   = 2;   
	Info.nBytesReceived = 0;            //接收字節(jié)長(zhǎng)度為
	
	if(M500PcdCmd())return 1;           //調(diào)用發(fā)送命令子函數(shù) 

	WriteIO(RegTimerClock,0x09);        //設(shè)置定時(shí)器分頻
    WriteIO(RegTimerReload,0xA0);       //設(shè)置定時(shí)器初值
    WriteIO(RegChannelRedundancy,0x0F);
	
	Info.cmd = PCD_TRANSCEIVE;
    Info.nBytesToSend   = 0x10;   
	Info.nBytesReceived = 0;            //接收字節(jié)長(zhǎng)度為
	
	if(M500PcdCmd())return 1;           //調(diào)用發(fā)送命令子函數(shù) 
	if(Info.SerBuffer[0]==0x0A)return 0;
	return 1;
}

/*
//裝載密碼到EEPORM
BYTE M500PcdLoadKeyE2(WORD StartAddr)
{
    BYTE key[6];
	
	Info.cmd = PCD_LOADKEYE2;          //命令為發(fā)送命令
	Info.nBytesToSend = 2;              //發(fā)送字節(jié)長(zhǎng)度為1
	Info.SerBuffer[0] = StartAddr & 0x0FF; //數(shù)據(jù)0為防沖突命令
	Info.SerBuffer[1] = StartAddr >> 8; 
	M500HostCodeKey(key,&Info.SerBuffer[2]);
	if(M500PcdCmd())return 1;
	return 0; 
}

//終止卡操作
BYTE M500PiccHalt(void)
{
    ResetInfo(Info);   
    Info.SerBuffer[0] = PICC_HALT ;      // Halt command code
    Info.SerBuffer[1] = 0x00;            // dummy address
    Info.nBytesToSend = 2;
    if(M500PcdCmd()) return 0;
    WriteIO(RegCommand,PCD_IDLE);
    return 1; 
}
*/
/******************************************************************************/

void Device_Init(void)
{
	MCUCR |= (1<<SRE); //使能總線
    XMCRA = 0x00; 
    XMCRB = 0x00;   
	DDR_RC500RST();
	DDR_RC500IRQ(); 
	//LED
	DDRB |= (1<<3);
	PORTB &= ~(1<<3);
	//A0,A1,A2
	DDRE |= (1<<3) | (1<<4) | (1<<5);
	PORTE |= (1<<3) | (1<<4) & ~(1<<5);
	/*EICRA = 0x20; //下降沿觸發(fā)
 	EICRB = 0x00; 
 	EIMSK = 0x04; //外部中斷2
	SEI();*/
}

void main(void)
{
    BYTE KEY[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
	
	Device_Init();
	USART_Init();
	USART_String("Start to test RC500!\n");
    
	//初始化并配置寄存器
	if(M500PcdConfig())USART_String("Test error!\n");
	else USART_String("Test OK!\n");
	
	//尋卡
	if(!M500PiccCommonRequest())USART_String("Card has found!\n");
	else USART_String("Card has not found!\n");
	
	//防沖突
	if(!M500PiccCascAnticoll())USART_String("CascAnticoll success!\n");
	else USART_String("CascAnticoll failure!\n");
	
	//選卡
	if(!M500PiccCascSelect())USART_String("Card Select success!\n");
	else USART_String("Card Select failure!\n");
	
	//直接驗(yàn)證密碼
	if(!M500PiccAuthKey(KEY,1,1))USART_String("Password validate success!\n");
	else USART_String("Password validate failure!\n");
	
	//讀數(shù)據(jù)
	M500PiccRead(1,1);
	
	//寫數(shù)據(jù)
	if(!M500PiccWrite(1,1))USART_String("Write success!\n");
	else USART_String("Write Failure!\n");
	while(1);
}

/*
#pragma interrupt_handler int2_isr:iv_INT2
void int2_isr(void)
{
    BYTE i,temp;
	BYTE irqMask;
	BYTE irqBits;
	
	irqMask = ReadIO(RegInterruptEn);
    irqBits = ReadIO(RegInterruptRq) & irqMask;
    Info.irqSource |= irqBits; 
	USART_Hex(temp = ReadIO(RegInterruptRq));
	if(temp&0x01)
	{
	    for(i=0; i<Info.nBytesToSend; i++)
	       WriteIO(RegFIFOData,Info.SerBuffer[i]); //將數(shù)據(jù)寫入FIFO
	    WriteIO(RegInterruptRq,0x01);  
	}
}
*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99免费精品在线观看| 国产福利91精品一区| 懂色av一区二区夜夜嗨| 欧美无砖专区一中文字| 欧美韩国日本不卡| 麻豆91精品91久久久的内涵| 色婷婷精品大在线视频| 久久精品人人做| 热久久久久久久| 欧美色综合天天久久综合精品| 国产亚洲精品7777| 久久av资源站| 欧美精品一级二级三级| 亚洲免费在线视频一区 二区| 韩国av一区二区| 欧美一区二区三区喷汁尤物| 香蕉乱码成人久久天堂爱免费| 成人av电影免费观看| 久久精品网站免费观看| 久久精品999| 欧美一区二区三区的| 香蕉久久一区二区不卡无毒影院 | 国产露脸91国语对白| 51精品秘密在线观看| 亚洲电影第三页| 色综合 综合色| 综合久久久久久久| 波多野结衣视频一区| 国产精品污www在线观看| 国产呦精品一区二区三区网站| 日韩欧美中文字幕一区| 免费在线看成人av| 日韩一级黄色大片| 日本不卡一区二区三区高清视频| 欧美日韩三级在线| 午夜精品久久久久久久蜜桃app | 久久精品国产亚洲高清剧情介绍| 欧美久久久一区| 午夜久久久久久| 337p亚洲精品色噜噜狠狠| 午夜精品久久久久影视| 在线综合亚洲欧美在线视频| 午夜伦理一区二区| 欧美一级一区二区| 久久精品久久精品| 久久久午夜电影| 盗摄精品av一区二区三区| 国产精品福利av| 91在线你懂得| 亚洲成人av福利| 制服丝袜国产精品| 久久精品av麻豆的观看方式| 久久夜色精品国产噜噜av| 国产精品一卡二卡| **网站欧美大片在线观看| 91成人国产精品| 午夜精品影院在线观看| 日韩欧美国产一区二区在线播放 | 激情综合色综合久久| 亚洲精品一区在线观看| 国产不卡免费视频| 亚洲色图色小说| 欧美日韩国产高清一区| 理论片日本一区| 精品国一区二区三区| 国产成人精品影院| 一区二区三区精品| 91精品综合久久久久久| 激情图片小说一区| 中文字幕一区二区三区视频 | 3atv一区二区三区| 国产又黄又大久久| 亚洲欧美国产毛片在线| 色噜噜狠狠成人网p站| 天天射综合影视| 久久久久国产精品麻豆ai换脸 | 色婷婷综合久久久| 三级不卡在线观看| 久久久久88色偷偷免费| 91视视频在线观看入口直接观看www | 老司机午夜精品99久久| 中文字幕av不卡| 欧美日韩一区三区| 国产真实乱对白精彩久久| 中文字幕欧美一| 717成人午夜免费福利电影| 狠狠色丁香久久婷婷综合丁香| 国产精品少妇自拍| 91精品婷婷国产综合久久竹菊| 国产综合久久久久久久久久久久| 亚洲日本乱码在线观看| 欧美一区二区视频免费观看| 国产成人8x视频一区二区| 亚洲永久免费av| 久久久久久久电影| 欧美午夜片在线看| 国产一区不卡精品| 夜夜嗨av一区二区三区四季av| 日韩免费性生活视频播放| 99精品欧美一区二区蜜桃免费 | 国产精品乱人伦一区二区| 91麻豆精品国产自产在线 | 日韩黄色小视频| 中文字幕在线观看不卡| 欧美一区二区三区在线观看| 99精品视频免费在线观看| 精品在线观看视频| 一区av在线播放| 国产女主播视频一区二区| 91精品一区二区三区久久久久久 | 色综合一区二区三区| 久久精品国产亚洲aⅴ| 亚洲宅男天堂在线观看无病毒| 久久久不卡网国产精品二区| 3d成人h动漫网站入口| 91丝袜美腿高跟国产极品老师 | 国产白丝网站精品污在线入口| 日日骚欧美日韩| ...av二区三区久久精品| 精品99999| 69堂亚洲精品首页| 欧美自拍丝袜亚洲| 成人丝袜视频网| 狠狠色丁香久久婷婷综| 亚洲国产欧美日韩另类综合| 日韩一区在线免费观看| 久久久国产精品麻豆| 日韩欧美卡一卡二| 欧美麻豆精品久久久久久| 色综合色综合色综合色综合色综合 | 五月天婷婷综合| 亚洲欧美一区二区三区国产精品 | 制服丝袜亚洲播放| 欧美亚洲另类激情小说| 99国产精品久久久| 东方aⅴ免费观看久久av| 韩国午夜理伦三级不卡影院| 午夜婷婷国产麻豆精品| 亚洲一级二级在线| 亚洲欧美福利一区二区| 国产精品久久久一区麻豆最新章节| 久久综合九色综合欧美就去吻| 69堂成人精品免费视频| 欧美日韩免费不卡视频一区二区三区| av午夜一区麻豆| 97精品久久久久中文字幕| 成人免费不卡视频| 成人免费高清在线| 成人av在线资源网站| 成人av综合一区| 99精品黄色片免费大全| 91影院在线观看| 色欧美片视频在线观看| 91在线精品一区二区三区| 色综合久久久久久久| 91麻豆国产福利在线观看| 一本一道久久a久久精品| 不卡电影免费在线播放一区| 成人综合在线观看| zzijzzij亚洲日本少妇熟睡| 成人av在线网| 972aa.com艺术欧美| av电影一区二区| 色综合久久久久久久| 欧美在线免费观看亚洲| 欧美日韩精品一二三区| 91精品国产综合久久久蜜臀粉嫩 | 欧美一区二区国产| 日韩午夜在线观看| 精品国产乱码久久久久久老虎| 亚洲精品一区二区三区影院| 久久亚区不卡日本| 久久久不卡影院| 国产精品国产馆在线真实露脸| 国产精品久久久久久亚洲毛片| 中文字幕一区视频| 亚洲愉拍自拍另类高清精品| 视频一区视频二区在线观看| 日韩不卡免费视频| 国内精品写真在线观看| 成人性视频网站| 色婷婷一区二区| 欧美精品色一区二区三区| 欧美一区二区三区啪啪| 久久精品夜夜夜夜久久| 综合久久久久久| 亚洲高清免费观看 | 亚洲一二三区视频在线观看| 亚洲超碰精品一区二区| 久久国产精品第一页| 国产·精品毛片| 色综合网站在线| 欧美二区在线观看| 久久久国产午夜精品| 亚洲激情在线激情| 久久精品国产澳门| 99久久免费精品高清特色大片| 在线成人av网站| 国产欧美一区二区三区在线老狼| 亚洲精品高清视频在线观看|