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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3764|回復: 1
收起左側

51單片機8x8點陣貪食蛇游戲機程序,支持投幣檢測、上位機、最高分記錄等功能

[復制鏈接]
ID:408866 發表于 2021-4-20 12:02 | 顯示全部樓層 |閱讀模式
好久不寫51單片機了,最近做了一個貪食蛇游戲機。
貪食蛇封面.jpg

用到的模塊包括:8x8點陣,LCD1602,矩陣鍵盤、紅外遙控器、光敏電阻、EEPROM、電機驅動等
實現的功能包括:投幣檢測,紅外、鍵盤、上位機三種操作模式、最高分記錄、震動反饋等

在B站傳了一個驗收時候的視頻,所有的功能的介紹都在視頻里強烈建議直接戳視頻看
強烈建議直接戳視頻看
強烈建議直接戳視頻看:
https://www.bilibili.com/video/BV1Ba4y1Y7oz?share_source=copy_web
上位機界面:

上位機截圖.png

51是用keil建的工程,上位機是QT寫的。附件包含了全部的代碼,51和上位機都有嗷~

代碼.png

單片機源程序如下:
  1. #include <reg52.h>
  2. #include "typedef.h"
  3. #include "LCD1602.h"
  4. #include "LED88.h"
  5. #include "key.h"
  6. #include "IR.h"
  7. #include "24c02.h"
  8. #include "UART.h"
  9. #include "XPT2046.h"

  10. sfr  T2MOD = 0xc9;   //補充寄存器T2MOD定義
  11. sbit motor = P2^2;   //電機接口

  12. u8 time = 0;        //每50ms加一
  13. u8 game_state = 0;  //指示游戲進行狀態
  14. u8 game_level = 1;  //游戲難度等級。每吃到八個點增加一級
  15. u16 ADC_value = 0;  //光敏電阻采值
  16. u8 control_mode = 0;//控制模式,1為板載按鍵,2為紅外遙控
  17. u8 score_record = 0;//最高分記錄,保存在24c02中

  18. extern u8 length;   //蛇身長度
  19. extern u8 direction;//前進方向
  20. extern u8 food_x;   //食物點坐標
  21. extern u8 food_y;
  22. extern u8 xdata snake_x[64];  //蛇身坐標
  23. extern u8 xdata snake_y[64];
  24. extern u8 key_value;    //按鍵操作
  25. extern u8 IR_value;     //紅外遙控按鍵操作
  26. extern u8 irtime;       //紅外遙控計時標志位
  27. extern u8 UART_data;    //串口接收內容

  28. sbit test = P1^1;

  29. void main()
  30. {
  31.         motor = 0;     //關閉電機
  32.         LCD1602_Init();//1602初始化
  33.         I2C_init();    //I2C初始化
  34.         LED88_clean(); //8x8點陣清屏

  35.         //從24C02中讀取游戲最高分記錄
  36.         score_record = I2C_ReceiveData(0);//從AT24C02第0個單元中讀取數據

  37.         //使能定時器2 50ms 用于貪食蛇、LCD閃爍等計時       
  38.         T2MOD = 0;      //向上計數
  39.     T2CON = 0;      //16位自動重裝模式
  40.     TL2 = 0x00;     //設置定時初值
  41.     TH2 = 0x4C;
  42.     RCAP2L = 0x00;  //設置定時重載值
  43.     RCAP2H = 0x4C;
  44.         ET2=1;
  45.         TR2=1;

  46.         //使能總中斷開關
  47.         EA = 1;       
  48.        
  49.         //剛上電時ADC讀值不穩定,延遲2s啟動
  50.         LCD1602_Dis_Str(0, 0, "Welcome!");
  51.                
  52.         while(1)
  53.         {
  54.                 u8 i,last_state,flag;
  55.                
  56.                 test = ~test;
  57.                
  58.                 //模式更新第一次進入while時,flag會被置0
  59.                 if(game_state!=last_state)
  60.                         flag = 0;
  61.                 else
  62.                         flag = 1;
  63.                 last_state = game_state;

  64.                 switch(game_state)
  65.                 {
  66.                         //未開始游戲,需要投幣
  67.                         case 0:
  68.                                 //AD采值要放在LCD刷新之前,否則受引腳共用的影響會出錯
  69.                                 ADC_value = (ADC_read(AD_CH0));

  70.                                 //INSERT COIN每1s閃爍
  71.                                 if(time/20%2==0)
  72.                                         LCD1602_Dis_Str(0, 1, "INSERT COIN");
  73.                                 else
  74.                                         LCD1602_Dis_Str(0, 1, "           ");
  75.                                
  76.                                 //如果光敏被遮住,認為投入硬幣,開始游戲
  77.                                 if(ADC_value>1500)
  78.                                 {
  79.                                         ADC_value = 0;
  80.                                         LCD1602_clean(); //LCD清屏
  81.                                         snake_food();    //隨機初始化一個食物的位置
  82.                                         game_state = 1;  //進入操作方式選擇
  83.                                 }
  84.                                 else
  85.                                         delay_ms(10);  //ADC采值不能過于頻繁,否則會出錯
  86.                         break;
  87.                                
  88.                         //選擇操作方式
  89.                         case 1:
  90.                                 //通過flag變量確保以下內容只執行一次
  91.                                 if(flag==0)
  92.                                 {
  93.                                         LCD1602_Dis_Str(0, 0,  "Select Ctrl Mode");
  94.                                         LCD1602_Dis_Str(0, 1,  "1:Key 2:IR 3:PC");
  95.                                 }
  96.                                
  97.                                 key_scan();        //掃描矩陣鍵盤
  98.                                 if(key_value==16)  //按S2選擇板載鍵盤操作
  99.                                 {
  100.                                         control_mode = 1;
  101.                                         key_value = 0;   //按鍵標志位清零
  102.                                 }
  103.                                 else if(key_value==17)  //按S3選擇紅外遙控器操作
  104.                                 {
  105.                                         control_mode = 2;
  106.                                         key_value = 0;   //按鍵標志位清零
  107.                                        
  108.                                         //使能定時器1 用于紅外遙控
  109.                                         TMOD|= 0x20;
  110.                                         TH1  = 0x00;
  111.                                         TL1  = 0x00;
  112.                                         ET1  = 1;
  113.                                         TR1  = 1;   
  114.                                         //使能外部中斷 用于紅外遙控
  115.                                         IT0 = 1;
  116.                                         EX0 = 1;
  117.                                 }
  118.                                 else if(key_value==18)
  119.                                 {
  120.                                         control_mode = 3;
  121.                                         key_value = 0;   //按鍵標志位清零
  122.                                        
  123.                                         UART_init();
  124.                                 }
  125.                                 if(control_mode!=0)
  126.                                 {
  127.                                         //倒計時三秒開始
  128.                                         LCD1602_clean();
  129.                                         LCD1602_Dis_Str(8, 0, "3");
  130.                                         delay_ms(1000);
  131.                                         LCD1602_Dis_Str(8, 0, "2");
  132.                                         delay_ms(1000);
  133.                                         LCD1602_Dis_Str(8, 0, "1");
  134.                                         delay_ms(1000);
  135.                                        
  136.                                         //LCD清屏,顯示游戲界面信息
  137.                                         LCD1602_clean();
  138.                                         LCD1602_Dis_Str(0, 0,  "level:");
  139.                                         LCD1602_Dis_Str(0, 1,  "score:");
  140.                                        
  141.                                         game_state = 2;  //進入游戲模式                                       
  142.                                         time = 0;       //T0累加位清零
  143.                                 }
  144.                         break;
  145.                        
  146.                         //游戲進行中
  147.                         case 2:                       
  148.                                 //刷新游戲界面
  149.                                 for(i=0; i<length; i++)
  150.                                         LED88_point(snake_x[i], snake_y[i]);  //顯示蛇
  151.                                 LED88_point(food_x, food_y); //顯示食物
  152.                                
  153.                                 //獲取用戶操作
  154.                                 if(control_mode==1)
  155.                                         key_scan();   //掃描矩陣鍵盤
  156.                                 else if(control_mode==2)
  157.                                         IR_process(); //處理紅外遙控
  158. //                                else if(control_mode==3)
  159. //                                        UART_receive();
  160.                                
  161.                                 //手動調節難度等級
  162.                                 if(key_value==18 || IR_value==18 || UART_data==18)
  163.                                 {
  164.                                         key_value = 20;
  165.                                         IR_value  = 20;
  166.                                         UART_data = 20;
  167.                                         if(game_level<9)
  168.                                                 game_level++;
  169.                                         time = 0;
  170.                                 }       
  171.                                 else if(key_value==17 || IR_value==17 || UART_data==17)
  172.                                 {
  173.                                         key_value = 20;
  174.                                         IR_value  = 20;
  175.                                         UART_data = 20;
  176.                                         if(game_level>1)
  177.                                                 game_level--;
  178.                                         time = 0;
  179.                                 }       
  180.                                 //顯示難度等級和得分
  181.                                 LCD1602_Dis_Str(7, 0, u8_to_str(game_level));
  182.                                 LCD1602_Dis_Str(7, 1, u8_to_str((length-3)/10));
  183.                                 LCD1602_Dis_Str(8, 1, u8_to_str((length-3)%10));
  184.                                 //如果打破紀錄,顯示new record字樣
  185.                                 if((length-3)>score_record)
  186.                                 {
  187.                                         LCD1602_Dis_Str(11, 0, "new");
  188.                                         LCD1602_Dis_Str(10, 1, "record");
  189.                                 }
  190.                                 //如果長度達到64,直接結束游戲
  191.                                 if(length==64)
  192.                                 {
  193.                                         LCD1602_clean();
  194.                                         LED88_clean();
  195.                                         game_state = 4;
  196.                                         time = 0;
  197.                                 }
  198.                                 //判斷是否暫停
  199.                                 if(key_value==16 || IR_value==16 || UART_data==16)  //按下暫停鍵
  200.                                 {
  201.                                         LCD1602_clean();
  202.                                         LCD1602_Dis_Str(0, 0,  "-----Pause-----");
  203.                                         game_state = 3;
  204.                                         key_value = 20;     //清空按鍵值,否則會直接觸發繼續
  205.                                         IR_value  = 20;
  206.                                         UART_data = 20;
  207.                                 }
  208.                         break;
  209.                        
  210.                         //游戲暫停
  211.                         case 3:
  212.                                 ET0 = 0;  //關閉T0,蛇保持靜止
  213.                        
  214.                                 //刷新游戲界面
  215.                                 for(i=0; i<length; i++)
  216.                                         LED88_point(snake_x[i], snake_y[i]);  //顯示蛇
  217.                                 LED88_point(food_x, food_y); //顯示食物
  218.                        
  219.                                 //獲取用戶操作
  220.                                 if(control_mode==1)
  221.                                         key_scan();   //掃描矩陣鍵盤
  222.                                 else if(control_mode==2)
  223.                                         IR_process(); //處理紅外遙控
  224. //                                else if(control_mode==3)
  225. //                                        UART_receive();
  226.                        
  227.                                 //判斷是否繼續
  228.                                 if(key_value==16 || IR_value==16 || UART_data==16)   //按下繼續鍵
  229.                                 {
  230.                                         LCD1602_clean(); //LCD清屏,顯示游戲信息
  231.                                         LCD1602_Dis_Str(0, 0,  "level:");
  232.                                         LCD1602_Dis_Str(0, 1,  "score:");
  233.                                         key_value = 20;  //清空按鍵值,否則會直接觸發繼續
  234.                                         IR_value  = 20;
  235.                                         UART_data = 20;
  236.                                         game_state = 2;  //回到游戲狀態(2)
  237.                                         TH0 = 0x4C;
  238.                                         TL0 = 0x00;
  239.                                         ET0 = 1;
  240.                                         time = 0;
  241.                                 }               
  242.                         break;

  243.                         //死亡
  244.                         case 4:
  245.                                 //如果沒有打破紀錄
  246.                                 if((length-3)<=score_record)
  247.                                 {
  248.                                         //GAME OVER閃爍
  249.                                         if(time/20%2==0)
  250.                                                 LCD1602_Dis_Str(0, 0, "GAME OVER");
  251.                                         else
  252.                                                 LCD1602_Dis_Str(0, 0, "         ");       
  253.                                        
  254.                                         //通過變量flag使得以下內容只執行一次
  255.                                         if(flag==0)
  256.                                         {
  257.                                                 LCD1602_clean();
  258.                                                 LED88_clean();
  259.                                                 //顯示得分
  260.                                                 LCD1602_Dis_Str(0,  1, "Your score:");
  261.                                                 LCD1602_Dis_Str(11, 1, u8_to_str((length-3)/10));
  262.                                                 LCD1602_Dis_Str(12, 1, u8_to_str((length-3)%10));
  263.                                         }
  264.                                 }
  265.                                 //如果打破紀錄
  266.                                 else
  267.                                 {
  268.                                         //通過變量flag使得以下內容只執行一次
  269.                                         if(flag==0)
  270.                                         {
  271.                                                 LCD1602_clean();
  272.                                                 LED88_clean();
  273.                                                 //將新紀錄保存至24c02
  274.                                                 I2C_TransmitData(0, length-3);
  275.                                                 //顯示得分
  276.                                                 LCD1602_Dis_Str(0,  1, "New record:");
  277.                                                 LCD1602_Dis_Str(11, 1, u8_to_str((length-3)/10));
  278.                                                 LCD1602_Dis_Str(12, 1, u8_to_str((length-3)%10));
  279.                                         }
  280.                                         //CONGRATULATIONS!閃爍
  281.                                         if(time/20%2==0)
  282.                                                 LCD1602_Dis_Str(0, 0, "CONGRATULATIONS!");
  283.                                         else
  284.                                                 LCD1602_Dis_Str(0, 0, "                ");
  285.                                 }
  286.                                 //按S5可以清除最高分記錄
  287.                                 key_scan();
  288.                                 if(key_value==19)
  289.                                 {
  290.                                         I2C_TransmitData(0, 0);
  291.                                         score_record = 0;
  292.                                         LCD1602_clean();
  293.                                         LCD1602_Dis_Str(0, 0, "Reset complete");
  294.                                        
  295.                                         key_value = 20;
  296.                                         delay_ms(1000);
  297.                                         time = 200; //清除完之后延遲一秒直接退回到投幣界面
  298.                                 }
  299.                                 if(time==200)
  300.                                 {
  301.                                         LCD1602_clean();
  302.                                         LCD1602_Dis_Str(0, 0, "Welcome!");
  303.                                         score_record = length-3;
  304.                                         control_mode = 0;
  305.                                         game_state = 0;
  306.                                         game_level = 1;
  307.                                         length = 3;
  308.                                         direction = 4;
  309.                                         snake_x[0] = 2;
  310.                                         snake_x[1] = 1;
  311.                                         snake_x[2] = 0;
  312.                                         snake_y[0] = 0;
  313.                                         snake_y[1] = 0;
  314.                                         snake_y[2] = 0;
  315.                                         delay_ms(100);
  316.                                 }
  317.                         break;       
  318.                 }       
  319.         }
  320. }

  321. //定時器0中斷服務函數
  322. //void timer0_ISR(void) interrupt 1
  323. //{

  324. //}

  325. //定時器1中斷服務函數
  326. void timer1_ISR(void) interrupt 3
  327. {
  328.         irtime++;  //用于計數2個下降沿之間的時間
  329. }

  330. //定時器2中斷服務函數
  331. void timer2_ISR(void) interrupt 5
  332. {
  333.         TF2 = 0;  //T2需要手動清除標志位
  334.        
  335.         time++;
  336.         if(time==255)
  337.                 time = 0;

  338.         if(time==(18-game_level) && game_state==2)
  339.         {
  340.                 time = 0;
  341.                 //計算移動
  342.                 snake_move();
  343.                 //判斷是否吃到食物
  344.                 snake_grow();
  345.                 //吃一個食物點一盞LED
  346.                 P1 = 0xff>>((length-3)%8);
  347.                 //判斷是否死亡
  348.                 snake_death();               
  349.         }
  350. }

  351. //外部中斷0服務函數
  352. void EX0_ISR(void) interrupt 0
  353. {
  354.         IR_interrupt_process();
  355. }
