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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 12173|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

MSP430單片機串口通訊程序庫(精簡版)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:108615 發(fā)表于 2016-3-14 20:05 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式
本程序是《MSP430系列單片機系統(tǒng)工程設(shè)計與實踐》書里面的源碼,(包含工程文件(例4.1.6) )完整例程下載:http://m.izizhuan.cn/bbs/dpj-46245-1.html


關(guān)于本程序的詳細解說大家可以點擊上圖下載電子書

這個串口庫文件的調(diào)用方法可先下載完整代碼然后找到(例4.1.6)這一節(jié),里面有調(diào)用方法
uart.c :
  1. /*
  2.                
  3.                  MSP430F4XX單片機串口通訊程序庫(精簡版)

  4.   說明:該程序庫包括串口初始化、串口單字節(jié)收/發(fā)函數(shù),以及串口終端設(shè)備接口
  5.         函數(shù)。可以作為各種程序的底層驅(qū)動使用。
  6.             要使用該庫函數(shù),需要將本文件(UART.c)添加進工程,并在需要調(diào)用
  7.         串口函數(shù)的文件開頭處包含"UART.h"
  8.             本程序庫中的串口初始化函數(shù)會根據(jù)波特率為串口收發(fā)模塊自動選擇最
  9.         合適的時鐘源,自動配置波特率分頻系數(shù),用戶不需要了解串口底層寄存器。
  10.         對于4800bps及以下的波特率,會選擇ACLK作為時鐘;對于4800bps以上設(shè)置,
  11.         會選擇SMCLK作時鐘。若串口一直打開,為了降低功耗,盡量使用4800以下波
  12.         特率;若使用4800以上波特率,推薦間歇使用串口。使用38400bps以上波特率
  13.         最好適當(dāng)提高CPU主頻(2~4MHz)。
  14.             串口收發(fā)的等待過程中會將CPU置于休眠模式(LPM0或LPM3),以降低耗電。
  15.         但要注意某些應(yīng)用中可能不允許關(guān)閉時鐘(比如TimerA用SMCLK作時鐘,若串
  16.         口等待過程中進入LPM3,關(guān)閉了SMCLK,造成計時錯誤),遇到這類情況請修
  17.         改UART_LPM()函數(shù),刪除休眠語句或降低休眠深度,但功耗會有所增加。
  18.             程序后半部分是標(biāo)準終端輸入輸出函數(shù),對標(biāo)準終端設(shè)備輸入的數(shù)據(jù)流進
  19.         行解析。通過串口與PC機相連;在PC機運行超級終端程序,從而將PC的屏幕和鍵
  20.         盤映射成單片機的輸入/輸出終端。這樣在單片機程序中可以使用格式化輸入/
  21.         輸出函數(shù),如printf/scanf等。詳細的原理請參考《超級終端人機對話范例》
  22.         程序。終端輸入函數(shù)帶有退格功能,因此有輸入緩沖區(qū)。請根據(jù)需要自行修改
  23.         輸入行緩沖區(qū)大小(LINE_LENGTH),該值限定了終端設(shè)備每行最大能輸入的字符數(shù)。
  24.      
  25.   (C)西安電子科技大學(xué) 測控技術(shù)與儀器教研中心 編寫:謝楷 2008/02/21
  26.   
  27. */
  28. //******************************************************************************
  29. //                        
  30. //
  31. //                MSP430FE425
  32. //           +-----------------+
  33. //        /|\|              XIN|-
  34. //         | |                 | 32kHz
  35. //         --|RST          XOUT|-
  36. //           |                 |
  37. //           |        (TXD)P2.4|----------->  //  ----> RXD(2)
  38. //           |                 | 300~115200 bps            
  39. //           |        (RXD)P2.5|<-----------  //  <---- TXD(3)  PC(DB9)
  40. //           |                 |
  41. //           |             GND |------------------------GND(5)
  42. //
  43. //******************************************************************************
  44. #include "msp430x42x.h"
  45. #define F_ACLK  (32768)  /*ACLK對應(yīng)晶體頻率,勿修改*/

  46. char TxFlag=1;
  47. char RxFlag=0;
  48. /****************************************************************************
  49. * 名    稱:UART_Init()
  50. * 功    能:初始化串口。設(shè)置其工作模式及波特率。
  51. * 入口參數(shù):
  52. *           Baud         波特率    (300~115200)
  53.             Parity       奇偶校驗位('n'=無校驗  'p'=偶校驗  'o'=奇校驗)
  54.             DatsBits     數(shù)據(jù)位位數(shù)    (7或8)
  55.             StopBits     停止位位數(shù)    (1或2)
  56. * 出口參數(shù):返回值為1時表示初化成功,為0表示參數(shù)出錯
  57. * 范    例: UART_Init(9600,'n',8,1) //設(shè)成9600bps,無校驗,8位數(shù)據(jù),1位停止位
  58.             UART_Init(2400,'p',7,2) //設(shè)成2400bps,偶校驗,7位數(shù)據(jù),2位停止位
  59. ****************************************************************************/
  60. char UART_Init(long int Baud,char Parity,char DataBits,char StopBits)
  61. {
  62.     unsigned long int BRCLK;       //波特率發(fā)生器時鐘頻率
  63.     int FreqMul,FLLDx,BRDIV,BRMOD; //倍頻系數(shù)、DCO倍頻、波特率分頻系數(shù)、分頻尾數(shù)
  64.     int i;
  65.     unsigned char const ModTable[8]={0x00,0x08,0x88,0x2A,0x55,0x6B,0xdd,0xef};
  66.              //分頻尾數(shù)所對應(yīng)的調(diào)制系數(shù)(將0~7個"1"均勻分布在一個字節(jié)的8bit中)

  67.     //-------------設(shè)置波特率發(fā)生器時鐘源,并計算波特率時鐘頻率--------------
  68.     UTCTL0 &=~(SSEL0+SSEL1); //清除之前的時鐘設(shè)置
  69.     if(Baud<=4800)      
  70.     {
  71.       UTCTL0 |= SSEL0;       //低于4800的波特率,用ACLK,降低功耗
  72.       BRCLK=F_ACLK;          //波特率發(fā)生器時鐘頻率=ACLK
  73.     }
  74.     else
  75.     {
  76.       UTCTL0 |= SSEL1;            //高于4800的波特率,用SMCLK,保證速度
  77.       FreqMul=(SCFQCTL&0x7F)+1;   //獲得倍頻系數(shù)
  78.       FLLDx=((SCFI0&0xC0)>>6)+1;  //獲得DCO倍頻系數(shù)(DCOPLUS所帶來的額外倍頻)
  79.       BRCLK=F_ACLK*FreqMul;       //計算波特率發(fā)生器時鐘頻率=ACLK*倍頻系數(shù)
  80.       if(FLL_CTL0&DCOPLUS) BRCLK*=FLLDx; //若開啟了DCOPLUS,還要計算額外倍頻
  81.     }
  82. //------------------------設(shè)置波特率-------------------------   
  83.   if((Baud<300)||(Baud>115200))  return(0);  //波特率范圍300-115200bps
  84.   BRDIV=BRCLK/Baud;                          //計算波特率分頻系數(shù)(整數(shù)部分)
  85.   BRMOD=((BRCLK*8)/Baud)%8;                  //計算波特率分頻尾數(shù)(除不盡的余數(shù))
  86.   UBR00 = BRDIV%256;           
  87.   UBR10 = BRDIV/256;                         //整數(shù)部分系數(shù)
  88.   UMCTL0 = ModTable[BRMOD];                  //余數(shù)部分系數(shù)
  89. //------------------------設(shè)置校驗位-------------------------  
  90.   switch(Parity)
  91.   {
  92.    case 'n':case'N': U0CTL&=~PENA;     break;        //無校驗
  93.    case 'p':case'P': U0CTL|= PENA+PEV ;break;        //偶校驗
  94.    case 'o':case'O': U0CTL|= PENA; U0CTL&=~PEV;break;//奇校驗  
  95.   default : return(0);               //參數(shù)錯誤
  96.   }
  97. //------------------------設(shè)置數(shù)據(jù)位-------------------------   
  98.   switch(DataBits)
  99.   {
  100.    case 7:case'7': U0CTL&=~CHAR; break;   //7位數(shù)據(jù)
  101.    case 8:case'8': U0CTL|= CHAR; break;   //8位數(shù)據(jù)
  102.   default : return(0);      //參數(shù)錯誤
  103.   }
  104. //------------------------設(shè)置停止位-------------------------   
  105.   switch(StopBits)
  106.   {
  107.    case 1:case'1': U0CTL&=~SPB; break;  //1位停止位
  108.    case 2:case'2': U0CTL|= SPB; break;  //2位停止位
  109.   default : return(0);     //參數(shù)錯誤
  110.   }
  111.   P2SEL |= 0x30;              // P2.4,5 = USART0 TXD/RXD
  112.   ME1 |= UTXE0 + URXE0;       // Enable USART0 TXD/RXD
  113.   UCTL0 &= ~SWRST;            // Initialize USART state machine
  114.   IE1 |= URXIE0+UTXIE0;       // Enable USART0 RX interrupt
  115.   _EINT();
  116.   for(i=0;i<4000;i++);        //略延遲,等待波特率分頻穩(wěn)定
  117.   return(1); //設(shè)置成功
  118. }
  119. /****************************************************************************
  120. * 名    稱:UART_LPM()
  121. * 功    能:串口收/發(fā)等待過程中,將CPU及時鐘系統(tǒng)關(guān)閉,休眠省電
  122. * 入口參數(shù):無
  123. * 出口參數(shù):無
  124. * 說    明: 若與其他外設(shè)的時鐘沖突,可注釋掉該函數(shù),但會增加功耗。
  125. ****************************************************************************/
  126. void UART_LPM()
  127. {
  128.   if(UTCTL0&SSEL0) LPM3;  //若以ACLK 作時鐘,進入LPM3休眠(僅打開ACLK)
  129.   else             LPM0;  //若以SMCLK作時鐘,進入LPM0休眠(不關(guān)閉SMCLK)
  130. }
  131. /****************************************************************************
  132. * 名    稱:UART_PutChar()
  133. * 功    能:從串口發(fā)送1字節(jié)數(shù)據(jù)
  134. * 入口參數(shù):Chr:  待發(fā)送的一字節(jié)數(shù)據(jù)
  135. * 出口參數(shù):無
  136. * 說    明: 在等待發(fā)送完畢的過程中,CPU會休眠
  137. ****************************************************************************/
  138. void UART_PutChar(char Chr)
  139. {
  140.   while (TxFlag==0) UART_LPM(); // 等待上一字節(jié)發(fā)完,并休眠
  141.   TxFlag=0; //小技巧:等上一字節(jié)發(fā)完,再發(fā)本字節(jié),把字節(jié)間隔等待的時間讓給計算
  142.   TXBUF0=Chr;
  143. }
  144. /****************************************************************************
  145. * 名    稱:UART_GetChar()
  146. * 功    能:從串口接收1字節(jié)數(shù)據(jù)
  147. * 入口參數(shù):無  
  148. * 出口參數(shù):收到的一字節(jié)數(shù)據(jù)
  149. * 說    明: 如果串口沒有數(shù)據(jù),會一直等待。等待過程中,CPU會休眠
  150. ****************************************************************************/
  151. char UART_GetChar(void)
  152. {
  153.   while (RxFlag==0) UART_LPM(); // 收到一字節(jié)?
  154.   RxFlag=0;
  155.   return(RXBUF0);
  156. }
  157. /****************************************************************************
  158. * 名    稱:UART_IsRcvChar()
  159. * 功    能:判斷串口是否收到1字節(jié)數(shù)據(jù)
  160. * 入口參數(shù):無  
  161. * 出口參數(shù):1表示有數(shù)據(jù),0表示無數(shù)據(jù)
  162. * 說    明: 配合UART_GetChar()函數(shù)使用,先檢查到有數(shù)據(jù)再接收,可以消除阻塞
  163. ****************************************************************************/
  164. char UART_IsRcvChar()
  165. {
  166.   return(RxFlag);
  167. }

  168. /****************************************************************************
  169. * 名    稱:UART_RX()
  170. * 功    能:串口接收中斷,每接收到1字節(jié)會發(fā)生一次中斷
  171. ****************************************************************************/
  172. #pragma vector=UART0RX_VECTOR
  173. __interrupt void UART_RX (void)
  174. {
  175.   RxFlag=1;
  176.   /*在這里添加用戶中斷服務(wù)程序代碼,如將數(shù)據(jù)壓入接收緩沖等*/
  177.   __low_power_mode_off_on_exit();
  178. }
  179. /****************************************************************************
  180. * 名    稱:UART_TX()
  181. * 功    能:串口發(fā)送中斷,每發(fā)完1字節(jié)會發(fā)生一次中斷
  182. ****************************************************************************/
  183. #pragma vector=UART0TX_VECTOR
  184. __interrupt void UART_TX (void)
  185. {
  186.   TxFlag=1;
  187.   /*在這里添加用戶中斷服務(wù)程序代碼,如將數(shù)據(jù)從緩沖取出等*/  
  188.   __low_power_mode_off_on_exit();
  189. }

  190. /*===================以下是串口終端設(shè)備接口函數(shù)庫==========================*/

  191. #define LINE_LENGTH 20          /* 行緩沖區(qū)大小,決定每行最多輸入的字符數(shù)*/

  192. /*標(biāo)準終端設(shè)備中,特殊ASCII碼定義,請勿修改*/
  193. #define In_BACKSP 0x08          /* ASCII  <--  (退格鍵)  */
  194. #define In_DELETE 0x7F          /* ASCII <DEL> (DEL 鍵)  */
  195. #define In_EOL '\r'             /* ASCII <CR>  (回車鍵)  */
  196. #define In_SKIP '\3'            /* ASCII control-C */
  197. #define In_EOF '\x1A'           /* ASCII control-Z */

  198. #define Out_DELETE "\x8 \x8"    /* VT100 backspace and clear */
  199. #define Out_SKIP "^C\n"         /* ^C and new line */
  200. #define Out_EOF "^Z"            /* ^Z and return EOF */
  201. #include "stdio.h"

  202. /****************************************************************************
  203. * 名    稱:putchar()
  204. * 功    能:向標(biāo)準終端設(shè)備發(fā)送一字節(jié)數(shù)據(jù)(1個字符)
  205. * 入口參數(shù):ch: 待發(fā)送的字符  
  206. * 出口參數(shù):發(fā)出的字符
  207. * 說    明: printf函數(shù)會調(diào)用該函數(shù)作為底層輸出。這里從串口輸出字符到PC機的超
  208.             級終端軟件上,printf的結(jié)果將打印到超級終端上。若修改該函數(shù),將字
  209.             符以其他方式輸出,如顯示到LCD上,printf的結(jié)果將顯示在LCD上。
  210. ****************************************************************************/
  211. int putchar(int ch)
  212. {
  213.   if (ch == '\n')        //  '\n'(回車)擴展成 '\n''\r' (回車+換行)
  214.   {
  215.     UART_PutChar(0x0d) ; //'\r'
  216.   }
  217.   UART_PutChar(ch);      //從串口發(fā)出數(shù)據(jù)  
  218.   return (ch);
  219. }
  220. /****************************************************************************
  221. * 名    稱:put_message()
  222. * 功    能:向標(biāo)準終端設(shè)備發(fā)送一個字符串
  223. * 入口參數(shù):*s: 字符串(數(shù)組)頭指針(數(shù)組名)
  224. * 出口參數(shù):無
  225. ****************************************************************************/
  226. static void put_message(char *s)
  227. {
  228.   while (*s)        //當(dāng)前字符不為空 (字符串以0x00結(jié)尾)
  229.     putchar(*s++);  //輸出一個字符,指針指向下一字符
  230. }

  231. /****************************************************************************
  232. * 名    稱:getchar()
  233. * 功    能:從標(biāo)準終端設(shè)備接收一字節(jié)數(shù)據(jù)(1個字符)
  234. * 入口參數(shù):無
  235. * 出口參數(shù):收到的字符
  236. * 說    明: scanf函數(shù)會調(diào)用該函數(shù)作為底層輸入。這里從PC機鍵盤借助超級終端軟
  237.             件通過串口輸入字符到單片機上。scanf函數(shù)的輸入即源自PC機鍵盤。若
  238.             修改該函數(shù),將字符以其他方式輸入,如單片機IO口,可用按鈕向scanf
  239.             函數(shù)輸入數(shù)據(jù)。本函數(shù)帶有緩存,能夠處理退格等刪除操作。若不需要刪
  240.             除操作,可直接調(diào)用UART_GetChar()函數(shù)。
  241. ****************************************************************************/
  242. int getchar(void)
  243. {
  244.   static char io_buffer[LINE_LENGTH + 2];     /* Where to put chars */
  245.   static int ptr;                             /* Pointer in buffer */
  246.   char c;

  247.   for (;;)
  248.   {
  249.     if (io_buffer[ptr])                 //如果緩沖區(qū)有字符
  250.       return (io_buffer[ptr++]);        //則逐個返回字符
  251.     ptr = 0;                            //直到發(fā)送完畢為止,清空緩沖區(qū)指針
  252.   while(1)                                //緩沖區(qū)沒有字符,才會執(zhí)行到這里,開始等待字符輸入
  253.     { c = UART_GetChar();                //等待串口接收一個字符
  254.       if (c == In_EOF && !ptr)                //----EOF鍵(Ctrl+Z)----
  255.       {                                        //EOF符只能在未輸入其他字符時才有效
  256.         put_message(Out_EOF);                //讓終端顯示EOF符
  257.         return EOF;                        //返回EOF符
  258.       }
  259.       if ((c == In_DELETE)||(c==In_BACKSP)) //----退格或DEL鍵----
  260.       {
  261.         if (ptr)
  262.         {
  263.           ptr--;                                //從緩沖區(qū)刪掉一個字符
  264.           put_message(Out_DELETE);                //讓終端顯示也刪掉一個字符
  265.         }
  266.       }
  267.       else if (c == In_SKIP)                        //-----取消鍵 Ctrl + C----
  268.       {
  269.         put_message(Out_SKIP);                        //讓終端顯示放棄本行跳到下一行
  270.         ptr = LINE_LENGTH + 1;                  /* 這里永遠是0(結(jié)束符) */
  271.         break;
  272.       }
  273.       else if (c == In_EOL)                        //--------遇到回車鍵------
  274.       {
  275.         putchar(io_buffer[ptr++] = '\n');        //讓終端顯示換行
  276.         io_buffer[ptr] = 0;                        //末尾增添字符串結(jié)束字符NULL
  277.         ptr = 0;                                //指針清空
  278.         break;                                        //跳出后開始返回數(shù)據(jù)
  279.       }
  280.       else if (ptr < LINE_LENGTH)                //----正常ASCII碼字符----
  281.       {
  282.         if (c >= ' ')                                //刪除0x20以下的其他ASCII碼
  283.         {
  284.           putchar(io_buffer[ptr++] = c);        //存入緩沖區(qū)
  285.         }
  286.       }
  287.       else                                        //--------沖區(qū)已滿--------
  288.       {
  289.         putchar('\7');                //向終端發(fā)送鳴響符,PC會響一聲,提示已滿
  290.       }
  291.     }
  292.   }
  293. }
