久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 23941|回復: 38
收起左側

單片機做的8位搶答器完整原理圖及程序

  [復制鏈接]
ID:50996 發表于 2013-6-17 02:43 | 顯示全部樓層 |閱讀模式
這兒是10年廣西區初賽時大一組的題目。當時大一,寫程序經驗不夠豐富,以致程序的樣子寫得難看點,但是還是實現了必要的功能。
功能如下:顯示搶答、回答時間倒計時,能夠調節搶答、回答時間,能夠報警犯規搶答,可以計分,可以實現軟復位
使用AT89S52 單片機。四位數碼管(為啥我沒有選擇用液晶,因為我覺得液晶做的搶答器根本不具有實用性)。我所認為的實用性是做出來的東西是能夠使用的而不是模型。同時我的8個按鍵都是分開來做的,也是實用性的考慮(附件里有實物圖)。

實物圖1.jpg
實物圖2.jpg

8路搶答器完整原理圖及程序.rar (239.51 KB, 下載次數: 438)

評分

參與人數 2黑幣 +10 收起 理由
偉云科技 + 5 樓主能把文件發給我一下嗎,我剛注冊的,無.
kakityuen + 5 很給力!

查看全部評分

回復

使用道具 舉報

ID:1 發表于 2013-6-17 03:53 | 顯示全部樓層
下面是主程序文件:
/*八路搶答器-----能夠顯示搶答、回答時間倒計時,能夠調節搶答、回答時間,能夠報警犯規搶答,可以計分,可以實現軟復位*/
/*桂林電子科技大學*信息與通信學院*電子科學與技術*/
/*此程序僅供參考!懇請自重*/
/*本人博客:http://blog.sina.com.cn/13302xiaoqiao  */
/*歡迎交流*/
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit fmq=P3^6;
sbit Key_Start=P3^4;//開始鍵,時間設置時+
sbit Key_Stop=P3^5;//停止鍵,時間設置時-
sbit Key_Restart=P3^0;//復位鍵
sbit Key_set_Q=P3^2;//搶答時間設置鍵
sbit Key_set_H=P3^3;//回答時間設置鍵
sbit led=P3^7;//搶答LED提示
uchar code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6,0xf0,0xb6};//段碼表
uchar code table_char[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc7,0xc0,0x92,0x86,0xbf,0xb7,0xff,0xb9,0x8f};//0-9 L O S E -
uchar  table_score[9]={0,50,50,50,50,50,50,50,50};//記分數組,初設值50分
void delay(uint z);//延時函數聲明
void init();//初始化函數聲明
void display(uchar XuanShou,uchar time);//顯示數字函數聲明
void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 );//顯示字符函數聲明
void display_set(uchar char_1,uchar time,uchar char_2);//時間設置閃動顯示函數聲明
void display_score(uchar xs_num);//分數查詢顯示函數
void beep();//蜂鳴器函數
void beep_last();//蜂鳴器特殊報警
void LED();//提示燈函數
uchar QiangDa_time,HuiDa_time,QiangDa_time_temp=20,HuiDa_time_temp=30;//搶答時間、回答時間變量
uchar count_0,count_1;//定時中計數用的
uint shan_count=0;//閃動顯示計數用
void main()
{
	uchar AnJian,ShuJu,XuanShou_num;
Top:init();//初始化
	XuanShou_num=1;//為分數查詢做好準備
	while(1)
	{
		display(10,0);//顯示一杠
		ShuJu=P1;
		if(ShuJu!=0xff)//犯規搶答!
		{
//			delay(10);
//			if(ShuJu!=0xff)
//			{
				AnJian=ShuJu;
				switch(AnJian)//取出選手編號
				{
					case 0xfe :	XuanShou_num=1;break;//1111 1110
					case 0xfd :	XuanShou_num=2;break;//1111 1101
					case 0xfb :	XuanShou_num=3;break;//1111 1011
					case 0xf7 :	XuanShou_num=4;break;//1111 0111
					case 0xef :	XuanShou_num=5;break;//1110 1111
					case 0xdf :	XuanShou_num=6;break;//1101 1111
					case 0xbf :	XuanShou_num=7;break;//1011 1111
					case 0x7f :	XuanShou_num=8;break;//0111 1111
					default : goto LOSE;//無法顯示了,有兩個以上的鍵同時按下了!!不過這種概率相當小
				}
				while(1)
				{
					display_char(13,14,14,XuanShou_num);//閃動顯示犯規選手并且報警
					if(shan_count==50)
					{
						beep();
					}
					if(Key_Stop==0)
					{
						delay(10);
						if(Key_Stop==0)
						{
							beep();
							table_score[XuanShou_num]--;//扣分
						}
					}
					while(!Key_Stop)
					{
						display_char(14,14,1,16);//按鍵不放開的情況下顯示-1
						shan_count=1;//調用的是閃動顯示函數,但是不讓其閃動
					}
					if(Key_Restart==0)
					{
						delay(10);
						if(Key_Restart==0)
						{
							beep();
							goto Top;//熱復位
						}
					}
				}
//			}
		}
		if(Key_Start==0)
		{
			delay(10);
			if(Key_Start==0)//主持人按下搶答鍵,搶答正式開始!
			{
				QiangDa_time=QiangDa_time_temp;
				HuiDa_time=HuiDa_time_temp;
				beep();
				TR1=1;//搶答時間開始倒計時
				break;//跳出犯規搶答查詢循環
			}
		}
//一下為查分程序測試
		 if(Key_Stop==0)
		 {
		 	delay(10);
			if(Key_Stop==0)//進入分數查詢顯示
			{
				beep();
				while(!Key_Stop);
				while(1)
				{
					display_score(XuanShou_num);
					if(Key_Start==0)
					{
						delay(10);
						if(Key_Start==0)
						{
							XuanShou_num++;
							if(XuanShou_num==9) XuanShou_num=1;
						}
					}
					while(!Key_Start);//等待按鍵釋放
					if(Key_Stop==0)
					{
						delay(10);
						if(Key_Stop==0)
						{
							XuanShou_num--;
							if(XuanShou_num==0) XuanShou_num=8;
						}
					}
					while(!Key_Stop);//等待按鍵釋放
				   if(Key_Restart==0)
					{
						delay(10);
						if(Key_Restart==0)
						{
							beep();
							goto Top;//熱復位
						}
					}
				}
			}
		 }
	}
	while(1) //查詢是否有按鍵按下,進入搶答循環
	{
		display(10,QiangDa_time);//顯示搶答倒計時
		if(QiangDa_time==0)
		{
//			beep();
			TR1=0;//關閉定時器1
LOSE:		while(1)
			{
				display_char(10,11,12,13); //顯示lose 字符
				if(Key_Restart==0)
				{
					delay(10);
					if(Key_Restart==0)//熱復位鍵,從頭開始下一輪
					{
						beep();
						goto Top;
					}
				}
			}
		}
		ShuJu=P1;//把P1口的數據送給變量
		if(ShuJu!=0xff)//有按鍵按下
		{
//			delay(10);
//			if(ShuJu!=0xff)//確定有按鍵按下
//			{
				 AnJian=ShuJu;//傳遞數據掃描值
//				 TR0=1;//啟動定時器0
				 TR1=0;//關閉定時器1
				 break;//不再進行查詢是否有按鍵按下了
//			}
		}
	}
	switch(AnJian)//取出選手編號
	{
		case 0xfe :	XuanShou_num=1;beep();LED();break;//1111 1110
		case 0xfd :	XuanShou_num=2;beep();LED();break;//1111 1101
		case 0xfb :	XuanShou_num=3;beep();LED();break;//1111 1011
		case 0xf7 :	XuanShou_num=4;beep();LED();break;//1111 0111
		case 0xef :	XuanShou_num=5;beep();LED();break;//1110 1111
		case 0xdf :	XuanShou_num=6;beep();LED();break;//1101 1111
		case 0xbf :	XuanShou_num=7;beep();LED();break;//1011 1111
		case 0x7f :	XuanShou_num=8;beep();LED();break;//0111 1111
		default : goto LOSE;//無法顯示了,有兩個以上的鍵同時按下了!!不過這種概率相當小
	}
	TR0=1;//啟動定時器0(在這里啟動比在前面好)
	while(1)
	{
		display(XuanShou_num,HuiDa_time);//顯示選手編號和回答倒計時
		if(HuiDa_time==0)
		{
			TR0=0;//關閉定時器0
			goto LOSE;//跳到顯示lose字符那里
		}
		if(Key_Stop==0)
		{
			delay(30);
			if(Key_Stop==0)//停止鍵按下
			{
				beep();
				TR0=0;//關閉定時器0,選手開始回答
				while(!Key_Stop);
				while(1) //在顯示選手回答倒計時時只有在stop按鍵按下時,才可按復位鍵
				{
					display(XuanShou_num,HuiDa_time);//顯示選手編號和回答倒計時
					if(Key_Start==0)
					{
						delay(10);
						if(Key_Start==0)
						{
							beep();
							table_score[XuanShou_num]++;//加分
						}
					}
					while(!Key_Start)
					{
						display_char(17,18,1,16);//按鍵不放開的情況下顯示+1
						shan_count=1;//調用的是閃動顯示函數,但是不讓其閃動
					}
					if(Key_Stop==0)
					{
						delay(10);
						if(Key_Stop==0)
						{
							beep();
							table_score[XuanShou_num]--;//扣分
						}
					}
					while(!Key_Stop)
					{
						display_char(14,14,1,16);//按鍵不放開的情況下顯示-1
						shan_count=1;//調用的是閃動顯示函數,但是不讓其閃動
					}
					if(Key_Restart==0)
					{
						delay(10);
						if(Key_Restart==0)//熱復位鍵,從頭開始下一輪
						{
							beep();
							goto Top;
						}
					}
				}
			}
		}
//		else
/*		if(Key_Restart==0)
		{
			delay(10);
			if(Key_Restart==0)//熱復位鍵,從頭開始下一輪
			{
				beep();
				goto Top;
			}
		} */
	}
	
}

