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

標題: MSP430F全系列Flash存儲器通用程序庫 [打印本頁]

作者: 51hei單片    時間: 2016-3-14 20:10
標題: MSP430F全系列Flash存儲器通用程序庫
本程序是《MSP430系列單片機系統工程設計與實踐》書里面的源碼,(包含工程文件(例4.1.6))完整例程下載:http://www.izizhuan.cn/bbs/dpj-46245-1.html


關于本程序的詳細解說大家可以點擊上圖下載電子書
這個Flash存儲器庫文件的調用方法可先下載完整代碼然后找到(例4.1.6)這一節,里面有調用方法
Flash.c文件:
  1. /*
  2.                
  3.                    MSP430F全系列Flash存儲器通用程序庫


  4.   說明:該程序庫包含了內部Flash存儲器常用的讀寫功能,還包含了常用數據
  5.         格式變量的保存、讀取函數。除了字節讀寫之外,還可以很方便的向
  6.         FlashROM里寫入和讀出整型、浮點數、長整型格式的數據。
  7.             由于Flash存儲器不能單字節擦除或改寫,因此寫入任何字節都需
  8.         要先備份整個數據區再整塊擦除,之后恢復其他未改變數據。本程序利
  9.         用兩個Flash存儲區(InfoA和InfoB)互相備份信息,優點是備份過程不
  10.         占用RAM,能在RAM小于256字節的單片機上運行;缺點是速度慢,且浪費
  11.         了1/2的存儲容量。適合小批量數據且不關心寫入速度的場合,如菜單
  12.         保存設置參數等。另外注意Flash壽命只有10萬次左右,不要頻繁調用
  13.         寫函數。寫Flash時,電源電壓必須高于2.7V。
  14.             本程序庫中所有的讀寫函數對外已經屏蔽了Flash特征,存儲地址
  15.         空間從0開始到127。如果實際用到的數據量很少,可修改MAXNUM定義,
  16.         以節省執行時間。如果需要保存的數據量大于128,可修改存儲區首地址
  17.         和備份區首地址的定義,指向程序Flash區中程序代碼和中斷向量表未
  18.         占用的空白區塊,能獲得512字節的存儲容量。
  19.             要使用該庫函數,需要將本文件(Flash.c)添加進工程,并在需要
  20.         調用函數的文件開頭處包含"Flash.h"。

  21.   (C)西安電子科技大學 測控技術與儀器教研中心 編寫:謝楷 2008/02/04
  22.   
  23. */
  24. //
  25. //
  26. //                  MSP430F4XX
  27. //               +---------------+         
  28. //               |               |
  29. //               |           XOUT|-----
  30. //               |               |      32.768KHz Watch Crystal
  31. //               |            XIN|-----
  32. //               |               |
  33. //               +---------------+

  34. #include  "MSP430x42x.h"
  35. #define   MAXNUM  32      /*存儲的總數據量(字節),最大128*/
  36. /*由于每個數據都需要備份,總數據量越小速度越快,不要留太多余量*/
  37. /*后面存儲、讀取函數可用的存儲地址空間為0~(MAXNUM-1)*/

  38. #define   FLASH_SAVEADDR  (0x1080) /*Flash數據存儲區首地址(InfoB)*/
  39. #define   FLASH_COPYADDR  (0x1000) /*Flash備份存儲區首地址(InfoA)*/

  40. union LongChar      //長整字節  復合結構
  41. { unsigned long int Long;
  42.   struct ByteL4
  43.    { unsigned char  BHH;
  44.      unsigned char  BHL;
  45.      unsigned char  BLH;
  46.      unsigned char  BLL;
  47.    }Bytes;   
  48. };
  49. union FloatChar      //浮點字節  復合結構
  50. { float Float;
  51.   struct ByteF4
  52.    { unsigned char  BHH;
  53.      unsigned char  BHL;
  54.      unsigned char  BLH;
  55.      unsigned char  BLL;
  56.    }Bytes;   
  57. };

  58. unsigned char FLASH_PSR;
  59. #define DISABLE_INT;  FLASH_PSR=__get_SR_register();_DINT();
  60. #define RESTORE_INT;  if(FLASH_PSR & GIE)           _EINT();
  61. /****************************************************************************
  62. * 名    稱:Flash_Init()
  63. * 功    能:對Flash時鐘進行初始化設置
  64. * 入口參數:無
  65. * 出口參數:無
  66. * 說    明: 如需使用后面的讀寫函數,在程序開始必須先調用該初始化函數
  67.             配置Flash時鐘必須在257~476KHz之間!!
  68. ****************************************************************************/
  69. void Flash_Init(void)
  70. {
  71.   FCTL2 = FWKEY + FSSEL_2 + FN1; // 默認 SMCLK/3 =349KHz
  72. }
  73.   /* Flash時鐘必須在257~476KHz之間, */
  74.   /* 分頻系數= 32*FN5 + 16*FN4 + 8*FN3 + 4*FN2 + 2*FN1 + FN0 + 1 */

  75.   // Flash時鐘選擇:   
  76.   /* FSSEL_0 Flash clock select: 0 - ACLK */
  77.   /* FSSEL_1 Flash clock select: 1 - MCLK */
  78.   /* FSSEL_2 Flash clock select: 2 - SMCLK */


  79. /****************************************************************************
  80. * 名    稱:Flash_Busy()
  81. * 功    能:Flash忙等待
  82. * 入口參數:無
  83. * 出口參數:無
  84. * 說    明: 若Flash忙則等待,直到Flash操作完成(空閑)才返回。
  85. ****************************************************************************/
  86. void Flash_Busy()
  87. {
  88.   while((FCTL3 & BUSY) == BUSY){_NOP();}    //Busy
  89. }
  90. /****************************************************************************
  91. * 名    稱:Flash_Erase()
  92. * 功    能:擦除Flash的一個數據塊
  93. * 入口參數:Addr:被擦除數據塊的首地址
  94. * 出口參數:無
  95. ****************************************************************************/
  96. void Flash_Erase(unsigned int Addr)  
  97. { unsigned char *Flash_ptr;
  98.   Flash_ptr=(unsigned char *)Addr;
  99.   FCTL1 = FWKEY + ERASE;                    // Set Erase bit
  100.   FCTL3 = FWKEY;                            // Clear Lock bit
  101.   DISABLE_INT;
  102.   *Flash_ptr = 0;                          // Dummy write to erase Flash segment B
  103.   Flash_Busy();                            //Busy
  104.   RESTORE_INT;
  105.   FCTL1 = FWKEY;                            // Lock
  106.   FCTL3 = FWKEY+LOCK;                       // Set Lock bit  
  107. }
  108. /****************************************************************************
  109. * 名    稱:Flash_CopyA2B()
  110. * 功    能:將數據區的內容拷貝到備份區
  111. * 入口參數:無
  112. * 出口參數:無
  113. ****************************************************************************/
  114. void Flash_CopyA2B()
  115. {
  116.   unsigned char *Flash_ptrA;                      // Segment A pointer
  117.   unsigned char *Flash_ptrB;                      // Segment B pointer
  118.   unsigned int i;
  119.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;  // Initialize Flash segment A pointer
  120.   Flash_ptrB = (unsigned char *) FLASH_COPYADDR;  // Initialize Flash segment B pointer
  121.   Flash_Erase(FLASH_COPYADDR);
  122.   FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
  123.   FCTL3 = FWKEY;                            // Clear Lock bit
  124.   for (i=0; i<MAXNUM; i++)
  125.   {
  126.     DISABLE_INT;
  127.     *Flash_ptrB++ = *Flash_ptrA++;           // copy value segment A to segment B
  128.     Flash_Busy();                              //Busy
  129.     RESTORE_INT;
  130.   }
  131.   FCTL1 = FWKEY;                            // Clear WRT bit
  132.   FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
  133. }
  134. /****************************************************************************
  135. * 名    稱:Flash_WriteChar()
  136. * 功    能:向Flash中寫入一個字節(Char型變量)
  137. * 入口參數:Addr:存放數據的地址
  138.             Data:待寫入的數據
  139. * 出口參數:無
  140. * 范    例:Flash_WriteChar(0,123);將常數123寫入0單元
  141.             Flash_WriteChar(1,a);將整型變量a寫入1單元
  142. ****************************************************************************/
  143. void Flash_WriteChar (unsigned int Addr,unsigned char Data)
  144. {
  145.   unsigned char *Flash_ptrA;                         // Segment A pointer
  146.   unsigned char *Flash_ptrB;                         // Segment B pointer
  147.   unsigned int i;
  148.   Flash_CopyA2B();                          //Flash內的數據先保存起來
  149.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  150.   Flash_ptrB = (unsigned char *) FLASH_COPYADDR;// Initialize Flash segment B pointer
  151.   Flash_Erase(FLASH_SAVEADDR);  
  152.   FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
  153.   FCTL3 = FWKEY;                            // Clear Lock bit
  154.   for (i=0; i<MAXNUM; i++)
  155.   {
  156.     DISABLE_INT;
  157.     if(i==Addr)
  158.     {
  159.      *Flash_ptrA++ =Data;                    // Save Data
  160.      Flash_Busy();                              //Busy
  161.      Flash_ptrB++;
  162.     }
  163.     else
  164.     {
  165.      *Flash_ptrA++ = *Flash_ptrB++;           // 恢復Flash內的其他數據
  166.      Flash_Busy();                              //Busy
  167.     }
  168.     RESTORE_INT;
  169.   }
  170.   FCTL1 = FWKEY;                            // Clear WRT bit
  171.   FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
  172. }  
  173. /****************************************************************************
  174. * 名    稱:Flash_ReadChar()
  175. * 功    能:從Flash中讀取一個字節
  176. * 入口參數:Addr:存放數據的地址
  177. * 出口參數:讀回的數據
  178. ****************************************************************************/
  179. unsigned char Flash_ReadChar (unsigned int Addr)
  180. { unsigned char Data;
  181.   unsigned char *Flash_ptrA;                         // Segment A pointer
  182.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;             // Initialize Flash segment A pointer
  183.   Data=*(Flash_ptrA+Addr);
  184.   return(Data);
  185. }
  186. /****************************************************************************
  187. * 名    稱:Flash_WriteWord()
  188. * 功    能:向Flash寫入一個整型變量
  189. * 入口參數:Addr:被寫入FlashROM單元的地址
  190.             Data:待寫入的整型變量(2字節數據)
  191. * 出口參數:無
  192. * 說    明: 該函數保存數據將占用Addr和Addr+1兩個存儲單元
  193. * 范    例:Flash_WriteWord(2,1234);將常數1233寫入2~3單元
  194.             Flash_WriteWord(4,a);將整型變量a寫入4~5單元
  195. ****************************************************************************/
  196. void Flash_WriteWord (unsigned int Addr,unsigned int Data)
  197. {
  198.   unsigned char *Flash_ptrA;                // Segment A pointer
  199.   unsigned char *Flash_ptrB;                // Segment B pointer
  200.   unsigned int i;
  201.   Flash_CopyA2B();                          //Flash內的數據先保存起來
  202.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  203.   Flash_ptrB = (unsigned char *) FLASH_COPYADDR;// Initialize Flash segment B pointer
  204.   Flash_Erase(FLASH_SAVEADDR);
  205.   FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
  206.   FCTL3 = FWKEY;                            // Clear Lock bit
  207.   for (i=0; i<MAXNUM; i++)
  208.   {
  209.     DISABLE_INT;
  210.     if(i==Addr)
  211.     {
  212.      *Flash_ptrA++ =Data/256;                    // Save Data
  213.      Flash_Busy();                                //Busy
  214.      *Flash_ptrA++ =Data%256;                    // Save Data     
  215.      Flash_Busy();                                //Busy
  216.      Flash_ptrB+=2;
  217.     }
  218.     else
  219.     {
  220.      *Flash_ptrA++ = *Flash_ptrB++;            // 恢復Flash內的其他數據
  221.      Flash_Busy();                              //Busy
  222.     }
  223.     RESTORE_INT;
  224.   }
  225.   FCTL1 = FWKEY;                            // Clear WRT bit
  226.   FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
  227. }
  228. /****************************************************************************
  229. * 名    稱:Flash_ReadWord()
  230. * 功    能:從FlashROM讀回一個整型變量
  231. * 入口參數:Addr:待讀出變量FlashROM單元的起始地址(存入的地址)
  232. * 出口參數:讀回的整型變量值
  233. ****************************************************************************/
  234. unsigned int Flash_ReadWord (unsigned int Addr)
  235. { unsigned int Data;
  236.   unsigned char *Flash_ptrA;                    // Segment A pointer
  237.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  238.   Data=*(Flash_ptrA+Addr)*256+*(Flash_ptrA+Addr+1);
  239.   return(Data);
  240. }
  241. /****************************************************************************
  242. * 名    稱:Flash_WriteLong()
  243. * 功    能:向FlashROM寫入一個長整型變量
  244. * 入口參數:Addr:被寫入FlashROM單元的地址
  245.             Data:待寫入的長整型變量(4字節數據)
  246. * 出口參數:無
  247. * 說    明: 該函數保存數據將占用Addr到Addr+3 共4個存儲單元
  248. * 范    例:Flash_WriteLong(7,123456);將長整型數123456寫入7~10單元
  249.             Flash_WriteLong(11,a);將長整型變量a寫入11~14單元
  250. ****************************************************************************/
  251. void Flash_WriteLong (unsigned int Addr,unsigned long int Data)
  252. {
  253.   union LongChar LData;
  254.   unsigned char *Flash_ptrA;                         // Segment A pointer
  255.   unsigned char *Flash_ptrB;                         // Segment B pointer
  256.   unsigned int i;
  257.   LData.Long=Data;
  258.   Flash_CopyA2B();                          //Flash內的數據先保存起來
  259.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  260.   Flash_ptrB = (unsigned char *) FLASH_COPYADDR;// Initialize Flash segment B pointer
  261.   Flash_Erase(FLASH_SAVEADDR);
  262.   FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
  263.   FCTL3 = FWKEY;                            // Clear Lock bit
  264.   for (i=0; i<MAXNUM; i++)
  265.   {
  266.     DISABLE_INT;
  267.     if(i==Addr)
  268.     {
  269.      *Flash_ptrA++ =LData.Bytes.BHH;            // Save Data
  270.      Flash_Busy();                              //Busy
  271.      *Flash_ptrA++ =LData.Bytes.BHL;            // Save Data   
  272.      Flash_Busy();                              //Busy
  273.      *Flash_ptrA++ =LData.Bytes.BLH;            // Save Data
  274.      Flash_Busy();                              //Busy
  275.      *Flash_ptrA++ =LData.Bytes.BLL;            // Save Data     
  276.      Flash_Busy();                              //Busy
  277.      Flash_ptrB+=4;
  278.      }
  279.     else
  280.     {
  281.      *Flash_ptrA++ = *Flash_ptrB++;           // 恢復Flash內的其他數據
  282.      Flash_Busy();                              //Busy
  283.     }
  284.     RESTORE_INT;   
  285.   }
  286.   FCTL1 = FWKEY;                            // Clear WRT bit
  287.   FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
  288. }
  289. /****************************************************************************
  290. * 名    稱:Flash_ReadLong()
  291. * 功    能:從FlashROM讀回一個長整型變量
  292. * 入口參數:Addr:待讀出變量所在FlashROM單元的起始地址(存入的地址)
  293. * 出口參數:讀回的長整型變量值
  294. ****************************************************************************/
  295. unsigned long int Flash_ReadLong (unsigned int Addr)
  296. {
  297.   unsigned char *Flash_ptrA;                    // Segment A pointer
  298.   union LongChar Data;
  299.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  300.   Flash_ptrA+=Addr;
  301.   Data.Bytes.BHH=*Flash_ptrA++;
  302.   Data.Bytes.BHL=*Flash_ptrA++;
  303.   Data.Bytes.BLH=*Flash_ptrA++;
  304.   Data.Bytes.BLL=*Flash_ptrA++;     
  305.   return(Data.Long);
  306. }
  307. /****************************************************************************
  308. * 名    稱:Flash_WriteFloat()
  309. * 功    能:向FlashROM寫入一個浮點型變量
  310. * 入口參數:Addr:被寫入FlashROM單元的地址
  311.             Data:待寫入的浮點型變量(4字節數據)
  312. * 出口參數:無
  313. * 說    明: 該函數保存數據將占用Addr到Addr+3 共4個存儲單元
  314. * 范    例:Flash_WriteFloat(15,3.14159);將浮點數3.14159寫入15~18單元
  315.             Flash_WriteFloat(19,a);將浮點變量a寫入19~22單元
  316. ****************************************************************************/
  317. void Flash_WriteFloat (unsigned int Addr,float Data)
  318. {
  319.   union FloatChar FData;
  320.   unsigned char *Flash_ptrA;                // Segment A pointer
  321.   unsigned char *Flash_ptrB;                // Segment B pointer
  322.   unsigned int i;
  323.   FData.Float=Data;
  324.   Flash_CopyA2B();                          //Flash內的數據先保存起來
  325.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  326.   Flash_ptrB = (unsigned char *) FLASH_COPYADDR;// Initialize Flash segment B pointer
  327.   Flash_Erase(FLASH_SAVEADDR);
  328.   FCTL1 = FWKEY + WRT;                      // Set WRT bit for write operation
  329.   FCTL3 = FWKEY;                            // Clear Lock bit
  330.   for (i=0; i<MAXNUM; i++)
  331.   {
  332.     DISABLE_INT;
  333.     if(i==Addr)
  334.     {
  335.      *Flash_ptrA++ =FData.Bytes.BHH;            // Save Data
  336.      Flash_Busy();                              //Busy
  337.      *Flash_ptrA++ =FData.Bytes.BHL;            // Save Data   
  338.      Flash_Busy();                              //Busy
  339.      *Flash_ptrA++ =FData.Bytes.BLH;            // Save Data
  340.      Flash_Busy();                              //Busy
  341.      *Flash_ptrA++ =FData.Bytes.BLL;            // Save Data     
  342.      Flash_Busy();                              //Busy
  343.      Flash_ptrB+=4;
  344.     }
  345.     else
  346.     {
  347.      *Flash_ptrA++ = *Flash_ptrB++;           // 恢復Flash內的其他數據
  348.      Flash_Busy();                              //Busy
  349.     }
  350.     RESTORE_INT;
  351.   }
  352.   FCTL1 = FWKEY;                            // Clear WRT bit
  353.   FCTL3 = FWKEY + LOCK;                     // Set LOCK bit
  354. }
  355. /****************************************************************************
  356. * 名    稱:Flash_ReadFloat()
  357. * 功    能:從FlashROM讀回一個浮點型變量
  358. * 入口參數:Addr:待讀出變量所在FlashROM單元的起始地址(存入的地址)
  359. * 出口參數:讀回的浮點型變量值
  360. ****************************************************************************/
  361. float Flash_ReadFloat (unsigned int Addr)
  362. {
  363.   unsigned char *Flash_ptrA;                   // Segment A pointer
  364.   union FloatChar Data;
  365.   Flash_ptrA = (unsigned char *) FLASH_SAVEADDR;// Initialize Flash segment A pointer
  366.   Flash_ptrA+=Addr;
  367.   Data.Bytes.BHH=*Flash_ptrA++;
  368.   Data.Bytes.BHL=*Flash_ptrA++;
  369.   Data.Bytes.BLH=*Flash_ptrA++;
  370.   Data.Bytes.BLL=*Flash_ptrA++;     
  371.   return(Data.Float);
  372. }
  373. //==============================================================================================