復制代碼
文件截圖.png
所有資料51hei提供下載:
51單片機貪食蛇.rar (18.36 MB, 下載次數: 32)



評分

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

查看全部評分

回復

使用道具 舉報

ID:1155795 發表于 2025-7-2 10:41 | 顯示全部樓層
太強了 頂一頂樓主 非常強悍
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
成年网站在线| 亚洲男同1069视频| 欧美国产精品| 99久久久久久中文字幕一区| 国产99精品| 欧美高清视频看片在线观看| 日韩精品视频中文字幕| 亚洲伊人伊成久久人综合网| av成人在线网站| 日韩精品成人| 精品三级av在线导航| 精品久久97| 亚洲制服欧美另类| 日韩电影在线视频| 羞羞答答成人影院www| 在线免费观看日本欧美爱情大片| 亚洲情侣在线| 亚洲福利免费| 亚洲免费网站| 青青草成人在线观看| 蜜臀久久99精品久久久久久9| 久久中文字幕一区二区三区| 免费高清视频精品| 成人性色生活片免费看爆迷你毛片| 丰满白嫩尤物一区二区| 久久综合久色欧美综合狠狠| 国产精品免费网站在线观看| 亚洲激情综合网| 一区二区免费视频| 色婷婷综合久久久久中文| 欧美网站大全在线观看| 亚洲电影免费观看高清完整版在线观看| 亚洲电影免费观看高清| 久久免费偷拍视频| 国产精品久久久久久亚洲毛片 | 国产午夜激情视频| 久久精品这里有| 成年人视频免费| 99久久亚洲精品日本无码| 中国女人内谢69xxxx免费视频| 最近的中文字幕在线看视频| 九色91偷拍| 男裸体无遮挡网站| 撸视在线观看免费视频| 国产成人午夜精品| 国产三级在线看| 182在线播放| 国产一区二区高清在线| 精品国产精品国产偷麻豆| 亚洲黄色成人| 成人午夜免费电影| 中文在线资源观看网站视频免费不卡 | 国产精品密蕾丝视频下载 | 色婷婷av一区二区三区丝袜美腿| av在线不卡免费观看| 亚洲高清在线| 国产福利一区二区三区| 日韩一区日韩二区| 69av一区二区三区| 在线看福利67194| 欧美中文在线免费| 久久精品一区二区三区不卡免费视频| 亚洲不卡1区| 亚洲最大综合网| 四虎永久免费在线观看| 男女视频免费看| 少妇一级淫片免费看| 久久性爱视频网站| 亚洲不卡在线播放| 国产免费福利视频| free欧美性| 国产爆初菊在线观看免费视频网站 | 香港日本韩国三级网站| 亚洲精品国产一区黑色丝袜| 黄色在线视频网址| 欧美色图第二页| 国产在线制服美女| 小视频免费在线观看| 欧美一区二区三区红桃小说| 久久福利一区| 国产精品欧美精品| 91精品国产高清一区二区三区| 亚洲成人精品影院| 精品国内二区三区| 69av在线播放| 日韩精品极品视频在线观看免费| 国产又黄又猛视频| 中日韩一级黄色片| 五月激情婷婷综合| 成人手机在线| caoporn视频在线| 禁果av一区二区三区| 国内精品伊人久久久久av影院| 一区二区在线看| 亚洲人成电影在线播放| 91在线网站视频| 极品粉嫩国产18尤物| 国产又黄又粗视频| 欧美亚洲精品在线观看| 中文字幕校园春色| 国产精品久久久久久久久久齐齐| 欧美日韩国产在线一区| 久久精品亚洲一区二区三区浴池 | 日韩国产精品亚洲а∨天堂免| 国产成人精品午夜| 17c丨国产丨精品视频| 精品人妻一区二区三区视频| 日本黄色福利视频| 亚洲欧美日本一区二区| 日韩伦人妻无码| 国产1卡2卡三卡四卡网站| h视频在线播放| 美国十次av导航亚洲入口| 欧美a级理论片| 一本大道久久a久久综合婷婷| 久久久精品国产网站| 欧美在线视频网| 免费的一级黄色片| 日韩欧美国产成人精品免费| 男女视频网站| av电影在线观看| 日韩av网址大全| www.亚洲免费av| 日韩片之四级片| 亚洲在线一区二区| 日韩va在线观看| 国产又爽又黄免费软件| 午夜影院观看视频免费| 伊人亚洲精品| 激情综合色播五月| 欧美一级国产精品| 亚洲综合中文字幕68页| 日韩av成人网| 亚洲va欧美va| 第一页在线观看| 日韩精品中文字幕第1页| 亚洲国产岛国毛片在线| 少妇精69xxtheporn| 色噜噜狠狠一区二区三区| 日韩欧美黄色网址| 国产免费麻豆视频| 国模雨婷捆绑高清在线| 黄色在线一区| 色网综合在线观看| 91视频免费在线| 99热超碰在线| 热99精品视频| 成人小电影网站| 日本美女一区二区三区视频| 欧美日韩视频在线观看一区二区三区 | 九七久久人人| 日韩精品一区二区三区免费观看| 综合欧美亚洲日本| 午夜美女久久久久爽久久| 精品中文字幕av| 中文字幕第一页在线播放| 国产污污在线观看| 欧美亚洲在线日韩| 一片黄亚洲嫩模| 45www国产精品网站| 日韩在线一区视频| 婷婷视频在线观看| 超碰成人av| 狠狠色综合色综合网络| 国产丝袜高跟一区| 亚洲国产精品女人| 久久黄色精品视频| 小明精品国产一区二区三区| 日韩欧美国产精品综合嫩v| 亚洲va中文字幕| 国产日产欧美精品| 无码国产69精品久久久久同性| 国产黄色麻豆视频| 欧美视频二区欧美影视| 国产欧美日韩不卡| 欧美综合一区第一页| 中文字幕一二三区| 国产精品在线| 日韩一二三区| 亚洲欧洲日本在线| 国产精品欧美亚洲777777| 免费看毛片的网站| 日本jizz中国| 免费av一区二区三区四区| 亚洲国产一区二区a毛片| 亚洲a在线观看| 成人高潮免费视频| 日韩写真在线| 国产一区亚洲| 亚洲第一色在线| av免费观看大全| 欧美特黄一级视频| 久久免费影院| 国产精品久久久久久久午夜片 | 国产1区在线观看| 亚洲精品成人图区| 久久伊人中文字幕| 国产精品亚洲激情| 99久久精品久久亚洲精品| 日本搞黄视频| 91久久黄色| 精品亚洲精品福利线在观看| 奇米精品一区二区三区| 亚洲色图另类图片| 日韩精品免费视频一区二区三区| 激情久久一区| 欧美大片在线观看一区二区| 免费的一级黄色片| 五月婷婷久久久| 久久精品超碰| 亚洲国产综合91精品麻豆| 久久久影院一区二区三区| 免费看污视频的网站| 国内小视频在线看| 国产午夜精品一区二区| 国产欧美日韩中文字幕在线| 欧美日韩在线视频免费播放| 欧美一区二区三区少妇| 久久精品国产亚洲高清剧情介绍 | 99久久久久久久久久| 嫩草嫩草嫩草嫩草| 鲁大师成人一区二区三区| www.亚洲免费视频| 国产a级黄色片| 美女的诞生在线观看高清免费完整版中文 | 蜜桃在线一区二区| 国产视频在线播放| 久久欧美一区二区| 91影院在线免费观看视频| 免费在线不卡视频| av在线资源| 日韩理论在线观看| 欧美日韩在线不卡一区| 国产高中女学生第一次| 国产精品国产亚洲精品| 91成人看片片| 免费在线观看亚洲视频| 日本夜夜草视频网站| 亚洲一区二区日韩| 在线视频日韩精品| 亚洲av片不卡无码久久| 国产区视频在线播放| 91在线精品一区二区三区| 动漫3d精品一区二区三区| 国产精品高潮呻吟av| 日韩精品三级| 欧美一级片在线| 先锋资源在线视频| 在线播放av网站| 成+人+亚洲+综合天堂| 亚洲一区二区三| 国产伦理一区二区| 欧美电影在线观看完整版| 亚洲国产欧美在线成人app | 欧美亚洲国产一区二区三区va| 日本wwww视频| 2色视频网站| 免费亚洲视频| 欧美丝袜一区二区三区| 久久久国内精品| 美女网站免费观看| 日韩精品高清不卡| 国产精品日韩精品| 国产又粗又猛又色又| 一本一道波多野毛片中文在线| 久久久另类综合| 欧洲一区二区在线观看| 久久夜色邦福利网| 欧美不卡一区| 欧美孕妇孕交黑巨大网站| 丰满少妇xoxoxo视频| 免费观看在线一区二区三区| 精品久久人人做人人爰| 中文精品在线观看| 在线观看三级视频| 欧美午夜激情在线| 中文字幕1234区| 爱爱爱免费视频在线观看| 中文字幕中文字幕在线一区| 久久男人资源站| 美女在线一区| 久久精品水蜜桃av综合天堂| av不卡在线免费观看| 黄色片子免费| 国产精品18久久久久久vr| 久久久久久久有限公司| 国产又白又嫩又紧又爽18p| 免费视频一区| 99在线免费观看视频| 中文字幕欧美日韩久久| 香蕉久久国产| 国产精选久久久久久| 婷婷五月综合激情| 亚洲欧美日韩专区| 国产精品午夜av在线| 国产免费电影网站入口| 黄色精品一二区| 亚洲aⅴ天堂av在线电影软件| 成年人视频网址| 91蜜桃免费观看视频| 91传媒免费视频| 色黄视频在线| 一区二区在线免费| 911av视频| а√天堂中文资源在线bt| 欧美一激情一区二区三区| 91成人在线免费视频| 激情亚洲影院在线观看| 亚洲国产成人久久| 久久精品久久国产| 日韩精品免费一区二区三区竹菊| 色综合男人天堂| 国产日韩一级片| 国精品一区二区| 91成人在线看| 日本羞羞视频| 国产欧美精品一区二区三区四区 | 欧美日韩一区二区三区电影| 蜜桃视频网站www| 亚洲乱码精品一二三四区日韩在线| 亚洲无吗一区二区三区| 黄色网址视频在线观看| 欧美精品久久99| 东京热无码av男人的天堂| 激情不卡一区二区三区视频在线| 揄拍成人国产精品视频| 浮妇高潮喷白浆视频| 波多野结衣在线网站| 欧美日韩视频在线观看一区二区三区| 少妇真人直播免费视频| 999精品嫩草久久久久久99| 日韩有码视频在线| 午夜精品久久久久久久99老熟妇 | 91在线视频精品| 开心婷婷激情五月| 亚洲国产成人午夜在线一区| 一本色道久久亚洲综合精品蜜桃| 蜜臀av在线播放| 亚洲成人三级在线| 51国产偷自视频区视频| 先锋资源久久| 国产精品综合久久久久久| h在线观看免费| 亚洲精品老司机| 少妇一级淫免费观看| 久久的色偷偷| 2019亚洲男人天堂| 国产一级片网站| 国产调教视频一区| 中文字幕55页| 人人精品久久| 69影院欧美专区视频| 国产xxx在线| 男人操女人的视频在线观看欧美| 精品国产一区二区三区无码| 老司机午夜在线视频| 亚洲精品国产精品国自产观看浪潮| 91黑人精品一区二区三区| 日韩午夜一区| 中文字幕av久久| 黄av在线免费观看| 夜夜嗨av一区二区三区免费区 | 美女尤物久久精品| www.激情网| 国产丝袜精品丝袜| 久久视频在线直播| 在线播放一区二区精品产| 国产亚洲精品7777| 欧美视频在线观看视频| av在线私库| 韩国福利视频一区| 天堂在线网站| 天天av天天翘天天综合网色鬼国产| 日本一级二级视频| 亚洲国产欧美国产综合一区| 国产 国语对白 露脸| 国产丝袜在线观看视频| 欧美大荫蒂xxx| 蜜桃狠狠狠狠狠狠狠狠狠| 亚洲成a人v欧美综合天堂下载 | 日韩精品久久久久久福利| 囯产精品一品二区三区| 91天堂素人约啪| 熟妇人妻久久中文字幕| 国产精品自拍区| 日韩电影天堂视频一区二区| 欧美13一16娇小xxxx| 久久久精品免费视频| 国产美女精品久久| 久久人体视频| 中文字幕精品在线播放| 嗯~啊~轻一点视频日本在线观看| 欧美激情久久久久| 深夜福利av你懂的| 7777精品伊人久久久大香线蕉完整版| 中文字幕有码无码人妻av蜜桃| 国产乱码精品1区2区3区| 精产国品一区二区三区| 国内成人自拍| 黄色www在线观看|