void delay(uint z)//1ms基準延時
{
	uint x,y;
	for(x=z;x>0;x--)
		for(y=110;y>0;y--);
}

void init()//初始化函數
{
//	P1=0xff
	EA=1;//開總中斷;
	TMOD=0x11;//定時器工作方式1,16位定時計數器
	TH0=(65536-50000)/256;//50us
	TL0=(65536-50000)%256;
	ET0=1;//開定時器0中斷(暫時不啟動定時器)

//	TMOD=0x01;//定時器工作方式1,16位定時計數器
	TH1=(65536-50000)/256;//50us
	TL1=(65536-50000)%256;
	ET1=1;//開定時器0中斷(暫時不啟動定時器)

	EX0=1;//啟動外中斷0
	EX1=1;//啟動外中斷1

	P1=0xff;//讀P1口的數據要先置1準備
	count_0=0;//定時器中的計數清零
	count_1=0;
	shan_count=0;
}

void display(uchar XuanShou,uchar time)//顯示數字的函數
{

		P2=0x7f;//0111 1111最后一位數碼管亮
		P0=table[XuanShou];//選手編號
		delay(1);
		P2=0x7f;//0111 1111
		P0=0xff;//消余輝
		delay(1);
	
		P2=0xdf;//1101 1111
		P0=table[time%10];//時間的個位
		delay(1);
		P2=0xdf;//0111 1111
		P0=0xff;//消余輝
		delay(1);
	
		P2=0xef;// 1110 1111
		P0=table[time/10];//時間的十位
		delay(1);
		P2=0xef;//0111 1111
		P0=0xff;//消余輝
		delay(1);
}

