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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7919|回復: 4
收起左側

16*16點陣彈彈球球小游戲制作,含單片機源代碼(有注釋)

  [復制鏈接]
ID:335193 發(fā)表于 2018-6-1 15:19 | 顯示全部樓層 |閱讀模式
這是在師傅那里拿到點陣板后為了練習16*16點陣板寫的一個彈球小游戲,算法是自己寫的一、使用的工具
1.點陣板:七星蟲德飛萊的LY-LED16*16BV2.1
2.單片機:STC89C52 LY51-L2c的單片機,晶振是12.000
3.編程軟件:Keil
4.調試工具:stc-isp-15xx-v6.86D
5.STC的89c52 USB轉串口線驅動

二,主要功能有下1.顯示開始界面
1.jpg


2.消除,并數碼管顯示分數
2.jpg

3.繼續(xù)消除
3.jpg

4.結束游戲
4.jpg

5.游戲中可以加速和減速小球
6.消除完全部小球后會顯示笑臉

三、規(guī)則
開始、結束、勝利中使用s4作為確認鍵
開始游戲后按鍵功能如下
1.s1 左移
2.s2 右移
3.s3 減速
4.s4 加速

四、缺點
1.要消除完一整行之后才能消除下一行
2.擋板的和球的反彈有點問題
3.別的還有問題希望大家多多指教

