久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

GSM遠程控制密碼鎖的設計的單片機工程文件程序(C語言編寫)

[復制鏈接]
跳轉到指定樓層
樓主
ID:430292 發表于 2018-11-20 23:49 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
GSM 遠程控制密碼鎖的設計的工程文件程序(C語言編寫),詳情見附件,歡迎評論,51單片機制作

單片機源程序如下:
  1. #include <reg52.h>                 //調用單片機頭文件
  2. #define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
  3. #define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535

  4. uchar value,i;                //變量
  5. #include "lcd1602.h"
  6. #include "iic.h"


  7. uchar flag_lj_en;  //邊加
  8. uchar flag_lj_en_value;

  9. sbit relay = P2^2;  //繼電器定義
  10. sbit beep  = P3^3;  //蜂鳴器定義

  11. sbit beiguang = P2^3;  //背光
  12. //sbit red = P2^4;

  13. uint flag_time;

  14. uint flag_guan;

  15. sbit  VBUSY= P3^4;                //語音模塊IO口定義
  16. sbit  VSDA = P3^5;
  17. sbit  VCS  = P3^6;  
  18. sbit  VSCL = P3^7;


  19. uchar lcd_i;
  20. uchar dis_lcd[7]={0};
  21. uchar dis_smg[11];

  22. uchar idata password1[7]={3,2,1,3,2,1};            //密碼保存
  23. uchar idata password_bj[7]={1,2,3,4,5,6};        //密碼比較
  24. uchar code password_r1[6] = {3,2,1,3,2,1} ;
  25. uchar code password_gl[6] = {5,2,0,0,2,5} ;
  26. uchar idata password_xg[6];        //密碼修改
  27. uchar flag_password;      //密碼正確否
  28. uchar flag_password_cichu1;//密碼錯誤次數

  29. bit flag_200ms=1;     //200ms標志位

  30. uchar  phone1_i = 0;           //電話號碼是多少位
  31. uchar  phone1_call[11]={1,8,3, 2,4,1,3, 1,8,3,2};


  32. uchar key_can;                 //鍵值

  33. uchar flag_mm1;         //判斷密碼是否正確

  34. uchar flag_en1;

  35. uchar menu_1;
  36. char menu_i        ;

  37. uchar smg_i;


  38. /***********************1ms延時函數*****************************/
  39. void delay_1ms(uint q)
  40. {
  41.         uint i,j;
  42.         for(i=0;i<q;i++)
  43.                 for(j=0;j<120;j++);
  44. }

  45. /***************把數組清空**********************/
  46. void clear1_shuzu(uchar *p,uchar num)
  47. {
  48.         for(i=0;i<num;i++)
  49.                 p[i] = ' ';
  50. }
  51. #include "iic.h"
  52. #include "gsm.h"


  53. void key()         //獨立按鍵程序
  54. {
  55.         static uchar key_new = 0, key_l;
  56.         key_can = 20;                   //按鍵值還原
  57.         P1 = 0x0f;
  58.         if((P1 & 0x0f) != 0x0f)                //按鍵按下
  59.         {
  60.                 delay_1ms(1);                     //按鍵消抖動
  61.                 if(((P1 & 0x0f) != 0x0f) && (key_new == 1))
  62.                 {                                                //確認是按鍵按下
  63.                         key_new = 0;                 //清零
  64.                         key_l = (P1 | 0xf0);   //矩陣鍵盤掃描
  65.                         P1 = key_l;                           //讀P1端口的值
  66.                         switch(P1)
  67.                         {
  68.                                 case 0xee:  key_can = 10;  break;  //得到按鍵值
  69.                                 case 0xde:  key_can = 7;  break;   //得到按鍵值
  70.                                 case 0xbe:  key_can = 4;  break;   //得到按鍵值
  71.                                 case 0x7e:  key_can = 1;  break;   //得到按鍵值
  72.        
  73.                                 case 0xed:  key_can = 0;  break;  //得到按鍵值
  74.                                 case 0xdd:  key_can = 8;  break;   //得到按鍵值
  75.                                 case 0xbd:  key_can = 5;  break;   //得到按鍵值
  76.                                 case 0x7d:  key_can = 2;  break;   //得到按鍵值
  77.        
  78.                                 case 0xeb:  key_can = 3;  break;  //得到按鍵值
  79.                                 case 0xdb:  key_can = 6;  break;   //得到按鍵值
  80.                                 case 0xbb:  key_can = 9;  break;   //得到按鍵值
  81.                                 case 0x7b:  key_can = 11;  break;   //得到按鍵值
  82.        
  83.                                 case 0xe7:  key_can = 15;  break;  //得到按鍵值
  84.                                 case 0xd7:  key_can = 14;  break;  //得到按鍵值
  85.                                 case 0xb7:  key_can = 13;  break;   //得到按鍵值
  86.                                 case 0x77:  key_can = 12;  break;  //得到按鍵值  

  87.                         }       
  88.                         beep = 0;
  89.                         delay_1ms(20);
  90.                         beep = 1;
  91.                 }                       
  92.         }
  93.         else
  94.         {
  95.                 key_new = 1;                   //無鍵按下
  96.                 flag_lj_en = 0;
  97.         }       
  98. }


  99. void write_mm()                 //保存密碼
  100. {
  101.         write_24c02_8(6,0,password1);       

  102.         write_24c02(30,phone1_call[0]) ;
  103.         write_24c02(31,phone1_call[1]) ;
  104.         write_24c02(32,phone1_call[2]) ;
  105.         write_24c02(33,phone1_call[3]) ;
  106.         write_24c02(34,phone1_call[4]) ;
  107.         write_24c02(35,phone1_call[5]) ;
  108.         write_24c02(36,phone1_call[6]) ;
  109.         write_24c02(37,phone1_call[7]) ;
  110.         write_24c02(38,phone1_call[8]) ;
  111.         write_24c02(39,phone1_call[9]) ;
  112.         write_24c02(40,phone1_call[10]) ;
  113.         write_24c02(58,phone1_i) ;
  114. }

  115. void read_mm()                 //讀出密碼
  116. {
  117.         read_24c02_8(6,0,password1);
  118.         phone1_call[0] = read_24c02(30);
  119.         phone1_call[1] = read_24c02(31);
  120.         phone1_call[2] = read_24c02(32);       
  121.         phone1_call[3] = read_24c02(33);
  122.         phone1_call[4] = read_24c02(34);
  123.         phone1_call[5] = read_24c02(35);
  124.         phone1_call[6] = read_24c02(36);       
  125.         phone1_call[7] = read_24c02(37);
  126.         phone1_call[8] = read_24c02(38);
  127.         phone1_call[9] = read_24c02(39);
  128.         phone1_call[10] = read_24c02(40);
  129.         phone1_i = read_24c02(58);
  130. }

  131. /***************把數組清空**********************/
  132. void clear_shuzu(uchar *p)
  133. {
  134.         for(i=0;i<8;i++)
  135.                 p[i] = 0;
  136. }

  137. /*************定時器0初始化程序***************/
  138. void time_init()          
  139. {
  140.         EA   = 1;                   //開總中斷
  141.         TMOD = 0X01;          //定時器0、工作方式1
  142.         ET0  = 1;                  //開定時器0中斷
  143.         TR0  = 1;                  //允許定時器0定時
  144. }


  145. /***********************語音子程序************************/
  146. void Send_threelines(unsigned char addr)
  147. {
  148.    unsigned char i;
  149.         VCS=0;
  150.     for(i=0;i<8;i++)
  151.         {
  152.                 VSCL=0;
  153.                 if(addr&0x80)
  154.                 {
  155.                         VSDA=1;
  156.                 }
  157.                 else
  158.                         VSDA=0;
  159.                 addr>>=1;
  160.                 VSCL=1;
  161.         }
  162.         VCS=1;
  163. }

  164. /****************按鍵功能處理********************/          
  165. void key_with()
  166. {
  167.         static uchar value;
  168.         if(key_can == 14)   //手動關閉密碼鎖
  169.         {
  170.                 relay = 1;
  171.                 clear_shuzu(password_bj);         //清空報警
  172.                 clear_shuzu(password_xg);
  173.                 clear_shuzu(dis_lcd);

  174.         }
  175.         if(key_can == 10)         //還原密碼
  176.         {                                  
  177.            flag_lj_en = 1;          //連加使能
  178.            flag_lj_en_value = 0;
  179.         }
  180.         if(menu_1 == 0)
  181.         {
  182.                 if(key_can <= 9)
  183.                 if(menu_i < 6)   //密碼輸入
  184.                 {
  185.                         menu_i ++;
  186.                         if(menu_i > 6)
  187.                                 menu_i = 6;
  188.                         lcd_i = menu_i;
  189.                         for(i=6;i>0;i--)
  190.                                 password_bj[i] = password_bj[i-1];                   //依次裝入密碼比較數組
  191.                         password_bj[0] = key_can;
  192.                         for(i=0;i<lcd_i;i++)
  193.                                 dis_lcd[i] ='*';//        顯示占位符*
  194.                         write_string(2,7,dis_lcd);       
  195.                         lcd1602_guangbiao(1,7 + menu_i + 0x40);  //開光標
  196.                 }       
  197.                 if(key_can == 11)         //密碼刪除
  198.                 {
  199.                         if(menu_i != 0)
  200.                         {
  201.                                 for(i=0;i<menu_i;i++)
  202.                                         password_bj[i] = password_bj[i+1];           //依次從比較數組中取出密碼
  203.                                 menu_i --;
  204.                                 password_bj[menu_i] = ' ';                          //清除占位符
  205.                                 dis_lcd[menu_i] = ' ';
  206.                                 write_string(2,7,dis_lcd);       
  207.                                 lcd1602_guangbiao(1,7 + menu_i + 0x40);  //開光標
  208.                         }
  209.                 }

  210.                 if(key_can == 15)  //確認鍵
  211.                 {
  212.                         value = 0;
  213.                         for(i=0;i<6;i++)
  214.                         {
  215.                                 if(password_bj[i] == password_gl[i]) //判斷管理員密碼
  216.                                 {
  217.                                          value ++;
  218.                                         if(value >= 6)  //密碼正確
  219.                                         {
  220.                                                 write_string(2,0,"    return      ");
  221.                                                 beep = 0;
  222.                                                 write_24c02(10,value);
  223.                                                 delay_1ms(200);
  224.                                                 write_24c02_8(6,0,password_r1);       
  225.                                                 delay_1ms(200);
  226.                                                 read_mm();        //讀出密碼
  227.                                                 delay_1ms(2000);
  228.                                                 beep = 1;          
  229.                                         }
  230.                                 }
  231.                         }
  232.                         if(value < 6)
  233.                         {                               
  234.                                 for(i=0;i<6;i++)
  235.                                 {
  236.                                         if(password_bj[i] == password1[i])
  237.                                         {
  238.                                                 flag_password = 1 ;                 //密碼正確
  239.                                         }
  240.                                         else
  241.                                         {
  242.                                                 flag_password = 0;                          //密碼錯誤
  243.                                                 flag_password_cichu1 ++;                 //密碼錯誤次數
  244.                                                 write_string(1,0," Password error ");       
  245.                                                 write_string(2,0,"   cishu:       ");
  246.                                                 write_sfm2(2,9,flag_password_cichu1);
  247.                                                 delay_1ms(280);
  248.                                
  249.                                                 for(i=0;i<6;i++)
  250.                                                 {
  251.                                                         beep = ~beep;                                //提示三聲
  252.                                                         delay_1ms(200);
  253.                                                 }
  254.                                                 beep = 1;
  255.                                                 //發送短信
  256.                                                 send_PUD_fdbj();   //發送報警信息        請注意!密碼錯誤!
  257.                                                 delay_1ms(800);
  258.                                                 break;               //密碼不正確
  259.                                         }
  260.                                 }
  261.                                 for(i=0;i<6;i++)
  262.                                         dis_lcd[i] = 0xbf;
  263.                                 if(flag_password == 1)                 //密碼正確
  264.                                 {
  265.                                         flag_password_cichu1 = 0;
  266.                                         relay = 0;     //打開密碼鎖
  267.                                         write_string(2,0," Input:  Open   ");
  268.                                         delay_1ms(1500);
  269.                                 }
  270.                         }
  271.                                 clear_shuzu(password_bj);          //數據清空
  272.                                 clear_shuzu(dis_lcd);
  273.                                 write_string(1,0," Password Lock  ");       
  274.                                 write_string(2,0," Input:         ");
  275.                                 lcd1602_guangbiao(1,7+0x40);  //開光標
  276.                                 menu_i = 0;
  277.                 }
  278.         }                                                                       
  279. }
  280. #include "menu.h"


  281. /****************修改密碼********************/          
  282. void xiugai_password()
  283. {
  284. /*******************修改密碼******************/
  285.         if(menu_2 == 1)
  286.         {
  287.                 if(menu_3 == 1)   //第一次輸入修改的密碼
  288.                 {          
  289.                         if(key_can <= 9)
  290.                         {
  291.                                 if(menu_i < 6)
  292.                                 {
  293.                                         menu_i ++;
  294.                                         if(menu_i > 6)
  295.                                                 menu_i = 6;
  296.                                         lcd_i = menu_i;
  297.                                         for(i=5;i>0;i--)
  298.                                                 password_bj[i] = password_bj[i-1];       
  299.                                         password_bj[0] = key_can;
  300.                                         for(i=0;i<menu_i;i++)
  301.                                                 dis_lcd[i] ='*';
  302.                                         write_string(1,7,dis_lcd);
  303.                                         lcd1602_guangbiao(1,7 + menu_i);  //開光標       
  304.                                 }       
  305.                         }
  306.                         if(key_can == 11)  //刪除鍵
  307.                         {
  308.                                 if(menu_i != 0)
  309.                                 {
  310.                                         for(i=0;i<menu_i;i++)
  311.                                                 password_bj[i] = password_bj[i+1];       
  312.                                         menu_i --;
  313.                                         password_bj[menu_i] = ' ';       
  314.                                         dis_lcd[menu_i] = ' ';
  315.                                         write_string(1,7,dis_lcd);       
  316.                                         lcd1602_guangbiao(1,7 + menu_i);  //開光標       
  317.                                 }
  318.                         }       
  319.                         if(key_can == 15)  //確定鍵
  320.                         {
  321.                                 clear_shuzu(password_xg);
  322.                                 clear_shuzu(dis_lcd);
  323.                                 lcd1602_guangbiao(1,7 + 0x40);  //開光標
  324.                                 menu_3 = 2;
  325.                             menu_i = 0;
  326.                                 key_can = 20;
  327.                         }
  328.                 }
  329.                 if(menu_3 == 2)   //第二次輸入修改的密碼
  330.                 {
  331.                         if(key_can <= 9)
  332.                         {
  333.                                 if(menu_i < 6)
  334.                                 {
  335.                                         menu_i ++;               
  336.                                         if(menu_i > 6)
  337.                                                 menu_i = 6;
  338.                                         for(i=5;i>0;i--)
  339.                                                 password_xg[i] = password_xg[i-1];       
  340.                                         password_xg[0] = key_can;
  341.                                         for(i=0;i<menu_i;i++)
  342.                                                 dis_lcd[i] ='*';//0x30 + password_xg[i];
  343.                                         write_string(2,7,dis_lcd);          
  344.                                         lcd1602_guangbiao(1,7 + menu_i + 0x40);  //開光標
  345.                                 }       
  346.                         }
  347.                         if(key_can == 11)  //刪除鍵
  348.                         {
  349.                                 if(menu_i != 0)
  350.                                 {
  351.                                         for(i=0;i<menu_i;i++)
  352.                                                 password_xg[i] = password_xg[i+1];       
  353.                                         menu_i --;
  354.                                         password_xg[menu_i] = ' ';       
  355.                                         dis_lcd[menu_i] = ' ';
  356.                                         write_string(2,7,dis_lcd);       
  357.                                         lcd1602_guangbiao(1,7 + menu_i + 0x40);  //開光標
  358.                                 }
  359.                         }       
  360.                         if((key_can == 15))  //確定鍵
  361.                         {
  362.                                 for(i=0;i<6;i++)
  363.                                 {
  364.                                         if((password_bj[i] == password_xg[i]) && (menu_i >3 ))
  365.                                         {
  366.                                                 flag_password = 1;         //兩次輸入的密碼一樣                       
  367.                                         }
  368.                                         else
  369.                                         {
  370.                                                 flag_password = 0;
  371.                                                 write_string(1,0," Password Error ");       
  372.                                                 write_string(2,0,"     reenter    ");
  373.                                                 delay_1ms(300);
  374.                                                 Send_threelines(104); //語音
  375.                                                 for(i=0;i<6;i++)
  376.                                                 {
  377.                                                         beep = ~beep;                //提示三聲
  378.                                                         delay_1ms(300);
  379.                                                 }
  380.                                                 beep = 1;
  381.                                                 delay_1ms(1000);
  382.                                                 break;               //密碼不正確
  383.                                         }
  384.                                 }
  385.                                 if(flag_password == 1)                 //兩次輸入的密碼一樣的
  386.                                 {                       
  387.                                         for(i=0;i<6;i++)
  388.                                         {
  389.                                         if(menu_1 == 1)
  390.                                                 password1[i] = password_bj[i];   //保存密碼
  391.                                         }
  392.                                                 write_string(1,0,"    Password    ");       
  393.                                         if(menu_1 == 1)
  394.                                                 write_string(2,0,"    Succeed      ");
  395.                                         Send_threelines(111); //語音        
  396.                                         write_mm();        //保存密碼
  397.                                         beep = 0;
  398.                                         delay_1ms(2000);
  399.                                         beep = 1;
  400.                                         read_mm();        //讀出密碼
  401.                                 }
  402.                                 clear_shuzu(password_bj);
  403.                                 clear_shuzu(password_xg);
  404.                                 clear_shuzu(dis_lcd);
  405.                                 write_string(1,0," Password Lock  ");       
  406.                                 write_string(2,0," Input:         ");
  407.                                 lcd1602_guangbiao(1,7+0x40);  //開光標
  408.                                 menu_1 = 0;
  409.                                 menu_2 = 0;
  410.                                 menu_3 = 0;
  411.                             menu_i = 0;
  412.        
  413.                         }
  414.                 }
  415.         }

  416.         if((menu_1 != 0) && (menu_1 != 0))
  417.         {
  418.                 key_with1();
  419.         }
  420.         if(key_can == 13)   //修改密碼
  421.         {
  422.                 if((menu_1 == 0))
  423.                 {
  424.                         key_sure_1();  // 確定鍵
  425.                         menu_1 = 1;       
  426.                         menu_i = 0;

  427.                 }       
  428.         }       
  429. /******************輸入手機號碼**********************/
  430.         if(menu_1 == 2)
  431.         {
  432.                 if(key_can < 10)    //只有數字鍵
  433.                 {
  434.                         if(phone1_i < 11)
  435.                         {
  436.                                 phone1_call[phone1_i] = key_can;
  437.                                 dis_smg[phone1_i] = 0x30 + key_can;
  438.                                 phone1_i ++;
  439.                                 if(phone1_i > 11)
  440.                                         phone1_i = 11;
  441.                                 write_string_num(2,0,dis_smg,phone1_i);         //顯示號碼
  442.                                 lcd1602_guangbiao(1,0 + phone1_i + 0x40);  //開光標       
  443.                         }       
  444.                 }
  445.                 if(key_can == 11)        //刪除鍵
  446.                 {
  447.                         if(phone1_i != 0)
  448.                         {
  449.                                 phone1_i --;
  450.                                 phone1_call[phone1_i] = ' ';       
  451.                                 dis_smg[phone1_i] = ' ';
  452.                                 write_string(2,0,"                ");
  453.                                 write_string_num(2,0,dis_smg,phone1_i);         //顯示號碼       
  454.                                 lcd1602_guangbiao(1,0 + phone1_i + 0x40);  //開光標       
  455.                         }        
  456.                 }
  457.                 write_mm();                 //保存密碼
  458.         }       
  459. }
  460.           

  461. /******************主程序**********************/          
  462. void main()
  463. {
  464.         static uint value ;                  //靜態變量
  465.         beiguang = 0;
  466.         delay_1ms(150);
  467.         P0 = P1 = P2 = P3 = 0xff;           //初始化單片機IO口為高電平
  468.         time_init();   //定時器初始化
  469.         init_1602();
  470.         write_string(1,0,"    Init GSM     ");       
  471.         write_string(2,0,"                 ");
  472.         beiguang = 0;
  473.         beep = 0;                 //開機叫一聲   
  474.         init_uart();        //串口初始化
  475.         delay_1ms(100);       
  476.         beep = 1;                 //開機叫一聲   
  477.         for(i=0;i<6;i++)            //叫三聲說明已經初始化
  478.         {
  479.                 beep = ~beep;         //叫三聲
  480.                 delay_1ms(200);
  481.         }
  482.         init_1602();
  483.         delay_1ms(500);
  484.         while(1)
  485.         {       
  486.                 if(flag_password_cichu1 < 3)     //錯誤三次按鍵不能用了
  487.                 {
  488.                         key();                                         //按鍵函數
  489.                         if(key_can < 20)
  490.                         {
  491.                                 if(beiguang == 0)
  492.                                 {
  493.                                         if(menu_1 == 0)
  494.                                                 key_with();                         //按鍵處理函數
  495.                                         xiugai_password();       //修改密碼
  496.                                 }
  497.                                 else
  498.                                         beiguang = 0;
  499.                                 flag_time = 0;               
  500.                         }
  501.                 }

  502.                 if(flag_200ms == 1)
  503.                 {
  504.                         flag_200ms = 0;         
  505.                         message_kaiguanmen();         //用短信接收處理函數
  506.                         if(beiguang == 0)         //延時關閉鎖30秒關閉背光
  507.                         {
  508.                                 flag_time ++;

  509.                                 if(flag_time >= 5 * 30)        //30秒  
  510.                                 {
  511.                                         flag_time = 0;
  512.                                         beiguang = 1;        //關閉背光
  513.                                 }
  514.                         }
  515.                         if(relay == 0)  //延時關閉鎖
  516.                         {
  517.                                
  518.                                 flag_guan++;
  519.                                 if(flag_guan >= 5 * 20)        //20秒  
  520.                                 {
  521.                                         flag_guan = 0;
  522.                                     relay = 1;   //關閉密碼鎖
  523.                                         flag_en1 = 0;
  524.                                 }
  525.                         }else
  526.                                 flag_guan = 0;       

  527.                         if(flag_password_cichu1 >= 3)
  528.                         {
  529.                                 value ++;           //200ms
  530.        
  531.                                 beep = ~beep;  //蜂鳴器報警
  532.                                 if(value >= 5 * 60 * 2)        //2分鐘  
  533.                                 {
  534.                                         value = 0;
  535.                                         beep = 1;
  536.                                         flag_password_cichu1 = 0;
  537.                                 }
  538.                         }
  539.                 }
  540.                 delay_1ms(1);  
  541.         }
  542. }

  543. /*************定時器0中斷服務程序***************/
  544. void time0_int() interrupt 1  
  545. {       
  546.         static uchar value;
  547.         TH0 = 0x4c;
  548.         TL0 = 0x00;     // 50ms         12M

  549.     value ++;
  550.         if(value % 4 == 0)  
  551.         {        
  552.                 flag_200ms = 1;
  553.         }
  554.        
  555. }