void display_char(uchar char_1,uchar char_2,uchar char_3,uchar char_4 )//閃動!顯示字符的函數
{
	shan_count++;
	if(shan_count==150)	shan_count=0;
	 if(shan_count>0&&shan_count<50)
	 {
		P2=0x7f;//0111 1111
		P0=table_char[char_4];
		delay(1);
		P2=0x7f;//0111 1111
		P0=0xff;
		delay(1);
	
		P2=0xbf;//1011 1111
		P0=table_char[char_3];
		delay(1);
		P2=0xbf;//1011 1111
		P0=0xff;
		delay(1);
	
		P2=0xdf;//1101 1111
		P0=table_char[char_2];
		delay(1);
		P2=0xdf;//1101 1111
		P0=0xff;
		delay(1);
	
		P2=0xef;//1110 1111
		P0=table_char[char_1];
		delay(1);
		P2=0xef;//1110 1111
		P0=0xff;
		delay(1);
	}
	else
	{
	 	P2=0x7f;//0111 1111
		P0=0xff;
		delay(1);

		P2=0xbf;//
		P0=0xff;
		delay(1);

		P2=0xdf;//
		P0=0xff;
		delay(1);

		P2=0xef;//
		P0=0xff;
		delay(1);
	}

}
void display_set(uchar char_1,uchar time,uchar char_2)//時間設置的閃動顯示
{
	shan_count++;
	if(shan_count==120)	shan_count=0;
	 if(shan_count>0&&shan_count<40)
	 {
	 	P2=0x7f;//0111 1111最后一位數碼管亮
		P0=table[char_2];//顯示一個符號
		delay(1);
		P2=0x7f;//0111 1111
		P0=0xff;//消余輝
		delay(1);

		P2=0xbf;//1011 1111
		P0=table[time%10];//時間的個位
		delay(1);
		P2=0xbf;//1011 1111
		P0=0xff;//消余輝
		delay(1);
	
		P2=0xdf;//1101 1111
		P0=table[time/10];//時間的十位
		delay(1);
		P2=0xdf;//1101 1111
		P0=0xff;//消余輝
		delay(1);
	
		P2=0xef;// 1110 1111
		P0=table[char_1];//顯示一個符號
		delay(1);
		P2=0xef;//1110 1111
		P0=0xff;//消余輝
		delay(1);
	 }
	 else
	 {
	 	P2=0x7f;//0111 1111
		P0=table[char_2];
		delay(1);

		P2=0xbf;//
		P0=0xff;
		delay(1);

		P2=0xdf;//
		P0=0xff;
		delay(1);

		P2=0xef;//
		P0=table[char_1];
		delay(1);
	 }
}
void display_score(uchar xs_num)//分數查詢顯示函數
{
		P2=0x7f;//0111 1111最后一位數碼管亮
		P0=table[(table_score[xs_num]%10)];//分數的個位
		delay(1);
		P2=0x7f;//0111 1111
		P0=0xff;//消余輝
		delay(1);

		P2=0xbf;//1011 1111
		P0=table[(table_score[xs_num]/10)];//分數的十位
		delay(1);
		P2=0xbf;//1011 1111
		P0=0xff;//消余輝
		delay(1);
	
		P2=0xdf;//1101 1111
		P0=table_char[15];//間隔符號
		delay(1);
		P2=0xdf;//1101 1111
		P0=0xff;//消余輝
		delay(1);
	
		P2=0xef;// 1110 1111
		P0=table[xs_num];//選手編號
		delay(1);
		P2=0xef;//1110 1111
		P0=0xff;//消余輝
		delay(1);
}
void beep()	//有源蜂鳴器函數
{
	 fmq=0;
	 delay(80);
	 fmq=1;
}
void beep_last()//最后一聲特殊聲調
{
	 fmq=0;
	 delay(300);
	 fmq=1;
}
void LED()
{
	led=0;
	delay(150);
	led=1;
}
void T0_time() interrupt 1//定時器0中斷函數_回答時間
{
	TH0=(65536-50000)/256;//50ms
	TL0=(65536-50000)%256;//馬上重裝初值,以免有誤差
	if(count_0==20)
	{
		count_0=0;
		HuiDa_time--;
		if(HuiDa_time<=5)
		{
			if(HuiDa_time==0)
			{
				beep_last();//最后一聲特殊警告
			}
			beep();
		}

	}
	count_0++;
	
}

