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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機步進電機控制用12864液晶顯示 帶proteus仿真及源程序

[復制鏈接]
跳轉到指定樓層
樓主
一個用51單片機控制步進電機的例子,很全面,帶有proteus仿真及原理圖和源程序:


仿真工程文件及所有完整程序等資料下載地址:
http://www.zg4o1577.cn/bbs/dpj-56304-1.html


單片機源程序:
  1. #include <AT89X51.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4. #define uc unsigned char
  5. #define ui unsigned int
  6. #define LCDPAGE 0xB8                                  //設置頁指令。
  7. #define LCDLINE 0x40                                  //設置列指令。
  8. sbit E=        P3^5;
  9. sbit RW=P3^4;
  10. sbit RS=P3^2;
  11. sbit L=P3^1;                                                 //左半平面
  12. sbit R=P3^0;                                                 //右半平面
  13. sbit Busy=P2^7;//                                         //忙 判斷位
  14. uc scan_key1,scan_key2;                        //按鍵功能選擇,00 停止,01 正轉 10 反轉
  15. uc step1;step2;
  16. static  step_index;
  17. ui count1,count2;                                   //定時
  18. uc butter;                                                        //按鍵
  19. static  speed;                                                //速度參數
  20.   //;本文件為16×16點陣中文字庫文件,字的橫向8點構成一字節,左邊點在字節的高                 
  21. //位,字符點陣四角按左上角→右上角→左下角→右下角取字
  22. //;如你想在以后繼續用HZDotReader打開文件,追加漢字點陣數據,請不要修改或增刪所有注釋         
  23. uc code JIANG[]=
  24. {
  25. //;江   CBDAD                                                               
  26. 0x10,0x60,0x01,0xC6,0x30,0x00,0x04,0x04,
  27. 0x04,0xFC,0x04,0x04,0x04,0x04,0x00,0x00,
  28. 0x04,0x04,0x7E,0x01,0x20,0x20,0x20,0x20,
  29. 0x20,0x3F,0x20,0x20,0x20,0x20,0x20,0x00,
  30. };
  31. uc code XI[]=
  32. {
  33. //;西   CCEF7                                                
  34. 0x02,0xF2,0x12,0x12,0x12,0xFE,0x12,0x12,
  35. 0x12,0xFE,0x12,0x12,0x12,0xF2,0x02,0x00,
  36. 0x00,0x7F,0x28,0x24,0x22,0x21,0x20,0x20,
  37. 0x20,0x21,0x22,0x22,0x22,0x7F,0x00,0x00,
  38. };
  39. uc code LI[]=
  40. {
  41. //;理   CC0ED
  42. 0x44,0x44,0xFC,0x44,0x44,0x00,0xFE,0x92,
  43. 0x92,0xFE,0x92,0x92,0x92,0xFE,0x00,0x00,
  44. 0x10,0x10,0x0F,0x08,0x48,0x40,0x45,0x44,
  45. 0x44,0x7F,0x44,0x44,0x44,0x45,0x40,0x00,
  46. };
  47. uc GONG[]=
  48. {
  49. //;工   CB9A4
  50. 0x00,0x00,0x02,0x02,0x02,0x02,0x02,0xFE,
  51. 0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x00,
  52. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3F,
  53. 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  54. };
  55. uc code DA[]=
  56. {
  57. //;大   CB4F3
  58. 0x20,0x20,0x20,0x20,0x20,0x20,0xA0,0x7F,
  59. 0xA0,0x20,0x20,0x20,0x20,0x30,0x20,0x00,
  60. 0x00,0x40,0x40,0x20,0x10,0x0C,0x03,0x00,
  61. 0x01,0x06,0x08,0x10,0x20,0x60,0x20,0x00
  62. };
  63. uc XUE[]=
  64. {
  65. //;學   CD1A7
  66. 0x40,0x30,0x10,0x12,0x5C,0x54,0x50,0x51,
  67. 0x5E,0xD4,0x50,0x18,0x57,0x32,0x10,0x00,
  68. 0x00,0x02,0x02,0x02,0x02,0x02,0x42,0x82,
  69. 0x7F,0x02,0x02,0x02,0x02,0x02,0x02,0x00,
  70. };
  71. uc code ZI[]=                                                                //自動化
  72. {  
  73. 0x00,0x00,0x00,0xF8,0x48,0x48,0x4C,0x4B,
  74. 0x4A,0x48,0x48,0x48,0xF8,0x00,0x00,0x00,
  75. 0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,
  76. 0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,
  77. };
  78. uc code DONG[]=
  79. {
  80. 0x20,0x24,0x24,0xE4,0x24,0x24,0x24,0x20,
  81. 0x10,0x10,0xFF,0x10,0x10,0xF0,0x00,0x00,
  82. 0x08,0x1C,0x0B,0x08,0x0C,0x05,0x4E,0x24,
  83. 0x10,0x0C,0x03,0x20,0x40,0x3F,0x00,0x00,
  84. };
  85. uc code HUA[]=
  86. {        
  87. 0x80,0x40,0x20,0xF8,0x07,0x02,0x00,0x00,
  88. 0xFF,0xC0,0x60,0x30,0x1C,0x08,0x00,0x00,
  89. 0x00,0x00,0x00,0x7F,0x00,0x04,0x02,0x01,
  90. 0x3F,0x40,0x40,0x40,0x40,0x78,0x00,0x00,
  91. };
  92. uc code CHANG[]=                                                 //常
  93. {
  94. 0x20,0x18,0x08,0x09,0xEE,0xAA,0xA8,0xAF,
  95. 0xA8,0xA8,0xEC,0x0B,0x2A,0x18,0x08,0x00,
  96. 0x00,0x00,0x3E,0x02,0x02,0x02,0x02,0xFF,
  97. 0x02,0x02,0x12,0x22,0x1E,0x00,0x00,0x00,
  98. };
  99. uc code YUN[]=                                                           //運
  100. {
  101. 0x40,0x41,0xCE,0x04,0x00,0x20,0x22,0xA2,
  102. 0x62,0x22,0xA2,0x22,0x22,0x22,0x20,0x00,
  103. 0x40,0x20,0x1F,0x20,0x28,0x4C,0x4A,0x49,
  104. 0x48,0x4C,0x44,0x45,0x5E,0x4C,0x40,0x00,
  105. };
  106. uc code XING[]=                                                          //行
  107. {
  108. 0x10,0x08,0x84,0xC6,0x73,0x22,0x40,0x44,
  109. 0x44,0x44,0xC4,0x44,0x44,0x44,0x40,0x00,
  110. 0x02,0x01,0x00,0xFF,0x00,0x00,0x00,0x00,
  111. 0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
  112. };
  113. uc code ZHENG[ ] =
  114. {
  115. /*正   CD5FD */
  116. 0x00,0x02,0x02,0xC2,0x02,0x02,0x02,0x02,
  117. 0xFE,0x82,0x82,0x82,0x82,0x82,0x02,0x00,
  118. 0x20,0x20,0x20,0x3F,0x20,0x20,0x20,0x20,
  119. 0x3F,0x20,0x20,0x20,0x20,0x20,0x20,0x00,
  120. };
  121. uc code ZHUAN[ ] =
  122. {
  123. /*轉   CD7AA */
  124. 0xC8,0xA8,0x9C,0xEB,0x88,0x88,0x88,0x40,
  125. 0x48,0xF8,0x4F,0x48,0x48,0x48,0x40,0x00,
  126. 0x08,0x08,0x04,0xFF,0x04,0x04,0x00,0x02,
  127. 0x0B,0x12,0x22,0xD2,0x0E,0x02,0x00,0x00,
  128. };
  129. uc code FAN[ ] =
  130. {
  131.         /*反   CB7B4 */

  132. 0x00,0x00,0xFE,0x12,0x72,0x92,0x12,0x12,
  133. 0x12,0x11,0x91,0x71,0x01,0x00,0x00,0x00,
  134. 0x40,0x30,0x4F,0x40,0x20,0x21,0x12,0x0C,
  135. 0x0C,0x12,0x11,0x20,0x60,0x20,0x00,0x00,
  136. };
  137. uc code TING[] =
  138. {
  139.         /*停   CCDA3 */
  140. 0x80,0x40,0x20,0xF8,0x07,0x02,0x04,0x74,
  141. 0x54,0x55,0x56,0x54,0x74,0x04,0x04,0x00,
  142. 0x00,0x00,0x00,0xFF,0x00,0x03,0x01,0x05,
  143. 0x45,0x85,0x7D,0x05,0x05,0x05,0x03,0x00,
  144. };
  145. uc code ZHI[ ] =
  146. {
  147. /*止   CD6B9 */
  148. 0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,
  149. 0xFF,0x40,0x40,0x40,0x40,0x40,0x00,0x00,
  150. 0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,
  151. 0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x00,
  152. };
  153. uc code JIA[]=                                                                 //加
  154. {  
  155. 0x00,0x08,0x08,0x08,0xFF,0x08,0x08,0xF8,
  156. 0x00,0xF8,0x08,0x08,0x08,0xF8,0x00,0x00,
  157. 0x40,0x20,0x18,0x07,0x00,0x20,0x40,0x3F,
  158. 0x00,0x7F,0x10,0x10,0x10,0x3F,0x00,0x00,
  159. };
  160. uc code SU[]=                                                                //速
  161. {  
  162. 0x40,0x42,0xCC,0x00,0x04,0xE4,0x24,0x24,
  163. 0xFF,0x24,0x24,0x24,0xE4,0x04,0x00,0x00,
  164. 0x40,0x20,0x1F,0x20,0x48,0x49,0x45,0x43,
  165. 0x7F,0x41,0x43,0x45,0x4D,0x40,0x40,0x00,
  166. };
  167. uc code JIAN[]=                                                           //減
  168. {
  169. 0x00,0x02,0xEC,0x00,0xF8,0x28,0x28,0x28,
  170. 0x28,0x28,0xFF,0x08,0x8A,0xEC,0x48,0x00,
  171. 0x02,0x5F,0x20,0x18,0x07,0x00,0x1F,0x49,
  172. 0x5F,0x20,0x13,0x0C,0x13,0x20,0x78,0x00,
  173. };                                                                                   //輸出空白區域
  174. uc code BAI[]=
  175. {
  176. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  177. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  178. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  179. 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  180. };
  181. uc code DI[]=                                                           //低
  182. {                                 
  183. 0x40,0x20,0xF0,0x0C,0x07,0x02,0xFC,0x44,
  184. 0x44,0x42,0xFE,0x43,0x43,0x42,0x40,0x00,
  185. 0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x20,
  186. 0x10,0x28,0x43,0x0C,0x10,0x20,0x78,0x00,
  187. };
  188. //////////////////函數聲明 **************////////
  189. //************************************************
  190. void iniLCD(void);                                                           
  191. void chkbusy(void);
  192. void wcode(uc cd) ;
  193. void wdata(uc dat);
  194. void disrow(uc page,uc col,uc *temp);
  195. void display( uc page,uc col,uc *temp);
  196. void ground(step);                                     //轉步
  197. void run1();                                     //正轉
  198. void run2();
  199. void stop();
  200. void delay(ui time);
  201. //************************************
  202. //**************LCD初始化 ***************
  203. //*********************************
  204. void iniLCD(void)                               //初始化
  205. { L=1;R=1;
  206.   wcode(0x38);
  207.   wcode(0x0f);                                        //開顯示 設置
  208.   wcode(0xc0);                                          //設置顯示啟動為第一行
  209.   wcode(0x01);                                            //清屏
  210.   wcode(0x06);                                                 //畫面不動,光標右移。
  211. }
  212. //******************LCD判斷忙的子程序**********
  213. //**********************************************8
  214. void chkbusy(void)                                 //   測LCD忙狀態
  215. {
  216.   E=1;                                                               //使能LCD
  217.   RS=0;                                                               //讀寫指令
  218.   RW=1;                                                                  //讀
  219.   P2=0xff;                                                       //讀操作前先進行一次空讀操作 ,接下來才能讀到數據
  220.   while(!Busy);                                                 //等待,不忙退出
  221. }
  222. //*****************************************
  223. //*****************寫指令代碼*****************
  224. //***********************************************
  225. void wcode(uc cd)                                        //寫指令 代碼
  226. {
  227.   chkbusy();                                                             //寫等待
  228.   P2=0xff;                                                                          //使能LCD
  229.   RW=0;                                                                             //讀禁止
  230.   RS=0;                                                                              //輸出 設置
  231.   P2=cd;                                                                     //寫數據代碼
  232.   E=1;                                                                               //以下兩句產生下降沿
  233.   E=0;                                                 //
  234. }
  235. //*******************把顯示數據寫到內存單元中 *****************
  236. void wdata(uc dat)                                           //寫顯示數據
  237. {
  238.   chkbusy();                                                                //寫等待
  239.   P2=0xff;                                                                             //使能LCD
  240.   RW=0;                                                                                   //讀禁止
  241.   RS=1;                                                                                  //輸出 設置
  242.   P2=dat;                                                                        //寫數據代碼
  243.   E=1;                                                                                 //以下兩句產生下降沿
  244.   E=0;                                                         //
  245. }
  246. //***********************************************
  247. //****************顯示LCD程序********************
  248. //*****************可以更改程序中的64變為32就可以輸出數字了**********
  249. //****************************************************************
  250. //*************還可以換成生成圖片的形式,具體****************
  251. ///****************************************************
  252. void  disrow(uc page,uc col,uc *temp)
  253. {
  254.   uc i;
  255.   if(col<64)                                                // 左半平面
  256.   {
  257.     L=1;R=0;
  258.         wcode(LCDPAGE+page);                               // 寫指令 頁
  259.         wcode(LCDLINE+col);                                       //寫指令行
  260.         if((col+16)<64)                                              //如果字在左半平面顯示不了,轉到右半平面去
  261.         {
  262.          for(i=0;i<16;i++)                                      //寫字
  263.          wdata(*(temp+i));
  264.          }
  265.          else                                                              //右半平面
  266.          {
  267.            for(i=0;i<64-col;i++)                                 //減去左邊數,從右半平面第一位開始顯示
  268.          wdata(*(temp+i));                                         //寫字 顯示
  269.          L=0;R=1;                                                         //右半平面
  270.      wcode(LCDPAGE+page);                            // 寫指令 頁
  271.      wcode(LCDLINE);                                       //寫指令行
  272.            for(i=64-col;i<16;i++)                                 //寫字 右半平面
  273.          wdata(*(temp+i));
  274.      }
  275.    }
  276.    else
  277.    {  
  278.      L=0;R=1;
  279.      wcode(LCDPAGE+page);                          // 寫指令 頁
  280.      wcode(LCDLINE+col-64);                              //寫指令行
  281.           for(i=0;i<16;i++)                                      //寫字
  282.          wdata(*(temp+i));
  283.         }
  284. }
  285. //*********************供調用 ****子程序 *************
  286. //****************************************
  287. void  display( uc page,uc col,uc *temp)
  288. {
  289.         disrow( page, col, temp);                               //顯示上半字
  290.                 disrow( page+1, col, temp+16);                     //顯示下半字
  291. }
  292. //***********************主***控****程********序********************
  293. //******************************************************************
  294. //***************程序完成于2008年6月 1日,兒童節********************
  295. //***************程序員:韓福偉************************************
  296. //**********江西理工大學應用科學學院機電學部自動化******************
  297. //******************************************************************
  298. //*********
  299. void main(void)
  300. {  
  301.    P2=0xff;
  302.    iniLCD();                                      //初始化 LCD
  303.    display(0,0x00,&JIANG);                         //    江
  304.    display(0,0x10,&XI);                                   //    西
  305.    display(0,0x20,&LI);                                   //   理
  306.    display(0,0x30,&GONG);                         //   工
  307.    display(0,0x40,&DA);                                   //  大
  308.    display(0,0x50,&XUE);                            //        學
  309.    step2=0;
  310.    step1=0;
  311.    P1=0xff;
  312.    P0=0;
  313.    EX1=1;
  314.    EA=1;                                               //開中斷
  315.    speed=2010;
  316.    while(1)
  317.   {  
  318.      if((scan_key1==1)&(scan_key2==0))             // 正轉
  319.          {  
  320.             display(6,0x00,&ZHENG);                     //  LCD顯示
  321.         display(6,0x10,&ZHUAN);
  322.             ground(step_index);
  323.             delay(speed);
  324.                step_index++;                                                   //大于7,從頭再來
  325.             if(step_index>7)
  326.                    step_index=0;
  327.           }
  328.          if((scan_key1==0)&(scan_key2==1))                   //反轉
  329.          {                                                                    
  330.            ground(step_index);
  331.            display(6,0x00,&FAN);                      //         LCD顯示
  332.        display(6,0x10,&ZHUAN);
  333.            delay(speed);
  334.               step_index--;
  335.            if(step_index<0)                                                        //小于0,從頭再來。
  336.                    step_index=7;
  337.           }
  338.          if(scan_key1==0&scan_key2==0)
  339.           {
  340.            display(6,0x00,&TING);                     //        停止
  341.        display(6,0x10,&ZHI);
  342.            display(6,0x20,&BAI);
  343.            display(6,0x30,&BAI);
  344.            P0=0xff;
  345.           }
  346.          if(step1==1&step2==0)
  347.           {
  348.             speed=speed-100;
  349.                 if(speed<200|speed==200)                                   //小于話,說明電機的速度不能再提高了。
  350.                 { speed=200;                                                           //speed參數自己設定,以下遇到也是一樣的。我只是一個亂寫的值
  351.                   display(6,0x20,&ZHENG);                                 //正常運行
  352.                   display(6,0x30,&CHANG);
  353.                   display(6,0x40,&YUN);
  354.                   display(6,0x50,&XING);
  355.                  }
  356.                  else                                                //加速
  357.                 {
  358.                  display(6,0x20,&JIA);
  359.                  display(6,0x30,&SU);
  360.                 }
  361.           }
  362.           if(step1==0&step2==1)
  363.           {
  364.             speed=speed+100;                               //這里面的參數,論實際情況更改
  365.                 if(speed>2500|speed==2500)                          //如果 小于了,就說明到餓低速,可以用停止按鍵停止。
  366.                  { speed=2500;                                                   //低速運行
  367.                   display(6,0x20,&DI);
  368.                   display(6,0x30,&SU);
  369.                   display(6,0x40,&YUN);
  370.                   display(6,0x50,&XING);
  371.                  }
  372.                   else
  373.                   {
  374.                   display(6,0x20,&JIAN);                    //減速
  375.                   display(6,0x30,&SU);
  376.                   }
  377.           }
  378. }
  379. }
  380. //***************************************************
  381. //*************************        延時子程序**************
  382. //**************************************************
  383. void delay(ui time)                                    ///延時程序
  384. { for (count1=0;count1<time;count1++ )                        //此處可以用中斷進行準確定時。我只是瞎定了幾個參數
  385.   for(count2=0;count2<3;count2++);
  386. }
  387. //*********************************************************
  388. //******************按鍵處理程序****************************
  389. //************************************************************
  390. void key(void) interrupt 2
  391. {
  392.   uc i;
  393.   for(i=0;i<200;i++);                                                   //延時防抖
  394.   if(P3_3==0)                                                        
  395.    {
  396.     butter=~P1;
  397.     switch(butter)
  398.          {case 0x01:    scan_key1=1;scan_key2=0; break;        //正常運行 ,用兩個數字進行選擇,是不錯的辦法
  399.            case 0x02:    scan_key1=0;scan_key2=0;break;        //停止
  400.           case 0x04:    scan_key1=0 ;scan_key2=1; break;      //加速
  401.           case 0x08:    step1=1;step2=0;break;               //減速
  402.           case 0x10:    step1=0;step2=1;break;              //正轉
  403.           default :                     ;                             //其它值返回
  404.          }
  405.    }
  406.    P1=0XFF;
  407. }
  408. //**************************************************
  409. //**********************轉步************************
  410. //**************************************************
  411. void ground(step_index)         //轉步
  412. {
  413. switch(step_index)
  414.    {
  415.      case 0://0            // 這里就說明了同步電機是怎么轉的。我本來是用了代碼的,
  416.       P0_0 = 1;                   //但是后來考慮了一些初學者不懂同步電機到底怎么轉的
  417.       P0_1 = 0;                   //我就換成這個了, 知道怎么轉的人,就換成代碼把,一樣的
  418.       P0_2 = 0;
  419.       P0_3 = 0;
  420.       break;
  421.           case 1://0,1  
  422.       P0_0 = 1;
  423.       P0_1 = 1;
  424.       P0_2 = 0;
  425.       P0_3 = 0;
  426.       break;
  427.           case 2://1
  428.       P0_0 = 0;
  429.       P0_1 = 1;
  430.       P0_2 = 0;
  431.       P0_3 = 0;
  432.       break;
  433.           case 3://1,2
  434.       P0_0 = 0;
  435.       P0_1 = 1;
  436.       P0_2 = 1;
  437.       P0_3 = 0;
  438.       break;
  439.           case 4://2
  440.       P0_0 = 0;
  441.       P0_1 = 0;
  442.       P0_2 = 1;
  443.       P0_3 = 0;
  444.       break;
  445.           case 5://2,3
  446.       P0_0 = 0;
  447.       P0_1 = 0;
  448.       P0_2 = 1;
  449.       P0_3 = 1;
  450.       break;
  451.           case 6://3
  452.       P0_0 = 0;
  453.       P0_1 = 0;
  454.       P0_2 = 0;
  455.       P0_3 = 1;
  456.       break;
  457.           case 7://3,0
  458.       P0_0 = 0;
  459.       P0_1 = 0;
  460.       P0_2 = 0;
  461.       P0_3 = 1;
  462.   }        
  463. }
