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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8100|回復: 6
收起左側

單片機自動售貨機源代碼

  [復制鏈接]
ID:225486 發表于 2017-8-7 15:32 | 顯示全部樓層 |閱讀模式
  1. /******************************************************
  2. ******************************************************/
  3. #include <REG51.H>
  4. #include <intrins.h>
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. //延時子程序模塊
  8. //**********************************************
  9. void mdelay(uint delay)
  10. {
  11.     uint i;
  12.     for(; delay>0; delay--)
  13.     {
  14.         for(i=0; i<80; i++) //1ms延時.
  15.         {
  16.             ;
  17.         }
  18.     }
  19. }
  20. //************************************************
  21. void show();   //液晶顯示程序
  22. //****************************************
  23. //12864液晶顯示部分子程序模塊
  24. //****************************************
  25. sbit K1  = P0^4;
  26. sbit K2   = P0^3;
  27. sbit K3  = P0^2;
  28. sbit K4   = P0^1;
  29. sbit K5  = P0^0;
  30. sbit K6   = P1^0;
  31. sbit K7  = P1^1;
  32. sbit K8   = P1^2;
  33. sbit rs  = P0^5;
  34. sbit rw  = P0^6;
  35. sbit e   = P0^7;
  36. sbit beep = P1^5;
  37. #define lcddata P2
  38. unsigned char count=0,m=30,n,nn,money=0,du;   //定義計數變量
  39. uchar Time[6];
  40. sbit busy=P0^7;   //lcd busy bit
  41. void wr_d_lcd(uchar content);
  42. void wr_i_lcd(uchar content);
  43. void clrram_lcd (void);
  44. void init_lcd(void);
  45. void busy_lcd(void);
  46. void rev_row_lcd(uchar row);
  47. void rev_co_lcd(uchar row,uchar col,uchar mode);
  48. void clr_lcd(void);
  49. void wr_co_lcd(uchar row,uchar col,uchar lcddata1,uchar lcddtta2);
  50. void wr_row_lcd(uchar row,char *p);
  51. //*******************************************************************                                                                */
  52. //因為引腳的定義DB0..DB7是從P1.7...P1.0排列的                                                    */
  53. //所以順序需要調換一下
  54. //*******************************************************************
  55. uchar swapbit(uchar udata)
  56. {
  57.     uchar ii,tmp=0;
  58.     for(ii=0; ii<8; ii++)
  59.     {
  60.         tmp<<=1;
  61.         if(udata&0x01)
  62.         {
  63.             tmp|=0x01;
  64.         }
  65.         udata>>=1;
  66.     }
  67.     return tmp;
  68. }
  69. //**********************************
  70. //液晶初始化
  71. //**********************************
  72. void init_lcd(void)
  73. {
  74.     wr_i_lcd(0x06);  /*光標的移動方向*/
  75.     wr_i_lcd(0x0c);  /*開顯示,關游標*/
  76. }
  77. //***********************************
  78. //填充液晶DDRAM全為空格
  79. //**********************************
  80. void clrram_lcd (void)
  81. {
  82.     wr_i_lcd(0x30);
  83.     wr_i_lcd(0x01);
  84. }
  85. //***********************************
  86. //對液晶寫數據
  87. //content為要寫入的數據
  88. //***********************************
  89. void wr_d_lcd(uchar content)
  90. {
  91. // busy_lcd();
  92.     rs=1;
  93.     rw=0;
  94.     lcddata=swapbit(content);
  95.     e=1;
  96.     ;
  97.     e=0;
  98. }
  99. //********************************
  100. //對液晶寫指令
  101. //content為要寫入的指令代碼
  102. //*****************************
  103. void wr_i_lcd(uchar content)
  104. {
  105. // busy_lcd();
  106.     rs=0;
  107.     rw=0;
  108.     lcddata=swapbit(content);
  109.     e=1;
  110.     ;
  111.     e=0;
  112. }
  113. //********************************
  114. //液晶檢測忙狀態
  115. //在寫入之前必須執行
  116. //********************************
  117. void busy_lcd(void)
  118. {
  119.     lcddata=0xff;
  120.     rs=0;
  121.     rw=1;
  122.     e =1;
  123.     while(busy==1);
  124.     e =0;
  125. }
  126. //********************************
  127. //指定要顯示字符的坐標
  128. //*******************************
  129. void gotoxy(unsigned char y, unsigned char x)
  130. {
  131.     if(y==1)
  132.         wr_i_lcd(0x80|x);
  133.     if(y==2)
  134.         wr_i_lcd(0x90|x);
  135.     if(y==3)
  136.         wr_i_lcd((0x80|x)+8);
  137.     if(y==4)
  138.         wr_i_lcd((0x90|x)+8);
  139. }
  140. //**********************************
  141. //液晶顯示字符串程序
  142. //**********************************
  143. void print(uchar *str)
  144. {
  145.     while(*str!='\0')
  146.     {
  147.         wr_d_lcd(*str);
  148.         str++;
  149.     }
  150. }
  151. //***************************************
  152. //液晶顯示主程序模塊
  153. //***************************************
  154. void show()
  155. {
  156.     if(nn<10)
  157.     {
  158.         gotoxy(1,0);
  159.         print("按鍵選擇貨物:");
  160.         mdelay(10);
  161.         gotoxy(2,0);
  162.         print("①礦泉水(1.5元)");
  163.         mdelay(10);                 //掃描延時
  164.         gotoxy(3,0);
  165.         print("②紅茶(3元)    ");
  166.         mdelay(10);  //掃描延時
  167.         gotoxy(4,0);
  168.         print("③綠茶(4元)");
  169.         mdelay(10);                 //掃描延時
  170.     }
  171.     clrram_lcd ();
  172.     if(nn>11)
  173.     {
  174.         gotoxy(1,0);
  175.         print("④啤酒(5元)");
  176.         mdelay(10);
  177.         gotoxy(2,0);
  178.         print("⑤紅牛(6元)");
  179.         mdelay(10);                 //掃描延時
  180.         gotoxy(3,0);
  181.         print("選定后投入硬幣");
  182.         mdelay(10);  //掃描延時
  183.     }
  184. }
  185. //***************************************
  186. //按鍵選擇貨物
  187. //***************************************
  188. void key()
  189. {
  190.     if(K4==0)//按鍵1
  191.     {
  192.         clrram_lcd ();
  193.         while(1)
  194.         {
  195.             if(m==6)beep=0;
  196.             if(m==5)beep=1;
  197.             if(m==0)
  198.             {
  199.                 if(0<money)
  200.                 {
  201.                     clrram_lcd ();
  202.                     gotoxy(1,0);
  203.                     print("投幣不足購買失敗");
  204.                     mdelay(10);
  205.                     gotoxy(2,0);
  206.                     print("退錢:    元");
  207.                     mdelay(10);
  208.                     Time[0]=money/10+'0';
  209.                     Time[1]='.';
  210.                     Time[2]=money%10+'0';
  211.                     Time[3]='\0';
  212.                     gotoxy(2,3);
  213.                     print(Time);
  214.                     mdelay(6000);
  215.                     money=0;
  216.                 }
  217.                 clrram_lcd ();
  218.                 break;
  219.             }
  220.             gotoxy(1,0);
  221.             print("已選礦泉水");
  222.             mdelay(10);
  223.             gotoxy(2,0);
  224.             print("貨物價格:1.5元");
  225.             mdelay(10);
  226.             gotoxy(3,0);
  227.             print("投幣金額:     元");
  228.             mdelay(10);
  229.             gotoxy(4,0);
  230.             print("規定時間:");
  231.             mdelay(10);

  232.             if(n==0)
  233.             {
  234.                 gotoxy(3,5);
  235.                 print(Time);
  236.                 mdelay(100);
  237.             }
  238.             if(n==1)
  239.             {
  240.                 gotoxy(4,7);
  241.                 print(Time);
  242.                 mdelay(10);
  243.             }
  244.             if(K1==0)
  245.             {
  246.                 while(K1==0);
  247.                 mdelay(10);
  248.                 money=money+100;
  249.             }
  250.             if(K2==0)
  251.             {
  252.                 while(K2==0);
  253.                 mdelay(10);
  254.                 money=money+50;
  255.             }
  256.             if(K3==0)
  257.             {
  258.                 while(K3==0);
  259.                 mdelay(10);
  260.                 money=money+10;
  261.             }
  262.             if(money>=15)
  263.             {
  264.                 clrram_lcd ();
  265.                 gotoxy(1,0);
  266.                 print("礦泉水購買成功");
  267.                 mdelay(10);
  268.                 gotoxy(2,0);
  269.                 print("找錢:    元");
  270.                 mdelay(10);
  271.                 du=money-15;
  272.                 Time[0]=du/10+'0';
  273.                 Time[1]='.';
  274.                 Time[2]=du%10+'0';
  275.                 Time[3]='\0';
  276.                 gotoxy(2,3);
  277.                 print(Time);
  278.                 mdelay(6000);
  279.                 money=0;
  280.                 clrram_lcd ();
  281.                 break;
  282.             }
  283.         }
  284.     }

  285.     if(K5==0)//按鍵2
  286.     {
  287.         clrram_lcd ();
  288.         while(1)
  289.         {
  290.             if(m==6)beep=0;
  291.             if(m==5)beep=1;
  292.             if(m==0)
  293.             {
  294.                 if(0<money<30)
  295.                 {
  296.                     clrram_lcd ();
  297.                     gotoxy(1,0);
  298.                     print("投幣不足購買失敗");
  299.                     mdelay(10);
  300.                     gotoxy(2,0);
  301.                     print("退錢:    元");
  302.                     mdelay(10);
  303.                     Time[0]=money/10+'0';
  304.                     Time[1]='.';
  305.                     Time[2]=money%10+'0';
  306.                     Time[3]='\0';
  307.                     gotoxy(2,3);
  308.                     print(Time);
  309.                     mdelay(6000);
  310.                     money=0;
  311.                 }
  312.                 clrram_lcd ();
  313.                 break;
  314.             }
  315.             gotoxy(1,0);
  316.             print("已選紅茶");
  317.             mdelay(10);
  318.             gotoxy(2,0);
  319.             print("貨物價格:3元");
  320.             mdelay(10);
  321.             gotoxy(3,0);
  322.             print("投幣金額:     元");
  323.             mdelay(10);
  324.             gotoxy(4,0);
  325.             print("規定時間:");
  326.             mdelay(10);

  327.             if(n==0)
  328.             {
  329.                 gotoxy(3,5);
  330.                 print(Time);
  331.                 mdelay(100);
  332.             }
  333.             if(n==1)
  334.             {
  335.                 gotoxy(4,7);
  336.                 print(Time);
  337.                 mdelay(10);
  338.             }
  339.             if(K1==0)
  340.             {
  341.                 while(K1==0);
  342.                 mdelay(10);
  343.                 money=money+100;
  344.             }
  345.             if(K2==0)
  346.             {
  347.                 while(K2==0);
  348.                 mdelay(10);
  349.                 money=money+50;
  350.             }
  351.             if(K3==0)
  352.             {
  353.                 while(K3==0);
  354.                 mdelay(10);
  355.                 money=money+10;
  356.             }
  357.             if(money>=30)
  358.             {
  359.                 clrram_lcd ();
  360.                 gotoxy(1,0);
  361.                 print("紅茶購買成功");
  362.                 mdelay(10);
  363.                 gotoxy(2,0);
  364.                 print("找錢:    元");
  365.                 mdelay(10);
  366.                 du=money-30;
  367.                 Time[0]=du/10+'0';
  368.                 Time[1]='.';
  369.                 Time[2]=du%10+'0';
  370.                 Time[3]='\0';
  371.                 gotoxy(2,3);
  372.                 print(Time);
  373.                 mdelay(6000);
  374.                 money=0;
  375.                 clrram_lcd ();
  376.                 break;
  377.             }
  378.         }
  379.     }

  380.     if(K6==0)//按鍵3
  381.     {
  382.         if(m==6)beep=0;
  383.         if(m==5)beep=1;
  384.         clrram_lcd ();
  385.   while(1)
  386.         {
  387.             if(m==0)
  388.             {
  389.                 if(0<money<40)
  390.                 {
  391.                     clrram_lcd ();
  392.                     gotoxy(1,0);
  393.                     print("投幣不足購買失敗");
  394.                     mdelay(10);
  395.                     gotoxy(2,0);
  396.                     print("退錢:    元");
  397.                     mdelay(10);
  398.                     Time[0]=money/10+'0';
  399.                     Time[1]='.';
  400.                     Time[2]=money%10+'0';
  401.                     Time[3]='\0';
  402.                     gotoxy(2,3);
  403.                     print(Time);
  404.                     mdelay(6000);
  405.                     money=0;
  406.                 }
  407.                 clrram_lcd ();
  408.                 break;
  409.             }
  410.             gotoxy(1,0);
  411.             print("已選綠茶");
  412.             mdelay(10);
  413.             gotoxy(2,0);
  414.             print("貨物價格:4元");
  415.             mdelay(10);
  416.             gotoxy(3,0);
  417.             print("投幣金額:     元");
  418.             mdelay(10);
  419.             gotoxy(4,0);
  420.             print("規定時間:");
  421.             mdelay(10);

  422.             if(n==0)
  423.             {
  424.                 gotoxy(3,5);
  425.                 print(Time);
  426.                 mdelay(100);
  427.             }
  428.             if(n==1)
  429.             {
  430.                 gotoxy(4,7);
  431.                 print(Time);
  432.                 mdelay(10);
  433.             }
  434.             if(K1==0)
  435.             {
  436.                 while(K1==0);
  437.                 mdelay(10);
  438.                 money=money+100;
  439.             }
  440.             if(K2==0)
  441.             {
  442.                 while(K2==0);
  443.                 mdelay(10);
  444.                 money=money+50;
  445.             }
  446.             if(K3==0)
  447.             {
  448.                 while(K3==0);
  449.                 mdelay(10);
  450.                 money=money+10;
  451.             }
  452.             if(money>=40)
  453.             {
  454.                 clrram_lcd ();
  455.                 gotoxy(1,0);
  456.                 print("綠茶購買成功");
  457.                 mdelay(10);
  458.                 gotoxy(2,0);
  459.                 print("找錢:    元");
  460.                 mdelay(10);
  461.                 du=money-40;
  462.                 Time[0]=du/10+'0';
  463.                 Time[1]='.';
  464.                 Time[2]=du%10+'0';
  465.                 Time[3]='\0';
  466.                 gotoxy(2,3);
  467.                 print(Time);
  468.                 mdelay(6000);
  469.                 money=0;
  470.                 clrram_lcd ();
  471.                 break;
  472.             }
  473.         }
  474.     }

  475.     if(K7==0)//按鍵4
  476.     {
  477.         if(m==6)beep=0;
  478.         if(m==5)beep=1;
  479.         m=30;
  480.         clrram_lcd ();
  481.         while(1)
  482.         {
  483.             if(m==0)
  484.             {
  485.                 if(0<money<50)
  486.                 {
  487.                     clrram_lcd ();
  488.                     gotoxy(1,0);
  489.                     print("投幣不足購買失敗");
  490.                     mdelay(10);
  491.                     gotoxy(2,0);
  492.                     print("退錢:    元");
  493.                     mdelay(10);
  494.                     Time[0]=money/10+'0';
  495.                     Time[1]='.';
  496.                     Time[2]=money%10+'0';
  497.                     Time[3]='\0';
  498.                     gotoxy(2,3);
  499.                     print(Time);
  500.                     mdelay(6000);
  501.                     money=0;
  502.                 }
  503.                 clrram_lcd ();
  504.                 break;
  505.             }
  506.             gotoxy(1,0);
  507.             print("已選啤酒");
  508.             mdelay(10);
  509.             gotoxy(2,0);
  510.             print("貨物價格:5元");
  511.             mdelay(10);
  512.             gotoxy(3,0);
  513.             print("投幣金額:     元");
  514.             mdelay(10);
  515.             gotoxy(4,0);
  516.             print("規定時間:");
  517.             mdelay(10);

  518.             if(n==0)
  519.             {
  520.                 gotoxy(3,5);
  521.                 print(Time);
  522.                 mdelay(100);
  523.             }
  524.             if(n==1)
  525.             {
  526.                 gotoxy(4,7);
  527.                 print(Time);
  528.                 mdelay(10);
  529.             }
  530.             if(K1==0)
  531.             {
  532.                 while(K1==0);
  533.                 mdelay(10);
  534.                 money=money+100;
  535.             }
  536.             if(K2==0)
  537.             {
  538.                 while(K2==0);
  539.                 mdelay(10);
  540.                 money=money+50;
  541.             }
  542.             if(K3==0)
  543.             {
  544.                 while(K3==0);
  545.                 mdelay(10);
  546.                 money=money+10;
  547.             }
  548.             if(money>=50)
  549.             {
  550.                 clrram_lcd ();
  551.                 gotoxy(1,0);
  552.                 print("啤酒買成功");
  553.                 mdelay(10);
  554.                 gotoxy(2,0);
  555.                 print("找錢:    元");
  556.                 mdelay(10);
  557.                 du=money-50;
  558.                 Time[0]=du/10+'0';
  559.                 Time[1]='.';
  560.                 Time[2]=du%10+'0';
  561.                 Time[3]='\0';
  562.                 gotoxy(2,3);
  563.                 print(Time);
  564.                 money=0;
  565.                 clrram_lcd ();
  566.                 break;
  567.             }
  568.         }
  569.     }
  570.     if(K8==0)//按鍵5
  571.     {
  572.         if(m==6)beep=0;
  573.         if(m==5)beep=1;
  574.         m=30;
  575.         clrram_lcd ();
  576.         while(1)
  577.         {
  578.             if(m==0)
  579.             {
  580.                 if(0<money<60)
  581.                 {
  582.                     clrram_lcd ();
  583.                     gotoxy(1,0);
  584.                     print("投幣不足購買失敗");
  585.                     mdelay(10);
  586.                     gotoxy(2,0);
  587.                     print("退錢:    元");
  588.                     mdelay(10);
  589.                     Time[0]=money/10+'0';
  590.                     Time[1]='.';
  591.                     Time[2]=money%10+'0';
  592.                     Time[3]='\0';
  593.                     gotoxy(2,3);
  594.                     print(Time);
  595.                     money=0;
  596.                 }
  597.                 clrram_lcd ();
  598.                 break;
  599.             }
  600.             gotoxy(1,0);
  601.             print("已選紅牛");
  602.             mdelay(10);
  603.             gotoxy(2,0);
  604.             print("貨物價格:6元");
  605.             mdelay(10);
  606.             gotoxy(3,0);
  607.             print("投幣金額:     元");
  608.             mdelay(10);
  609.             gotoxy(4,0);
  610.             print("規定時間:");
  611.             mdelay(10);

  612.             if(n==0)
  613.             {
  614.                 gotoxy(3,5);
  615.                 print(Time);
  616.                 mdelay(100);
  617.             }
  618.             if(n==1)
  619.             {
  620.                 gotoxy(4,7);
  621.                 print(Time);
  622.                 mdelay(10);
  623.             }
  624.             if(K1==0)
  625.             {
  626.                 while(K1==0);
  627.                 mdelay(10);
  628.                 money=money+100;
  629.             }
  630.             if(K2==0)
  631.             {
  632.                 while(K2==0);
  633.                 mdelay(10);
  634.                 money=money+50;
  635.             }
  636.             if(K3==0)
  637.             {
  638.                 while(K3==0);
  639.                 mdelay(10);
  640.                 money=money+10;
  641.             }
  642.             if(K1==0)
  643.             {
  644.                 while(K1==0);
  645.                 mdelay(10);
  646.                 money=money+100;
  647.             }
  648.             if(K2==0)
  649.             {
  650.                 while(K2==0);
  651.                 mdelay(10);
  652.                 money=money+50;
  653.             }
  654.             if(K3==0)
  655.             {
  656.                 while(K3==0);
  657.                 mdelay(10);
  658.                 money=money+10;
  659.             }
  660.             if(money>=60)
  661.             {
  662.                 clrram_lcd ();
  663.                 gotoxy(1,0);
  664.                 print("紅牛買成功");
  665.                 mdelay(10);
  666.                 gotoxy(2,0);
  667.                 print("找錢:    元");
  668.                 mdelay(10);
  669.                 du=money-60;
  670.                 Time[0]=du/10+'0';
  671.                 Time[1]='.';
  672.                 Time[2]=du%10+'0';
  673.                 Time[3]='\0';
  674.                 gotoxy(2,3);
  675.                 print(Time);
  676.                 money=0;
  677.                 clrram_lcd ();
  678.                 break;
  679.             }
  680.         }
  681.     }


  682. }
  683. //************************************
  684. //主程序
  685. //*************************************
  686. main()
  687. {
  688.     TMOD=0x01;     //T0 工作在方式1 16位計數器
  689.     TH0=(65536-5000)/256;  //預先 設定定時器 初值,50毫秒
  690.     TL0=(65536-5000)%256;
  691.     EA=1;      //開啟 總中斷
  692.     ET0=1;      //開啟定時器 0 中斷
  693.     TR0=1;      //定時器 0 啟動計數
  694.     init_lcd();
  695.     clrram_lcd();
  696.     while(1)
  697.     {
  698.         show();
  699.         key();
  700.     }


  701. }

  702. void time0(void)  interrupt 1
  703. {
  704.     TH0=(65536-50000)/256;  //重新設置定時器 初值,產生50MS定時中斷
  705.     TL0=(65536-50000)%256;
  706.     count++;     //50ms太短,閃爍頻率太快
  707.     if(count==10)
  708.     {
  709.         if(n==0)
  710.         {
  711.             Time[0]=m/10+'0';
  712.             Time[1]=m%10+'0';
  713.             Time[2]='\0';
  714.         }
  715.         if(n==1)
  716.         {
  717.             Time[0]=money/10+'0';
  718.             Time[1]='.';
  719.             Time[2]=money%10+'0';
  720.         }
  721.         Time[3]='\0';
  722.         Time[4]='\0';
  723.         count=0;
  724.         if(m==0)m=30;
  725.         n++;
  726.         if(n==2)
  727.         {
  728.             m--;
  729.             n=0;
  730.         }
  731.         nn++;
  732.         if(nn==20)
  733.         {
  734.             nn=0;
  735.         }
  736.     }
  737. }
