標題: 基于單片機多位LED數碼管的數字鐘設計報告 [打印本頁]
作者: 可樂333 時間: 2018-5-19 12:52
標題: 基于單片機多位LED數碼管的數字鐘設計報告
基于多位LED數碼管的數字鐘設計
【中文摘要】設計的主要內容就是結合軟件Keil和Proteus來仿真一個由單片機AT89C51芯片和多位LED數碼管為核心的單片機數字時鐘,從而鍛煉出學習、設計、開發軟、硬件的能力。設計已完成的數宇鐘的基本功能:正常走時(年、月、日、時、分、秒)、校正時間和秒表功能。且操作簡單、運行穩定。
1前言
數字鐘具有走時準確,一鐘多用等特點,在生活中已經得到廣泛的應用。雖然現在市場上已有現成的電子鐘集成電路芯片,價格便宜、使用也方便。但是,人們對電子產品的應用要求越來越高,數字鐘不但可以顯示當前的時問,而且可以顯示期、農歷、以及星期等,給人們的生活帶來了方便。
時鐘電路在計算機系統中起著非常重要的作用,是保證系統正常工作的基礎。在一個單片機應用系統中,時鐘有兩方面的含義:一是指為保障系統正常工作的基準振蕩定時信號,主要由晶振和外圍電路組成,晶振頻率的大小決定了單片機系統工作的快慢。二是指系統的標準定時時鐘,即定時時間,它通常有兩種實現方法:一是用軟件實現,即用單片機內部的可編程定時/計數器來實現,但誤差很大;二是用專門的時鐘芯片實現,在對時間精度要求很高的情況下,通常采用這種方法。
本文主要介紹用單片機內部的定時/計數器來實現多功能時鐘的方法,設計由單片機AT89C51芯片和和多位LED數碼管為核心,輔以必要的電路等,構成的一個單片機數字時鐘。
2設計方案
2.1設計思路
數字鐘的功能就是顯示秒、分和小時,其算法是60秒為1分鐘,60分鐘為1小時,一天為24小時。因此需要秒計數器到59秒的時候,再加1秒時,秒計數器清0,分鐘計數器加1;秒計數器加到59秒,分鐘計數器到59分時,再加1秒時,秒計數器和分計數器同時清0,小時計數器加1;當小時計數器為23小時,分計數器為59分,秒為59秒的時候,再加1秒時,秒計數器、分計數器和小時計數器同時清零。數字鐘的核心就是要產生秒信號,這里利用單片機的定時器TO產生。定時器TO有4種工作方式,可以采用中斷方式和查詢方式編程。
此數字時鐘由主模塊(AT89C51)、顯示模塊(多位LED數碼管)、控制模塊和計時運算模塊四大部分組成。其中控制模塊和計時運算模塊主要對年月日、時分秒的數值顯示和調整進行操作,并且秒計算到60時,自動清零并向分進1;分計算到60時,自動清零并向時進1;時計算到24時,自動清零。這樣,就形成了循環計時,顯示模塊主要用來顯示當前計數值。AT89C51是整個設計的核心,主要用來產生定時中斷,傳輸數據和控制各個部件工作。
數字鐘格式:XX.XX.XX ,從左向右分別為時/年、分/月、秒/日。時分秒完成由秒01一直加1至59,再恢復00;分加1,由00至01,一直加1至59,再恢復00;時加1,時由00加至23后秒分時全部清零;該鐘使用TO做定時中斷。
時鐘校正:走時過程中直接調整且不影響走時準確性。按下相應次數功能鍵S1進入相應數位的調整;按下S2按鍵加,相應數位加1;按下S3按鍵減,相應數位減1。
秒表功能:按下功能鍵S1對應次數,進入秒表計時功能;按下S2按鍵加,開始計時;按下S3按鍵減,暫停計時;暫停計時時,按下S2按鍵加,繼續計時;按下S4按鍵,退出。
年月顯示:按住S4按鍵不放,顯示年月日。
2.2模塊功能說明
(1)單片機AT89C51簡介,如下圖1
圖1 AT89C51引腳圖
VCC:供電電壓。
GND:接地。
P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接口。
P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理在外部執行狀態ALE禁止,置位無效。
/PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
/EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
XTAL2:來自反向振蕩器的輸出。
①TMOD定時器/計數器方式寄存器
定時器方式控制寄存器TMOD在特殊功能寄存器中,字節地址為89H,無位地址。
②TCON定時器/計數器控制寄存器
TCON在特殊功能寄存器中,字節地址為88H,位地址(由低位到高位)為88H--8FH,由于有位地址,十分便于進行位操作。
③定時器/計數器的初始化
由于定時器/計數器的功能是由軟件編程確定的,所以一般在使用定時/計數器前都要對其進行初始化,使其按設定的功能工作.初始貨的步驟一般如下:
- 確定工作方式(即對TMOD賦值),預置定時或計數的初值。
2、根據需要開放定時器/計數器的中斷(直接對IE位賦值)。
3、啟動定時器/計數器。
(2)多位LED數碼管7SEG-MPX6-CA簡介如下圖2
圖2 7SEG-MPX6-CA數碼管模型圖
7SEG-MPX6-CA是7段6位共陽級數碼管,DP為小數點,位碼(1-6)應輪流通高電位,段碼控制數碼管的顯示:0-e,1-d,2-p,3-c,4-g,5-b,6-f,7-a.共陽極LED數碼管,它是將發光二極管的陽極(正極)短接后作為公共陽極.當驅動信號為低電平才能發光。
本實驗采用動態顯示,即節省了I/O口,又能降低能耗。
顯示過程注意消影。
(3)其余元件如下圖3
BUTTON
PNP 圖3 所需用到的其余元件
2.3系統總體原理圖如下圖4
圖4 基于多位LED數碼管的數字鐘總圖
2.4電路圖的接法設計
鑒于仿真的單片機數字時鐘的美觀性,取消各模塊間的可見連線,利用Proteus中的Edit Wire Style 按鈕來連接各個端口。
單片機P1端口接按鍵S輸入;單片機P0端口接段碼驅動到數碼管;單片機P2端口接位碼驅動到數碼管。
2.5按鍵功能說明
1、功能鍵--根據按下的次數,分別調節時間和年月,按位調節,同時調整位閃爍,按下11次后進入秒表,期間可以按退出鍵退出功能調節或秒表。
2、數字加---進入時間或年月調節時,按此鍵閃爍位數字加一,秒表模式下為秒表開始鍵。
3、數字減---進入時間或年月調節時,按此鍵閃爍位數字減一,秒表模式下為秒表暫停鍵。
4、退出鍵---進入時間或年月調節時,按此鍵保存調節并退出,沒進入時間或年月調節時按此鍵顯示年月。
3 程序流程圖
3.1時鐘顯示程序流程圖如下圖5
圖5 時鐘顯示程序流程圖
3.2外部中斷處理流程圖如下圖6
圖6 外部中斷處理流程圖
3.3函數模塊及功能
(1)Void Time0() interrupt 1
定時器0中斷服務程序,供時鐘主程序使用
(2)Void Time1() interrupt 3
定時器1中斷服務程序,供秒表使用
(3)Void yanshi(uint z)
延時程序,供動態掃描與按鍵去抖
(4)Void xianshi()
動態掃描程序
(5)Void shizhong()
時鐘主程序
(6)Void key1()
按鍵1檢測,按的次數不同進入不同調節功能
(7)Void key2()
按鍵2檢測,數字加或秒表計時
(8)Void key3()
按鍵3檢測,數字減或秒表暫停
(9)Void key4()
按鍵4檢測,按住不放顯示年月,退出功能
(10)Void nyr()
年月日調節
(11)Void miaobiao()
秒表,精確到1%秒
(12)Void init()
初始化設置中斷
4 設計總結
這次對數字鐘的設計,經過認真地查找資料、編寫程序以及調試程序,結果達到驗證無誤。從開始設計到仿真實現,再到論文文章的完成,每走一步對我來說都是新的嘗試與挑戰。從單片機模塊數字鐘的設計過程中我找到了一些單片機開發的規律:先了解所有元件的具體內容,從而畫出其電路圖,使數字鐘從簡易變成多功能的方式,雖沒有做鬧鈴功能的多功能數字鐘,卻知曉了其方法。從而更好地讓自己踏入單片機應用領域的第一步。
【參考文獻】
[1]趙文博,劉文濤.單片機語言C51程序設計[M].人民郵電出版社,2006
[2]石從剛.MCS-51單片機原理與應用實驗實訓教程[M].北京航空航天大學出版社,2007
[3]張靖武.單片機系統的PROTEUS設計與仿真[M].電子工業出版社,2009
[4]李精華.基于數字鐘設計的單片機課程項目開發[J].桂林航天工業高等專科學校學報,2010
附錄:
程序代碼及說明
- #include <AT89X51.H>
- #define uint unsigned int
- #define uchar unsigned char
- /*********************************
- 定義變量和數碼表
- *********************************/
- uchar code shuma[]={
- 0x14,0xd7,0x4c,0x45,0x87,
- 0x25,0x24,0x57,0x04,0x05};//數碼表
- uchar code fenge[]={
- 0x10,0xD3,0x48,0x41,0x83,
- 0x21,0x20,0x53,0x00,0x01};
- //帶點的數碼表
- uchar code weixuan []={
- 0x7f,0xBf,0xDf,0xEf,0xf7,0xfb,0xff};
- //位選控制表
- uchar t,tt,a,b,c,d,e,f,x,y,id,fen
- ,miao,hm,mm,ff,shi,ri,yue,nian;
- sbit s1=P1^0;//
- 菜單鍵,按下的次數進入不同的調節功能
- sbit s2=P1^1;//數字加鍵、秒表開始鍵
- sbit s3=P1^2;//數字減鍵、秒表暫停鍵
- sbit s4=P1^3;
- //顯示年月日,菜單退出鍵
- /**********************************
- 定時器0中斷服務程序
- 供時鐘主程序使用
- **********************************/
- void Time0()interrupt 1
- { TH0=(65536-49990)/256;
- //裝初值,使定時器0每50毫秒產生一次中斷
- TL0=(65536-49990)%256;
- //裝初值,使定時器0每50毫秒產生一次中斷
- t++;//中斷次數
- if(t==21)
- //在調節時間或年月時把t控制在20以內
- //避免中斷次數不受控
- { t=0; }
- }
- /************************************
- 定時器1中斷服務程序
- 供秒表使用
- ************************************/
- void Time1() interrupt 3
- { TH1=(65536-1001)/256;
- //裝初值,使定時器1每1毫秒產生一次中斷
- TL1=(65536-1001)%256;
- //裝初值,使定時器1每1毫秒產生一次中斷
- tt++;
- if(tt==11)
- tt=0; }
- /************************************
- 延時程序
- 供動態掃描和按鍵去抖用
- 如果是實物的話,x的值設為3就可以了
- ************************************/
- void yanshi(uint z)
- { for (x=25;x>0;x--)
- for (y=z;y>0;y--); }
- /************************************
- 動態掃描程序
- ************************************/
- void xianshi ()
- { P0=0xff;//消影
- P2=weixuan[0];//第一位數碼管
- if(t<=10)//數碼管閃爍
- { if(id==1)//調節小時十位時閃爍
- { P2=weixuan[6]; }
- if(id==5)//調節年十位時閃爍
- { P2=weixuan[6]; }
- }
- P0=shuma[a];//顯示數碼
- yanshi(5);
- //提高亮度,使每一位數碼管一樣亮
- P0=0xff;//消影
- P2=weixuan[1];//第二位數碼管
- if(t<=10)//數碼管閃爍
- { if(id==2)//調節小時個位時閃爍
- { P2=weixuan[6]; }
- if(id==6)//調節年十位時閃爍
- { P2=weixuan[6]; }
- }
- P0=fenge[b];//顯示數碼
- yanshi(5);
- //提高亮度,使每一位數碼管一樣亮
- P0=0xff;//消影
- P2=weixuan[2];//第三位數碼管
- if(t<=10)//數碼管閃爍
- {if(id==3)
- //調節分十位時閃爍
- { P2=weixuan[6]; }
- if(id==7)//調節月十位時閃爍
- { P2=weixuan[6]; }
- }
- P0=shuma[c];//顯示數碼
- yanshi(5);
- //提高亮度,使每一位數碼管一樣亮
- P0=0xff;//消影
- P2=weixuan[3];//第四位數碼管
- if(t<=10)//數碼管閃爍
- { if(id==4)//調節分個位時閃爍
- { P2=weixuan[6]; }
- if(id==8)//調節月個位時閃爍
- { P2=weixuan[6]; }
- }
- P0=fenge[d];//顯示數碼
- yanshi(5);
- //提高亮度,使每一位數碼管一樣亮
- P0=0xff;//消影
- P2=weixuan[4];//第五位數碼管
- if(t<=10)
- {if(id==9)//調節日十位時閃爍
- { P2=weixuan[6]; }
- }
- P0=shuma[e];//顯示數碼
- yanshi(5);
- //提高亮度,使每一位數碼管一樣亮
- P0=0xff;//消影
- P2=weixuan[5];//第六位數碼管
- if(t<=10)
- { if(id==10)//調節日的個位時閃爍
- { P2=weixuan[6]; }
- }
- P0=shuma[f];//顯示數碼
- yanshi(5);
- //提高亮度,使每一位數碼管一樣亮
- }
- /************************************
- 時鐘主程序
- ************************************/
- void shizhong()
- { if(t==20)
- //進入20次中斷后秒加1,50ms*20=1s
- { t=0;
- miao++; }
- if(miao==60)//秒夠60清零,分加1
- { miao=0;
- fen++; }
- if(fen==60)//分夠60清零,時加1
- { fen=0;
- shi++; }
- if(shi==24)//時夠24清零,日加1
- { ri++;
- shi=0; }
- }
- /************************************
- 按鍵1檢測
- 按鍵檢測,按的次數不同進入不同調節功能
- ************************************/
- void key1()
- { while(s1==0)
- { yanshi(300);//延時去抖
- while(s1==0)
- { id++;//根據ID值的不同進入各種功能
- while(s1==0);//等待松開菜單鍵
- yanshi(350);
- while(s1==0); }
- }
- }
- /************************************
- 按鍵2檢測
- 按鍵檢測,數字加或秒表開始
- ************************************/
- void key2()
- { while(s2==0)
- { yanshi(300);//延時去抖
- while(s2==0)
- { if(id==11)
- //只允許在秒表模式下開始
- { TR1=1;//秒表開始 }
- switch(id)//根據ID值調整不同的位
- { case 1:a++;break;
- case 2:b++;break;
- case 3:c++;break;
- case 4:d++;break;
- case 5:a++;break;
- case 6:b++;break;
- case 7:c++;break;
- case 8:d++;break;
- case 9:e++;break;
- case 10:f++;break;
- }
- if(id<=4)
- //使時分調節時數值限制在合理范圍
- { if(a==3)
- a=0;
- if(a==2)
- { if(b>4)
- b=0; }
- if(b==10)
- b=0;
- if(c==6)
- c=0;
- if(d==10)
- d=0;
- shi=a*10+b;
- fen=c*10+d; }
- if(id>=5,id<11)
- //使年月日調節時數值限制在合理范圍
- { if(a==10)
- a=0;
- if(b==10)
- b=0;
- if(c==2)
- c=0;
- if(c*10+d>12)
- d=0;
- if(e==4)
- e=0;
- if(e*10+f>31)
- f=0;
- nian=a*10+b;
- yue=c*10+d;
- ri=e*10+f; }
- miao=0;
- while(s2==0);
- //等待放開數字加鍵
- yanshi(350);
- while(s2==0); }
- }
- }
- /************************************
- 按鍵3檢測
- 按鍵檢測,數字減鍵、秒表暫停鍵
- ************************************/
- void key3()
- { while(s3==0)
- { yanshi(300);//延時去抖
- while(s3==0)
- { if(id==11)
- //只允許在秒表模式下暫停
- { TR1=0;//秒表暫停 }
- switch(id)
- { case 1:a--;break;
- case 2:b--;break;
- case 3:c--;break;
- case 4:d--;break;
- case 5:a--;break;
- case 6:b--;break;
- case 7:c--;break;
- case 8:d--;break;
- case 9:e--;break;
- case 10:f--;break; }
- if(id<=4)
- //使時分調節時數值限制在合理范圍
- { if(a==-1)
- a=2;
- if(a==2)
- { if(b>=5)
- b=0; }
- if(b==-1)
- b=9;
- if(c==-1)
- c=5;
- if(d==-1)
- d=9;
- shi=a*10+b;
- fen=c*10+d; }
- if(id>4,id<11)
- //使年月日調節時數值限制在合理范圍
- { if(a==-1)
- a=9;
- if(b==-1)
- b=9;
- if(c==-1)
- c=1;
- if(d==-1)
- d=9;
- if(c*10+d>12)
- d=0;
- if(e==-1)
- e=3;
- if(f==-1)
- f=9;
- if(e*10+f>31)
- f=0;
- nian=a*10+b;
- yue=c*10+d;
- ri=e*10+f; }
- miao=0;
- while(s3==0);
- //等待放開數字減鍵
- yanshi(350);
- while(s3==0); }
- }
- }
- /************************************
- 按鍵4檢測--退出菜單
- 按鍵檢測,按住S4不放時顯示年月日
- 退出功能鍵
- ************************************/
- void key4()
- { while(s4==0)
- { yanshi(300);//延時去抖
- while(s4==0)
- { id=12;//退出菜單
- TR1=0;//關閉定時器1
- hm=0;//退出秒表時初始化秒表
- mm=0;//退出秒表時初始化秒表
- ff=0;//退出秒表時初始化秒表
- shizhong();
- //顯示年月時讓時鐘繼續走
- a=nian/10;
- b=nian%10;
- c=yue/10;
- d=yue%10;
- e=ri/10;
- f=ri%10;
- xianshi(); }
- }
- }
- /************************************
- 年月日調節
- ************************************/
- void nyr()
- { while(id==5)
- //按下菜單鍵5次時進入年月日調節
- { while(id<11)
- { key1();//調節位檢測
- key2();//數值加檢測
- key3();//數值減檢測
- a=nian/10;
- b=nian%10;
- c=yue/10;
- d=yue%10;
- e=ri/10;
- f=ri%10;
- xianshi();
- miao=0;
- key4();//退出檢測 }
- }
- }
- /************************************
- 秒表
- 精確到1%秒
- ************************************/
- void miaobiao()
- { while(id==11)
- //按下菜單鍵11次時進入秒表
- { shizhong();
- //進入秒表功能時讓時鐘繼續走
- key2();//秒表開始檢測
- if(tt==10)
- { tt=0;
- hm++; }
- if(hm==100)
- { mm++;
- hm=0; }
- if(mm==60)
- { mm=0;
- ff++; }
- key3();//秒表暫停檢測
- a=ff/10;
- b=ff%10;
- c=mm/10;
- d=mm%10;
- e=hm/10;
- f=hm%10;
- xianshi();
- key4();//退出秒表檢測 }
-
- /***********************************
- 初始化程序
- ************************************/
- void init()
- { t=0;//定時器0中斷次數初始化
- tt=0;//定時器1中斷次數初始化
- id=0;//調整位初始化
- hm=0;//秒表初始化
- mm=0;//秒表初始化
- miao=0;//秒初始化
- fen=53;//分初始化
- shi=12;//時初始化
- ri=5;//日初始化
- yue=5;//月初始化
- nian=9;//年初始化
- EA=1;//開總中斷
- ET0=1;//開定時器0中斷
- ET1=1;//開定時器1中斷
- TMOD=0x11;//設置定時器為工作方式1
- TH0=(65536-49380)/256;
- //裝初值,使定時器0每50毫秒產生一次中斷
- TL0=(65536-49380)%256;
- //裝初值,使定時器0每50毫秒產生一次中斷
- TH1=(65536-1001)/256;
- //裝初值,使定時器1每1毫秒產生一次中斷
- TL1=(65536-1001)%256;
- //裝初值,使定時器1每1毫秒產生一次中斷
- TR0=1;//開啟定時器0
- TR1=1;//開啟定時器1 }
- /************************************
- 主程序
- ************************************/
- void main()
- { init();//初始化
- while(1)
- { shizhong();//時鐘主程序
- key1();//按鍵1檢測
- if(id!=0)
- //沒有按下功能鍵時按鍵1按鍵2無效
- { key2();//按鍵2檢測
- key3();//按鍵3檢測 }
- key4();//按鍵4檢測
- nyr();//年月日調節
- miaobiao();//秒表
- if(id==12)//S1按鍵功能初始化
- id=0;//S1按鍵功能初始化
- a=shi/10;
- //當沒有按鍵按下時,顯示時分秒
- b=shi%10;//當無按鍵按下時,顯示時分秒
- c=fen/10;//當無按鍵按下時,顯示時分秒
- d=fen%10;//當無按鍵按下時,顯示時分秒
- e=miao/10;//當無按鍵按下時,顯示時分秒
- f=miao%10;//當無按鍵按下時,顯示時分秒
- xianshi();//動態掃描程序 }
- }
復制代碼
完整的Word格式文檔51黑下載地址:
課程論文——基于多位LED數碼管的數字鐘設計.doc
(267.24 KB, 下載次數: 29)
2018-5-19 12:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
黄色大片在线播放
|
欧美精品一区二区在线观看
|
日本一区不卡
|
国产亚洲一区二区三区
|
精品国产三级
|
国产精品久久久久久影院8一贰佰
|
91人人看|
99精品国产一区二区三区
|
91精品国产色综合久久不卡98
|
久久久久久国产精品免费免费狐狸
|
国产综合久久
|
在线播放国产一区二区三区
|
一级片在线免费播放
|
日本电影免费完整观看
|
久久免费大片
|
一区二区三区中文字幕
|
欧美在线视频网站
|
亚洲乱码一区二区
|
国产精品毛片久久久久久
|
亚洲高清视频一区二区
|
一区二区三区免费在线观看
|
日韩午夜网站
|
成人在线视频免费看
|
亚洲国产精品99久久久久久久久
|
免费精品久久久久久中文字幕
|
久久国产精品-国产精品
|
国产成在线观看免费视频
|
91超碰在线观看
|
欧美日韩久
|
国产色婷婷精品综合在线手机播放
|
久久伊人一区
|
国产精品亚洲二区
|
国产精品视频久久久久久
|
东京av男人的天堂
|
欧美亚洲日本
|
日韩视频中文字幕
|
最新中文字幕久久
|
在线观看av网站
|
久久99精品视频
|
天天综合网天天综合色
|
欧美成人一区二区
|