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

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

?? alarm.c

?? 多功能MP3代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "COMM.H"	 
//鬧鐘部分代碼,包括所有的腦中操作函數 					    
//正點原子@SCUT
//V1.1

//全局變量區域	
//鬧鐘結構體						   
typedef struct  
{																				   
	u8  Status;	//狀態寄存器 bit3,ON/OFF;bit2 RING/FM;bit 1,0 ONCE/EVERY DAY/SELF DEFINE
	u8  WeekMark;//自定義標志  
	u8  Ring;	//鬧鈴聲編號
	u8  hour;
	u8  min;
	u8  Ring_Name[9];
	u32	Ring_Addr;		 
}AlarmStruct;			 
AlarmStruct Alarm[8];	//鬧鐘暫存
AlarmStruct Alarm_Temp;	//零時寄存區  
  
u8  AlarmInLine=0;//在鬧鐘寄存器中的鬧鈴編號 0~7  	 
u8 *Alarm_F1[8];//時間數據緩存區   XX:XX +'\0' 用于數據顯示	    
//存儲鈴聲
//存儲地址區間:300~411 總共112個字節
//type :鈴聲類型 0,MP3,1,FM
//Rnum :鈴聲編號 0~7
//RingN:鈴聲名字短文件名 對MP3
//RAddr:鈴聲地址/FM頻率 	 
void Save_Ring(u8 type,u8 RNum,u8 *RingN,u32 RAddr)
{
	u8 i;
	if(type)//FM收音機	保存 103.6 (1036)之類的數據,占兩個字節
	{	
		FM24C16_WriteLenByte(396+RNum*2,RAddr,2);//寫入兩個字節		  
	}else
	{
		for(i=0;i<8;i++)FM24C16_WriteOneByte(300+RNum*12+i,RingN[i]);//把歌曲名字保存
		FM24C16_WriteLenByte(300+RNum*12+8,RAddr,4);//寫入四個字節	   
	}										   		 
}
//讀取鈴聲
//地址區間:300~411 總共112個字節
//type :鈴聲類型
//Rnum :鈴聲編號
//RingN:鈴聲名字短文件名 對MP3
//RAddr:鈴聲地址/FM頻率 
void Read_Ring(u8 type,u8 RNum,u8 *RingN,u32 *RAddr)
{
	u8 i;		 
	if(type)//FM收音機	讀取 103.6 (1036)之類的數據,占兩個字節
	{									    
		*RAddr=FM24C16_ReadLenByte(396+RNum*2,2);   
	}else for(i=0;i<8;i++)
	{	 
		for(i=0;i<8;i++)*RingN++=FM24C16_ReadOneByte(300+RNum*12+i);
		*RingN='\0';//添加結束符
	    *RAddr=FM24C16_ReadLenByte(300+RNum*12+8,4); 
	}
}	  
//存儲鬧鐘數據
//存儲地址區間:260~299 總共40個字節
//alx:要保存的編號 0~7,>=8,全部保存
void Save_Alarm(u8 alx)
{
	u8 i;
	if(alx<8)
	{
		FM24C16_WriteOneByte(260+alx*5,Alarm[alx].Status);
		FM24C16_WriteOneByte(261+alx*5,Alarm[alx].WeekMark);
		FM24C16_WriteOneByte(262+alx*5,Alarm[alx].Ring);
		FM24C16_WriteOneByte(263+alx*5,Alarm[alx].hour);
		FM24C16_WriteOneByte(264+alx*5,Alarm[alx].min);
		Save_Ring(Alarm[alx].Status&0x04,Alarm[alx].Ring,Alarm[alx].Ring_Name,Alarm[alx].Ring_Addr);  //保存MP3信息到相應的地址
	}else for(i=0;i<8;i++)
	{
		FM24C16_WriteOneByte(260+i*5,Alarm[i].Status);
		FM24C16_WriteOneByte(261+i*5,Alarm[i].WeekMark);
		FM24C16_WriteOneByte(262+i*5,Alarm[i].Ring);
		FM24C16_WriteOneByte(263+i*5,Alarm[i].hour);
		FM24C16_WriteOneByte(264+i*5,Alarm[i].min);
		Save_Ring(Alarm[alx].Status&0x04,Alarm[alx].Ring,Alarm[alx].Ring_Name,Alarm[alx].Ring_Addr);  //保存MP3信息到相應的地址
	}
}