復制代碼

Flash.h文件:
  1. extern void          Flash_Init  (void);
  2. extern void          Flash_WriteChar  (unsigned int Addr,unsigned char Data);
  3. extern unsigned char Flash_ReadChar   (unsigned int Addr);
  4. extern void          Flash_WriteWord  (unsigned int Addr,unsigned int  Data);
  5. extern unsigned int  Flash_ReadWord   (unsigned int Addr);
  6. extern void          Flash_WriteLong  (unsigned int Addr,unsigned long Data);
  7. extern unsigned long Flash_ReadLong   (unsigned int Addr);
  8. extern void          Flash_WriteFloat (unsigned int Addr,float         Data);
  9. extern float         Flash_ReadFloat  (unsigned int Addr);
復制代碼




作者: 落筆    時間: 2019-6-24 18:14
求大神指點一下,我往信息存儲器中寫數據可以按我設定的地址中寫,但是我往主存儲器中寫數據時,我設置的起始地址時bank3的首地址038000H,為啥調試的時候顯示的寫在了08000H為首地址的Bank0區中呢?




歡迎光臨 (http://www.izizhuan.cn/bbs/) Powered by Discuz! X3.1
动漫h在线观看| 香蕉久久夜色精品国产使用方法| 中文字幕第8页| 午夜久久黄色| 亚洲制服中文| 精品久久久久久久一区二区蜜臀| 99久久99久久久精品齐齐 | 国产一区二区中文字幕| 天天做夜夜做人人爱精品 | 国产精品一二三在| 66视频精品| 亚洲精品影片| 欧美videossex| 国产美女特级嫩嫩嫩bbb片| juy有坂深雪中文字幕| 在线观看 中文字幕| 99久久免费看精品国产一区| 成人av一级片| 日本在线观看不卡| 91亚洲精品在线观看| 欧美不卡视频一区发布| 日韩欧美一二区| 日韩欧美aaa| 中文在线一区二区 | 欧美精美视频| 久久青草免费| 后进极品白嫩翘臀在线播放| 亚洲人性生活视频| 9l视频自拍蝌蚪9l视频| 亚洲欧美天堂网| 国产高清精品软件丝瓜软件| 久久精品第一页| 欧美另类z0zx974| 国产欧美一区二| 精品国产一区三区| 91免费网站视频| 国产伦一区二区三区色一情| 欧美在线国产精品| 不卡av电影在线观看| 亚洲福利视频二区| 黄色片一区二区三区| 亚洲免费av一区| 女人被男人躁得好爽免费视频| 久久国产精品精品国产色婷婷| 日本一区二区不卡| 孩xxxx性bbbb欧美| 久久偷看各类女兵18女厕嘘嘘| 亚洲精品国产精品久久清纯直播| 欧美日韩一二三| 精品久久久国产| 一区二区三区四区视频精品免费| 久久综合九色综合97婷婷| 经典三级在线一区| 日韩av一区二区在线影视| 亚洲精品资源| 伊人情人综合网| 91亚洲国产成人久久精品| 极品尤物一区| 极品一区美女高清| 人与人69性欧美三人交| 色噜噜在线播放| 午夜精品一二三区| 亚洲av无码专区在线| 一区二区www| 一级全黄裸体免费视频| 中文字幕一区二区三区四区欧美| 日韩手机在线观看| 国产又粗又爽视频| 天天射天天干天天| 一本色道久久综合无码人妻| 亚洲永久精品视频| 精品人妻伦一区二区三区久久| 国产免费的av| 不卡的日韩av| 在线观看亚洲电影| 色wwwwww| 一区二区三区在线|网站| 亚洲国产欧美另类| 美女露胸一区二区三区| 好男人官网在线观看| 熟妇高潮一区二区高潮| 国产成人免费看一级大黄| 精品国产av一区二区| 一区二区www| 蜜桃91麻豆精品一二三区| 亚洲天堂影院在线观看| 欧美xxx在线| 日本h视频在线观看| 狠狠色噜噜狠狠狠狠888奇米| 亚州福利视频| 一不卡在线视频| 毛片在线不卡| 欧美电影网址| a级日韩大片| 日韩av片子| 国产欧美日本| 国产91精品精华液一区二区三区 | 久久9999久久免费精品国产| 99久热在线精品996热是什么| 中文字幕 人妻熟女| 人妻偷人精品一区二区三区| 欧美超强性xxxxx| 天天色天天看| 精品乱码一区二区三四区视频 | 成人一区二区三区| 最新国产精品久久精品| 色综合久久综合网| 日韩av一区在线| 久久91亚洲精品中文字幕| 国产精品吴梦梦| 久久精精品视频| 国产精品免费看久久久无码| 婷婷六月天在线| av男人的天堂av| 成人写真福利网| 成人免费一区二区三区| 成年网站在线免费观看| 91小视频在线播放| xxxxx99| 国语对白永久免费| 欧美一区二区三区成人片在线| 国产人成免费视频| 日本成在线观看| 性欧美高清come| 日韩一二三区在线观看| 亚洲欧美色图| 国产91精品一区二区| 亚洲一区二区av在线| 精品日韩成人av| 91av成人在线| 日韩黄色影视| 红桃视频 国产| 日本老熟俱乐部h0930| 国产三级自拍视频| www.激情网.com| 国偷自拍第113页| 国精品产品一区| 中文字幕在线免费播放| 青青草视频在线免费直播| 日日夜夜精品视频| 亚洲日产国产精品| 久久综合色鬼综合色| 欧洲亚洲精品在线| 久久久精品美女| 国产另类自拍| 天堂社区在线视频| 久久免费视频播放| 露脸国产精品自产在线播| 在线看三级网站视频| 色综合天天色| 亚洲激情午夜| 国产精品家庭影院| 亚洲精品美女在线观看| 91精品国产自产在线观看永久| 四虎免费在线观看视频| 小毛片在线观看| 一二三区中文字幕| 在线观看成人网| 一区二区三区四区日本视频| 91精品久久久久久久久久不卡| 成人一区在线观看| 777xxx欧美| 国产精品情侣自拍| 欧美成人xxxxx| 久久在线视频精品| 国产亚洲精品久久久久久青梅| 成人精品一区| 国产一区国产二区国产三区| av在线一区二区| 精品久久久久久久久久久院品网| 国产日韩在线播放| 免费观看成人网| 久久国产黄色片| 天天天天天天操| 亚洲成人人体| 日本美女视频一区二区| 在线观看免费视频综合| 国产999在线| 日本三区在线观看| 日韩手机在线视频| 激情乱色小说视频| 视频二区欧美毛片免费观看| 国产一区二区剧情av在线| 在线不卡中文字幕| 精品国产不卡| 亚洲女则毛耸耸bbw| 在线观看一区二区三区四区| 国产男男gay体育生网站| 日本夜爽爽一二区| 99久久人爽人人添人人澡| 国产精品123| 亚洲精品视频二区| 日韩精品成人一区二区在线观看| 久久久久久久毛片| 高清在线观看免费韩剧| 天堂а√在线最新版中文在线| 国产农村妇女毛片精品久久莱园子| 精品久久久久久久久中文字幕| 日本精品视频网站| 拔插拔插华人永久免费| xxxx18国产| 国产精品 欧美在线| 成年人福利视频| 免费在线观看黄色小视频| 欧美成人观看免费全部完小说| 欧美卡一卡二| 免播放器亚洲| 欧美丰满一区二区免费视频| 亚洲综合精品一区二区| 亚洲永久无码7777kkk| 欧美日韩亚洲国内综合网| 天堂在线中文网官网| 男女性色大片免费观看一区二区| 在线播放一区二区三区| 蜜桃视频在线观看成人| 欧美在线视频第一页| 免费人成网ww777kkk手机| 成人黄色免费电影| 精品国内片67194| 日本在线免费中文字幕| 亚洲欧洲日韩精品在线| 成人性生交大片免费看中文| 永久免费毛片在线播放不卡| 日韩精品一区二区在线视频| 无码人妻精品一区二区50| 最新国产在线| 海角社区69精品视频| 欧美亚洲一区二区在线| 精品在线视频一区二区| 欧美精品色哟哟| 交视频在线观看国产| 日韩欧美网址| 色狠狠一区二区| 免费国产一区二区| 日本精品一区在线| 国模吧一区二区三区| 成人黄色片视频| 污视频网站免费观看| 在线观看爽视频| 久久综合中文字幕| 热99在线视频| 国产福利短视频| 先锋在线亚洲| 911久久香蕉国产线看观看| 欧美日韩在线亚洲一区蜜芽| 亚洲精品9999| 国产视频第一页| 欧美18av| 中文字幕一区二区三区乱码在线| 国产日韩专区在线| 国产一级av毛片| 91啦中文在线| 精品一区二区三区免费观看| 久久亚洲精品国产亚洲老地址| 日本一本在线视频| 成人18免费| 精品成人在线| 国产午夜精品一区理论片飘花 | 91精品成人久久| 天堂久久精品忘忧草| 最新在线观看av网站| 强制捆绑调教一区二区| 欧美激情一区二区三区在线视频观看 | 日韩小视频在线| a天堂视频在线观看| 五十度飞在线播放| 久久久xxx| 欧美黑人性视频| 久久久国产一级片| 国产在线观看黄| 懂色av一区二区三区蜜臀| 国产精品久久综合av爱欲tv| 国产成人啪精品午夜在线观看| 性直播体位视频在线观看| 国产午夜精品美女毛片视频| 亚洲直播在线一区| 中文字幕在线观看国产| 欧美爱爱视频| 色综合久久88色综合天天免费| 色爽爽爽爽爽爽爽爽| 亚洲区精品久久一区二区三区| 国产亚洲欧美日韩在线观看一区二区 | 国产伦精品一区二区三区在线| 中文字幕在线视频第一页| yy6080久久伦理一区二区| 欧美午夜丰满在线18影院| 老司机午夜网站| 高清国产免费| 国产日韩欧美高清免费| 欧美激情中文字幕乱码免费| www青青草原| 涩涩视频在线播放| 五月综合激情网| 亚洲午夜精品久久久久久人妖| 就爱干草视频| 日韩在线卡一卡二| 国产精品高清网站| 男操女视频网站| 波多野结衣在线一区二区| 日韩一卡二卡三卡| www.美色吧.com| 高清美女视频一区| 成人免费一区二区三区在线观看| 最新欧美日韩亚洲| 碰草在线视频| 狠狠色狠狠色综合| 国产伦精品一区二区三区视频免费| 午夜久久久久久久久久| 成人羞羞网站入口| 九九热精品视频国产| 亚洲偷欧美偷国内偷| 老牛国内精品亚洲成av人片| 国产成人精品www牛牛影视| 成人欧美一区二区三区在线 | 成人综合在线视频| 成人一区二区三区四区| 国产综合视频在线| 五月天亚洲色图| 日韩av在线影院| 永久免费看片直接| 日本黄色免费在线| 欧美日韩亚洲另类| 久久久久久久高清| 国产黄色片在线观看| 国产精品视频一区二区三区不卡| 精品麻豆av| 91视频黄色| 精品午夜一区二区三区在线观看| 成人免费在线视频网站| 亚洲精品久久久久久动漫器材一区 | 国产精品久久久久久超碰| 国产剧情久久久| 97人妻精品一区二区三区| 国产视频一视频二| 天天色棕合合合合合合合| 欧美日韩在线播放视频| 欧美成人免费在线观看| 日本中文字幕免费| 亚洲欧美日本国产| 在线视频精品一| 久久精品欧美一区二区| 波多野结衣在线一区二区| 中文精品99久久国产香蕉| 九九视频在线免费观看| 深夜福利一区| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 久久影院午夜片一区| 在线一区高清| 绯色av一区| 国产精品久久久久久久久免费丝袜| 日本精品久久久久久久久久| 丝袜足控免费网站xx网站| 亚洲国产激情av| 涩涩网站在线看| 美女精品导航| 日韩视频一区在线观看| 国产精品久久久久久久精| 亚洲三级av| 国产精品久久777777| 天天干天天操天天做| 免费在线看黄| 日韩亚洲电影在线| 欧美激情一区二区视频| 精品国产乱子伦一区二区| 欧美精品国产精品日韩精品| 国产成a人亚洲精v品无码| 亚洲人成人一区二区三区| 国产精品日韩欧美一区二区三区| 涩涩屋黄网站| 中文字幕巨乱亚洲| 欧美在线aaa| 国产在线观看www| 影音先锋欧美精品| 一本到在线视频| 久久精品官网| 伊人情人网综合| 深夜福利在线观看直播| 91高清视频免费看| 刘亦菲国产毛片bd| 精品一级毛片| 亚洲最大福利视频网| 看成年女人免费午夜视频| 亚洲人成伊人成综合网小说| 亚洲免费观看在线| 欧美电影院免费观看| 97久久精品视频| 久久久久亚洲精品一区二区三区| 久久久久久99久久久精品网站| 欧美特级aaa| 日韩成人免费av| 国外成人免费在线播放| 男人插曲女人的视频| 久久久99久久| 欧美久久久久久久久久久| 第一区第二区在线| 国产精品嫩草影院久久久| 波霸ol色综合网| 色综合久久99| 丰满少妇乱子伦精品看片| 亚洲女人av|