復制代碼
回復

使用道具 舉報

ID:236084 發表于 2017-9-27 16:28 | 顯示全部樓層
在嗎,大神
回復

使用道具 舉報

ID:89286 發表于 2017-9-28 05:33 | 顯示全部樓層
thanks for sharing
回復

使用道具 舉報

ID:315558 發表于 2018-4-24 18:05 | 顯示全部樓層
你好,可以把這源代碼剖析一下嗎,可以分為幾部分,每部分作用是什么
回復

使用道具 舉報

ID:335162 發表于 2018-5-21 19:58 | 顯示全部樓層
大神。。。
回復

使用道具 舉報

ID:120672 發表于 2018-11-19 19:33 | 顯示全部樓層
好東西,謝謝分享!!
回復

使用道具 舉報

ID:352301 發表于 2020-5-22 08:46 | 顯示全部樓層
整套售貨機軟件源碼:https://www.cnblogs.com/chen1880/p/12928730.html
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕日本一区二区 | 亚洲欧美一区二区三区在线 | 成人九色| 久色视频在线观看 | 精品一区二区av | 国产jizz女人多喷水99 | 欧美一区二区三区免费在线观看 | 91在线精品秘密一区二区 | 亚洲91视频 | 亚洲高清在线免费观看 | 亚洲人免费视频 | 日韩精品久久 | 国产精品五月天 | 亚洲一区国产精品 | 欧美激情国产日韩精品一区18 | 亚洲女人天堂网 | 欧美精品久久久久久 | 欧美日韩不卡合集视频 | 精品国产欧美一区二区三区成人 | 精品国产免费人成在线观看 | 国产精品久久久久久婷婷天堂 | 搞黄视频免费看 | 天天色综 | 欧美一级特黄aaa大片在线观看 | 亚洲成av人片在线观看无码 | 国产精品不卡视频 | 麻豆精品国产91久久久久久 | 午夜免费观看体验区 | 国产综合在线视频 | 成人综合视频在线 | 黄视频免费 | 精品国产一区二区三区久久 | 久久欧美精品 | 欧美精品三区 | 久久久久成人精品 | 久久av.com | 国产一区二区三区四区 | 精品久久久久久久久亚洲 | 色秀网站 | 亚洲三区在线观看 | 日韩精品成人一区二区三区视频 |