//讀取鬧鐘數據
//存儲地址區間:260~299 總共40個字節
//alx:要讀取的編號 0~7,>=8,全部讀取
void Read_Alarm(u8 alx)
{
	u8 i;
	if(alx<8)
	{
		Alarm[alx].Status=FM24C16_ReadOneByte(260+alx*5);
		Alarm[alx].WeekMark=FM24C16_ReadOneByte(261+alx*5);
		Alarm[alx].Ring=FM24C16_ReadOneByte(262+alx*5);
		Alarm[alx].hour=FM24C16_ReadOneByte(263+alx*5);
		Alarm[alx].min=FM24C16_ReadOneByte(264+alx*5);
		Read_Ring(Alarm[alx].Status&0x04,Alarm[alx].Ring,Alarm[alx].Ring_Name,&Alarm[alx].Ring_Addr);//讀取鬧鐘鈴聲信息	  
	}else for(i=0;i<8;i++)
	{	 
		Alarm[i].Status=FM24C16_ReadOneByte(260+i*5);
		Alarm[i].WeekMark=FM24C16_ReadOneByte(261+i*5);
		Alarm[i].Ring=FM24C16_ReadOneByte(262+i*5);
		Alarm[i].hour=FM24C16_ReadOneByte(263+i*5);
		Alarm[i].min=FM24C16_ReadOneByte(264+i*5);
		Read_Ring(Alarm[i].Status&0x04,Alarm[i].Ring,Alarm[i].Ring_Name,&Alarm[i].Ring_Addr);//讀取鬧鐘鈴聲信息	   
	}
}
//初始化鬧鐘寄存器
//把鬧鐘0~7中的鬧鐘值取一個與當前時間最接近的放在鬧鐘寄存器里面
void Init_Alarm_Reg(void)
{
	u8 i;
	u8 temp;
	u32 curtime=0;
	u32 temptime=0;
	u32 destime=0XFFFFFFFF;//設定到最大
	u8 weekx;
	u8 weektemp;
	u8 t;

	rtc_get();//得到時間 
	GetWeek(timer.w_year,timer.w_month,timer.w_date,&weekx);//得到星期 0~6 代表周末到周六	    
		
	weekx=8-weekx;//與weekmark標志匹配
	if(weekx==8)weekx=1;//周末處理

	curtime=RTC->CNTH;//得到計數器中的值(秒鐘數)
	curtime<<=16;
	curtime+=RTC->CNTL;
						 
	//取一個與當前時間最接近的值作為鬧鐘寄存器的內容
	for(i=0;i<8;i++)
	{
		temptime=curtime/86400;	//得到當前運行天數
		temptime=temptime*86400;
		temptime+=(u32)Alarm[i].hour*3600+(u32)Alarm[i].min*60;//得到秒鐘數
		temp=Alarm[i].Status;
		if(temp&0x08)//鬧鐘開啟了
		{
			temp&=0x03;
			switch(temp)
			{
				case 0://鬧鈴一次
				case 1:
					if(temptime<=curtime)temptime+=86400;//執行時間已過,推遲到明天
					if(temptime<destime)
					{
						destime=temptime;//更改鬧鐘寄存器 
						AlarmInLine=i;//記錄保存在鬧鐘寄存器中的鬧鐘編號
					}
					break;  
				case 2://自定義鬧鐘
					temp=Alarm[i].WeekMark;//周標記	  
					if((temp&(1<<weekx))&&(temptime>curtime))//有標記當前的星期,且時間沒有超過
					{									 													   
						if(temptime<destime)
						{
							destime=temptime;//更改鬧鐘寄存器 
							AlarmInLine=i;//記錄保存在鬧鐘寄存器中的鬧鐘編號
						}
					}else
					{	  	
						weektemp=weekx;					  	
						t=0;
						while(1)
						{
							weektemp--;
							if(weektemp<1)weektemp=7;   
							t++;
							if(temp&(1<<weektemp))//有標記了
							{
								temptime+=(u32)t*86400;//更改鬧鐘寄存器,推后了t天
								if(temptime<destime)
								{
									destime=temptime;
									AlarmInLine=i;//記錄保存在鬧鐘寄存器中的鬧鐘編號
								}
								break; 	
							}
							if(weektemp==weekx)break;//經過了一個循環
						}	
					}
					break;	 			
			}
		}   
	}
	//讀取鬧鐘鈴聲信息										  																						  
	Read_Ring(Alarm[AlarmInLine].Status&0x04,Alarm[AlarmInLine].Ring,Alarm[AlarmInLine].Ring_Name,&Alarm[AlarmInLine].Ring_Addr);   
	//設置鬧鐘寄存器
    RCC->APB1ENR|=1<<28;//使能電源時鐘
    RCC->APB1ENR|=1<<27;//使能備份時鐘
	PWR->CR|=1<<8;    //取消備份區寫保護
	//上面三步是必須的!
	RTC->CRL|=1<<4;   //允許配置 
	RTC->ALRL=destime&0xffff;
	RTC->ALRH=destime>>16;
	RTC->CRL&=~(1<<4);//配置更新
	while(!(RTC->CRL&(1<<5)));//等待RTC寄存器操作完成    
}
//顯示FM頻道信息
u16 Ring_Fm_Show(u8 rch)
{
	u16 freqdiv;
	BACK_COLOR=WHITE;
	POINT_COLOR=BLACK;						 

	TFT_ShowNum(136,114,rch,2,16,0x00);  //顯示頻道值	   	 		   
	freqdiv=FM24C16_ReadLenByte(60+rch*2,2);  			   
	if(freqdiv>=10000)TFT_ShowChar(98,146,freqdiv/10000+'0',16,0x00);//在指定位置顯示一個字符
	else TFT_ShowChar(98,146,' ',16,0x00);//在指定位置顯示一個字符	 
	TFT_ShowChar(104,146,(freqdiv/1000)%10+'0',16,0x00);//在指定位置顯示一個字符
	TFT_ShowChar(112,146,(freqdiv/100)%10+'0',16,0x00);//在指定位置顯示一個字符
	TFT_ShowChar(120,146,'.',16,0x00);//在指定位置顯示一個字符
	TFT_ShowChar(128,146,(freqdiv/10)%10+'0',16,0x00);//在指定位置顯示一個字符
	return freqdiv;//返回頻率值
}
//設置鬧鈴/FM頻率
void Set_Alarm_Ring(void)
{			   
	FileInfoStruct RingInfo;
	u16 index;
	u32 curdir=0;
	u8 key;
	u8 Ch_Num;//頻道總數
	u8 CH_Val=0;

	Load_Gui_Bro("完成");//顯示GUI界面
	if(Alarm_Temp.Status&0x04)//收音機作為鈴聲
	{
		Ch_Num=FM24C16_ReadOneByte(58);//保存USA頻段最大電臺數 sCh_Num		 
		if(Ch_Num==0)//沒有頻率供選擇.直接退出
		{				
			Show_Str_Mid(0,114,"無任何頻道供選擇!",0x01,240); //疊加模式,非自動換行
 			return;
		}
		//加載GUI
 		POINT_COLOR=RED;												  
		Show_Str_Mid(0,2,"FM鈴聲選擇",0x01,240);  //疊加模式,非自動換行    
		POINT_COLOR=BLUE;		   
		Show_Str(56,114,"頻道:",0x01); //疊加模式,非自動換行
		Show_Str(56,146,"頻率:     MHz",0x01); //疊加模式,非自動換行		 
		//加載操作按鈕
		BACK_COLOR=WHITE;
		POINT_COLOR=BROWN;
		TFT_ShowButton(104,110,1);//<
		TFT_ShowButton(160,110,0);//>
		
		index=Ring_Fm_Show(CH_Val);//顯示頻率等值							   
		Pen_Point.Key_Sta=Key_Up;//釋放顯示期間的觸發 
		key=0;
		while(1)//等待按鍵
		{
			if((Pen_Point.Key_Sta==Key_Down||NPEN)&&Pen_Point.Key_LSta)key=Touch_To_Num(4);//得到按鍵值	  
			if(PEN)//按鍵松開了,狀態改變(狀態機)
			{
				Pen_Point.Key_LSta=1;	 
				Pen_Point.Key_Sta=Key_Up;
			}   
			if(key)//有按鍵按下
			{  			   
				Pen_Point.Key_LSta=0;
				if(Is_In_Area(104,110,128,134))//減少鍵
				{
					if(CH_Val)CH_Val--;
					else CH_Val=Ch_Num-1;
					index=Ring_Fm_Show(CH_Val);
				}else if(Is_In_Area(160,110,184,134))//增加鍵
				{
					CH_Val++;
					if(CH_Val>=Ch_Num)CH_Val=0;	
					index=Ring_Fm_Show(CH_Val);  
				}
				if(key==9)//確認了
				{								   
				    Save_Ring(1,Alarm_Temp.Ring,&key,index);//保存FM,寫入FM頻率時擴大十倍	 
					return; 
				}else if(key==10)return;//返回  
				key=0;//取消按鍵值 											    
			}   
			delay_ms(1);	
		} 
	}else //MP3作為鈴聲
	{	  	
		POINT_COLOR=RED;
		Show_Str_Mid(0,2,"MP3鈴聲選擇",0x01,240);//疊加模式,非自動換行

		curdir=Cur_Dir_Cluster;//保存上次的目錄簇號
		if(FAT32_Enable)Cur_Dir_Cluster=FirstDirClust;//根目錄簇號
	 	else Cur_Dir_Cluster=0;	    
		index=File_Browse(T_MP3|T_WMA|T_WAV|T_MID);//瀏覽文件夾 
		if(index==0)
		{
			Cur_Dir_Cluster=curdir;//恢復上次的目錄簇號
			return;//按下返回按鈕了 
		}
		Get_File_Info(Cur_Dir_Cluster,&RingInfo,T_MP3|T_WMA|T_WAV|T_MID,&index);//得到這首歌曲的信息	   
		Save_Ring(0,Alarm_Temp.Ring,RingInfo.F_ShortName,RingInfo.F_StartCluster);//保存MP3信息到相應的地址		 	
	
		for(index=0;index<8;index++)Alarm_Temp.Ring_Name[index]=RingInfo.F_ShortName[index];//得到新鬧鈴的名字
		Alarm[Alarm_Temp.Ring].Ring_Addr=RingInfo.F_StartCluster;//得到新鬧鈴的地址,必須分配給ALARM
				    
		Cur_Dir_Cluster=curdir;//恢復上次的目錄簇號				   												 
	}  
}	    

