wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 18258|回復: 7
打印 上一主題 下一主題
收起左側

51單片機的多任務實時系統開發

  [復制鏈接]
跳轉到指定樓層
樓主
ID:70941 發表于 2015-4-5 22:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
    前言:
        此文章適合對51單片機感興趣,也想利用51實現簡單的實時系統的程序管理,適合學習交流用,望謹慎吐槽。


   準備一:
     所謂實時呢,這個概念三言兩語不好解釋, 在這里就不涉及太多的官方及專業名詞和術語。就像你用電飯煲做飯一樣,當你啟動后,是希望它一直工作,直到把 飯做好,而不希望它會中途出現故障什么的。然后在中斷,你希望想煮粥,那就停了電,再加水,調成煮粥模式,然后繼續工作,直到完成。這個,就有點實時的解 釋吧,如果這個解釋不夠形象,要不再舉例另一個,請私下聯系再作舉例。
   所謂多任務呢,這個應該不難解釋了,不過,還是再羅嗦一下。51單片機,就只有一個CPU,就像你在廚房做飯,只有你一個人,你又想煮飯,又想燒菜,還 想打掃衛生,但你一個人,不可能同時做的。所以,一個重要的概念就在這里。一個CPU不可能同時做這么多做事的。所以,它不得不像人一樣,一會做這個,一 會做那個。比如10分鐘掃一下地,然后10分鐘燒一個菜,然后10分鐘 去上個廁所,然后10分鐘再回來掃一下地。就這樣把時間分配好,但以一個小時來 看,就感覺你這一個小時是幾個工作同時在做,而且這幾個事互不影響的。
    好了,有了這兩個概念就差不多了。
    51單片機靠什么來得到這個確定的時間,并把它分割成一段一段的呢。
   下面就以一個多任務系統來說,因為51單片機的儲存空間不夠,一般不適合做大的系統移植。玩過STM32的人應該清楚uC/OS系統的移植,把uC /OS移植到51單片機,也不無不可,只是光是把一個系統移植上去,單片機就沒有多少空間做其它事了。就好比說,你一個硬盤是40G的,你裝了個win 7系統后都差不多占了20G了,那你硬盤就沒有多少空間再做其它事了。
   uC/OS不好移植了,就更別說把linux系統移植給51單片機了。那,就沒有合適給51單片機的嗎?答案是有的。
   如果你使用增強型的51單片機,還是可以考慮對uC/OS裁剪移植的。
   不過,對于增強型,還是普通型,還是基本51內核的單片機,都有一個比較適合做簡單的多任務系統開發的。

  在KEIL里,開發了一個適合對51使用的多任務實時系統的開發的。就是RTX51系統。
  RTX51分有兩個,一個是RTX51FULL,一個是RTX51TINY。
  在這里介紹RTX51TINY。
  對系統的移植,也不算移植吧,
   從硬件的角度來說,就是對CPU的時間調度做出設置,用來管理內存,時間等。越大的系統管理的越多,管理的也越周到,但操作也越復雜。
  從軟件的角度來說,就是添加把一系列的庫文件添加在程序里,然后,在程序里對庫里的子程序調用就可了。越大的系統里,提供的庫函數就越多,庫函數越多,調 用越來考慮的就越多。庫函數越少呢,程序應該會清晰一些,當然實現的功能及管理就跟不上去了。但對于51來說,RTX51TINY還是可以的。

   好,下面就一步一步來使用RTX51TINY來實現51的多任務的吧。

 一,庫文件的添加及KEIL的設置。
  
#include <rtx51tny.h>   //rtx51tny.h這個文件就是RTX51TINY的庫文件,只有一個文件,因為這個文件是keil里包含有的,不必去哪里找。            
   #include <reg51.h>
 然后就是打開工程的設置,如圖:
   
  在Target這個選項里,找到如圖中那個,選擇RTX51 Tiny這個選項,這樣,在編譯的時候,就不用提示頭文件不存在了。