復(fù)制代碼



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

相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
国产福利一区二区在线精品| 91精品国产高清久久久久久| 中文字幕中文字幕在线中高清免费版| 黄网站免费在线| 亚洲精品videossex少妇| 久久99伊人| 三年片免费观看大全| 日本欧美国产在线| 国产精品无遮挡| 国产精伦一区二区三区| 成年人羞羞的网站| 日本中文字幕在线| 日本在线观看a| 久久免费精品日本久久中文字幕| 亚洲男人的天堂一区二区| 精品香蕉视频| www 日韩| 亚洲综合小说网| 久久精品国产亚洲av久| 国产亚洲精品美女久久久m| 日韩三级.com| 国产精品系列在线观看| 亚洲综合网站| 理论视频在线| 午夜视频福利在线观看| 无码一区二区精品| 欧美精品欧美精品系列c| 亚洲精品自在久久| 亚洲天堂中文字幕| 一区二区日韩免费看| 日韩欧美一区二区三区在线观看| eeuss影院www天堂免费| 中文字幕69页| 亚洲一二三四五| 欧美日韩在线观看一区| 国产精品91一区| 亚洲高清色综合| 中文字幕亚洲综合久久菠萝蜜| 91欧美大片| 成人免费图片免费观看| jiuse九色最新地址| 欧美成人一区二区视频| 免费高清视频在线观看| 久久免费视频1| 久久久精品欧美| 亚洲成a人v欧美综合天堂| 日韩在线一二三区| 国产精品自在线拍| 久久精品国产福利| 第一福利在线| h在线观看视频免费网站| 欧美另类videos粗暴黑人| 久久9999久久免费精品国产| 美女脱光内衣内裤| 巨胸大乳www视频免费观看| 亚洲 欧美 日韩 国产综合 在线| 国产精品美女无圣光视频| 日韩激情在线观看| 国产精品欧美在线观看| sm久久捆绑调教精品一区| 色琪琪免费视频网站| 日韩一区二区三区不卡| 青青草手机在线视频| 91色国产在线| 欧美一区二视频在线免费观看| 九九精品视频在线观看| 欧美一区二区性放荡片| 亚洲黄色尤物视频| 国产传媒一区在线| 在线看片日韩| 波多野结衣一区二区三区免费视频| 影音先锋中文在线视频| dj大片免费在线观看| 免费一级淫片| 在线观看免费p片视频网站地址| 亚洲一区二区激情| 免费黄色在线网址| 手机免费av片| 成年女人18级毛片毛片免费| 国产乱码精品一区二区三区不卡| 久久久久久国产精品三级玉女聊斋| 日韩精品一区二区三区四区| 亚洲永久免费av| 久久免费偷拍视频| 麻豆精品视频在线| 精品1区2区3区4区| 先锋影音久久| 亚洲美女视频在线免费观看| 国产一区二区电影在线观看| 日韩欧美综合| 色婷婷av一区二区三区丝袜美腿| 亚洲一二三四| 色yeye免费人成网站在线观看| 中文字幕免费在线视频| 2色视频网站| 麻豆福利视频| 日本不卡三区| 国产露出视频在线观看| 丝袜在线视频| 视频欧美精品| yy6080久久伦理一区二区| 波多野结衣乳巨码无在线观看| 每日更新在线观看av| 理论片午午伦夜理片在线播放| 国产精品久久一区二区三区不卡 | 欧美少妇激情| 老牛精品亚洲成av人片| 99re6在线视频精品免费| 国产三级伦理片| 麻豆久久久久久久久久| 免费中文字幕视频| 玖玖爱这里只有精品| 精品国产大片大片大片| 日本高清www| 久久亚洲AV无码| 国产精品人人人人| 国产精品视频一二区| 97人妻精品一区二区三区软件| 亚洲欧洲成人在线| 先锋成人影音| 99免费视频| 成年人视频免费看| 欧美日韩xx| 91精品福利观看| 国产精品美女久久久久| 欧美日韩中出| 欧美日韩一区二区三区四区不卡| 噜噜噜天天躁狠狠躁夜夜精品| 97视频热人人精品免费| 日本午夜一本久久久综合| 日韩va亚洲va欧美va久久| 久久婷婷色综合| 91黄色小视频| 欧美巨大另类极品videosbest | 午夜伦伦电影理论片费看| 高清毛片在线看| 国内不卡的一区二区三区中文字幕| 亚洲精品国产成人影院| 欧美日本免费| 久久久久国产精品午夜一区| 久久色.com| 欧美亚洲一区二区三区四区| 欧美日韩一二三| 欧美一区二区三区色| 欧美成人精品在线| 国产精品美乳一区二区免费| 一区二区三区四区欧美日韩| 国产自产在线视频| www.免费av| 国产女人被狂躁到高潮小说| 亚洲免费成人在线| 国产免费av电影| www.黄在线| 亚洲中文字幕一区二区| 香蕉在线播放| 欧美日韩在线视频免费观看| 美女100%一区| 精品视频成人| 日日夜夜免费精品| 亚洲精品免费视频| 中文字幕日韩欧美在线| 91国产精品电影| 一区二区精品视频| 91视频免费观看网站| 免费观看黄色av| 污污软件在线观看| 国产精品蜜芽在线观看| 日韩欧美高清在线播放| 99久精品国产| 欧美日韩在线第一页| 日韩一区二区三区视频| 日本精品在线视频| 国产精品后入内射日本在线观看| 白嫩情侣偷拍呻吟刺激 | 成人av影视| 国产网友自拍视频导航网站在线观看| 成人性生活视频| 怡红院精品视频在线观看极品| 中文字幕一区视频| 中文字幕精品久久久久| 日本免费高清不卡| 91激情视频在线观看| 亚洲一区二区色| 久草亚洲一区| 欧美7777| 蜜臀av性久久久久蜜臀av麻豆| 国产精品福利电影一区二区三区四区| 日韩av影院在线观看| 国产精品久久久久久超碰| 四虎影视永久免费在线观看一区二区三区| 男女曰b免费视频| 很污很黄的网站| 5g成人永久免费影院| 最近2018中文字幕免费在线视频| 黑人玩欧美人三根一起进| 午夜久久一区| 中文字幕一区二区三区av| 精品激情国产视频| 欧美一级中文字幕| 亚洲精品乱码久久久久久久久久久久| 国产三级理论片| 亚洲成人影院少妇| 日韩精品永久网址| 亚洲午夜羞羞片| 久久国产精品久久国产精品| 欧美日韩午夜精品| 日本最新高清不卡中文字幕| 日本免费色视频| 二区三区在线视频| av观看在线| 日韩精品视频网站| 亚洲成人黄色网址| 影音先锋男人的网站| 国产污在线观看| 欧美**室bdsm视频| 996久久国产精品线观看| 972aa.com艺术欧美| 久青草国产97香蕉在线视频| 日韩 欧美 高清| 姝姝窝人体www聚色窝| 男男激情在线| 好吊一区二区三区| 亚洲国产另类av| 亚洲999一在线观看www| 又色又爽又高潮免费视频国产| 国产一级免费观看| 97在线资源| 欧美国产三区| 日韩网站在线看片你懂的| 宅男av一区二区三区| 国产精品麻豆一区| 7878视频在线观看| 日韩电影免费网址| 欧美日韩日日夜夜| 中文字幕一区二区三区四区五区六区 | 中文字幕一区三区| 国产精品一区二区久久久| 国内自拍视频一区| 五月婷婷六月丁香综合| 日韩免费小视频| 国产精品女同互慰在线看| 日韩在线高清视频| 黄色片免费在线观看视频| 97成人在线观看| 伊人久久青青草| 红桃成人av在线播放| 亚洲mv大片欧洲mv大片精品| 国内精品免费午夜毛片| 国内自拍偷拍视频| 欧美性受xxxx黑人xxxx| 午夜影院在线观看国产主播| 91一区二区在线| 国产精品国内视频| 午夜激情福利网| 97在线资源在| 午夜亚洲福利| 精品在线观看国产| 污污网站免费观看| 最近2018年中文字幕在线| 国产午夜久久av| 精品久久久精品| 99久久伊人精品影院| 中国美女乱淫免费看视频| 91国内精品在线视频| 在线观看亚洲| 亚洲一区二区久久| 欧美精品卡一卡二| 影音先锋男人每日资源站| 涩涩视频在线免费看| 国产精品资源在线看| 性欧美办公室18xxxxhd| 最近中文字幕一区二区| 狠狠色成人综合网图片区| 香蕉大人久久国产成人av| 久久人人超碰精品| 一区二区在线观看视频在线观看| 国产超碰91| 91麻豆精品成人一区二区| 理论视频在线| 91欧美激情一区二区三区成人| 欧美风情在线观看| 久久久国产精品久久久| 九九热精品在线视频| 日本一区二区三区视频在线| 92国产精品观看| 亚洲精品日韩激情在线电影| 一二三区免费视频| 怡红院av在线| 国产精品国产a| 亚洲免费久久| 在线观看免费黄色小视频| 成人福利片在线| 在线观看欧美精品| 日本一区二区三不卡| 色噜噜在线播放| 不卡视频在线| 欧美一区二区三区四区高清| 波多结衣在线观看| 午夜精彩视频| 99天天综合性| 国产精品免费网站| 做爰视频毛片视频| 久久夜色电影| 亚洲天堂男人天堂| 成人不卡免费视频| 灌醉mj刚成年的大学平面模特| 北条麻妃国产九九九精品小说| 亚洲视频自拍偷拍| 四虎国产成人精品免费一女五男| 日韩大胆人体| 国产主播一区二区| 国模吧一区二区三区| 久久精品青草| 国内伊人久久久久久网站视频| 好吊妞视频一区二区三区| 欧洲精品久久久久毛片完整版| 在线观看91精品国产麻豆| 四虎精品一区二区| 超碰在线观看免费版| 大伊人狠狠躁夜夜躁av一区| 久久久久国产一区| 黄色美女网站在线观看| 成人国产电影网| 国产大片精品免费永久看nba| 老熟妇一区二区三区| 欧美一级一片| 久久亚洲影音av资源网 | 麻豆视频在线免费观看| 亚洲地区一二三色| 成年人三级黄色片| 黄色在线免费网站| 日本大香伊一区二区三区| 特黄特色免费视频| 国产盗摄在线视频网站| 在线91免费看| www.五月天色| 超碰在线一区二区三区| 日本一区二区久久| 久草热视频在线观看| 日本亚洲欧美| 黑人巨大精品欧美一区免费视频 | 亚洲韩国在线| 成年人黄色网址| 99re这里只有精品6| 丁香色欲久久久久久综合网| 综合五月激情网| 久久人体av| 最近2019年好看中文字幕视频| 日本熟伦人妇xxxx| 在线能看的av网址| 亚洲成人av资源网| 亚欧视频在线观看| 2019中文亚洲字幕| 在线观看日韩av| 黄色激情小视频| 人人爱人人干婷婷丁香亚洲| 日韩中文字幕亚洲| 97超视频在线观看| 免费在线播放第一区高清av| 欧美久久久久久一卡四| 91福利免费在线| 亚洲午夜羞羞片| 欧美熟妇激情一区二区三区| 成人免费观看49www在线观看| 久久成人人人人精品欧| 免费激情视频网站| 久久精品国产99久久6| 中文字幕av日韩精品| 中文字幕欧美一区二区| 日韩欧美在线播放| 一区二区成人网| 欧美videossex| 精品视频久久久久久久| 在线能看的av| 欧美视频一区| 日本高清一区| 亚洲1024| 欧美福利视频一区| 国产成人精品一区二三区| 91精品精品| 免费毛片一区二区三区久久久| 国产精品视频福利一区二区 | **女人18毛片一区二区| 成人在线视频网址| 国产偷激情在线| 91久久精品午夜一区二区| 日本精品人妻无码77777| 99re久久最新地址获取| 久久超碰亚洲| 香蕉av一区| 日韩三级视频在线观看| 中文字幕乱码视频| 国产精品7m凸凹视频分类| 日本老师69xxx| 天堂网.www在线资源| 亚洲一区自拍偷拍| www.99re6| 一区福利视频| 91传媒免费视频| yellow在线观看网址|