復制代碼



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

使用道具 舉報

沙發
ID:64913 發表于 2017-8-22 23:56 | 只看該作者
樓主真是牛人。。。。。。。。。。。。。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产小视频 | h视频在线免费 | 福利久久| 成人中文字幕av | 国产亚洲欧美在线 | 一区中文字幕 | 丁香久久| 欧产日产国产精品国产 | 成人av观看 | 欧美精品一二区 | 日本一区二区高清不卡 | 久久国产精品精品国产色婷婷 | 免费麻豆视频 | 国产精品99久久久久久大便 | 成人在线影视 | 久久久国产亚洲精品 | 久久久久国产精品一区 | 午夜免费av | 日本免费一区二区三区视频 | 国产精品国产三级国产aⅴ浪潮 | 日日夜夜91 | 国产在线观看一区二区 | 中文字幕爱爱视频 | 国产在线一区观看 | 国产精品1区2区3区 中文字幕一区二区三区四区 | 国产欧美在线视频 | 中文字幕在线观看 | 久久久久久久综合色一本 | 国产精品一区二区三区在线 | 亚洲欧美日韩电影 | 色悠悠久| 免费久久久| 国产aⅴ爽av久久久久久久 | 国产a区| 久久久久99 | 亚洲国产精品一区二区三区 | 黑人精品欧美一区二区蜜桃 | 国产在线精品一区二区 | 东京久久 | 免费精品视频一区 | 黄色精品 |