這便是第一步在完成的。
 
二,對rtx51tny.h的解讀。
   
    從軟件的角度,也只是把這個頭文件添加進來,然后對庫函數做出調用。
 
 這個庫文件的函數就這幾個,所以,實現多任務管理,只要恰當的使用這個函數就可以了。
  其中,常用的幾個函數是  os_create_task(),os_send_signal(),os_wait().。由于os_wait1和os_wait2的這兩個函數是差不多的, 
 。
三,以一個簡單的程序分析:
   
#include <rtx51tny.h>               
#include <reg51.h>
void  job()  _task_  0  
{                  
  os_create_task (1);                
  os_create_task (2);              
  os_create_task (3); 
    while(1)
{  
    P1=~P1;
os_wait(K_TMO,50,0);
}   
}

void  num1() _task_ 1 
{
                     
   while(1)
{  
    P0=~P0;
     os_wait(K_TMO,100,0);
}                      
}

void num2 () _task_ 2  
{
  while (1)  
  {                     
    P2=~P2;                     
    os_wait1(K_SIG);
  }
}

void num4 () _task_ 3  
{
  while (1)  {                     
           
    P3=~P3;                     
  }
}

以上便是一個完整的程序。首先,這個程序有一個特點,就是沒有main函數了。 下面,就對這個程序作出分析并對rtx51加深學習和理解。
void  job()  _task_  0  {}, 這個,便是一個任務,所謂任務,就是披著嫁衣的函數。void,這個,名義上可有可無,但,有為好,一般不需要做什么返回。job()這個,就是函數名了。這個job可以隨便一個名字,自己可以隨便起。 然后_task_是一個關鍵字,必須要有,表示你建的這個函數就是一個任務。  然后 0呢, 表示這個任務的優先級是0。擁有最高優先級。
   因為,使用rtx51這個,并沒有main函數,所以,程序是從任務0開始的,然后,做任務0開始執行的后,程序該干嘛就干嘛了。那現在看一下任務0干了嘛。
  
os_create_task (1);   ,這個,就是任務0做的事。就是創建了任務1。因為 void  num1() _task_ 1 {}只是定義了任務1的函數,或者只是定義了任務1該干什么的。但,程序沒有調用到它,它就還不能正常工作。所以os_create_task (1);的工作就是調用了任務1,讓任務1可以正常工作。然后,把任務1創建后,就和任務0無關了。同理,也可以os_delete_task(1);來刪除任務1,這樣,刪除了任務1后,任務1里的內容就不再工作了。
  rtx51tiny這個可以定義16個任務。16個任務,對于用51實現的系統,基本就可以了。有一些初學者有點困惑的是,以為程序只是定義16個函數,這里只是說最大支持16個任務,而你要定義各種函數呢,定義多少個都可以的。
   然后,現在就是每個任務的作用,聯系及區別了。
   以上程序定義了0,1,2,3共四個任務。 