//在中斷里面執行
//必須要用到獨立的RAM,否則可能影響其他程序的運行
u8 ALARMPLAYBUFFER[512];
//播放鬧鐘
void Play_Alarm_Ring(void)
{
	u32 bfactor;
	u32 bcluster;
	u16 count;
	u8 key,n;
	u16 i;
	u8 audioch;//音頻音源暫存器	  
	FileInfoStruct RingInfo;  
	
	audioch=Audio_Ch;//記錄鬧鐘時的音源  
	read_dsp();	
	if(Alarm[AlarmInLine].Status&0x04)//收音機作為鈴聲
	{						  									 
		if(Alarm[AlarmInLine].Ring_Addr>10800||Alarm[AlarmInLine].Ring_Addr<8750)return; 	  
	  	init_pt2314(FM_Audio);//設置聲音  
		bfactor=frequency_set; //保留先前的頻率	
		n=JPUS;//保存先前的頻段
		JPUS=USA;//設置到USA頻段

		set_frequency(Alarm[AlarmInLine].Ring_Addr*10);//開啟收音機,到指定頻率

		key=0;
		Pen_Point.Key_Sta=Key_Up;
		while(1)
		{
			if((Pen_Point.Key_Sta==Key_Down||NPEN)&&Pen_Point.Key_LSta)key=Touch_To_Num(6);//不使用擴展按鈕;	  
			if(PEN)//按鍵松開了,狀態改變(狀態機)
			{
				Pen_Point.Key_LSta=1;	 
				Pen_Point.Key_Sta=Key_Up;
			}   
			if(key)
			{
				Pen_Point.Key_LSta=0;
				if(key==1)break;//按中有效區域,退出播放	  		    
				key=0;
			}
		}
		JPUS=n;                //恢復到原先的頻段
		set_frequency(bfactor);//把收音機恢復到先前的頻率		
	}else //MP3作為鈴聲,播放歌曲
	{				 
		RingInfo.F_StartCluster=Alarm[AlarmInLine].Ring_Addr;  
		if(RingInfo.F_StartCluster<2)return;//沒有鈴聲		    
		init_pt2314(MP3_Audio);//設置聲音 	   
		delay_ms(20);  	 		 	 
		Vs1003SoftReset();//軟復位VS1003 	 
		 	 
	    bfactor=fatClustToSect(RingInfo.F_StartCluster);//得到開始簇對應的扇區
		bcluster=RingInfo.F_StartCluster;				 //得到文件開始簇號	 			  
		key=0;	
		count=0;	 	    
		Pen_Point.Key_Sta=Key_Up;//釋放按鍵			
		while(1)   //播放音樂的主循環
	    {
	        if(SD_ReadSingleBlock(bfactor,ALARMPLAYBUFFER))break;//讀取一個扇區的數據   
	        count++;//扇區計數器 
			i=0;
			do      //主播放循環
	        {  	    
				if((GPIOC->IDR&MP3_DREQ)!=0)  //非暫停,送數據給VS1003
				{			   	 
		            for(n=0;n<32;n++)Vs1003_DATA_Write(ALARMPLAYBUFFER[i++]);//發送音樂數據    
				} 
				if((Pen_Point.Key_Sta==Key_Down||NPEN)&&Pen_Point.Key_LSta)key=Touch_To_Num(6);//不使用擴展按鈕;	  
				if(PEN)//按鍵松開了,狀態改變(狀態機)
				{
					Pen_Point.Key_LSta=1;	 
					Pen_Point.Key_Sta=Key_Up;
				}   
				if(key)
				{
					Pen_Point.Key_LSta=0;   
					if(key==1)goto PLAYOVER;//按中有效區域,退出播放
					key=0;	  
				}
			}while(i<511);//循環發送512個字節    
	        bfactor++; //扇區加				  
	        if(count>=SectorsPerClust)//一個簇結束,換簇
	        {									  
	            count=0;  					 	   
	            bcluster=FAT_NextCluster(bcluster);
				//文件結束 
				if((FAT32_Enable==0&&bcluster==0xffff)||bcluster==0x0ffffff8||bcluster==0x0fffffff)break;//error	
	            bfactor=fatClustToSect(bcluster);
		    } 
		}
PLAYOVER:					  		 	  
		Vs1003SoftReset();//軟復位	  
		LoadPatch();      //加載頻譜分析代碼
		Pen_Point.Key_LSta=0;
		Pen_Point.Key_Sta=Key_Up;	    
	}  
	init_pt2314(audioch);//恢復音源  
}