void T1_time() interrupt 3//定時器1中斷函數_搶答時間
{
	TH1=(65536-50000)/256;//50us
	TL1=(65536-50000)%256;//馬上重裝初值,這樣在后面調用beep()函數時就不會影響定時器的準確計時了
	if(count_1==20)
	{
		count_1=0;
		QiangDa_time--;
 		if(QiangDa_time<=5)
		{
			if(QiangDa_time==0)
			{
				beep_last();//最后一聲警告
			}
			else
			beep();
		}
	}
	count_1++;	
}

void EX0_set_QiangDa_time()	interrupt 0 //外中斷0,設置搶答時間
{
	delay(10);//消抖一下
	if(Key_set_Q==0)
	{
		beep();
		while(1)
		{
//			display(11,QiangDa_time_temp);
//			delay(100);//閃動效果
			display_set(12,QiangDa_time_temp,13);//調用時間設置閃動顯示函數,效果為 [時間]
			if(Key_Start==0)//時間+1鍵
			{
				 delay(10);
				 if(Key_Start==0)
				 {
				 	QiangDa_time_temp++;
					if(QiangDa_time_temp==100)
					{
						QiangDa_time_temp=1;
					}
				 }
			}
			while(!Key_Start);//等待按鍵釋放
//			else
			if(Key_Stop==0)//時間-1鍵
			{
				 delay(10);
				 if(Key_Stop==0)
				 {
				 	QiangDa_time_temp--;
					if(QiangDa_time_temp==0)
					{
						QiangDa_time_temp=99;
					}
				 }
			}
			while(!Key_Stop);//等待按鍵釋放
//			else
			if(Key_Restart==0)
			{
				if(Key_Restart==0)
				{
					beep();
					break;
				}
			}
		}
	}
}