任務0所做的是:
  while(1)
{   
     P1=~P1;
 os_wait(K_TMO,50,0);
}   
   就是在一定的時間間隔里,對P1的值取反。os_wait(K_TMO,50,0);這個函數就是等待時間溢出,具體參考os_wait()這個函數。K_TMO表示是對時間溢出的方式做出等待,K_SIG,這個表示對信號作出等待。如果用到了K_SIG,就要用到os_send_signal 這個函數,表示對某個任務發送信號。然后,那個函數接收到了另一個任務接收到的信號,就跳出等待,作出下一步的指令。這個的50呢,表示的是表示50個時 間間隔。就像剛才在廚房里的時間間隔為10分鐘,那這里就等了50個分鐘。在rtx51默認的時間間隔是0.01s,也就是10ms,100Hz.,那 50個時間間隔,就是間隔了0.5s,那任務0的功能就是每隔0.5來對P1的狀態取反。

   同理,分析任務1就不難了。 也有一些人疑惑了,每個任務里都有一個while()循環,程序都進入了死循環,怎么再執行其它的指令呢。
 所 以,在這里需要接受的概念就是,每一個任務被建立之后,就不再管其它任務了,就自己在做自己的事了。每個程序就相當于一個main函數一樣了。或者這么 說,一個12Mhz的晶振,你定義了12個任務,然后,這個CPU就被分成12個CPU,每一個CPU的時鐘頻率為1Mhz,然后,每個CPU就在做自己 的事,和其它CPU無關,只是兩個CPU之間是可以通信管理了。這樣的解釋雖然不恰當,不過,還是很形象地讓不少同學接受了這個概念。

     以上便是一個簡單的多任務管理了。它有什么優點,這個, 就看你程序的用途了。舉個簡單的說法吧,比如你要用51單片機實現鍵盤的掃描,又要實現數碼管 的動態掃描顯示,還要實現通信,管理,控制等信息。其中一點,要做到鍵盤的掃描,就必須讓程序至少在每10ms內或者更嚴格的時間里,對鍵盤作出掃描,那 么,這個掃描程序如果用中斷來實現的話,還是可以接受的,但如果不是用中斷,而是在非中斷程序里實現的話,但,你的程序還是要做其它事的,而且程序在做其 它的事的情況下,還要照顧的鍵盤的掃描。還有數碼管的動態掃描,如果用定時中斷來說才能保證程序不因其它指令的執行而影響了數碼管顯示的延遲或不穩定。但 要保證這些都要照顧到,程序寫起來就畢竟麻煩了。但如果采用了這種多任務的方式的話,就免去了這個麻煩了。比如,鍵盤掃描就定義成一個任務,這樣,這個任 務的工作就是鍵盤的掃描,其它事也不做,這樣,就不受其它程序段的影響,而且這個任務也可以方便的移植到相同的系統中去。數碼管的顯示也定義一個任務來實 現。
    比如你還想添加一個超聲波的顯示上去,那么,你只要再定義多一個任務用來作超聲波測距的就可以了。對原有程序幾乎不需要作修改,而且對原來的程序結構也不改變。

以上的程序只是一個簡單的例子,而且很多人搜索的時候,也一般很容易搜索到這個類似的簡單的例子。
下面獻上自己編寫的,根據超聲波測距控制小車的前進后退的程序:
     
#include <rtx51tny.h>               
#include <reg51.h>

sbit left0=P1^0;                       
sbit left1=P1^1;                     
sbit right0=P1^2;                      
sbit right1=P1^3;
sbit echo=P3^3;
sbit trig=P3^5;
typedef unsigned char uchar;
typedef unsigned int uint;
long  numecho=0;
uint num;
job0 () _task_ 0  
  { 
               
  os_create_task (1);  
  os_create_task (2);              
  os_create_task (3);  
  os_create_task (4);
  os_create_task (5);  
  TMOD=0x91;
   while(1)
{  
    }   
 }

void back () _task_ 2  
{
    while(1)
{  
     
    os_wait1(K_SIG);
left0=1;
left1=0;
right0=0;
right1=1;
}
}                      
void go () _task_ 1 
{
    while (1)  
  {                     
      os_wait1(K_SIG);
left0=0;
left1=1;
right0=1;
right1=0;
    }
}


void Echo_test () _task_ 3  
{
 while (1) 
   {  
         trig=0;
 trig=1;
 TL1=0;
 TH1=0;
 os_wait(K_TMO,1,0);
 trig=0;
 TR1=1;
 os_wait(K_TMO,2,0);
 numecho=TH1*256+TL1;
 num=numecho*346/1000/2;
          }
}
 void panduan(void) _task_ 4
 {
    while(1)
{
 if(num>500)
 {
   os_send_signal(1);
 }
 if(num<500)
 {
   os_send_signal(2);
 }
 if(num<200)
 {
   os_send_signal(5);
 }
}   
   
 }


