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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC15W4K32S4單片機ADC讀取 串口收發 設定定時器的代碼與Proteus仿真圖

[復制鏈接]
跳轉到指定樓層
樓主
ID:867327 發表于 2021-1-3 13:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
文件夾 e:\dpj\20210101
目標 STC15W4K32S4
proteus 新建單片機 串口 分壓調節電壓源 更改單片機主頻為11059200
虛擬串口軟件安裝及配置
單片機使用COM4 串口調試器使用COM3 波特率 115200
ADC讀取電壓數據正常 P1.0 P1.1
串口通訊測試正常 ADC 通過可變電阻調節電壓后 模擬量變化發送串口
串口通訊測試正常 中斷接收<>之間字符,回送  因地址空間,字符個數<10
程序運行時間以protues左下角的運行時間為準  見截圖
定時器設置及中斷處理 以1ms為周期,每3000ms在串口發送字符
串口命令設置定時器發送數據到串口的時間間隔 <后的第一個字符為A 第二個為數字 表示間隔秒數
仿真原理圖如下(STC15W4K32S4單片機proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU Limited ------------------------------------------------*/
  3. /* --- STC15F4K60S4 系列 定時器1用作串口1的波特率發生器舉例------------*/
  4. /* 如果要在程序中使用此代碼,請在程序中注明使用了STC的資料及程序        */
  5. /* 如果要在文章中應用此代碼,請在文章中注明使用了STC的資料及程序        */
  6. /*---------------------------------------------------------------------*/

  7. //本示例在Keil開發環境下請選擇Intel的8058芯片型號進行編譯
  8. //若無特別說明,工作頻率一般為11.0592MHz

  9. #include        "STC15Fxxxx.H"
  10. //#include "reg51.h"
  11. #include <stdio.h>

  12. typedef unsigned char BYTE;
  13. typedef unsigned int WORD;
  14. //typedef unsigned int u16;  //對數據類型進行聲明定義
  15. //typedef unsigned char u8;

  16. #define FOSC 11059200L          //系統頻率
  17. #define BAUD 115200             //串口波特率

  18. #define NONE_PARITY     0       //無校驗
  19. #define ODD_PARITY      1       //奇校驗
  20. #define EVEN_PARITY     2       //偶校驗
  21. #define MARK_PARITY     3       //標記校驗
  22. #define SPACE_PARITY    4       //空白校驗

  23. #define PARITYBIT NONE_PARITY   //定義校驗位
  24. /* STC15Fxxxx.H中已定義
  25. //sfr P0M1 = 0x93;
  26. //sfr P0M0 = 0x94;
  27. //sfr P1M1 = 0x91;
  28. //sfr P1M0 = 0x92;
  29. //sfr P2M1 = 0x95;
  30. //sfr P2M0 = 0x96;
  31. //sfr P3M1 = 0xb1;
  32. //sfr P3M0 = 0xb2;
  33. //sfr P4M1 = 0xb3;
  34. //sfr P4M0 = 0xb4;
  35. //sfr P5M1 = 0xC9;
  36. //sfr P5M0 = 0xCA;
  37. //sfr P6M1 = 0xCB;
  38. //sfr P6M0 = 0xCC;
  39. //sfr P7M1 = 0xE1;
  40. //sfr P7M0 = 0xE2;

  41. //sfr AUXR  = 0x8e;               //輔助寄存器

  42. //sfr P_SW1   = 0xA2;             //外設功能切換寄存器1
  43. */
  44. #define S1_S0 0x40              //P_SW1.6
  45. #define S1_S1 0x80              //P_SW1.7

  46. #define ADC_POWER   0x80            //ADC電源控制位
  47. #define ADC_FLAG    0x10            //ADC完成標志
  48. #define ADC_START   0x08            //ADC起始控制位
  49. #define ADC_SPEEDLL 0x00            //540個時鐘
  50. #define ADC_SPEEDL  0x20            //360個時鐘
  51. #define ADC_SPEEDH  0x40            //180個時鐘
  52. #define ADC_SPEEDHH 0x60            //90個時鐘

  53. //sbit P22 = P2^2;
  54. unsigned int ch;a,b;
  55. unsigned int dd=0;
  56. unsigned int cc=0;
  57. unsigned int cc0=0;
  58. unsigned int cc1=0;
  59. unsigned int cc00=0;
  60. unsigned int cc01=0;
  61. unsigned int cc10=0;
  62. unsigned int cc11=0;
  63. unsigned int time0count0 = 0 ;
  64. unsigned int time0count1 = 0 ;
  65. unsigned int time0count = 3000 ;
  66. bit busy;
  67. char receivechar = 0;
  68. int receive_count = 0;
  69. int received = 0;
  70. WORD receivestr[10];

  71. void InitUart();
  72. void InitADC();
  73. void Timer0Init();
  74. void SendData(BYTE dat);
  75. void SendString(char *s);
  76. void serial_put_uint(unsigned int number);
  77. void Delay(WORD n);
  78. //void ShowResult(BYTE ch);
  79. unsigned int GetADCResultint(BYTE ch);
  80. void main()
  81. {
  82.         int initreceivestrcount=0;
  83.         unsigned int tt0=0,tt1=0;
  84. //                unsigned int d1,d2,d3,i;
  85.         unsigned int i=0;
  86.         if (i == 0 )                //初始化tt0 tt1 P0 -P7 數據
  87.         {
  88.                 /*
  89.                 例如將P1M0=0X60和P1M1=0X00譯成bai二進制代碼是
  90.                 P1M0=0110 0000,duP1M1=0000 0000.
  91.                 按照I/O口工作模式設置zhi規定
  92.                 都為0時為準雙向口(dao傳統8051單片機zhuanI/O口模式)
  93.                 為0,1時為推挽(shu強上拉輸出),
  94.                 為1,0時為高阻(僅輸入),
  95.                 為1,1時為開漏(內部上拉斷開,須外加上拉電阻)
  96.                 你選擇的是P1M0和P1M1所以針對的是P1口的操作,
  97.                 將兩個二進制代碼一位位的比較可知:P1.0~P1.4及P1.7都為0,
  98.                 故這些I/O口設置的是標準狀態;P1.5和P1.6為高阻態
  99.                 (P1M0上的第六位和第七位都為1,P1M1上的第六位和第七位都是0。1,0時為高阻)
  100.                 */
  101.                 tt0=16640;
  102.                 tt1=tt0/256;
  103.                 P0M0 = 0x00;
  104.                 P0M1 = 0x00;
  105.                 P1M0 = 0x00;
  106.                 P1M1 = 0x03;
  107.                 P2M0 = 0x00;
  108.                 P2M1 = 0x00;
  109.                 P3M0 = 0x00;
  110.                 P3M1 = 0x00;
  111.                 P4M0 = 0x00;
  112.                 P4M1 = 0x00;
  113.                 P5M0 = 0x00;
  114.                 P5M1 = 0x00;
  115.                 P6M0 = 0x00;
  116.                 P6M1 = 0x00;
  117.                 P7M0 = 0x00;
  118.                 P7M1 = 0x00;
  119.         }
  120.         InitUart();                     //初始化串口
  121.         //printf ("20200102 第一次調試  a  1 取左字節   a %d A/256=A %d   C51\n" , tt0,tt1 ); /* ?? "Hello C51 " */
  122.         SendString("20200102 第二次調試 \r\n");
  123.         initreceivestrcount=0;
  124.         while (initreceivestrcount<10)                //初始化 receivestr
  125.         {
  126.                 receivestr[initreceivestrcount]=0;
  127.                 initreceivestrcount = initreceivestrcount + 1 ;
  128.         }
  129.         //printf ("Hello");  //printf 不能使用 編譯通過 不能仿真運行
  130.         InitADC();                      //初始化ADC
  131.         Timer0Init();  //定時器0初始化
  132.         /* 除法測試
  133.                 //printf ("Hello  ADC 第y次調試 a  1 加代碼a %d A/256=A %d   C51\n" , tt0,tt1 );  
  134. //                sprintf(str," receive %d \r\n",receivechar);
  135. //                SendString(str);
  136. //                sprintf(str," d1 %d a \r\n",tt0);
  137. //                SendString(str);
  138. //                sprintf(str,"  d2 %d  a \r\n",tt1);
  139. //                SendString(str);
  140. //                sprintf(str,"  d3 %d a \r\n",d3);
  141. //                SendString(str);
  142.         */
  143.     SendString("c STC15W4kS32\r\n Uart Test !\r\n");
  144.     while(1)
  145.                 {

  146.                         if (received == 1)                // 在串口接收預定義字符后回送  20210103 增加控制定時顯示功能
  147.                         {
  148.                                 /*  除法測試及sprintf
  149. //                                SendString("\r\n");
  150. //                                d1 = receivechar;
  151. //                                d2 = d1 ;
  152. //                                d3=d2*256;
  153. //                                d3=d1-d3;
  154. //                                sprintf(str," receive %d a\r\n",receivechar);
  155. //                                SendString(str);
  156. //                                sprintf(str," d1 %d b \r\n",d1);
  157. //                                SendString(str);
  158. //                                sprintf(str,"  d2 %d  c \r\n",d2);
  159. //                                SendString(str);
  160. //                                sprintf(str,"  d3 %d d \r\n",d3);
  161. //                                SendString(str);
  162. //                                SendString(receivestr);receivechar
  163.                                 */
  164.                                 serial_put_uint(receivechar);
  165.                                 SendString(" start ");
  166.                                 //serial_put_uint(11);
  167.                                 for (i=0;i<receive_count;i++)
  168.                                 {
  169.                                         SendData(receivestr[i]);
  170.                                 }
  171.                                 SendString(" COUNT= ");
  172.                                 serial_put_uint(receive_count);
  173.                                 receive_count = 0 ;
  174.                                 if (receivestr[1] == 65 )
  175.                                 {
  176.                                         time0count = ( receivestr[2] - 48 ) * 1000 ;
  177.                                         SendString(" \r\n  串口設定 time0   ");                                                                                                
  178.                                         serial_put_uint(time0count/1000);
  179.                                         SendString(" 秒定時  ");        
  180.                                 }                                       
  181.                                 SendString(" \r\n");
  182.                                 received = 0 ;
  183.                         }
  184.                         if (time0count0 != time0count1)                         // 串口設定的秒定時
  185.                         {
  186.                                 SendString(" time0   ");                                                                                                
  187.                                 serial_put_uint(time0count/1000);
  188.                                 SendString(" 秒定時 執行 ");                                                                                                
  189.                                 serial_put_uint(time0count0);
  190.                                 SendString(" \r\n ");               
  191.                                 time0count1 = time0count0;
  192.                         }                                
  193.                         b=b+1;
  194.                         dd=0;
  195.                         cc00 = GetADCResultint(dd);                 //讀取ADC 0 P1.0 數據
  196.                         if (cc01 != cc00)                         // ADC 0 P1.0 數據變化發送串口
  197.                         {
  198.                                 SendString(" ADC ");                                                                                                
  199. //                                serial_put_uint(b);
  200.                                 SendString(" ch ");                                                                                                
  201.                                 serial_put_uint(dd);
  202.                                 SendString(" new ");                                                                                                
  203.                                 serial_put_uint(cc00);
  204.                                 SendString("  old ");                                                                                                
  205.                                 serial_put_uint(cc01);
  206.                                 SendString(" end \r\n");                                                                                                
  207.                                 //printf ("  ADC %d  ch %d :0x  %x 0d %d  \n", b,dd,cc00,cc01 );
  208.                                 cc01 = cc00;
  209.                         }
  210.                         dd=1;
  211.                         cc10 = GetADCResultint(dd);                        //讀取ADC 1 P1.1 數據
  212.                         if (cc11 != cc10)                                // ADC 1 P1.1 數據變化發送串口
  213.                         {
  214.                                 SendString(" ADC ");                                                                                                
  215. //                                serial_put_uint(b);
  216.                                 SendString(" ch ");                                                                                                
  217.                                 serial_put_uint(dd);
  218.                                 SendString(" new ");                                                                                                
  219.                                 serial_put_uint(cc10);
  220.                                 SendString("  old ");                                                                                                
  221.                                 serial_put_uint(cc11);
  222.                                 SendString(" end \r\n");                                                                                                
  223.                                 //printf ("  ADC  %d ch %d :0x  %x 0d00 %d  \n", b,dd,cc10,cc11 );
  224.                                 cc11=cc10;
  225.                         }
  226.                         dd=0;
  227.                         if  (b>10000) b=0;

  228.                 }
  229. }

  230. /*******************************************************************************
  231. * 函 數 名         : Timer0Init
  232. * 函數功能                   : 定時器0初始化
  233. * 輸    入         : 無
  234. * 輸    出         : 無
  235. *******************************************************************************/
  236. void Timer0Init()
  237. {
  238.         TMOD|=0X01;//選擇為定時器0模式,工作方式1,僅用TR0打開啟動。

  239.         TH0=0XFC;        //給定時器賦初值,定時1ms
  240.         TL0=0X18;        
  241.         ET0=1;//打開定時器0中斷允許
  242.         EA=1;//打開總中斷
  243.         TR0=1;//打開定時器                        
  244. }
  245. /*----------------------------
  246. 初始化串口
  247. ----------------------------*/
  248. void InitUart()
  249. {
  250. //    ACC = P_SW1;
  251. //    ACC &= ~(S1_S0 | S1_S1);    //S1_S0=0 S1_S1=0
  252. //    P_SW1 = ACC;                //(P3.0/RxD, P3.1/TxD)
  253.    
  254. //  ACC = P_SW1;
  255. //  ACC &= ~(S1_S0 | S1_S1);    //S1_S0=1 S1_S1=0
  256. //  ACC |= S1_S0;               //(P3.6/RxD_2, P3.7/TxD_2)
  257. //  P_SW1 = ACC;  
  258. //  
  259. //  ACC = P_SW1;
  260. //  ACC &= ~(S1_S0 | S1_S1);    //S1_S0=0 S1_S1=1
  261. //  ACC |= S1_S1;               //(P1.6/RxD_3, P1.7/TxD_3)
  262. //  P_SW1 = ACC;  

  263. #if (PARITYBIT == NONE_PARITY)
  264.     SCON = 0x50;                //8位可變波特率
  265. #elif (PARITYBIT == ODD_PARITY) || (PARITYBIT == EVEN_PARITY) || (PARITYBIT == MARK_PARITY)
  266.     SCON = 0xda;                //9位可變波特率,校驗位初始為1
  267. #elif (PARITYBIT == SPACE_PARITY)
  268.     SCON = 0xd2;                //9位可變波特率,校驗位初始為0
  269. #endif

  270.     AUXR = 0x40;                //定時器1為1T模式
  271.     TMOD = 0x00;                //定時器1為模式0(16位自動重載)
  272.     TL1 = (65536 - (FOSC/4/BAUD));   //設置波特率重裝值
  273.     TH1 = (65536 - (FOSC/4/BAUD))>>8;
  274.     TR1 = 1;                    //定時器1開始啟動
  275.     ES = 1;                     //使能串口中斷
  276.     EA = 1;
  277.         
  278.         
  279.         
  280. //    SCON = 0x5a;                //設置串口為8位可變波特率
  281. //#if URMD == 0
  282. //    T2L = (65536 - (FOSC/4/BAUD));
  283. //    T2H = (65536 - (FOSC/4/BAUD)) >> 8;
  284. //    AUXR = 0x14;                //T2為1T模式, 并啟動定時器2
  285. //    AUXR |= 0x01;               //選擇定時器2為串口1的波特率發生器
  286. //#elif URMD == 1
  287. //    AUXR = 0x40;                //定時器1為1T模式
  288. //    TMOD = 0x00;                //定時器1為模式0(16位自動重載)
  289. //    TL1 = (65536 - (FOSC/4/BAUD));
  290. //    TH1 = (65536 - (FOSC/4/BAUD)) >> 8;
  291. //    TR1 = 1;                    //定時器1開始啟動
  292. //#else
  293. //    TMOD = 0x20;                //設置定時器1為8位自動重裝載模式
  294. //    AUXR = 0x40;                //定時器1為1T模式
  295. //    TH1 = TL1 = (256 - (FOSC/32/BAUD));
  296. //    TR1 = 1;
  297. //#endif
  298. }

  299. /*----------------------------
  300. 初始化ADC
  301. ----------------------------*/
  302. void InitADC()
  303. {
  304.                 P1M0 =1;
  305.                 P1M1 =0;
  306.                 P1 = 0Xff;
  307.     P1ASF = 0xff;                   //設置P1口為AD口
  308.     ADC_RES = 0;                    //清除結果寄存器
  309.     ADC_RESL = 0;                    //清除結果寄存器
  310.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL;
  311.     Delay(2);                       //ADC上電并延時
  312. }

  313. /*----------------------------
  314. 讀取ADC結果 20210101 注釋GetADCResult 用GetADCResultint代替
  315. ----------------------------*/

  316. unsigned int GetADCResultint(BYTE ch)
  317. {
  318.                 unsigned int ret=0;
  319.     ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ch | ADC_START;
  320.     _nop_();                        //等待4個NOP
  321.     _nop_();
  322.     _nop_();
  323.     _nop_();
  324.     while (!(ADC_CONTR & ADC_FLAG));//等待ADC轉換完成
  325.     ADC_CONTR &= ~ADC_FLAG;         //Close ADC
  326.                 ret = ADC_RES*4 + ADC_RESL;
  327.     return ret;                 //返回ADC結果
  328. }


  329. /*----------------------------
  330. UART 中斷服務程序
  331. -----------------------------*/
  332. void Uart() interrupt 4
  333. {

  334.     if (RI)
  335.     {
  336.         RI = 0;                 //清除RI位
  337.         receivechar = SBUF;              //P0顯示串口數據
  338.                         if  ( receivechar == 60 ) receive_count = 0 ;
  339.                         if ((receive_count<9) && ( receivechar != 62 )&&(received == 0 ))
  340.                         {
  341.                                 receivestr[receive_count] = receivechar;
  342.                                 receivestr[receive_count+1] = 0;
  343.                                 receive_count = receive_count + 1 ;
  344.                                 
  345.                         }
  346.                         else
  347.                         {
  348.                                 received = 1;
  349. //                                while (initreceivestrcount<10)
  350. //                                {
  351. //                                        receivestr[initreceivestrcount]=0;
  352. //                                        initreceivestrcount = initreceivestrcount + 1 ;
  353. //                                }
  354.                                 
  355.                         }
  356. //                        SendData(receivechar);
  357. //        P22 = RB8;              //P2.2顯示校驗位
  358.     }
  359.                         
  360.     if (TI)
  361.     {
  362.         TI = 0;                 //清除TI位
  363.         busy = 0;               //清忙標志
  364.     }
  365. }

  366. void Timer0() interrupt 1
  367. {
  368.         static u16 itime0;
  369.         TH0=0XFC;        //給定時器賦初值,定時1ms
  370.         TL0=0X18;
  371.         itime0++;
  372.         if(itime0==time0count)
  373.         {
  374.                 itime0=0;
  375.                 time0count0 = time0count0 + 1;        
  376.                 if ( time0count0 > 20 ) time0count0 = 0;
  377.         }        
  378. }

  379. /*----------------------------
  380. 發送串口數據
  381. ----------------------------*/
  382. void SendData(BYTE dat)
  383. {
  384.     while (busy);               //等待前面的數據發送完成
  385.     ACC = dat;                  //獲取校驗位P (PSW.0)
  386. //    if (P)                      //根據P來設置校驗位
  387. //    {
  388. //#if (PARITYBIT == ODD_PARITY)
  389. //        TB8 = 0;                //設置校驗位為0
  390. //#elif (PARITYBIT == EVEN_PARITY)
  391. //        TB8 = 1;                //設置校驗位為1
  392. //#endif
  393. //    }
  394. //    else
  395. //    {
  396. //#if (PARITYBIT == ODD_PARITY)
  397. //        TB8 = 1;                //設置校驗位為1
  398. //#elif (PARITYBIT == EVEN_PARITY)
  399. //        TB8 = 0;                //設置校驗位為0
  400. //#endif
  401. //    }
  402.     busy = 1;
  403.     SBUF = ACC;                 //寫數據到UART數據寄存器
  404. }

  405. /*----------------------------
  406. 發送字符串
  407. ----------------------------*/
  408. void SendString(char *s)
  409. {
  410. //        EA = 0 ;
  411. //        ES = 0 ;
  412.         while (*s)                  //檢測字符串結束標志
  413.         {
  414.                         SendData(*s++);         //發送當前字符
  415.         }
  416. //        EA = 1 ;
  417. //        ES = 1 ;
  418. }
  419. void serial_put_uint(unsigned int number)
  420. {
  421.       unsigned int i;
  422.       unsigned int nTmp;
  423. //        *s++ =num/10 +'0';
  424. //*s++=num%10 +'0';
  425. //*s =0;
  426.         
  427.      //感覺這寫法怪怪的嗎?干嘛不for(i=1;i<5;i++) 因為這樣不需要使用庫函數pow()
  428.      for(i=10000;i>=1;i=i/10)
  429.       {
  430.             nTmp = number/i;
  431.                                                 if(nTmp >=1 ) SendData((unsigned char)(nTmp%10 + 0x30));
  432.       }
  433. }

  434. /*----------------------------
  435. 軟件延時
  436. ----------------------------*/
  437. void Delay(WORD n)
  438. {
  439.     WORD x;

  440.     while (n--)
  441.     {
  442.         x = 5000;
  443.         while (x--);
  444.     }
  445. }
復制代碼

所有資料51hei提供下載:
20210103a.rar (580.92 KB, 下載次數: 243)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:328014 發表于 2021-1-3 14:23 | 只看該作者
好東東,可惜我用Proteus8.8居然打不開這個工程文件,樓主是用的8.9嗎?
回復

使用道具 舉報

板凳
ID:867327 發表于 2021-1-3 16:48 | 只看該作者
Proteus8.10
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
ID:996527 發表于 2022-3-25 12:50 | 只看該作者
厲害,可惜我版本太低打不開
回復

使用道具 舉報

6#
ID:192215 發表于 2022-5-16 10:30 | 只看該作者
樓主遇沒遇到過打開后LCD白屏問題
回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
8#
ID:1058975 發表于 2023-1-30 18:49 | 只看該作者
不錯,參考一下 STC 定時器
回復

使用道具 舉報

9#
無效樓層,該帖已經被刪除
10#
ID:3802 發表于 2025-8-25 11:52 | 只看該作者
東東,可惜我用Proteus8.8居然打不開這個工程文件,樓主是用的8.9嗎?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
亚洲视频在线一区| 国产亚洲一区在线播放| 亚洲成人自拍网| 日韩va欧美va亚洲va久久| 97视频一区| 91影院在线播放| 91网址在线观看精品| 日韩欧美亚洲精品| 日韩av免费在线| 亚洲欧美另类在线观看| 午夜国产精品一区| 不卡一区二区中文字幕| 亚洲成人精选| 日韩视频在线直播| 欧洲性视频在线播放| 猫咪av永久| 韩国福利一区| 99精品免费观看| 色88888久久久久久影院野外| 丝袜视频国产在线播放| 四虎永久在线观看免费网站网址| 久久免费在线观看视频| 人妻换人妻仑乱| 手机看片日韩国产| 91九色极品视频| 久久精品国产成人| 日韩精品一区二区三区视频| 亚洲成av人片在线| 久久综合999| 日韩av网站在线观看| 欧美做受喷浆在线观看| 成人av一级片| 亚洲人体一区| 成人av免费看| 欧美整片在线观看| 欧美成人第一页| 精品亚洲一区二区三区在线观看 | 95精品视频| 日韩特级毛片| 成人在线免费观看| 一级毛片aaaaaa免费看| 黑人巨大亚洲一区二区久 | 免费观看a级片| 欧美国产日韩另类 | 亚洲免费网站观看视频| 亚洲综合精品国产一区二区三区| 久久久精品少妇| 老司机免费视频| 在线免费看黄色| 911亚洲精选| 日韩毛片在线免费看| 亚洲人成网站在线观看播放| 国产不卡一区二区三区在线观看| 欧美资源在线观看| 欧美黄色性视频| zzijzzij亚洲日本成熟少妇| 精品中文字幕久久久久久| 日韩精品综合一本久道在线视频| 欧美亚洲国产bt| 色综合天天综合色综合av| 亚洲一区二区欧美日韩| 国模私拍视频在线播放| 国产刺激高潮av| 中文字幕久久久久| 日韩乱码人妻无码中文字幕| 国产白丝一区二区三区 | 三级网站免费观看| av网站免费播放| 91麻豆成人精品国产| 日本视频www色| 在线观看免费视频a| 中文字字幕在线中文乱码| 成人毛片一区二区三区| 无码人妻精品一区二区三区蜜桃91 | 日韩一区三区| 少妇精品久久久| 九一精品国产| 成人一区二区| 亚洲精品一二三区区别| 欧美日韩一区二区三区四区在线观看| 亚洲综合五月| 国产亚洲欧洲| 久久精品国产久精国产| 国产成人精品影视| 久久精品无码一区二区三区| 欧美国产97人人爽人人喊| 成人中文字幕视频| а√中文在线天堂精品| 精品在线手机视频| 91精品天堂福利在线观看| 精品成人国产| 麻豆成人久久精品二区三区小说| 成人黄色在线看| 中文字幕人成不卡一区| 狂野欧美xxxx韩国少妇| 免费观看羞羞视频网站| 国产高潮av| 尤物免费看在线视频| 免费在线高清av| 亚洲区欧洲区| 日韩影片中文字幕| 一区二区视频| 色喇叭免费久久综合| 亚洲综合99| 国产精品一区二区三区乱码| 国产欧美日韩综合| 午夜视频久久久久久| 欧美日韩国产精选| 亚洲免费av片| 欧洲成人性视频| 国产免费一区二区| 欧美日韩中文字幕在线播放| 中文字幕国产传媒| 亚洲精品一区二区三区影院忠贞| 国产微拍精品一区| 天堂在线视频免费观看| 成品网站w灬+源码1| 日韩国产福利| 免费观看欧美大片| 同性恋视频一区| 亚洲一卡久久| 久久久蜜臀国产一区二区| 精品国产精品三级精品av网址| 欧美一级电影网站| 欧美激情一区二区三区成人 | 欧美成人二区| 欧美伊人亚洲伊人色综合动图| 欧美日韩精品在线一区| 日本视频一区二区三区| 国产精品免费看片| 911精品产国品一二三产区| 中文字幕一区日韩电影| 国产精品丝袜高跟| av影院在线播放| xfplay5566色资源网站| 日本高清www免费视频| 少妇人妻精品一区二区三区| 亚洲а∨天堂久久精品2021| 国产午夜福利片| 先锋资源一区二区| 日韩加勒比系列| 三妻四妾的电影电视剧在线观看| 红桃成人av在线播放| 久久99在线观看| 亚洲福利国产精品| 亚洲人成绝费网站色www| 国产日韩欧美视频在线| 欧洲金发美女大战黑人| 麻豆精品免费视频| 精品毛片一区二区三区| 自拍偷拍精选| 成人私拍视频| 亚洲午夜一级| 国产精品每日更新| 日韩精品在线免费| 99在线观看视频网站| 丰满少妇在线观看| 日产亚洲一区二区三区| 国产大学生自拍视频| av电影在线观看一区二区三区| 精品一区二区三区中文字幕| 久久久久久黄| 午夜欧美大尺度福利影院在线看| 久久视频在线直播| 亚洲天堂电影网| 中文字幕被公侵犯的漂亮人妻| 亚洲精品喷潮一区二区三区| 一本大道香蕉久久| 成人黄色91| 久久99久国产精品黄毛片色诱| 黑人极品videos精品欧美裸| 久久久久久久999| 在线无限看免费粉色视频| 亚洲精品视频久久久| 国产成人手机在线| 久久电影视频| 精品久久久久久久久久久下田| 972aa.com艺术欧美| 亚洲国产天堂网精品网站| 亚洲aa中文字幕| 久久久久亚洲av片无码v| 99久久夜色精品国产亚洲| 最新地址在线观看| 天海翼亚洲一区二区三区| av网站免费线看精品| 亚洲精品大尺度| 日韩成人av网站| 黄色一级片一级片| 精品偷拍激情视频在线观看| av2020不卡| 老司机久久99久久精品播放免费| 日本丰满少妇一区二区三区| 国产成人亚洲综合91| 国产美女18xxxx免费视频| 国产孕妇孕交大片孕| 精品99在线观看| 你懂的网址视频| 日韩毛片免费看| 成人小视频免费观看| 亚洲人成网站999久久久综合 | 日韩高清免费av| 国产乱子视频| 伊人久久大香线蕉av不卡| 久久久久久黄色| 美女久久久久久久| 欧洲黄色一级视频| 99er热精品视频| 1区2区在线观看| 亚洲欧美日韩国产一区| 宅男在线国产精品| 欧美日韩大片一区二区三区| 性色av无码久久一区二区三区| 免费黄色av| 亚洲福利天堂| 亚洲精品水蜜桃| 日韩美女视频免费看| 亚洲美女精品视频| 国产视频中文字幕| 91精品一区| 国产精品久久久久久久久免费桃花| 麻豆成人在线看| 免费看涩涩视频| 激情中文字幕| 日本一区二区中文字幕| 久久亚洲二区三区| 久久免费国产视频| 欧美一级大片免费看| 国产黄色小视频| 国产日韩欧美中文在线| 亚洲视频在线一区| 91性高湖久久久久久久久_久久99| 亚洲区免费视频| av免费播放| 综合天天久久| 精品国产乱码久久久久久久| 成人毛片100部免费看| 99精品免费观看| 超碰国产一区| 欧美国产精品专区| 国产精品1区2区在线观看| 91精品人妻一区二区| 色偷偷福利视频| 欧美区日韩区| 日韩av在线免费| 欧美成人黑人猛交| 午夜精品久久久久久久星辰影院| 在线免费观看亚洲| 亚洲综合在线观看视频| 国产中文一区二区| caoporn国产| 极品美鲍一区| 国产欧美综合在线| 亚洲mm色国产网站| 久久久久久久极品| 欧美人与性动交α欧美精品济南到| 国产91在线|亚洲| 日产精品久久久一区二区福利| 亚洲sss综合天堂久久| www.4hu95.com四虎| 先锋影音欧美性受| 另类成人小视频在线| 欧美精品午夜视频| 四虎国产精品成人免费入口| 福利h视频在线| 老司机午夜精品视频| 欧美黑人巨大精品一区二区| 91国模少妇一区二区三区| 特黄特色大片免费视频大全| 久久黄色影院| 久久免费成人精品视频| 日韩在线一卡二卡| 91精品久久| 专区另类欧美日韩| 亚洲成色最大综合在线| 色婷婷av一区二区三| 美女主播精品视频一二三四| 欧美男人的天堂一二区| 国产中文字幕二区| 91精品国产福利尤物| 99久久这里只有精品| 亚洲视频综合网| aaaaa级少妇高潮大片免费看| 天堂中文在线资| 成人午夜看片网址| 亚洲自拍另类欧美丝袜| 中文字幕 国产| va天堂va亚洲va影视| 欧美色手机在线观看| 一本久道综合色婷婷五月| 18以下岁禁止1000部免费| 久久美女性网| 国产成人鲁鲁免费视频a| 九九九在线观看| 青娱乐极品盛宴一区二区| 欧洲视频一区二区| 国产福利在线免费| 免费观看v片在线观看| 国产成人综合在线播放| 99re在线| 亚洲最大激情网| 亚洲精品国产偷自在线观看| 欧美成人亚洲成人| 午夜影院在线看| 精品国产鲁一鲁****| 亚洲成人黄色网址| 亚洲区免费视频| 成人性生交大片免费看在线播放| 一区二区高清免费观看影视大全 | www.黄色一片| 欧美一区2区| 欧美大尺度激情区在线播放| 欧美毛片在线观看| 欧美18—19sex性hd| 欧美午夜精品久久久久久超碰| 中文字幕国内自拍| 嫩草精品影院| 亚洲美腿欧美偷拍| 国产一区二区在线视频播放| 爆操妹子视频在线观看| 成人免费高清视频在线观看| 日本一区二区高清视频| 印度美女freesex性hd| 精品一区二区国语对白| 久久久福利视频| 91九色蝌蚪视频| 国产主播一区二区三区| 色综合 综合色| 特级西西444www| 麻豆视频网站在线观看| 欧美性猛xxx| 手机看片国产精品| 黄色网址免费在线观看| 色八戒一区二区三区| 美女黄色一级视频| 成人三级高清视频在线看| 欧美肥妇毛茸茸| 摸摸摸bbb毛毛毛片| 国产精品第一国产精品| 日韩电影网在线| 欧美精品久久久久性色| 第一区第二区在线| 九九热这里只有在线精品视| 无码人妻精品一区二区三区蜜桃91 | 亚洲国产激情一区二区三区| 九九大香尹人视频免费| 成人精品鲁一区一区二区| 最新不卡av| 桃乃木香奈av在线| 夜夜嗨av一区二区三区四季av| 在线观看免费不卡av| 中文av资源在线| 欧美一区二区高清| 日韩一级片大全| 香蕉视频一区| 国产福利视频一区二区| 四虎国产精品永久在线| 黄色日韩网站视频| 青青草免费在线视频观看| 中文在线a√在线8| 欧美日韩国产一区在线| 国产 中文 字幕 日韩 在线| 成人在线视频免费| 久久天天躁狠狠躁夜夜躁 | 周于希免费高清在线观看 | 亚洲国产乱码最新视频| v天堂中文在线| 欧洲亚洲精品| 久久亚洲精品网站| 亚洲精选一区二区三区| 日本欧美在线观看| www.午夜色| 韩国福利在线| 91精品国产91久久久久久最新毛片 | 亚洲欧洲一区二区福利| 在线成人一区| 欧美日韩不卡在线| 欧美成人手机视频| 欧美激情成人| 国产日韩二区| 色偷偷免费视频| 在线中文字幕一区二区| 91嫩草|国产丨精品入口| 精品国产一区二区三区小蝌蚪 | 成人h精品动漫一区二区三区| 男人日女人的bb| 黄色av网站在线看| 欧美大肚乱孕交hd孕妇| 亚洲大片免费观看| 国产一区二区三区的电影| 五月天亚洲综合| av二区在线| 亚洲精品国产品国语在线| 欧美亚州在线观看| 欧美91精品久久久久国产性生爱| 3d动漫精品啪啪一区二区竹菊| 久久久久99精品成人片三人毛片| 在线精品一区二区| 裸体裸乳免费看| 久久av色综合| 欧美成人免费播放|