void EX1_set_HuiDa_time()	interrupt 2 //外中斷1,設置回答時間
{
	delay(10);//消抖一下
	if(Key_set_H==0)
	{
		beep();
		while(1)
		{
			display_set(12,HuiDa_time_temp,13);//調用時間設置閃動顯示函數,效果為 [時間]
			if(Key_Start==0)//時間+1鍵
			{
				 delay(10);
				 if(Key_Start==0)
				 {
				 	HuiDa_time_temp++;
					if(HuiDa_time_temp==100)
					{
						HuiDa_time_temp=1;
					}
				 }
			}
			while(!Key_Start);//等待按鍵釋放
//			else
			if(Key_Stop==0)//時間-1鍵
			{
				 delay(10);
				 if(Key_Stop==0)
				 {
				 	HuiDa_time_temp--;
					if(HuiDa_time_temp==0)
					{
						HuiDa_time_temp=99;
					}
				 }
			}
			while(!Key_Stop);//等待按鍵釋放
//			else
			if(Key_Restart==0)
			{
				if(Key_Restart==0)
				{
					beep();
					break;
				}
			}
		}
	}
}
回復

使用道具 舉報

ID:51014 發表于 2013-6-17 20:03 | 顯示全部樓層
有仿真圖嗎,想試試改改程序
回復

使用道具 舉報

ID:50943 發表于 2013-6-22 14:16 | 顯示全部樓層
學習來了
回復

使用道具 舉報

ID:50943 發表于 2013-6-22 14:21 | 顯示全部樓層
兄弟 發我個仿真圖  QQ 623205804
回復

使用道具 舉報

ID:46866 發表于 2013-10-1 15:48 | 顯示全部樓層
回復

使用道具 舉報

ID:62288 發表于 2014-5-26 12:39 | 顯示全部樓層
好東西的,謝謝。
回復

使用道具 舉報

ID:62314 發表于 2014-5-26 22:53 | 顯示全部樓層
看一下
回復

使用道具 舉報

ID:70484 發表于 2014-12-15 09:03 | 顯示全部樓層
看一下
回復

使用道具 舉報

ID:70484 發表于 2014-12-15 09:04 | 顯示全部樓層
樓主好人
回復

使用道具 舉報

ID:70499 發表于 2014-12-18 12:24 | 顯示全部樓層
看看,,
回復

使用道具 舉報

ID:72881 發表于 2015-1-27 19:26 | 顯示全部樓層
很好很強大。
回復

使用道具 舉報

ID:78618 發表于 2015-5-7 19:30 | 顯示全部樓層
樓主有沒有proteus仿真圖?畢業設計急需呀。不然就要淘寶了。。。
回復

使用道具 舉報

ID:78618 發表于 2015-5-7 19:38 | 顯示全部樓層
89c51123 發表于 2015-5-7 19:30
樓主有沒有proteus仿真圖?畢業設計急需呀。不然就要淘寶了。。。

郵箱:q1063289287@163.com
回復

使用道具 舉報

ID:75461 發表于 2015-5-8 16:40 | 顯示全部樓層
謝謝分享
回復

使用道具 舉報

ID:77907 發表于 2015-5-9 20:28 | 顯示全部樓層
謝謝分享。!
回復

使用道具 舉報

ID:92234 發表于 2015-10-12 15:16 | 顯示全部樓層
回一貼
回復

使用道具 舉報

ID:69482 發表于 2015-10-13 15:00 | 顯示全部樓層
樓主  為什么里面程序沒有定義另外八個搶答器的引腳
回復