void stop() _task_ 5
{
   while (1)  
  {                     
        os_wait1(K_SIG);
left0=1;
left1=1;
right0=1;
right1=1;
   } 
}


在這個程序里,任務3就是作的是超聲波的測距,這個任務是不停在做,也就是超聲波在不斷的測距,把測到的距離存到num這個全局變量里,然后任務4就是根據距離作出判斷,根據不作的距離,讓小車前進,后退或停止。
   

  最后,對這個系統再作一些解釋。這個系統呢,肯定是用到了51單片機的資源的。首先,它需要做cpu作時間分割,那么就要用到定時器。這里就用了定時器0 來作定時用的。采用了工作方式1,并采用中斷方式。所以,在使用的時候,一定要注意,不能改變了TMOD里對定時器0的設置,也就是低四位的數值。也就是 說TMOD的值為0x01的,如果需要定時器1的時候,需要注意的。還有中斷,已經開戶了全局中斷和定時器0的中斷,所以,要用到中斷的時候,一定要注 意,不要在設置中斷的時候,把IE的值對應的中斷值改變了,這是注意一點的。

 而 且,學會了51的簡單的多任務實時系統的開發,那么,再去學STM32的嵌入式操作系統就不難了。只不過,嵌入式操作系統要操作和管理調用的庫函數比較 多,需要修改的參數也比較多,而且,也要對內存管理,時鐘,系統等作進一步了解。這樣,從51向嵌入式的轉型就更容易了。
    寥寥數語,不能把RTX51解釋清楚,更多的功能,還得靠讀者自己去發揮,出現的問題 也待大家去發現并解決了。

評分

參與人數 1黑幣 +8 收起 理由
承小諾 + 8 很給力!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:75926 發表于 2015-4-5 22:30 | 只看該作者
看了你的文章,我所理解的系統就是:所有任務都已經分配了固定時間,在固定時間只做固定的事情!因此要用到定時中斷,但這不就增加執行每件任務的堆棧的時間么?
回復

使用道具 舉報

板凳
ID:70941 發表于 2015-4-5 22:42 | 只看該作者
xiaos 發表于 2015-4-5 22:30
看了你的文章,我所理解的系統就是:所有任務都已經分配了固定時間,在固定時間只做固定的事情!因此要用到 ...

這個,我一般都不太用專業的術語去寫的,太專業的術語哪里都有,習慣用自己的話去描述……
回復

使用道具 舉報

地板
ID:75926 發表于 2015-4-5 22:42 | 只看該作者
能理解,這是能是增強型才有的實時任務嗎?
回復

使用道具 舉報

5#
ID:70941 發表于 2015-4-5 22:43 | 只看該作者
xiaos 發表于 2015-4-5 22:42
能理解,這是能是增強型才有的實時任務嗎?

rtx51是普通型的也可以的……
回復

使用道具 舉報

6#
ID:74145 發表于 2016-6-4 17:06 | 只看該作者
有幫助
回復

使用道具 舉報

7#
ID:182843 發表于 2017-3-25 15:15 | 只看該作者
開始學些謝謝好文章
回復

使用道具 舉報