復制代碼

所有資料51hei提供下載:
程序.rar (71.14 KB, 下載次數: 28)


評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲国产精品日日av夜夜 | 国产精品久久久久久亚洲调教 | 伊人免费在线观看 | 久久久99国产精品免费 | 午夜不卡一区二区 | 成人欧美一区二区三区黑人孕妇 | 国产精品亚洲精品 | 免费成人在线网 | 午夜影院在线观看版 | 男人av在线 | 四虎成人免费视频 | 91传媒在线播放 | www国产成人免费观看视频 | 日韩精品一区二区三区在线观看 | av国产精品| 欧美一区二区 | 特黄一级 | 久草在线高清 | 碰碰视频 | 黄色成人在线网站 | 91视频免费视频 | 精品久久99 | 亚洲一区二区三区视频 | 国产精品久久久久久久久久久免费看 | 国产情侣一区 | 欧美日韩在线视频观看 | 久久国产精品免费一区二区三区 | 国产精品久久久久久久毛片 | 国产美女视频 | 日韩中文字幕在线观看视频 | 久久精品国产99国产精品 | 成人精品毛片国产亚洲av十九禁 | 国产一区二区日韩 | 在线日韩 | 国产精品成人久久久久 | 国产一区二区三区 | 日韩有码在线观看 | 国产高清一区二区三区 | 久久精品亚洲精品国产欧美 | 夜夜草天天草 | 久久性色 |