使用道具 舉報

ID:69482 發表于 2015-10-13 15:08 | 顯示全部樓層
有 看到了 是P1口
回復

使用道具 舉報

ID:69482 發表于 2015-10-13 21:56 | 顯示全部樓層
這個作品要如何使用
回復

使用道具 舉報

ID:36525 發表于 2015-10-13 22:52 | 顯示全部樓層
根本就沒有仿真圖。浪費5個黑幣
回復

使用道具 舉報

ID:36525 發表于 2015-10-13 22:53 | 顯示全部樓層
那二個文件怎么打開,有什么軟件
回復

使用道具 舉報

ID:36525 發表于 2015-10-13 22:55 | 顯示全部樓層
沒仿真圖
回復

使用道具 舉報

ID:93169 發表于 2015-10-21 21:40 | 顯示全部樓層
好東西的,謝謝。
回復

使用道具 舉報

ID:97032 發表于 2015-11-24 23:32 | 顯示全部樓層
我要我要我要我要我要我要我要我要我要我要我要我要
回復

使用道具 舉報

ID:107352 發表于 2016-6-20 11:21 | 顯示全部樓層
看著好厲害學習一下
回復

使用道具 舉報

ID:157782 發表于 2016-12-26 16:39 | 顯示全部樓層
樓主 還有仿真圖么】
回復

使用道具 舉報

ID:160801 發表于 2017-1-8 17:32 | 顯示全部樓層
厲害了
回復

使用道具 舉報

ID:195723 發表于 2017-5-2 20:11 | 顯示全部樓層
過來學習一下,不知道樓主現在還能不能看到
回復

使用道具 舉報

ID:222799 發表于 2017-7-27 23:39 | 顯示全部樓層
想請教一下程序中TOP:以及LOSE:這是代表什么
回復

使用道具 舉報

ID:130345 發表于 2017-8-4 18:24 | 顯示全部樓層
厲害了
回復

使用道具 舉報

ID:268011 發表于 2017-12-27 21:07 | 顯示全部樓層
怎么獲得黑幣,我下載不了
回復

使用道具 舉報

ID:268991 發表于 2017-12-29 23:12 來自手機 | 顯示全部樓層
有圖么
回復

使用道具 舉報

ID:287570 發表于 2018-3-4 22:17 | 顯示全部樓層
厲害呀
回復

使用道具 舉報

ID:86974 發表于 2018-5-13 14:00 | 顯示全部樓層
可以看看嗎?
回復

使用道具 舉報

ID:418371 發表于 2018-10-31 10:24 | 顯示全部樓層
贊一個
回復

使用道具 舉報

ID:418410 發表于 2018-10-31 11:12 | 顯示全部樓層
贊一個
回復

使用道具 舉報

ID:428733 發表于 2018-11-18 16:10 | 顯示全部樓層
謝謝,用處很大
回復

使用道具 舉報

ID:335259 發表于 2019-10-19 16:31 | 顯示全部樓層
樓主,能不能分享一下Proteus仿真圖呀
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久偷人| 亚洲高清网 | 精品香蕉一区二区三区 | 国产精品无码久久久久 | 97精品久久 | 亚洲精品天堂 | 国产成人网 | 欧美精品1区2区3区 免费黄篇 | 曰批视频在线观看 | 日日干天天操 | 国产精品一区二区三区四区 | www.99热.com | 亚洲黄色片免费观看 | 久久久欧洲 | 日韩二三区| 亚洲视频一区 | 欧美黑人一区 | 国产精品久久久久久久免费观看 | 国产一级免费视频 | 色天天综合 | 毛片视频观看 | 黄片毛片免费观看 | 天天操天天操 | 日本精品视频在线观看 | 精品久久久久久亚洲精品 | 日韩毛片网| 我想看一级黄色毛片 | 欧美综合久久 | 欧美一级免费 | 欧美在线一区二区三区 | 午夜午夜精品一区二区三区文 | 成人午夜精品 | 久久精品亚洲国产 | 国产一区二区三区视频免费观看 | 午夜爱爱毛片xxxx视频免费看 | 99国产精品视频免费观看一公开 | 国产区视频在线观看 | 激情欧美一区二区三区 | 欧美日韩国产高清 | 激情麻豆视频 | 久干网 |