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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機+TC35 GSM模塊的手機制作與設計全套資料下載 含仿真 PCB 原理圖 程序

  [復制鏈接]
跳轉到指定樓層
樓主
借助系統模型,闡明基于西門子公司的TC35型GSM手機模塊收發短信、打電話的基本概念以及串口控制 SMS 的基本原理。詳細介紹C51單片機STC12C5A32S2控制GSM 模塊工作的軟件實現過程,對怎樣用單片機控制GSM 模塊收發短信、打電話進行探討,也對程序設計的主體思想作了較為細致的分析。

文章重點闡述了STC12C5A32S2單片機和TC35模塊的接口、TC35的特點和主要功能、AT指令的應用等。該系統單片機STC12C5A32S2的TXD/RXD分別接TC35模塊的TXD/RXD,完成對TC35模塊的初始化和短消息的數據收發以及打電話的功能。

這個是制作成功的實物圖:


壓縮包里面含完整的PCB圖 proteus仿真原理圖和源程序程序等


單片機源程序如下:
  1. #include <reg52.h>
  2. #include <absacc.h>
  3. #include <stdio.h>
  4. #include <string.h>
  5. #include <math.h>
  6. #include <stdlib.h>
  7. #include <intrins.h>
  8. #define uint unsigned int
  9. #define uchar unsigned char

  10. #define lcd_data_port P0   //定義與1602LCD的數據口的單片機口線
  11. sbit lcden=P2^5;        // lcd使能
  12. sbit lcdrs=P2^3;        // lcd讀
  13. sbit lcdrw=P2^4;        // lcd寫
  14. sbit beep=P2^2;//蜂鳴器

  15. void delayms(uint x);
  16. void lcd_write_com(uchar lcd_com);   //送命令數據到LCD的子函數聲明
  17. void lcd_write_data(uchar lcd_data); //送顯示數據到LCD的子函數聲明
  18. void lcd_int();                      //LCD初始化子函數聲明

  19. void write_sfm(uchar wz,uchar date);//在第一行寫一個數函數
  20. #define key_4x4_port P1             //定義4x4鍵盤使用的單片機端口
  21. uchar key;                        //4x4鍵盤掃描所得的鍵值保存到這里
  22. void key_4x4_scan();    //聲明4x4鍵盤掃描子函數,得到的鍵值送至全局變量key

  23. #define Phone_connection  1    //正在打電話狀態標志
  24. #define Clear_Connect     0    //電話已掛斷狀態標志
  25. char Calls_State_Flag=Clear_Connect;   //電話狀態  
  26. void ScanMessage(void);
  27. void clr_rsbuf(void);

  28. uchar code AT[]="AT\r" ;                             //握手信號   
  29. uchar code AT_CMGF[]= "AT+CMGF=1\r";//發送數據為TXET格式
  30. uchar code AT_CMGS[]= "AT+CMGS=15994473659\r";  
  31. uchar code AT_CMGR[]= "AT+CMGR=2\r";
  32. uchar code AT_CSCA[]="AT+CSCA=\"+8613800771500\""; //設置服務中心號碼     
  33. uchar code AT_CNMI[]= "AT+CNMI=2,1,0,0\r";//新消息提示:設置為mode=2,mt=1
  34. uchar code AT_CLIP[]= "AT+CLIP=1,1\r";//顯示來電號碼                  
  35. uchar Sms[]="hello!";
  36. uchar Phone_call[]="15994473659";
  37. uchar Phone_num[12];
  38. uchar RsPoint=0;
  39. uchar RsBuf[100];
  40. uchar j=0;
  41. uint i, k,ii;
  42. void di()
  43. {
  44.     beep=0;
  45.     delayms(250);
  46.         beep=1;
  47. }
  48. /*-------------------------------------------------------------------------------------------*/

  49. void delayms(uint x)//延時
  50. {
  51.         uint i,j;
  52.         for(i=x;i>0;i--)
  53.                 for(j=110;j>0;j--);
  54. }
  55. /***********************************************************
  56. 函數名稱:Print_Char
  57. 函數功能:發送單個字符     
  58.           入口參數:ch      出口參數:無
  59. ***********************************************************/
  60. void Print_Char(uchar ch)//發送單個字符
  61. {
  62. SBUF=ch; //送入緩沖區
  63. while(TI==0); //等待發送完畢
  64. TI=0; //軟件清零
  65. }
  66. /***********************************************************
  67. 函數名稱:Print_Str
  68. 函數功能:發送字符串     
  69.           入口參數:*str    出口參數:無
  70. ***********************************************************/
  71. void Print_Str(uchar *str)//發送字符串   
  72. {

  73. while(*str!='\0')
  74. {
  75. Print_Char(*str++);
  76.     }
  77. }
  78. void clr_rsbuf(void)//清空接收緩存   
  79. {
  80. for(RsPoint=0;RsPoint<100;RsPoint++)
  81. {
  82. RsBuf[RsPoint]=0x00;
  83. }
  84. RsPoint=0;
  85. }
  86. void ser()interrupt 4
  87. {
  88.          if(RI==1)
  89.   {
  90.     RI=0;
  91.     RsBuf[RsPoint++]=SBUF;
  92.     if (RsPoint>=sizeof(RsBuf))
  93.     {
  94.     RsPoint=0;//FlagRs485=0;
  95.     }  //????
  96.   }
  97. }
  98. /***********************************************************
  99. 函數名稱:Ini_UART
  100. 函數功能:串口初始化、定時器初始化     
  101.           入口參數:無     出口參數:無
  102. ***********************************************************/
  103. Ini_UART(void)//串口初始化、定時器初始化
  104. {
  105. TMOD = 0x20;      //T1方式2,用于UART波特率     
  106. TH1 = 0xFD;       //UART波特率設置:9600     
  107. TL1 = 0xFD;
  108. SCON = 0x50;  ////UART方式1:8位UART;   REN=1:允許接收   
  109. PCON = 0x00;

  110. TF1 = 1;     // 中斷標志位
  111. TR1 = 1;    // 啟動定時器1   
  112. ES=1;       //啟動串行口中斷
  113. ET0=1;      //啟動中斷功能
  114. EA=1;
  115. }
  116. /***********************************************************
  117. 函數名稱:main
  118. 函數功能:主函數
  119. ***********************************************************/
  120. void main()
  121. {      
  122.        di();
  123.        Ini_UART();
  124.        lcd_int();
  125.            k=0;
  126.        Print_Str(AT);  
  127.        delayms(100);
  128.        Print_Str(AT_CMGF);
  129.        delayms(100);
  130.        Print_Str(AT_CNMI);
  131.        delayms(200);
  132.        Print_Str(AT_CLIP);
  133.        delayms(250);
  134.            clr_rsbuf();
  135.        P1=0xff;  //P0開機初始化   
  136.        key=0xff; //鍵盤值開機初始化為ff(檢測到的鍵值應為0----15)   
  137.        while(1)
  138.            {  
  139.            ScanMessage();
  140.                key_4x4_scan();//不停調用鍵盤掃描程序            
  141.             };//原地循環     
  142. }
  143. void ScanMessage(void)
  144. {
  145.         for(ii=0;ii<32;ii++)  
  146.                 if(RsBuf[ii-3]=='C'&&RsBuf[ii-2]=='M'&&RsBuf[ii-1]=='T'&&RsBuf[ii]=='I')
  147.             {
  148.                  di();
  149.              delayms(50);
  150.              di();
  151.              delayms(50);
  152.              di();
  153.              delayms(50);
  154.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  155.              clr_rsbuf();
  156.              Print_Str(AT_CMGR);  
  157.              delayms(250);delayms(250);delayms(250);delayms(250);
  158.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  159.              for(i=0;i<15;i++)
  160.              {
  161.                       lcd_write_data(RsBuf[i+20]);    //顯示
  162.               delayms(100);
  163.              }
  164.              lcd_write_com(0x80+0x40);   //將要顯示的位置定位在LCD的第一行第0個字符處
  165.              for(i=15;i<32;i++)
  166.              {
  167.                       lcd_write_data(RsBuf[i+20]);    //顯示
  168.               delayms(100);
  169.              }
  170.                 }
  171.                  else if(RsBuf[ii-3]=='C'&&RsBuf[ii-2]=='L'&&RsBuf[ii-1]=='I'&&RsBuf[ii]=='P')
  172.          {
  173.                  beep=0;
  174.              delayms(250);
  175.              delayms(250);
  176.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  177.              for(i=(ii+3);i<15+(ii+3);i++)
  178.              {
  179.                         lcd_write_data(RsBuf[i]);    //來電顯示
  180.                 delayms(5);
  181.               }
  182.              lcd_write_com(0x80+0x40);   //將要顯示的位置定位在LCD的第一行第0個字符處
  183.              for(i=(ii+3)+15;i<32+(ii+3);i++)
  184.              {
  185.                         lcd_write_data(RsBuf[i]);    //顯示"ATH"
  186.                 delayms(5);
  187.               }
  188.                          while(!beep)
  189.                          {
  190.                          key_4x4_scan();//不停調用鍵盤掃描程序
  191.                        }                        
  192.                          clr_rsbuf();
  193.                  }
  194. }
  195. /***********************************************************
  196. 函數名稱:phone
  197. 函數功能:撥打目標電話      
  198.           入口參數:無     出口參數:無
  199. ***********************************************************/
  200. void phone()    //打電話函數   
  201. {  
  202.          uchar ATD1[]="ATD"; //撥
  203.      uchar ATD3[]=";\r";
  204.      uchar ATDINTOL[25];
  205.      strcpy(ATDINTOL,ATD1);
  206.      strcat(ATDINTOL,Phone_num); //EEE   
  207.      strcat(ATDINTOL,ATD3);
  208.      Print_Str(ATDINTOL);
  209.      delayms(250);   delayms(250);   
  210. }
  211. /***********************************************************
  212. 函數名稱:GSM_ATH
  213. 函數功能:掛電話      
  214.           入口參數:無     出口參數:無
  215. ***********************************************************/
  216. void GSM_ATH()   
  217. {   
  218.      Print_Str("ATH"); //發送掛電話指令  
  219.      Print_Str("\r");   //發送回車   
  220.      delayms(250);delayms(250);delayms(250);delayms(250);
  221. }         
  222. /***********************************************************
  223. 函數名稱:Rphone
  224. 函數功能:接聽目標電話      
  225.           入口參數:無     出口參數:無
  226. ***********************************************************/
  227. void Rphone()    //接聽電話函數
  228. {  
  229.          Print_Str("ATA");
  230.      Print_Str("\r");   //發送回車
  231.      delayms(250);delayms(250);delayms(250);delayms(250);     
  232. }
  233. /***********************************************************
  234. 函數名稱:GSM_TEXT
  235. 函數功能:設置發送數據為TXET格式      
  236.           入口參數:無     出口參數:無
  237. ***********************************************************/
  238. //void GSM_TEXT()   //設置GSM為TEXT格式
  239. //{   
  240. //     Print_Str(AT_CMGF);   //發送設置指令
  241. //     ES=1;
  242. //         delayms(250);delayms(250);
  243. //}
  244. /***********************************************************
  245. 函數名稱:GSM_TEXT_SMS
  246. 函數功能:發送數據為TXET格式的短信內容      
  247.           入口參數:無     出口參數:無
  248. ***********************************************************/
  249. void GSM_TEXT_SMS()  //發送TEXT格式內容   
  250. {      
  251.      Print_Str(AT_CMGS);
  252.          Print_Str(Phone_call);
  253.      Print_Str("\r");
  254.      delayms(200);
  255.      Print_Str(Sms);
  256.      Print_Char(0x1A);  //發送短息內容結束符對應的ASCII為0x1a
  257.          ES=1;
  258.      delayms(250);delayms(250);
  259. }
  260. /***********************************************************
  261. LCD相關函數定義
  262. ***********************************************************/
  263. //-----------------------------------------
  264. void lcd_write_com(uchar lcd_com)   //LCD送命令子函數
  265. {
  266.   lcdrs=0;
  267.   lcd_data_port=lcd_com;
  268.   delayms(5);
  269.   lcden=1;
  270.   delayms(5);
  271.   lcden=0;
  272. }
  273. //-----------------------------------------
  274. void lcd_write_data(uchar lcd_data)  //LCD送顯示數據子函數
  275. {
  276.   lcdrs=1;
  277.   lcd_data_port=lcd_data;
  278.   delayms(5);
  279.   lcden=1;
  280.   delayms(5);
  281.   lcden=0;
  282. }
  283. //-----------------------------------------
  284. void lcd_int()                 //LCD初始化子函數
  285. {
  286.   lcdrw=0;
  287.   lcden=0;
  288.   lcd_write_com(0x38);  //設置LCD工作于16x2、5x7點陣、8位數據接口模式
  289.   lcd_write_com(0x0c);  //開顯示,不顯示光標
  290.   lcd_write_com(0x06);  //寫一個字符后地址指針自動加1
  291.   lcd_write_com(0x01);  //清屏
  292. }
  293. //----------------------------------------------------------------
  294. //-----------------------------------------
  295. void write_sfm(uchar wz,uchar date)             //在第一行寫一個數函數
  296. {
  297.              lcd_write_com(0x80+wz);                  //設置顯示位置
  298.                 lcd_write_data(0x30+date);  
  299. }
  300. /*-------------------------------------------------------------------------------------------*/
  301. //-----------------------------------------
  302. void key_4x4_scan()                    //4x4鍵盤掃描子函數,得到的鍵值送至全局變量key
  303. {      
  304.     uchar temp ;
  305.     key_4x4_port=0xfe;           //送出最低位0電平去掃描
  306.     temp=key_4x4_port;           //讀出整個口的得到的值
  307.     temp=temp&0xf0;                   //屏蔽低4位
  308.     if(temp!=0xf0)                   //假如高4位不是全1
  309.     {
  310.           delayms(10);                   //延時消抖再讀
  311.           temp=key_4x4_port;
  312.           temp=temp&0xf0;
  313.          if(temp!=0xf0)           //消抖后如果再次確定高4位不是全1
  314.         {
  315.           temp=key_4x4_port; //讀出此次按鍵的值
  316.           switch(temp)
  317.            {
  318.          ///////////////撥打電話按鍵////////////////////////////   
  319.                      case 0xee:  key=0;
  320.                          lcd_write_com(0x01);  //清屏
  321.              clr_rsbuf();
  322.              phone();  //撥打電話
  323.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  324.              for(i=0;i<32;i++)
  325.              {
  326.                       lcd_write_data(RsBuf[i]);    //顯示
  327.               delayms(50);
  328.              }
  329.              delayms(250);
  330.              Calls_State_Flag=Clear_Connect;   
  331.                          break;   //11101110
  332.                  ///////////////掛電話按鍵//////////////////////////
  333.              case 0xde:  key=1;
  334.                          lcd_write_com(0x01);  //清屏
  335.              clr_rsbuf();
  336.              GSM_ATH(); //發送掛電話指令
  337.              beep=1;
  338.                          lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  339.              for(i=0;i<32;i++)
  340.              {
  341.                       lcd_write_data(RsBuf[i]);    //
  342.               delayms(50);
  343.              }
  344.              delayms(250);
  345.              Calls_State_Flag=Phone_connection;
  346.                          break;   //11011110
  347.         ////////////////TEXT格式及TEXT格式內容///////////////////////////////
  348.              case 0xbe:  key=2;
  349.                          lcd_write_com(0x01);  //清屏
  350.                          clr_rsbuf();
  351.              //GSM_TEXT();//設置GSM為TEXT格式
  352.                      GSM_TEXT_SMS();//發送TEXT格式內容
  353.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  354.              for(i=0;i<15;i++)
  355.              {
  356.                       lcd_write_data(RsBuf[i]);    //顯示
  357.               delayms(100);
  358.              }
  359.              for(i=15;i<32;i++)
  360.              {
  361.                       lcd_write_data(RsBuf[i]);    //顯示
  362.               delayms(100);
  363.              }
  364.              delayms(250);
  365.              delayms(250);
  366.              break;   //10111110
  367.            ///////////////0號鍵////////////////////////////////
  368.              case 0x7e:  key=3;
  369.                       lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  370.              Phone_num[k++]=0x30;
  371.                          write_sfm((j+1),0);
  372.                          j=j+1;
  373.              break;   //01111110
  374.             }
  375.          while(temp!=0xf0)          //等待按鍵放開
  376.          { temp=key_4x4_port;
  377.            temp=temp&0xf0;
  378.          }
  379.       }
  380.     }
  381.     key_4x4_port=0xfd;  //11111101
  382.     temp=key_4x4_port;
  383.     temp=temp&0xf0;
  384.     if(temp!=0xf0)
  385.     { delayms(10);
  386.       temp=key_4x4_port;
  387.       temp=temp&0xf0;
  388.       if(temp!=0xf0)
  389.       {        temp=key_4x4_port;
  390.         switch(temp)
  391.         {
  392.                ///////////////接聽電話按鍵////////////////////////////////   
  393.                      case 0xed:   key=4;
  394.              lcd_write_com(0x01);  //清屏
  395.              clr_rsbuf();
  396.              Rphone();  //接聽電話            
  397.              beep=1;
  398.              lcd_write_com(0x80);   //將要顯示的位置定位在LCD的第一行第0個字符處
  399.              for(i=0;i<32;i++)
  400.              {
  401.                       lcd_write_data(RsBuf[i]);    //顯示
  402.               delayms(50);
  403.              }
  404.                          delayms(250);delayms(250);
  405.                          break;   //11101101
  406.         ////////////////7號鍵////////////////////////////////
  407.              case 0xdd:   key=5;
  408.                          Phone_num[k++]=0x37;
  409.                          write_sfm((j+1),7);
  410.                          j=j+1;
  411.                          break;   //11011101
  412.             /////////////////4號鍵///////////////////////////////
  413.              case 0xbd:   key=0x36;
  414.                         Phone_num[k++]=0x34;
  415.                          write_sfm((j+1),4);
  416.                          j=j+1;break;   //10111101
  417.             ////////////////1號鍵////////////////////////////////
  418.                         Phone_num[k++]=0x31;
  419.              case 0x7d:   key=7;
  420.                          write_sfm((j+1),1);
  421.                      j=j+1; break;   //01111101
  422.          }
  423.          while(temp!=0xf0)
  424.          { temp=key_4x4_port;
  425.            temp=temp&0xf0;
  426.          }
  427.       }
  428.       }
  429.     key_4x4_port=0xfb;  //11111011
  430.     temp=key_4x4_port;
  431.     temp=temp&0xf0;
  432.     if(temp!=0xf0)
  433.     { delayms(250);delayms(250);delayms(250);delayms(250);
  434.              temp=key_4x4_port;
  435.       temp=temp&0xf0;
  436.       if(temp!=0xf0)
  437.       { temp=key_4x4_port;
  438.         switch(temp)
  439.         {
  440.            //////////////清屏按鍵//////////////////////////
  441.                      case 0xeb:  key=8;
  442.              lcd_write_com(0x01);  //清屏
  443.              j=0;k=0;
  444.                          break;  //11101011
  445.           ///////////////8號鍵//////////////////////////
  446.              case 0xdb:  key=9;
  447.                          Phone_num[k++]=0x38;
  448.                          write_sfm((j+1),8);
  449.                      j=j+1;break;  //11011011
  450. ……………………

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

文檔預覽:http://www.zg4o1577.cn/bbs/dpj-85499-1.html

全部資料打包下載地址:
基于GSM的手機設計.7z (1.55 MB, 下載次數: 547)

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

使用道具 舉報

沙發
ID:1 發表于 2017-5-21 17:33 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:185367 發表于 2017-5-21 17:41 | 只看該作者
看看這個,換一下思路,很有幫助。
回復

使用道具 舉報

地板
ID:157057 發表于 2017-5-21 23:19 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

5#
ID:94068 發表于 2017-6-8 11:03 | 只看該作者
很好的設計資料,贊一個!
回復

使用道具 舉報

6#
ID:297505 發表于 2018-3-26 22:07 | 只看該作者
好資料啊  正想用單片機做個手機玩玩
回復

使用道具 舉報

7#
ID:96011 發表于 2018-4-22 16:07 | 只看該作者
666厲害,謝謝大神
回復

使用道具 舉報

8#
ID:295874 發表于 2018-5-23 09:19 | 只看該作者
實際仿真無法進行,進行時LCD顯示數據不正常。
回復

使用道具 舉報

9#
ID:336367 發表于 2018-5-23 11:41 | 只看該作者
厲害了
回復

使用道具 舉報

10#
ID:336367 發表于 2018-5-23 11:42 | 只看該作者
這是個簡易版手機嗎
回復

使用道具 舉報

11#
ID:294865 發表于 2018-5-23 16:05 | 只看該作者
學習一下
回復

使用道具 舉報

12#
ID:363261 發表于 2018-7-2 16:00 | 只看該作者
非常感謝,下載學習一下
回復

使用道具 舉報

13#
ID:202314 發表于 2018-7-24 06:14 | 只看該作者
好資料 謝謝分享
回復

使用道具 舉報

14#
ID:390236 發表于 2018-8-26 22:03 | 只看該作者
謝謝分享
回復

使用道具 舉報

15#
ID:468297 發表于 2019-1-19 18:19 | 只看該作者
好資料,謝謝分享。
回復

使用道具 舉報

16#
ID:412558 發表于 2019-3-22 22:14 | 只看該作者
好東西啊,點贊
回復

使用道具 舉報

17#
ID:696981 發表于 2020-2-23 15:47 | 只看該作者
好棒好棒
回復

使用道具 舉報

18#
ID:654774 發表于 2020-3-22 10:07 來自手機 | 只看該作者
怎么下載呀?
回復

使用道具 舉報

19#
ID:630491 發表于 2020-4-1 13:44 | 只看該作者
大神啊!膜拜了
回復

使用道具 舉報

20#
ID:630491 發表于 2020-4-1 14:42 | 只看該作者
liyongan_1985 發表于 2018-5-23 09:19
實際仿真無法進行,進行時LCD顯示數據不正常。

我推薦不要用仿真!任何業內人士都不推薦!我覺得你要是喜歡它,你就可以做一個出來,這樣你才會真正學會mcu
回復

使用道具 舉報

21#
ID:630491 發表于 2020-4-16 13:14 | 只看該作者
加一個麥克風就可以真的用來通話了,還可以改成用arm單片機,那樣就可以和市面上的手機媲美了
回復

使用道具 舉報

22#
ID:730707 發表于 2020-4-16 16:45 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

23#
ID:247907 發表于 2020-5-26 23:43 來自手機 | 只看該作者
真是厲害,不錯
回復

使用道具 舉報

24#
ID:727538 發表于 2020-5-30 10:00 | 只看該作者
哇哇哇,這個資料太棒了,感謝大神
回復

使用道具 舉報

25#
ID:517951 發表于 2020-11-15 17:45 | 只看該作者
不錯,值得學習。51hei有你更精彩!!
回復

使用道具 舉報

26#
ID:647404 發表于 2020-12-7 09:07 | 只看該作者
好東西以后用來參考
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91中文字幕在线 | 欧美日韩在线免费观看 | 黄色毛片在线看 | 国产二区在线播放 | 中文字幕在线观看一区二区 | 久色视频在线观看 | 免费av手机在线观看 | 女同久久 | 午夜大片 | 亚洲国产网站 | 久久综合成人精品亚洲另类欧美 | 日韩免费看视频 | 国产成人综合在线 | 免费一二区| 国产美女在线免费观看 | 91久色| 国产精品久久久久久久久免费相片 | 国产精品视频 | 日韩视频在线一区二区 | 伊人狼人影院 | 亚洲一区二区在线播放 | 九九综合九九 | 午夜视频在线免费观看 | 9191av | 99日韩| 天天操网 | 91久久精品国产 | 亚洲福利网站 | 国产午夜视频 | 精品国产精品三级精品av网址 | 亚洲网站在线播放 | 日本一区二区三区免费观看 | 国产99视频精品免费视频7 | 国产色婷婷精品综合在线播放 | 国产在线观看免费 | 国产精产国品一二三产区视频 | 国产精品久久二区 | 免费麻豆视频 | 国产激情片在线观看 | 亚洲天堂免费 | 国产一区二区中文字幕 |