五、單片機源程序如下:
  1. /*-----------------------------------------------
  2.   名稱:彈彈球游戲
  3.   編寫:田*
  4.   日期:2018年
  5.   內容:屏+5V連接電源5V
  6.                   GND接GND
  7.         P3.0-P3.3分別連接A、B、C、D,用于控制16行
  8.         SCK時鐘連接P1.5
  9.         LATCH鎖存連接P1.6
  10.         R1紅色數據信號連接至P1.4
  11.         G1綠色數據信號連接至P3.4,如果單紅色屏此信號無需連接
  12.         OE使能端接P1.1
  13. ------------------------------------------------*/
  14. #include<reg52.h>
  15. #include "scanKey.h"
  16. #include "scanNum.h"

  17. sbit T_STR = P1^6;       // 鎖存引腳,屏上標識位STR
  18. sbit R1    = P1^4;       // 數據引腳,屏上標識R1
  19. sbit G1    = P3^4;       // 數據引腳,屏上標識G1        ·沒有該燈光,可不用
  20. sbit T_CLK = P1^5;       // 時鐘引腳,屏上標識位CLK
  21. sbit OE    = P1^1;       // 使能引腳,屏上標識EN/OE

  22. unsigned char DIS[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};        //行數據
  23. unsigned char ledShow[][32]={0x00};                                                                // 顯示擋板
  24. code dotDis[8] = {0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};                // 扭轉順序

  25. void input2Byte(unsigned char dataR1);                                                        // 寫入數據
  26. void init_Timer1(void);                                                                                        // 初始化定時器
  27. void position(int pos);                                                                                        // 移動擋板位置
  28. void gameOver();                                                                                                // 游戲結束
  29. void gameWin();                                                                                                        // 游戲勝利
  30. bit isGameWin();                                                                                                // 判斷游戲是否勝利

  31. void gameMenu();                                                                                                 // 游戲菜單
  32. void playGame();                                                                                                // 開始游戲

  33. /*
  34.         以下是擋板移動位置的十六進制
  35.         1111 1000 0000 0000        ledShow[28] = 0xF8 ledShow[29] = 0x00
  36.         0111 1100 0000 0000        ledShow[28] = 0x7C ledShow[29] = 0x00
  37.         0011 1110 0000 0000        ledShow[28] = 0x3E ledShow[29] = 0x00
  38.         0001 1111 0000 0000        ledShow[28] = 0x1F ledShow[29] = 0x00

  39.         0000 1111 1000 0000        ledShow[28] = 0x0F ledShow[29] = 0x80
  40.         0000 0111 1100 0000        ledShow[28] = 0x07 ledShow[29] = 0xC0
  41.         0000 0011 1110 0000        ledShow[28] = 0x03 ledShow[29] = 0xE0
  42.         0000 0001 1111 0000        ledShow[28] = 0x01 ledShow[29] = 0xF0

  43.         0000 0000 1111 1000        ledShow[28] = 0x00 ledShow[29] = 0xF8
  44.         0000 0000 0111 1100        ledShow[28] = 0x00 ledShow[29] = 0x7C
  45.         0000 0000 0011 1110        ledShow[28] = 0x00 ledShow[29] = 0x3E
  46.         0000 0000 0001 1111 ledShow[28] = 0x00 ledShow[29] = 0x1F
  47. */
  48. bit move = 0;                                                                                                        // 是否移動
  49. bit isUp = 1;                                                                                                         // 小球往上
  50. bit isDown = 0;                                                                                                        // 小球往下
  51. char rolIndex = 26;                                                                                                // 初始行位置
  52. char colIndex = 3;                                                                                                // 初始列位置
  53. char pos = 5;                                                                                                        // 擋板位置
  54. char sysFun = 0;                                                                                                // 系統(tǒng)功能                                       
  55. bit gameState = 0;                                                                                                // 游戲狀態(tài)
  56. char speed = 50;                                                                                                // 游戲速度
  57. unsigned short gameScore = 0;                                                                        // 游戲分數
  58. bit f_num = 0;                                                                                                        // 數碼管顯示

  59. // 主程序
  60. int main()
  61. {
  62.         static unsigned char count = 0;                                                                // 數碼管顯示計時
  63.         init_Timer1();                                                                                                 // 初始化定時器
  64.         fillDisBuf(gameScore,1);                                                                        // 填充數碼管

  65.         while(1)
  66.         {
  67.                 scanKey();                                                                                                // 實時掃描按鍵        
  68.                 if (sysFun == 1 && f_num) {
  69.                         
  70.                         count++;
  71.                         if (count == 20) {                                                                         // 100ms比較好
  72.                            display();
  73.                            count = 0;
  74.                         }
  75.                         f_num = 0;
  76.                 }
  77.                
  78.                 /* 多任務控制核心 */
  79.                 switch(sysFun) {
  80.                         case 0:                                                                                                // 顯示游戲菜單
  81.                                 gameMenu();
  82.                                 break;
  83.                         case 1:                                                                                                // 開始游戲
  84.                                  playGame();
  85.                                  break;
  86.                         case 2:                                                                                                // 游戲勝利
  87.                                 gameWin();
  88.                                 break;
  89.                         case 3:                                                                                                // 游戲結束
  90.                                 gameOver();
  91.                                 break;
  92.                 }
  93.         }
  94. }

  95. /* 顯示游戲菜單 */
  96. void gameMenu() {
  97.         char i;
  98.         if (!gameState) {
  99.                
  100.                 // 全部先初始化為不亮
  101.                 for (i = 0; i < 32; i++){
  102.                         ledShow[0][i] = 0x00;
  103.                 }
  104.         
  105.                 // 初始化游戲LED燈,顯示初始界面
  106.                 ledShow[0][0]  = 0xEA; ledShow[0][1]  = 0x05;
  107.                 ledShow[0][2]  = 0x2E; ledShow[0][3]  = 0xEF;
  108.                 ledShow[0][4]  = 0xEA; ledShow[0][5]  = 0x44;
  109.                 ledShow[0][6]  = 0x8E; ledShow[0][7]  = 0x4E;
  110.                 ledShow[0][8]  = 0xEA; ledShow[0][9]  = 0xF5;
  111.                 ledShow[0][10] = 0x2E; ledShow[0][11] = 0x44;
  112.                 ledShow[0][12] = 0x24; ledShow[0][13] = 0x4C;
  113.                 ledShow[0][14] = 0xEE; ledShow[0][15] = 0xE4;
  114.                 ledShow[0][16] = 0x04;

  115.                 gameState = 1;                                                                                        // 開啟游戲狀態(tài)為

  116.                 /* 擋板歸位 */
  117.                 pos = 5;                                                                                                // 擋板初始位置
  118.                 rolIndex = 26;                                                                                        // 小球索引
  119.                 ledShow[0][rolIndex] = 0x01;                                                        // 球初始位置
  120.                 position(pos);                                                                                        // 顯示擋板
  121.                 gameScore = 0;                                                                                        // 游戲歸0
  122.         }

  123.         /* s4作為游戲開始 */
  124.         if (s4d) {
  125.                 s4d = 0;
  126.                 sysFun = 1;
  127.                 gameState = 1;
  128.         }
  129. }

  130. /* 玩游戲 */
  131. void playGame() {
  132.         char i;
  133.         if (gameState) {                                                                                         // 是否經過了初始化

  134.                 /* 初始化游戲區(qū)域 */
  135.                 gameState = 0;
  136.                 for (i = 0; i < 32; i++){
  137.                         if (i <= 15) {
  138.                                 ledShow[0][i] = 0xFF;
  139.                         }
  140.                         else{
  141.                                 ledShow[0][i] = 0x00;
  142.                         }
  143.                 }

  144.                 /* 擋板歸位 */
  145.                 pos = 5;                                                                        // 擋板位置
  146.                 rolIndex = 26;                                                                // 小球索引
  147.                 ledShow[0][rolIndex] = 0x01;                                // 球初始位置
  148.                 position(pos);                                                                // 顯示擋板
  149.                 gameScore = 0;                                                                // 游戲歸0               
  150.         }
  151.          /* 根據按鍵移動擋板        */
  152.          if (s1d){
  153.                 s1d = 0;
  154.                 pos--;
  155.                 if (pos < 0) {                                                                 // 判斷是否在邊界,是則不能移動
  156.                         pos = 0;
  157.                 }
  158.                 else{
  159.                          position(pos);
  160.                 }

  161.                 /* 判斷是否在另外一個區(qū)域的邊界        */
  162.                 if (ledShow[0][rolIndex] == 0x80 && rolIndex == 27) {
  163.                      ledShow[0][rolIndex] = 0x00;                        // 關閉當前行
  164.                          rolIndex--;                                                         // 跳轉下一行
  165.                          ledShow[0][rolIndex] = 0x01;                        // 新位置
  166.                 }
  167.                 else if (rolIndex >= 25 && rolIndex <= rolIndex + 2) {
  168.                         /* 判斷是否在可移動邊界 */
  169.                         if (ledShow[0][rolIndex] != 0x80) {                // 是否還能移動
  170.                                  ledShow[0][rolIndex] <<= 1;                        // 小球左移
  171.                         }
  172.                 }
  173.         }
  174.         if (s2d){
  175.                 s2d = 0;
  176.                 pos++;
  177.                 if (pos >= 12) {                                                         // 12是到右邊界移動的距離
  178.                         pos = 11;
  179.                 }
  180.                 else{
  181.                          position(pos);                                                         // 往右移動擋板
  182.                 }

  183.                 /* 判斷是否在另外一個區(qū)域的邊界 */
  184.                 if (ledShow[0][rolIndex] == 0x01 && rolIndex == 26) {
  185.                      ledShow[0][rolIndex] = 0x00;
  186.                          rolIndex++;
  187.                          ledShow[0][rolIndex] = 0x80;
  188.                 }
  189.                 else if (rolIndex >= 25 && rolIndex <= rolIndex + 2) {

  190.                         /* 判斷是否在可移動邊界 */
  191.                         if (ledShow[0][rolIndex] != 0x01) {                // 判斷是否已到達邊界
  192.                                 ledShow[0][rolIndex] >>= 1;
  193.                         }
  194.                 }
  195.         }

  196.         // 游戲減速
  197.         if(s3d) {
  198.                 s3d = 0;

  199.                 // 加大延遲
  200.                 speed += 10;
  201.                 speed = (speed <= 50) ? speed : 50;
  202.         }
  203.         
  204.         // 游戲加速
  205.         if(s4d) {
  206.                 s4d = 0;

  207.                 // 減小延遲
  208.                 speed -= 10;
  209.                 speed = (speed >= 20) ? speed : 20;
  210.         }  
  211.         
  212.         // 點移動
  213.         if (move) {
  214.                 move = 0;
  215.                
  216.                 /* 當球往上移動的時候 */
  217.                 if (isUp) {
  218.                         rolIndex -= 2;                                                        // 點陣版是順序加,-2才上球的正上方

  219.                         /* 如果是在空白區(qū)域則直接往上移動 */
  220.                         if (ledShow[0][rolIndex] == 0x00 && rolIndex > 0) {
  221.                                 ledShow[0][rolIndex] = ledShow[0][rolIndex+2];
  222.                                 ledShow[0][rolIndex+2] = 0x00;                // 移動之后需要將前一行燈關閉               
  223.                         }
  224.                         else if (rolIndex < 0) {                                // 判斷是否到達邊界
  225.                                 if(isGameWin()){                                        // 判斷是否全部打完
  226.                                    sysFun = 2;                                                // 切換系統(tǒng)狀態(tài)
  227.                                 }
  228.                                 else{
  229.                                         isUp = 0;
  230.                                            isDown = 1;
  231.                                            rolIndex += 2;                                         // +2回到頂部
  232.                                 }
  233.                         }
  234.                         else if (ledShow[0][rolIndex] != 0x00 &&
  235.                                 (ledShow[0][rolIndex] & ledShow[0][rolIndex+2]) == 0x00){
  236.                                 // 上一行沒有消除完整但是正上一個為空,直接返回
  237.                                 
  238.                                 isUp = 0;
  239.                                    isDown = 1;
  240.                                    rolIndex += 2;                                       
  241.                         }        
  242.                         else if (ledShow[0][rolIndex] == 0xFF ||
  243.                                 (ledShow[0][rolIndex] & ledShow[0][rolIndex+2]) != 0x00) {
  244.                            
  245.                            // 判斷上面一行是不是整行未消除或者正上方有
  246.                            ledShow[0][rolIndex] &= (~ledShow[0][rolIndex+2]);
  247.                            isUp = 0;
  248.                            isDown = 1;
  249.                            rolIndex += 2;

  250.                            // 根據小球速度進行加分
  251.                            switch(speed) {
  252.                                             case 50: gameScore += 1; break;                        // 四等級+1分
  253.                                         case 40: gameScore += 2; break;                           // 三等級+2分
  254.                                         case 30: gameScore += 3; break;                        // 二等級+3分
  255.                                         case 20: gameScore += 4; break;                        // 一等級+4分
  256.                            }
  257.                            fillDisBuf(gameScore,1);                                                // 分數+完填充數碼管
  258.                         }
  259.                 }
  260.                    if (isDown) {
  261.                         rolIndex += 2;

  262.                         if (rolIndex > 31) {                                                        // 超出邊界
  263.                                 rolIndex = 30;
  264.                                 sysFun = 3;                                                                        // 切換系統(tǒng)狀態(tài)到結束
  265.                                 
  266.                         }
  267.                         else if (ledShow[0][rolIndex] == 0x00) {                // 空白區(qū)域直接下移
  268.                                 ledShow[0][rolIndex] = ledShow[0][rolIndex-2];
  269.                                 ledShow[0][rolIndex-2] = 0x00;        
  270.                         }
  271.                         else if ((ledShow[0][rolIndex]) != 0x00) {                // 碰到板
  272.                                 isUp = 1;
  273.                                    isDown = 0;
  274.                                 rolIndex -= 2;
  275.                         }
  276.                 }
  277.         }
  278. }

  279. /* 判斷游戲勝利 */
  280. bit isGameWin() {
  281.         bit flag = 1;
  282.         char i;
  283.         for(i = 0; i < 16; i++) {                                                                // 上方磚塊區(qū)域
  284.                 /*判斷是否除了小球外游戲區(qū)域的磚塊全部消除*/
  285.            if (ledShow[0][i] != 0x00 && ledShow[0][i] != ledShow[0][rolIndex+2]) {                                                        // 判斷點陣是否全滅
  286.                            flag = 0;
  287.                         break;
  288.            }
  289.         }
  290.         return flag;
  291. }

  292. /* 游戲勝利 */
  293. void gameWin() {

  294.         // 游戲勝利標志
  295.         ledShow[0][0]  = 0x00; ledShow[0][1]  = 0x00;
  296.         ledShow[0][2]  = 0x00; ledShow[0][3]  = 0x00;
  297.         ledShow[0][4]  = 0x07; ledShow[0][5]  = 0xE0;
  298.         ledShow[0][6]  = 0x08; ledShow[0][7]  = 0x10;
  299.         ledShow[0][8]  = 0x10; ledShow[0][9]  = 0x08;
  300.         ledShow[0][10] = 0x26; ledShow[0][11] = 0x64;
  301.         ledShow[0][12] = 0x20; ledShow[0][13] = 0x04;
  302.         ledShow[0][14] = 0x20; ledShow[0][15] = 0x04;
  303.         
  304.         ledShow[0][16] = 0x20; ledShow[0][17] = 0x04;
  305.         ledShow[0][18] = 0x22; ledShow[0][19] = 0x44;
  306.         ledShow[0][20] = 0x21; ledShow[0][21] = 0x84;
  307.         ledShow[0][22] = 0x10; ledShow[0][23] = 0x08;
  308.         ledShow[0][24] = 0x08; ledShow[0][25] = 0x10;
  309.         ledShow[0][26] = 0x07; ledShow[0][27] = 0xE0;
  310.         ledShow[0][28] = 0x00; ledShow[0][29] = 0x00;
  311.         ledShow[0][30] = 0x00; ledShow[0][31] = 0x00;

  312.         if (s4d) {
  313.                 s4d = 0;
  314.                 sysFun = 0;
  315.         }
  316. }

  317. /* 游戲結束 */
  318. void gameOver() {

  319.         // 游戲結束標志
  320.         ledShow[0][0]  = 0x00; ledShow[0][1]  = 0x00;
  321.         ledShow[0][2]  = 0x00; ledShow[0][3]  = 0x00;
  322.         ledShow[0][4]  = 0x07; ledShow[0][5]  = 0xE0;
  323.         ledShow[0][6]  = 0x08; ledShow[0][7]  = 0x10;
  324.         ledShow[0][8]  = 0x10; ledShow[0][9]  = 0x08;
  325.         ledShow[0][10] = 0x26; ledShow[0][11] = 0x64;
  326.         ledShow[0][12] = 0x20; ledShow[0][13] = 0x04;
  327.         ledShow[0][14] = 0x20; ledShow[0][15] = 0x04;
  328.         
  329.         ledShow[0][16] = 0x20; ledShow[0][17] = 0x04;
  330.         ledShow[0][18] = 0x21; ledShow[0][19] = 0x84;
  331.         ledShow[0][20] = 0x22; ledShow[0][21] = 0x44;
  332.         ledShow[0][22] = 0x10; ledShow[0][23] = 0x08;
  333.         ledShow[0][24] = 0x08; ledShow[0][25] = 0x10;
  334.         ledShow[0][26] = 0x07; ledShow[0][27] = 0xE0;
  335.         ledShow[0][28] = 0x00; ledShow[0][29] = 0x00;
  336.         ledShow[0][30] = 0x00; ledShow[0][31] = 0x00;

  337.         if (s4d) {
  338.                 s4d = 0;
  339.                 sysFun = 0;
  340.         }
  341. }

  342. /* 初始化定時器,做為動態(tài)掃描 */
  343. void init_Timer1(void)
  344. {
  345.         TMOD |= 0x11;                             
  346.         EA=1;                                                      //總中斷使能
  347.         ET1=1;                                                     //定時中斷使能
  348.         TR1=1;                                                     //打開定時器開關

  349.         TR0=1;                                                                           // start
  350.         TH0=0xEC;
  351.         TL0=0x78;
  352.         ET0=1;        
  353. }

  354. // 一次寫入兩個字節(jié)
  355. void input2Byte(unsigned char dataR1)                 //寫兩個字節(jié)
  356. {
  357.         unsigned char i;

  358.         bit temp = 0;
  359.         for(i=0; i<8; i++)
  360.         {
  361.                  R1 = !(dataR1 & dotDis[i]);                // 調整成較為方便的看的順序
  362.                                  
  363.                  T_CLK = 0;
  364.                  T_CLK = 1;
  365.          }
  366. }

  367. // 定時器執(zhí)行動態(tài)掃描整個點陣
  368. void timer1_isr(void) interrupt 3
  369. {
  370.          static unsigned char count;
  371.         unsigned char i;
  372.          
  373.         TH1=0xFF;                                                                //重裝初值
  374.         TL1=0;

  375.         T_STR=0;                                                               // 鎖存釋放

  376.         input2Byte(ledShow[0][i]);
  377.         input2Byte(ledShow[0][i+1]);
  378.         OE=1;                                                                          // 暫時關閉屏幕,防止出現鬼影,如果沒有使用該引腳控制則會出現拖影現象。
  379.         T_STR=1;                                                              // 鎖存有效,此時一行的數據顯示到屏上
  380.         P3=DIS[15-count]|0xF0;                                        // 用P0口的前4位控制16行,屏內部通過4-16譯碼器工作,循環(huán)掃描其他15行
  381.         OE=0;                                                                        // 使能

  382.         count++;
  383.         i+=2;                                                              // 累加調用下一行數據
  384.         if(count==16) count=0;
  385.         if(i==32)            i=0;                                                // 又從第一個位置掃描
  386. }

  387. // 中斷0 ,產生移動信號
  388. void init_timer0()interrupt 1 using 1{
  389.         static unsigned char count = 0;
  390.         TR0=0;
  391.         TH0=0xEC;
  392.         TL0=0x78;
  393.         TR0=1;

  394.         f_num = 1;                                                                // 5ms顯示一次數碼管

  395.         count++;
  396.         if (count >= speed) {
  397.                 count = 0;
  398.                 move = 1;
  399.         }
  400. }
  401. ……………………

  402. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有代碼51hei提供下載:
彈球小游戲-源代碼.zip (53.77 KB, 下載次數: 60)

評分

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

查看全部評分

回復

使用道具 舉報

ID:355644 發(fā)表于 2018-6-21 00:21 | 顯示全部樓層
樓主我想問你接線圖怎么接的
回復

使用道具 舉報

ID:352709 發(fā)表于 2018-6-21 09:37 | 顯示全部樓層
怎么仿真
回復

使用道具 舉報

ID:380389 發(fā)表于 2018-8-28 18:40 來自觸屏版 | 顯示全部樓層
感謝樓主分享,學習一下
回復

使用道具 舉報

5#
無效樓層,該帖已經被刪除
6#
無效樓層,該帖已經被刪除
7#
無效樓層,該帖已經被刪除
ID:1131956 發(fā)表于 2024-9-13 20:33 | 顯示全部樓層
感謝感謝
回復

使用道具 舉報

9#
無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
大黑人交xxx极品hd| 午夜久久久久久久| 91超碰caoporn97人人| 欧美日韩在线影院| 成人av在线播放网址| 精品国产美女| 成人一级福利| 国产精品午夜久久久久久| 性生交大片免费看女人按摩| 美国一级片在线观看| 最新av免费在线观看| 日韩国产美国| 国产欧美日韩精品丝袜高跟鞋| 亚洲乱码av中文一区二区| 精品女厕一区二区三区| 久久久久久久久久久久久女国产乱| 亚洲精品婷婷| 欧洲激情综合| aiai久久| 91大神在线观看线路一区| 在线免费看a| 免费黄色av电影| 日本一卡2卡三卡4卡网站| 囯产精品一品二区三区| 亚洲精品国产无码| 欧美极品视频在线观看| 日本五十肥熟交尾| 激情视频免费网站| 妞干网在线观看视频| 日本一区二区三区视频免费看 | 欧美孕妇孕交| 麻豆自创视频在线观看| 久久66热re国产毛片基地| 亚洲伦理在线观看| 中文字幕无线码一区| 中文在线观看免费网站| 四虎永久免费地址| 国产jk精品白丝av在线观看| 少妇性l交大片7724com| 亚洲综合在线网站| 欧美日韩在线不卡视频| 午夜啪啪免费视频| 日本高清一区| 免费看成人片| 麻豆成人小视频| 最新国产精品久久精品| 久久综合五月天婷婷伊人| 国产精品18久久久| 久久91精品国产91久久小草| 蜜乳av另类精品一区二区| 亚洲午夜黄色| 亚洲看片免费| 99精品免费网| 亚洲成人在线| 亚洲视频1区| 国产欧美成人| 日韩精品一卡二卡三卡四卡无卡 | 在线电影欧美成精品| 在线日韩一区二区| 在线免费观看日韩欧美| 欧美亚洲自拍偷拍| 欧美日韩国产大片| 欧美精品电影在线播放| 欧美军同video69gay| 日韩一区二区三免费高清| 欧美一区二区成人6969| 日韩一区二区三区电影在线观看| 日韩午夜精品电影| 精品国产露脸精彩对白| 亚洲精品理论电影| 日韩精品视频在线观看免费| 亚洲日本中文字幕免费在线不卡| 中日韩美女免费视频网站在线观看| 亚洲欧美综合区自拍另类| 一区二区成人精品| 欧美美最猛性xxxxxx| 91国内揄拍国内精品对白| 国产精品高潮呻吟久久av无限 | 丝袜美腿小色网| 欧美成人一区二区三区高清| 久久国产精品免费看| 影音先锋国产资源| 午夜视频福利在线观看| 九色国产视频| 成人黄色电影网址| 日本午夜在线| 丰满大乳少妇在线观看网站| 色豆豆成人网| 国产精东传媒成人av电影| 国产精品密蕾丝视频下载| 亚洲最大黄网| 毛片不卡一区二区| 久久久电影一区二区三区| 美国十次综合久久| 国产乱码精品一区二区亚洲| 欧美日韩影院| 激情综合网激情| 国产午夜亚洲精品午夜鲁丝片| 一区二区三区 在线观看视频| 欧美色男人天堂| 亚洲人成电影在线播放| 国产91精品高潮白浆喷水| 俄罗斯精品一区二区三区| 欧美一级免费在线观看| 538任你躁在线精品免费| 国产三级视频网站| 成人免费区一区二区三区| 精品区在线观看| 午夜一级毛片| 三级在线观看| 欧美电影h版| 精品国产一区二区三区四区| 日韩精品午夜视频| 国产精品久久久久久久久免费桃花| 日韩欧美在线国产| 国产亚洲欧美日韩美女| 国产精品久久一| 中文字幕一区综合| 熟妇女人妻丰满少妇中文字幕| 欧美三级黄色大片| 国产jzjzjz丝袜老师水多| 嫩草影院在线观看未满十八| 韩国免费在线视频| 国产成人精选| 欧美在线三级| av欧美精品.com| 日本高清成人免费播放| 日韩中文字幕免费看| 亚洲bt天天射| www国产精品内射老熟女| 久久无码人妻精品一区二区三区| 日韩 国产 欧美| 国产一二三四| 成人三级黄色免费网站| 久久69av| 日韩电影一区二区三区| 亚洲免费观看在线视频| 亚洲第一在线视频| 国产欧美日韩最新| 久久久999视频| 中文字幕91视频| 天天插天天干天天操| 特黄特黄的视频| julia一区二区三区中文字幕| 中文字幕免费一区二区| 久久日一线二线三线suv| 日韩视频精品在线观看| 久久久国产精华| 日韩av最新在线观看| 91视频国产一区| www.日日操| 国产精品自拍99| 日本dvd播放| а√天堂资源官网在线资源| 91精品国产调教在线观看| 国产亚洲欧美日韩在线一区| 亚洲国产精品久久久久秋霞蜜臀| 国产在线播放91| 国产高清视频网站| 超碰在线免费97| 国产无遮挡又黄又爽免费软件| 在线观看涩涩| 久久精品人人| 91黄色激情网站| 国产精品jizz在线观看麻豆| 欧美精品一区免费| 好吊妞视频一区二区三区| 国内自拍九色| 欧美××××黑人××性爽| 亚洲尤物精选| 日韩欧美国产一区二区| 热久久美女精品天天吊色| 国产婷婷一区二区三区| 日韩乱码一区二区| 亚洲jizzjizz妇女| 久久9999免费视频| 不卡免费追剧大全电视剧网站| 精品久久国产老人久久综合| 国产精品二区三区| av无码一区二区三区| 欲求不满中文字幕| 日日夜夜天天综合入口| 亚洲精品一二| 欧美日韩一区二区三区免费看| 国产欧美一区二区三区四区| 亚洲一二区在线观看| 狠狠躁日日躁夜夜躁av| 麻豆传媒视频在线观看免费| 欧美激情视频一区二区三区免费| 一二三区精品视频| 国产精品h片在线播放| 精品人妻一区二区乱码| 亚洲成人在线电影| missav|免费高清av在线看| 久久亚洲影院| 欧美成人精品高清在线播放| 日本午夜精品一区二区| 国产又黄又爽又无遮挡| 5858p先锋影音资源网| 成人在线视频www| 久久亚洲二区三区| 久久99精品国产99久久6尤物| 亚洲 高清 成人 动漫| 99国产成人精品| 国产农村老头老太视频| 国产中文字幕在线视频| 欧美日韩福利| 欧美日韩成人一区二区| 欧美一区免费视频| 国产一国产二国产三| 久久久亚洲精华液精华液精华液 | 91精品国产综合久久久蜜臀粉嫩| 国产精成人品localhost| 舐め犯し波多野结衣在线观看| 尤物视频在线观看网站| 欧美影院视频| 亚洲色图一区二区三区| 国产精品久久77777| avtt香蕉久久| 在线观看av资源网| 久久不见久久见中文字幕免费| 亚洲一区二区四区蜜桃| 亚洲一区二区久久久久久久| 美女网站视频色| 写真福利片hd在线观看| 97视频热人人精品免费| 欧美体内she精视频| 日本一区二区三区视频免费看| 久久99精品波多结衣一区| 国产日韩精品在线看| 日韩激情在线观看| 国产亚洲精品美女久久久| 成人在线观看黄| 欧美三级黄视频| 999精品视频在这里| 一区二区三区色| 久久精品午夜一区二区福利| 影音先锋亚洲天堂| 黄a在线观看| 成人av在线影院| 国产成人久久久精品一区| 日韩中文字幕有码| 992tv在线| 另类亚洲自拍| 久久久成人av| 黄色av网址在线观看| www.1024| 国产精品丝袜xxxxxxx| 色悠悠国产精品| 国产十八熟妇av成人一区| 高清成人av| 国产农村妇女毛片精品久久莱园子 | 91久久久一线二线三线品牌| 久久久久99精品成人片试看| 91涩漫在线观看| 成人黄色网址在线观看| 国产精品久久久久久久久久99| 91人妻一区二区三区蜜臀| 国产香蕉视频在线看| 国产精品性做久久久久久| 浅井舞香一区二区| 久久久久久久中文字幕| 黄色在线播放网站| 91啦中文在线观看| 国产精品99久久久久久久| 最近中文字幕免费在线观看| 欧美三区四区| 欧美天天综合色影久久精品| 日本精品福利视频| 国产性网软件大全| 久久久久久久久久久久久久久久久久| 日韩成人免费视频| 中文字幕乱码在线人视频| **毛片在线网站| 国产一区不卡视频| 亚洲xxxx18| 国产情侣av在线| av自拍一区| 日韩精品影音先锋| 亚洲欧美激情一区二区三区| 中文在线最新版天堂8| 国产伦精一区二区三区| 国产精品网站入口| 亚洲一级片免费看| 大奶在线精品| 亚洲国产日韩欧美在线99| 亚洲精品久久一区二区三区777 | 在线观看黄网站免费继续| 欧美久久影院| 色综合久久悠悠| 国产亚洲精品久久久久久打不开 | 在线观看国产麻豆| av一区二区久久| 久久精品ww人人做人人爽| 黄色www在线观看| 久久久精品久久久久特色影视| 91成人看片| 美女性感视频久久久| 麻豆亚洲av熟女国产一区二| 外国成人直播| 欧美日韩国产不卡| 日本wwww色| 97在线观看免费观看高清 | 国产一区在线看| 国产精品国产一区二区| 欧美在线 | 亚洲| 色小子综合网| 欧美激情视频网| 7799精品视频天天看| 中文在线免费一区三区| 亚洲免费视频观看| 久热这里有精品| 国产第一亚洲| 亚洲精品国产美女| 亚洲aaa视频| 亚洲www啪成人一区二区| 日韩一区二区三区四区五区六区| 性欧美丰满熟妇xxxx性久久久| 麻豆视频在线观看免费网站| 午夜精品福利一区二区蜜股av | 国产白浆在线| 美女一区二区三区| 精品国产综合| 怡红院怡春院首页| 精品一区二区三区免费视频| 久久精品国产美女| 国产精品美女一区二区三区四区 | 欧美福利小视频| 真实的国产乱xxxx在线91| 国产va免费精品观看精品视频 | 精品免费国产二区三区| 综合 欧美 亚洲日本| 激情亚洲小说| 一区二区欧美在线| 黄色一级片免费在线观看| 国产精品嫩模av在线| 性色av一区二区三区免费| 国产黄色一级大片| 99综合在线| 牛人盗摄一区二区三区视频| 大肉大捧一进一出好爽| 久久久久久久久久久99999| 欧美 国产 综合| 成人影院免费观看| 91国偷自产一区二区开放时间 | 亚洲成人你懂的| 秘密基地免费观看完整版中文 | 男操女免费网站| 性欧美猛交videos| 日韩欧美在线影院| 青青操视频在线播放| 性欧美lx╳lx╳| 91蜜桃在线观看| 日韩国产欧美亚洲| www 日韩| 制服丝袜在线91| 久久久久久免费观看| 国产精选一区| 91亚洲精品在线| 黄色影片网站| 国产精品人妖ts系列视频| 亚洲18在线看污www麻豆| 99热99re6国产在线播放| 亚洲老头同性xxxxx| 中国女人一级一次看片| 一区二区三区成人精品| 日韩免费毛片| 免费观看成年在线视频网站| 在线视频观看一区| 玖玖爱免费视频| 亚洲色图二区| 日本在线播放一区| 日韩av免费观影| 91精品国产免费| 成人免费毛片男人用品| 国产在线欧美| 夜夜春亚洲嫩草影视日日摸夜夜添夜| 调教在线观看| 欧美三级午夜理伦三级中视频| 亚洲av鲁丝一区二区三区 | 欧美日韩精品一区二区三区视频| 日韩一区二区在线视频| 亚欧在线观看视频| av不卡在线播放| 午夜剧场高清版免费观看| 高清成人在线| 97久久精品人人澡人人爽缅北| 国产欧美日韩专区| 亚洲男帅同性gay1069| 懂色av蜜桃av| 亚洲成人最新网站| 日本欧洲国产一区二区| 超碰国产在线| 亚洲欧美制服另类日韩| 特级丰满少妇一级aaaa爱毛片| 国产成人亚洲综合a∨猫咪| jizz大全欧美jizzcom| 精品久久国产一区| 亚洲一区二区三区成人在线视频精品| 高清hd写真福利在线播放|