8#
ID:209652 發表于 2017-7-22 15:50 | 只看該作者
真是大牛,講了之后真是闊然開朗
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
日韩欧美三级视频| 在线国产情侣| 毛片在线免费视频| 欧美精品久久久久久久久25p| 亚洲va欧美va国产综合久久| 日韩精品在线私人| 亚洲综合一区二区三区| 激情都市一区二区| 日韩欧美一区二区三区免费看| 国模私拍一区二区国模曼安| 色老板亚洲精品一区| 久草在线免费资源站| 日本熟女毛茸茸| 国产伦精品一区二区免费| 免费国产成人看片在线| 国产精品久久在线观看| 亚洲精品小视频| 狠狠躁夜夜躁人人爽天天天天97| www.欧美色图| 日韩av一级片| 亚洲五月综合| 成人www视频网站免费观看| 国产精品无码久久久久成人app| 美女被到爽高潮视频| 国产成人久久777777| 欧美中日韩免费视频| 日本午夜人人精品| 精品国产依人香蕉在线精品| 911精品国产一区二区在线| 一区二区三区四区在线播放| 成人av网站免费| 国产亚洲一级| 亚洲91久久| 极品束缚调教一区二区网站| av在线不卡精品| 伊人在我在线看导航| 在线视频国产三级| 成年网站免费视频黄| 久久久久久日本一区99| 国产又大又长又粗| 日韩成人一区二区三区| 亚洲图片第一页| 99久久综合网| www.日本一区| jizzjizz国产精品喷水| 伊人av成人| 欧美精品成人一区二区在线观看 | 国产精品久久久久久福利| 在线国产福利| a级免费观看| 日本免费黄色网| 久久精品免视着国产成人| www.久久久久久| 在线观看免费视频a| 制服.丝袜.亚洲.中文.综合懂色| 老熟妇高潮一区二区三区| 日韩网站在线播放| 国产又黄又粗又猛又爽的视频| 8x8x最新地址| 国产wwwxx| 亚洲综合色在线观看| 亚洲无吗一区二区三区| 少妇一级淫免费放| 日本高清一区二区视频| 一级日本黄色片| 白嫩情侣偷拍呻吟刺激| 少妇户外露出[11p]| 国产麻豆天美果冻无码视频| 国产精品无码一区二区三区| 国产肥白大熟妇bbbb视频| 中文字幕第二区| 精国产品一区二区三区a片| www日韩在线| 日本特黄一级片| 日韩精品久久久久久免费| 9i精品福利一区二区三区| 中文字幕一区二区免费| 99久久久国产精品无码免费| 亚洲国产精品久久久久爰性色| 蜜桃视频污在线观看| 久久综合香蕉| 色一情一乱一伦一视频免费看| 黄色片免费大全| 97中文字幕| 一线天粉嫩在线播放| 可以直接在线观看的av| 国产福利视频在线观看| 日本久久免费| 国产成人在线中文字幕| 成人在线免费观看网站| 亚洲国产日本| 国产一区在线观看麻豆| 91首页免费视频| 一区二区三区色| 在线观看亚洲精品视频| 欧美哺乳videos| 日韩亚洲综合在线| 91精品国产高清久久久久久| 成人福利在线视频| 欧美欧美一区二区| 91.com在线| 久久久精品视频国产| 欧美色图亚洲激情| 欧美日韩在线视频免费播放| 国产精品sm调教免费专区| 熟妇高潮一区二区高潮| 美女免费黄色| 老司机色在线视频| h视频在线免费观看| 国产精品迅雷| 高潮久久久久久久久久久久久久| av资源久久| 红桃视频国产精品| 成人性生交大合| 国产精品亚洲人在线观看| 91色在线porny| 欧美日韩亚洲精品内裤| 制服丝袜亚洲色图| 欧美xxxx综合视频| 日韩av色综合| 日本成人三级电影网站| 免费人成自慰网站| 久久久久成人精品无码中文字幕| 91l九色lporny| 最近中文字幕在线观看| 囯产精品久久久久久| 狠狠干夜夜草| 亚州色图欧美色图| 大香伊人中文字幕精品| 亚洲日韩中文字幕一区| 韩国在线视频一区| 国产电影一区在线| 色哟哟国产精品| 亚洲国产美女精品久久久久∴| 2024亚洲男人天堂| 成人激情春色网| av女优在线播放| 亚洲精品视频久久久| 日韩女优在线观看| 欧美大交乱xxxxxbbb| 久草在线在线视频| 色在线中文字幕| 欧美激情网址| 男人的天堂久久精品| 国产视频一区在线播放| 制服丝袜中文字幕亚洲| 欧美精品在线看| 免费av一区二区三区| 北条麻妃在线视频观看| 亚洲 欧美 国产 另类| 中文字幕在线日亚洲9| 日日干夜夜骑| av在线天堂| 蜜臀91精品国产高清在线观看| 国产精品vip| 国产日韩成人精品| 亚洲国产成人精品久久久国产成人一区| 欧美激情精品久久久久久黑人| 欧美黑人3p| 国产精品久久久久久9999| 亚洲高清毛片一区二区| 欧美jizzhd精品欧美满| 亚洲成人三级| 欧美一级三级| 成人午夜激情视频| 欧美日韩综合视频| 久久久久久高潮国产精品视| 欧美国产综合视频| 免费黄色在线视频| 亚洲欧美日本在线观看| 黄色直播在线| 加勒比久久高清| 全部av―极品视觉盛宴亚洲| 欧美视频免费在线观看| 欧美裸体男粗大视频在线观看| 亚洲精品成人三区| 蜜桃精品一区二区| 久久7799| 超碰国产在线观看| 久久久久av| 久久久青草青青国产亚洲免观| 日韩av在线一区| 日韩av电影免费观看高清| 男女猛烈激情xx00免费视频| 日本精品人妻无码77777| 影音日韩av| 欧美女同一区| 一级毛片免费高清中文字幕久久网| 国产精品嫩草99a| 亚洲人高潮女人毛茸茸| 色狠狠久久av五月综合| 国产毛片毛片毛片毛片毛片毛片| 男人操女人在线观看| 日韩二区三区| 欧美oldwomenvideos| 亚洲日本一区二区| 久久国产精品久久久久久久久久 | 韩国三级大全久久网站| 午夜精品剧场| 欧美日韩一区二区在线| 国产精品永久免费观看| 手机在线成人免费视频| 亚洲精品字幕在线| 岛国最新视频免费在线观看| 亚洲一区二区三区| 成人欧美一区二区三区白人| 亚州国产精品久久久| 久久成年人网站| 99产精品成人啪免费网站| 自拍视频在线| 欧美aa国产视频| 色综合天天狠狠| 国产精品视频免费在线观看| 91视频在线免费| 影音先锋男人资源站| 在线观看福利电影| 国产精品69毛片高清亚洲| 亚洲国内精品视频| 亚洲啊啊啊啊啊| 日韩乱码在线观看| 黄色在线播放| 欧美在线看片| 日韩一区二区电影在线| 久久精品国产一区二区三区日韩 | www一区二区| 欧美极品美女电影一区| 人妻有码中文字幕| 天堂av中文字幕| 在线手机中文字幕| 国产一区二区久久| 久久久国产在线视频| 韩日视频在线观看| 欧美熟妇交换久久久久久分类| 日本不卡不卡| 久久av中文字幕片| 亚洲女同一区二区| 亚洲中国色老太| 青青草免费av| 最全影音av资源中文字幕在线| 狠狠爱综合网| 欧美一卡二卡三卡| 欧美久久在线观看| 亚洲欧美另类在线视频| av色综合久久天堂av色综合在| 久久精品国产色蜜蜜麻豆| 日韩经典中文字幕| 999精品网站| 亚洲网站一区| 一区二区中文字幕在线观看| 国产精品福利影院| 国产伦精品一区二区三区视频免费| 国产亚洲精品久久久久久无几年桃| 天天综合入口| 男男视频亚洲欧美| 中文字幕久久亚洲| 久久久久亚洲AV成人网人人小说| 国产美女自拍视频| 国产精品羞羞答答在线观看| 欧美日韩不卡在线| 成人毛片100部免费看| 亚洲欧美色视频| 亚洲男人在线| 色综合一个色综合亚洲| 97视频资源在线观看| 97久久久久久久| 国产传媒在线观看| 国产亚洲制服色| 国产a一区二区| 国产农村妇女aaaaa视频| 1024在线看片你懂得| 国产精品美女久久福利网站| 国产主播欧美精品| 人妻中文字幕一区二区三区| 欧美男男video| 亚洲精选免费视频| 少妇特黄a一区二区三区| 国产理论片在线观看| 精品成人18| 日韩欧美亚洲综合| 久久综合九色综合88i| 久在线观看视频| 一道精品视频一区二区三区男同| 伊人久久大香线蕉av不卡| 欧美在线观看视频在线| 日韩av综合在线观看| 91麻豆精品国产91久久| 郴州新闻综合频道在线直播| 日韩av网站在线| 久久精品国产露脸对白| 在线播放av网站| 久久人人97超碰国产公开结果| 久久99国产精品自在自在app| 欧美午夜激情影院| 国内av一区二区三区| 国产视频一区二区在线| 国产尤物99| 日日躁夜夜躁白天躁晚上躁91| 欧美日韩一区二区三区在线电影| 欧美日本在线看| 原创真实夫妻啪啪av| 午夜成人影视| 成人污视频在线观看| 精品在线视频一区二区三区| 国产乱人乱偷精品视频| 视频福利一区| 国产一区二区三区在线观看视频 | www.成人69.com| 国产福利电影一区二区三区| 国产精品日韩电影| www.国产.com| 欧美男人操女人视频| 一本色道久久88亚洲综合88| 婷婷色一区二区三区| 91.xxx.高清在线| 午夜电影一区二区三区| 久久99久久99精品| 三级黄色在线观看| 超碰免费公开在线| 亚洲精品高清在线观看| 国产在线观看欧美| 国产视频xxx| 美女视频黄 久久| 国产精品 日韩| 黄色福利在线观看| 韩日视频一区| 国产精品视频1区| 国产又粗又猛又爽又黄91| 欧美亚洲国产一区| 精品国产一区二区三区久久狼黑人| 国产精品1000| 久本草在线中文字幕亚洲| 亚洲激情小视频| 杨钰莹一级淫片aaaaaa播放| 最新欧美色图| 精品国产第一区二区三区观看体验| 成人黄色a级片| 中文在线中文资源| 亚洲精品美女久久久| 青青草自拍偷拍| 精品视频一区二区三区在线观看| 日韩福利在线播放| 久久视频一区二区三区| 免费一级欧美片在线观看网站| 欧美日韩国产系列| 欧美bbbbb性bbbbb视频| 丁香婷婷久久| 欧美精品一区二区三区一线天视频 | 99久久.com| 亚洲码在线观看| 91精品国产高潮对白| 午夜精品影视国产一区在线麻豆| 社区色欧美激情 | 一级黄色片网站| 黄色精品免费| 成人久久久久久| 成人欧美日韩| 秋霞成人午夜伦在线观看| 欧美高清性xxxxhdvideosex| 天天爱天天做色综合| 91在线视频观看| 欧美日韩在线免费播放| www视频在线看| 91精品国产品国语在线不卡| 亚洲少妇xxx| 欧美人与性动交xxⅹxx| 在线播放日韩欧美| 国产精品久久免费| 伊人天天综合| 91入口在线观看| 国产xxxxxx久色视频在| www亚洲一区| 亚洲第一天堂久久| 男插女视频久久久| 亚洲欧美三级伦理| 国产精品一二三四五区| 国产在线成人| 日韩av一区二区三区在线| 污的视频网站| 亚洲婷婷在线视频| 国产黄色网址在线观看| 黄色成人在线观看网站| 性欧美暴力猛交69hd| 欧美1区二区三区公司| 国产suv一区二区三区88区| 国产男女无遮挡| 123区在线| 中文字幕亚洲无线码在线一区| 国产99久一区二区三区a片| 美女网站色91| 狠狠精品干练久久久无码中文字幕| 日本成人网址| 久久久久久久久久看片| 不用播放器的免费av| 色8久久久久| 欧美国产一区二区三区| 久久99国产视频| 亚洲男女一区二区三区| 中文字幕一区二区三区乱码不卡| aaa国产精品视频| 日本一区二区成人|