//處理鬧鐘中斷后的進程
//執行中斷里面鬧鐘的處理
//重新把下一個最近的鬧鐘值寫入鬧鐘寄存器
void Alarm_Process(void)
{		   		    
	u16 cbcolor;
	u16 cpcolor;
	cbcolor=BACK_COLOR;	//保存先前的畫筆狀態
	cpcolor=POINT_COLOR;
	//對于只要鬧鈴一次的鬧鐘,在執行之后關閉鬧鐘					 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美成人video| 成人avav影音| 制服.丝袜.亚洲.中文.综合| 亚洲最新视频在线播放| www.日本不卡| 一区二区三区四区乱视频| 91麻豆国产福利在线观看| 亚洲黄一区二区三区| 欧美色窝79yyyycom| 五月天视频一区| 日韩欧美亚洲一区二区| 久久国产精品色婷婷| 久久久久久电影| 丁香激情综合五月| 一区二区三区中文字幕在线观看| 欧美视频你懂的| 视频一区视频二区中文字幕| 日韩亚洲国产中文字幕欧美| 国产精品一区一区| 欧美激情一区在线| 日本丶国产丶欧美色综合| 五月天丁香久久| 26uuu亚洲综合色| 9人人澡人人爽人人精品| 亚洲一区二区美女| 亚洲精品一区二区精华| 成人白浆超碰人人人人| 亚洲电影中文字幕在线观看| 亚洲精品一区二区三区在线观看| 波多野结衣在线aⅴ中文字幕不卡| 一区二区三区在线观看国产| 欧美成人免费网站| www.在线成人| 蜜桃视频免费观看一区| 国产精品每日更新| 欧美放荡的少妇| 成人激情免费视频| 偷窥少妇高潮呻吟av久久免费| 2023国产精品| 欧美亚洲高清一区| 国产精品99久久久久久有的能看| 亚洲国产一区二区a毛片| 精品国产91九色蝌蚪| 一本一本久久a久久精品综合麻豆| 爽好多水快深点欧美视频| 中文字幕精品综合| 欧美一级理论片| 色猫猫国产区一区二在线视频| 久久福利视频一区二区| 夜夜嗨av一区二区三区| 久久网站热最新地址| 欧美日韩精品一区二区三区| 国产大片一区二区| 亚洲777理论| 国产精品久久久久久久久动漫| 91精品一区二区三区久久久久久 | 日韩精品中文字幕一区二区三区| 成人在线综合网| 蜜桃久久久久久| 一级女性全黄久久生活片免费| 国产香蕉久久精品综合网| 欧美精品视频www在线观看| 99久久免费精品| 国产一区二区不卡老阿姨| 日日噜噜夜夜狠狠视频欧美人| 亚洲同性同志一二三专区| 久久精品亚洲麻豆av一区二区| 欧美一区二区三区性视频| 日本久久精品电影| 白白色 亚洲乱淫| 成人久久视频在线观看| 国产毛片精品视频| 九九视频精品免费| 免费观看日韩电影| 午夜久久久久久电影| 怡红院av一区二区三区| 综合亚洲深深色噜噜狠狠网站| 国产日产欧美一区二区视频| 久久亚洲欧美国产精品乐播 | 亚洲人成在线观看一区二区| 国产欧美日韩在线视频| www国产成人| 久久尤物电影视频在线观看| 精品99一区二区| 久久午夜电影网| 久久精品视频网| 国产欧美日韩亚州综合 | 国产精品久久久久久久久免费樱桃 | 精品久久久久久久人人人人传媒| 7777女厕盗摄久久久| 91麻豆精品国产91| 日韩一区二区三区视频| 日韩无一区二区| 亚洲精品在线观看视频| 国产网红主播福利一区二区| 欧美国产乱子伦| 国产精品成人免费在线| 日韩理论片中文av| 亚洲综合图片区| 三级成人在线视频| 蜜臀va亚洲va欧美va天堂| 精品午夜久久福利影院| 国产成人av影院| 99久久亚洲一区二区三区青草| 一本久道久久综合中文字幕 | 亚洲柠檬福利资源导航| 一区二区三区国产精华| 天天综合网天天综合色| 韩国精品主播一区二区在线观看 | 亚洲一区二区三区四区在线免费观看| 一区二区三区在线免费视频| 日韩在线观看一区二区| 国产主播一区二区三区| 99在线精品视频| 欧美肥妇bbw| 亚洲国产成人在线| 亚洲影院理伦片| 精品一区二区三区久久久| av高清久久久| 在线播放91灌醉迷j高跟美女 | 99久久精品免费| 在线观看91精品国产麻豆| 久久亚洲一区二区三区四区| 亚洲日本免费电影| 日韩电影在线一区二区| 成人精品免费视频| 中文子幕无线码一区tr| 日韩专区在线视频| 从欧美一区二区三区| 欧美日韩成人综合| 国产欧美精品一区| 五月婷婷激情综合网| 成人h动漫精品| 欧美一区二区在线看| 日韩一区中文字幕| 日本成人在线电影网| 91亚洲国产成人精品一区二区三| 欧美一级夜夜爽| 亚洲精品视频在线| 国产一区二区三区四区在线观看| 91成人免费电影| 国产婷婷精品av在线| 日韩精品午夜视频| 91麻豆国产自产在线观看| 久久综合九色欧美综合狠狠 | 日韩美一区二区三区| 亚洲日本韩国一区| 国产福利91精品一区| 在线综合视频播放| 一个色综合av| 成人av综合一区| 久久久久99精品国产片| 日韩国产成人精品| 91福利精品视频| 欧美国产国产综合| 精品制服美女久久| 欧美精品免费视频| 一区二区三区在线免费播放| 成人精品在线视频观看| 久久蜜臀精品av| 精品一区二区综合| 欧美日本一区二区在线观看| 亚洲乱码国产乱码精品精可以看| 国产精品资源网站| 亚洲精品一区二区三区四区高清 | 欧美一区日韩一区| 亚洲一区二区三区精品在线| 91在线无精精品入口| 欧美激情在线免费观看| 国产精品一区二区男女羞羞无遮挡| 欧美一区二区视频在线观看| 婷婷综合久久一区二区三区| 欧美视频三区在线播放| 亚洲午夜av在线| 欧美亚洲一区二区在线| 亚洲影院久久精品| 欧美亚洲一区三区| 午夜精品免费在线观看| 欧美色综合影院| 亚洲电影一级片| 91精品免费观看| 日韩va亚洲va欧美va久久| 欧美一级二级在线观看| 免费高清在线视频一区·| 国产精品久久久久永久免费观看 | 99久久99久久久精品齐齐| 亚洲欧洲精品一区二区三区| jizz一区二区| 一区二区在线观看av| 欧美三级中文字| 日韩电影在线观看一区| 欧美电影免费观看完整版| 狠狠狠色丁香婷婷综合激情| 久久欧美一区二区| 成人黄色网址在线观看| 亚洲精品成人悠悠色影视| 欧美日韩亚州综合| 捆绑变态av一区二区三区| 国产女人aaa级久久久级| 91天堂素人约啪|