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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易單片機計算器的proteus仿真實現

[復制鏈接]
跳轉到指定樓層
樓主
一個簡單的加減乘除計算器/*注意上面頭文件"bsp_GOG1.h"包含一個可選宏定義  
        若需使用擴展板請增加全局宏定義 _GOG1Plus
        定義方式
        菜單 Project->Options for Target->C51->Define
        在此處填入   “_GOG1Plus”
在此代碼完全兼容,第三次課的矩陣按鍵程序,在此感謝魏同學的幫助 */
/*
計算器功能實現:4位數字的加,減,乘法,除法沒有做商的小數部分
1.對輸入運算數的有效性檢查,即超過9999時,顯示錯誤;
2,用LED--》D3來指示系統的正常運行狀態
3,運算的結果超過9999時,提示錯誤顯示;
4,當系統運行錯誤時,或者顯示亂碼時,按A鍵清除數碼管顯示;
5,除法運算時,的二個運算數為0時,提示錯誤顯示
6, 運算表達式不完整時,報錯:
                      (1)無數 * 第二個數 = 報錯
                      (2)第一個數 * 無數 = 報錯
                      (3)直接按等號,報錯
7,D3 LED燈實際是隔1ms 閃爍一次,
*/
/*矩陣按鍵 功能定義:
#define ADD        15          //'#':加法  S15
#define SUB        12          //'C':減法  S12
#define MUL        14          //'*':乘法  S13
#define DIV        11          //'B':除法  S8
#define EQU        13          //'D':等于  S16
#define CLE     10        //'A':清除  S4

仿真圖:


單片機源程序如下:
  1. #include <REG52.H>          //51單片機標準寄存器聲明頭文件
  2. #include "bsp_GOG1.h"   //這個頭文件用于映射GOG1學習板載硬件接口
  3. /*計算器的運算狀態定義:*/
  4. #define NoKey       0xaa  //沒有按鍵按下的狀態
  5. #define ErrKey      0xff  //錯誤的按鍵狀態/干擾
  6. #define DpyErr            0x0e  //錯誤顯示狀態(碼表數組第14個元素:'E')
  7. #define DpyCle      0x10  //清屏(碼表數組第16個元素:0xff 關閉數碼管)
  8. #define InCount         0xf0  //有運算符輸入狀態
  9. #define InErrEqu          0x0f  //有等號輸入狀態
  10. #define NoCountFlag 0xa5  //沒有運算符的狀態
  11. /*矩陣按鍵 功能定義: */
  12. #define ADD        15          //'#':加法  S15
  13. #define SUB        12          //'C':減法  S12
  14. #define MUL        14          //'*':乘法  S13
  15. #define DIV        11          //'B':除法  S8
  16. #define EQU        13          //'D':等于  S16
  17. #define CLE 10    //'A':清除  S4
  18. /*相關子函數的聲明:*/
  19. void delayms(unsigned int ms);                          //延時函數
  20. void SegDisplay(unsigned char casebit);         //數碼管顯示函數
  21. unsigned char ReadKeyPad(void);          //讀取矩陣鍵盤函數
  22. void Timer0Init(void);                                         //定時器0初始化函數
  23. unsigned char CheckInput(void);                         //計算器檢查輸入狀態函數
  24. void DatUnpack(unsigned int dat);                 //計算器數據拆分函數
  25. bit CheckNum(unsigned int dat);                         //計算器數據有效性檢查函數
  26. void WarmDpy(unsigned char err);                 //計算器錯誤顯示函數
  27. void ComputeState(unsigned char dat);         //計算器計算過程函數

  28. //數碼管段碼表 共陽  17個元素: 0~F & 0xff
  29. unsigned char code SegCode[17]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,
  30.                                  0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
  31. unsigned int Ans;              //運算結果

  32. bit AnsFlag=0;            //運算結果存在標志
  33. bit InFlag1=0;                      //輸入有效數字1標志
  34. bit InFlag2=0;                      //輸入有效數字2標志
  35. unsigned char CountFlag;  //運算符
  36. unsigned int  temp1=0,temp2=0;//輸入的2個運算的數字
  37. unsigned char DisBuff[4]={DpyCle,DpyCle,DpyCle,DpyCle};//數碼管顯示緩存
  38. /*******************************************************************************
  39.   * @brief  mian           (簡介)
  40.   * @param  無                   (參數)
  41.   * @retval 無                   (返回值)
  42.   ******************************************************************************/
  43. void main(void)                                    //程序從這里開始
  44. {
  45.     unsigned char in;                        //保存單個按鍵值的變量
  46.    
  47.     CountFlag=NoCountFlag;                //運算符初始狀態
  48.     Timer0Init();                                //定時器0初始化
  49.     while(1)
  50.     {
  51.         in=CheckInput();
  52.         while(in == NoKey) in=CheckInput(); //沒有按鍵按下,在此等待
  53.         if(in !=ErrKey)                //按鍵有效
  54.         {
  55.           ComputeState(in);  
  56.         }

  57.         else  WarmDpy(DpyErr); //按鍵無效,報錯 'E'

  58.     }
  59. }
  60. /*******************************************************************************
  61.   * @brief  ComputeState: 計算過程程序
  62.   * @param  unsigned char dat
  63.   * @retval 無
  64. *******************************************************************************/  
  65. void ComputeState(unsigned char dat)
  66. {
  67.     unsigned int num;         //保存運算操作數的變量
  68.     if(AnsFlag == 1)     //判斷上一次運算結果完成標志
  69.     {
  70.         WarmDpy(DpyCle); //清屏
  71.         AnsFlag=0;                 //清除有效運算完成標志
  72.     }
  73.     if((dat !=InCount)&(dat !=InErrEqu)&(dat <10)) //按下的鍵為數字
  74.     {

  75.         if(CountFlag == NoCountFlag) //沒有運算符存在,保存第一個數
  76.         {
  77.             num = temp1;
  78.             num *= 10;                                 //輸入的數字依次進高位
  79.             num += dat;
  80.             if( CheckNum(num)==1 )   //判斷數據有效性
  81.             {                                             //有效在數字范圍
  82.                 temp1 = num;                  //保存第一個數字
  83.                 InFlag1 = 1;         //輸入有效數字1標志
  84.                 DatUnpack(temp1);    //拆分數據,更新顯示緩存
  85.             }
  86.             else WarmDpy(DpyErr);    //超出范圍報錯
  87.         }
  88.         else              //運算符存在 ,保存第二個數
  89.         {
  90.             num = temp2;
  91.             num *= 10;
  92.             num += dat;
  93.             if(CheckNum(num)==1)
  94.             {
  95.                 temp2 = num;
  96.                 InFlag2 = 1;     //輸入有效數字2標志
  97.                 WarmDpy(DpyCle); //清除第一個數的顯示,消除'余暉'
  98.                 DatUnpack(temp2);//更新顯示緩存
  99.             }
  100.             else WarmDpy(DpyErr);
  101.         }
  102.     }
  103.     else    //按下的鍵為非數字(4則運算符被保存,這里考慮 清除鍵和 錯誤等號)
  104.     {
  105.         if(CLE == dat)                 //按下的為清除鍵
  106.         {
  107.             CountFlag = NoCountFlag; //清除運算符
  108.             InFlag1 =0;                                 //清除輸入有效數字1標志
  109.             InFlag2 =0;              //清除輸入有效數字2標志
  110.             AnsFlag=0;                                 //清除運算結果存在標志
  111.             temp1=0,temp2=0;         //清除輸入的2個運算數
  112.             WarmDpy(DpyCle);                 //清屏
  113.             Ans=0;                                         //清除上一次運算結果         
  114.         }
  115.         
  116.         if(InErrEqu == dat)                            //運算表達式不完整時,按下等號的情況
  117.             WarmDpy(DpyErr);         //報錯 'E'
  118.     }
  119. }

  120. /*******************************************************************************
  121.   * @brief  ReadKeyPad        用于讀取矩陣鍵盤鍵值
  122.   * @param  無
  123.   * @retval 矩陣鍵盤鍵值
  124.   * @note   鍵盤鍵值設置請修改case分支臨時變量b的賦值
  125.                                                 0xff 作為錯誤代碼,表示讀取出錯
  126. ******************************************************************************/
  127. unsigned char ReadKeyPad(void)
  128. {
  129.     unsigned char a,c,b=NoKey; //b 初始值為無按鍵的狀態
  130.     KeyPad = 0x0f;    //初始狀態,行號(P3^0~P3^3)高電平,列號(P3^4~P3^7)低電平
  131.     if(KeyPad != 0x0f)
  132.     {
  133.         delayms(20);                 //按鍵消抖動(延時實現)
  134.         if(KeyPad != 0x0f)         //按鍵被按下,初始狀態改變
  135.         {
  136.             a = KeyPad;                 //讀取矩陣鍵盤的行號
  137.         }
  138.         KeyPad = 0xf0;                 //初始狀態反轉
  139.         c = KeyPad;                         //讀取矩陣鍵盤的列號
  140.         a |= c;                                 //按位'或',通過行號,列號唯一確定矩陣按鍵值
  141.         switch (a) {
  142.         case 0xee:
  143.             b = 1;                          //S1
  144.             break;
  145.         case 0xed:
  146.             b = 4;                          //S5
  147.             break;
  148.         case 0xeb:
  149.             b = 7;                          //S9
  150.             break;
  151.         case 0xe7:
  152.             b = MUL;                  //S13'MUL'
  153.             break;
  154.         case 0xde:
  155.             b = 2;                          //S2
  156.             break;
  157.         case 0xdd:
  158.             b = 5;                          //S6
  159.             break;
  160.         case 0xdb:
  161.             b = 8;                          //S10
  162.             break;
  163.         case 0xd7:
  164.             b = 0;                          //S14
  165.             break;
  166.         case 0xbe:
  167.             b = 3;                         //S3
  168.             break;
  169.         case 0xbd:
  170.             b = 6;                         //S7
  171.             break;
  172.         case 0xbb:
  173.             b = 9;                         //S11
  174.             break;
  175.         case 0xb7:
  176.             b = ADD;                 //S15 'ADD'
  177.             break;
  178.         case 0x7e:
  179.             b = CLE;                 //S4 'CLE'
  180.             break;
  181.         case 0x7d:
  182.             b = DIV;                 //S8 'DIV'
  183.             break;
  184.         case 0x7b:
  185.             b = SUB;                 //S12 'SUB'
  186.             break;
  187.         case 0x77:
  188.             b = EQU;                 //S16 '='
  189.             break;
  190.         default :                         //沒有和 a 的匹配項
  191.             b = ErrKey;                 //錯誤的按鍵值
  192.             break;
  193.         }
  194.         KeyPad = 0xf0;                        //松手檢測
  195.         while (KeyPad != 0xf0);        //當沒有松手,將在此一直等待
  196.     }
  197.     return (b);                                //返回讀取的按鍵值
  198. }

  199. /******************************************************************************
  200.   * @brief  delayms        毫秒級延時函數
  201.   * @param  ms        延時的毫秒數 允許值 unsigned int范圍
  202.   * @retval 無
  203.   * @attention   這個函數只是用于12T 8051內核的單片機運行于12Mhz
  204.   *****************************************************************************/
  205. void delayms(unsigned int ms)         //延時子程序(晶振12Mhz)
  206. {
  207.     unsigned char i;
  208.     while(ms--)
  209.     {
  210.         for(i = 0; i < 120; i++);
  211.     }
  212. }

  213. /******************************************************************************
  214.   * @brief  SegDisplay 數碼管顯示&定時器中斷程序組成動態顯示
  215.   * @param  casebit        用于選擇數碼管的位 允許值 0~4
  216.   * @retval 無
  217.   * @attention   這個函數需配合定時器中斷服務程序
  218.   *****************************************************************************/
  219. void SegDisplay(unsigned char casebit)
  220. {
  221.     Seg7_Bits = 0xff;                             //關閉所有數碼管
  222.     Seg7_Data =SegCode[DisBuff[casebit]];//先把段碼值賦給P1(段選端口)
  223.     switch(casebit)
  224.     {
  225.     case 0:
  226.         Seg7_Bit1 = 0;
  227.         break;
  228.     case 1:
  229.         Seg7_Bit2 = 0;
  230.         break;
  231.     case 2:
  232.         Seg7_Bit3 = 0;
  233.         break;
  234.     case 3:
  235.         Seg7_Bit4 = 0;
  236.         break;
  237.     default :
  238.         Seg7_Bits = 0xff;        //關閉所有數碼管
  239.         Seg7_Data = 0xff;
  240.         break;
  241.     }
  242. }
  243. /************************************************************************************
  244.   * @brief  DatUnpack:數據拆分,同時把數據的千位,百位,十位,個位賦給顯示緩存數組DisBuff[]
  245.   * @param  unsigned int dat
  246.   * @retval 無
  247.   ***********************************************************************************/
  248. void DatUnpack(unsigned int dat)
  249. {

  250.     if((dat<10))                                     //1位數
  251.         DisBuff[0]=dat;
  252.     else if((dat<100)&&(dat>=10))         //2位數
  253.     {
  254.         DisBuff[1]=dat/10;
  255.         DisBuff[0]=dat%10;
  256.     }
  257.     else if((dat<1000)&&(dat>=100))         //3位數
  258.     {
  259.         DisBuff[2]=dat/100;
  260.         DisBuff[1]=dat%100/10;
  261.         DisBuff[0]=dat%100%10;
  262.     }
  263.     else if ((dat<10000)&&(dat>=1000))//4位數
  264.     {
  265.         DisBuff[3]=dat/1000;
  266.         DisBuff[2]=dat%1000/100;
  267.         DisBuff[1]=dat%1000%100/10;
  268.         DisBuff[0]=dat%1000%100%10;
  269.     }

  270. }
  271. /*******************************************************************************
  272.   * @brief  unsigned char CheckInput(): 檢查矩陣鍵盤輸入按鍵的類型(簡介)
  273.   * @param  無                                                                                                          (參數)
  274.   * @retval  數字,功能鍵(CLE,EQU,+,-,*,/),無按鍵的狀態                          (返回值)
  275.   ******************************************************************************/
  276. unsigned char CheckInput(void)
  277. {
  278.     unsigned char x;
  279.     x=ReadKeyPad();         //調用讀按鍵子程序
  280.     if(x != ErrKey)         //是否為錯誤按鍵值
  281.     {
  282.         if((x<10)|(x == NoKey)| (x == CLE))//按下的為數字,或沒有按鍵按下,或清除鍵
  283.         {
  284.             return (x);
  285.         }
  286.         else           //按下的為 運算符(四則運算 和 等號)
  287.         {
  288.             if(x == EQU) // 按下的為 等號"="
  289.             {                                                    
  290.                 switch (CountFlag)
  291.                 {
  292.                 case ADD:         Ans = temp1+temp2; break;
  293.                 case SUB:         Ans = temp1-temp2; break;
  294.                 case MUL:         Ans = temp1*temp2; break;
  295.                 case DIV:   if (temp2 == 0) //除法分母為0,報錯
  296.                     {
  297.                         WarmDpy(DpyErr);
  298.                         break;
  299.                     }
  300.                     else
  301.                     {
  302.                         Ans = temp1/temp2;//只計算除法商的整數,暫沒有考慮小數
  303.                         break;
  304.                     }
  305.                 }
  306.                 if( CheckNum(Ans)&&(InFlag1 ==1)&&(InFlag2 ==1))//檢測運算的有效性
  307.                                   {      
  308.                     DatUnpack(Ans);                //運算結果拆分,更新顯示緩存
  309.                     CountFlag = NoCountFlag;        //清除運算符
  310.                     temp1=0,temp2=0;                        //清除運算數字
  311.                     AnsFlag = 1;                                //運算結果存在標志
  312.                     InFlag1 =0;                                //清除有效數字輸入標志
  313.                     InFlag2 =0;
  314.                     Ans=0;                                        //清除運算結果
  315.                     return (NoKey);                        //此次運算完成,返回無按鍵狀態
  316.                   }
  317.                 else //WarmDpy(DpyErr) ;//運算表達式不完整或結果超出范圍,報錯
  318.                     return (InErrEqu);                 //返回有等號輸入的狀態
  319.                     }
  320.             else  //按下的為 4則 運算符(+ ,-,*, /)
  321.             {
  322.                 CountFlag = x;                 //保存運算符
  323.                 return (InCount);                 //返回有運算符輸入的狀態
  324.             }

  325.         }
  326.     }
  327.     else  return (ErrKey);                //返回錯誤按鍵值狀態
  328. }
  329. /*******************************************************************************
  330.   * @brief  CheckNum: 檢查計算器運算數的有效性
  331.   * @param  dat
  332.   * @retval bit 有效: 1,無效: 0
  333.   ******************************************************************************/
  334. bit CheckNum(unsigned int dat)
  335. {
  336.     if (dat < 10000)
  337.         return 1;          //數據有效
  338.     else
  339.         return 0;

  340. }
  341. /*******************************************************************************
  342.   * @brief  WarmDpy:數碼管錯誤顯示
  343.   * @param  err                實則:'E'的碼段值元素的下標
  344.   * @retval 無
  345.   ******************************************************************************/
  346. ……………………

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


所有資料51hei提供下載:
counter程序(V2.0).zip (122.64 KB, 下載次數: 165)


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

使用道具 舉報

沙發
ID:505898 發表于 2019-4-22 07:53 來自觸屏版 | 只看該作者
下載試試
回復

使用道具 舉報

板凳
ID:620480 發表于 2019-10-8 13:57 | 只看該作者
謝謝樓主,辛苦啦,先下載下來看看
回復

使用道具 舉報

地板
ID:622546 發表于 2019-10-11 21:13 | 只看該作者
一共多少行啊.   看到后面舍不得花錢.

回復

使用道具 舉報

5#
ID:622546 發表于 2019-10-11 21:13 | 只看該作者
細致得一
回復

使用道具 舉報

6#
ID:779375 發表于 2020-6-15 10:45 | 只看該作者
樓主在嗎?
回復

使用道具 舉報

7#
ID:779375 發表于 2020-6-15 10:45 | 只看該作者
能不能加個好友私聊   我想下載這個
回復

使用道具 舉報

8#
ID:710460 發表于 2020-6-26 18:26 | 只看該作者
把矩陣鍵盤每一個按鍵都標記了
回復

使用道具 舉報

9#
ID:842963 發表于 2020-11-13 10:20 | 只看該作者
這是編譯之后的源程序嗎?有沒有沒編譯的
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
日韩中文娱乐网| 国产aⅴ爽av久久久久成人| 亚洲线精品一区二区三区| 欧美日韩亚洲国产| www.超碰在线观看| 国产伦精品一区二区三区免费视频| 一区二区三区精品在线观看| 免费精品国产| www免费在线观看视频| 男人天堂a在线| 亚洲欧美在线第一页| 国内精品久久久久影院一蜜桃| av最新在线| 亚洲最大最好的私人影剧院| 欧美一级特黄aaa| 日本中文字幕久久看| 中文字幕五月欧美| 国产成人精品三级高清久久91| 99re6热在线精品视频播放| 性感美女视频一二三| 亚洲一区二区福利视频| 亚洲乱码一区二区三区三上悠亚| 日韩激情av在线免费观看| 99re这里只有精品首页| 亚洲综合影院| 992tv在线观看免费进| 久久久久久国产视频| 天天爽天天爽天天爽| 日本中文不卡| 欧美国产日本高清在线| 亚洲男人的天堂在线观看| 欧美日一区二区| 天堂аⅴ在线地址8| 先锋男人资源站| 北条麻妃在线观看视频| 国产又粗又长又爽又黄的视频| 成人免费淫片aa视频免费| 精品美女在线播放| 久久天堂av综合合色蜜桃网| 午夜激情久久| 福利影院在线看| 天天天天天操| 黄色a级片在线观看| 97在线资源| 97碰在线观看| 亚洲一区二区影院| 99综合电影在线视频| 日本久久精品| 精精国产xxxx视频在线中文版| 国产麻豆麻豆| 国内免费精品视频| 中文字幕第一页在线视频| 97av中文字幕| 日韩av免费看网站| 91精品国产高清自在线| 日韩一区二区在线免费观看| 99久久综合精品| 久久99国产精品免费网站| 欧美毛片免费观看| 在线观看操人| 91麻豆福利| 五十路在线视频| a天堂视频在线| 国产美女三级无套内谢| 国产色无码精品视频国产| 亚洲午夜激情影院| 在线观看免费污视频| 一区二区三区视频| 国产一区二区在线播放| 中文字幕日韩精品在线观看| 欧美日韩精品二区| 99精品在线观看视频| zzijzzij亚洲日本少妇熟睡| 在线国产欧美| 乱中年女人伦av一区二区| 91福利在线尤物| 亚洲欧洲美洲av| 国产区视频在线播放| 黄色网址免费在线| 欧美自拍偷拍第一页| 青青草原在线免费观看视频| 超碰caoprom| 久久久999视频| 国产精品久久久久av免费| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 日韩电影免费网站| 日韩精品久久久久久久软件91| 艳妇乳肉豪妇荡乳xxx| 日本不卡一区二区三区四区| 亚洲综合社区网| 欧美华人在线视频| 992tv成人免费视频| 日本成人精品在线| 久久综合久久88| 欧美精品一区二区三区四区| 影音先锋国产资源| 免费在线黄网站| 国产精品日韩一区二区三区| 成人动漫视频在线观看完整版| 国外成人在线视频| 欧美精品做受xxx性少妇| 日韩av一区在线| 北条麻妃在线一区二区| 亚洲精品一区在线观看香蕉| 日韩女优电影在线观看| 久久亚洲影视| 国产精品xxx在线观看| 日韩一区中文| 在线看片福利| 澳门成人av| 网站一区二区| 色呦哟—国产精品| 日韩av一级电影| 国产手机视频一区二区| 888久久久| 久久精品国产www456c0m| 最新日韩在线| 久久久亚洲人| 9久re热视频在线精品| 中文字幕一区二区精品区| 动漫av网站免费观看| 亚洲欧美久久久| 日韩精品一区二区三区中文| 国产精品亚洲二区| 宅男噜噜噜66国产日韩在线观看| 国产一区二区三区视频在线播放| 热久久一区二区| 国产一区二区三区久久久久久久久 | 国产麻豆91精品| 国产很黄免费观看久久| 国产精品一区二区免费不卡 | www.成人av.com| 91免费黄视频| 久久精品网站视频| 国产99久久九九精品无码| 女性生殖扒开酷刑vk| 在线观看久久久久久| 日本h片久久| japanese色系久久精品| 亚洲网站在线| 亚洲一区国产一区| 久久久精品欧美丰满| 国产精品福利在线播放| 欧美精品久久久久久久多人混战 | 国产电影一区二区三区| 一区二区三区四区不卡视频 | 玛丽玛丽电影原版免费观看1977| 蜜桃视频成人| 亚洲污视频在线观看| 欧美有码在线视频| 国外视频精品毛片| 欧美日韩一区二区三区在线视频| 日韩视频在线观看国产| 99精品视频免费版的特色功能| 日韩精品视频一区二区| 中文字幕一区二区人妻电影| 国产永久免费视频| 肉色超薄丝袜脚交一区二区| 日本欧洲一区| 麻豆视频网站在线观看| 岛国在线视频网站| 99精品在线免费在线观看| 成人午夜电影小说| 亚洲一区在线观看免费观看电影高清 | 久久精品一区二区国产| 亚洲精品写真福利| 在线成人一区二区| 欧美一区二区视频17c| 亚洲熟妇国产熟妇肥婆| 亚洲综合网在线| 乱小说欧美综合| 黄a在线观看| 韩国三级成人在线| 我不卡神马影院| 欧美国产激情一区二区三区蜜月| 欧美日韩性视频在线| 欧美另类高清videos| 亚洲综合国产精品| 欧美一级特黄a| 一区二区www| av三级在线播放| 精品国产导航| 国产欧美一区二区在线观看| 欧美日韩不卡视频| 久久五月天色综合| 国产a级片免费看| 欧美人禽zoz0强交| 美女在线观看www| av网在线观看| 日韩精品视频在线看| 国产毛片精品视频| 精品国产第一区二区三区观看体验| 97视频中文字幕| 日韩少妇内射免费播放18禁裸乳| 日本一区二区欧美| 欧美jizzhd欧美精品巨大| 久草网在线视频| 天堂资源在线| 日日夜夜免费精品| 欧美顶级少妇做爰| 精品国产免费一区二区三区| 激情五月开心婷婷| 激情四射综合网| 男人午夜视频| 欧美24videosex性欧美| 美女精品在线观看| 欧美一区二区三区不卡| 热久久这里只有| 激情久久综合网| 四虎在线免费视频| 亚洲图区欧美| 综合久久伊人| 男女男精品视频| 色综合久久综合网| 久久福利视频导航| 日韩a在线播放| 国内毛片毛片毛片毛片| 黄色免费在线网站| 亚洲欧美不卡| 亚洲精品久久久久| 精品视频免费观看| 午夜精品一区二区三级视频| 成人免费淫片在线费观看| 中文字幕在线官网| 国产精品一二三在| 精品久久久91| 午夜探花在线观看| 无码人中文字幕| 天堂中文在线www| 香蕉视频亚洲一级| 国产在线观看a| 一区二区三区福利| 精品国一区二区三区| 青青草影院在线观看| 这里只有精品免费视频| 国产www在线观看| 亚洲成人影音| 亚洲精品欧美专区| 亚洲自拍偷拍网址| 黄色一级免费视频| melody高清在线观看| 一区二区在线影院| 日韩一区二区在线看| 99久久久精品视频| 神宫寺奈绪一区二区三区| 婷婷五月在线视频| 黄色日韩网站视频| 色在人av网站天堂精品| 精品熟女一区二区三区| 色视频网站在线| 黄色欧美日韩| 亚洲欧洲中文天堂| 日本中文字幕一级片| 国产真实的和子乱拍在线观看| **三级三级97片毛片| 久久久久久久久99精品大| 日韩午夜电影在线观看| 国产成人黄色片| 国产高清在线视频| 亚洲我射av| 亚洲成人自拍网| 91日韩在线播放| 蜜桃精品一区二区| 国产精品jvid在线观看| 免费电影一区二区三区| 91精品国产综合久久久久久| 日韩欧美第二区在线观看| 在线免费av片| 制服丝袜在线播放| 国产日产欧美一区二区视频| 97人洗澡人人免费公开视频碰碰碰| 影音先锋黄色资源| 在线免费色视频| 欧美人成网站| 欧美日本一道本| 水蜜桃色314在线观看| av中文字幕播放| 精品麻豆剧传媒av国产九九九| 欧美激情一二三区| 国产亚洲欧美另类一区二区三区| 亚洲欧美卡通动漫| 国产毛片视频| 久久99精品国产麻豆婷婷洗澡| 91精品国产777在线观看| 侵犯稚嫩小箩莉h文系列小说| shkd中文字幕久久在线观看| 92国产精品观看| 国产精品裸体一区二区三区| 国产精品视频久久久久久| caoporn-草棚在线视频最| 中文字幕一区视频| 日韩一区二区三区高清| 一二三四在线观看视频韩国| 欧美 日韩 国产一区二区在线视频 | 欧美日韩精品在线视频| 日韩av电影免费播放| 中文字幕在线免费看| 日本免费在线一区| 色激情天天射综合网| 国产一区高清视频| www.久久久久久久久久| 在线视频超级| 精品人伦一区二区三区蜜桃免费 | 久久久久性色av无码一区二区| 亚洲高清福利| 久久先锋资源| 国产亚洲xxx| 手机精品视频在线| 最近最新中文字幕在线| 99精品欧美一区二区三区综合在线| 爱情岛论坛亚洲入口| 亚洲乱码精品久久久久..| 国产精品亚洲欧美一级在线 | 久久久电影一区二区三区| 日韩精品久久久免费观看| 国产精品自产拍在线观看2019| 国产模特精品视频久久久久| 国产精品扒开腿做| 精品国产av 无码一区二区三区 | 波多野结衣中文字幕久久| 久久免费精品国产久精品久久久久| 欧美xxxx黑人又粗又长精品| 国产一级黄色大片| 日韩电影在线免费观看| 成人网在线观看| 熟妇人妻av无码一区二区三区| 66视频精品| 国产精品情侣自拍| 手机在线看片1024| 美女一区2区| 久久久av电影| 欧美成人一区二区三区四区| 国模套图日韩精品一区二区| 亚洲第一福利视频在线| 天天色综合社区| 亚洲天天影视| 色哟哟一区二区| 国产一精品一aⅴ一免费| 黄色成人在线| 欧美日韩aaa| 韩国一级黄色录像| 国语精品视频| 欧美成人激情图片网| 最新中文字幕在线观看视频| 91欧美大片| 91精品久久久久久久久久另类 | 欧美激情视频网站| 99国产在线播放| 亚洲无吗在线| 国产亚洲欧美一区二区三区| 日本三级很黄试看120秒| 亚洲黄页一区| 国产成人女人毛片视频在线| 蜜臀av中文字幕| 亚洲乱码久久| 久久精品magnetxturnbtih| 婷婷在线观看视频| 欧美成人午夜精品免费| 高清视频欧美一级| 欧美亚洲视频在线观看| 国产十六处破外女视频| 中文字幕一区二区三区四区久久| 国产亚洲日本欧美韩国| 国产原创视频在线| 亚洲成人av观看| 色欧美日韩亚洲| 日韩aaaaa| aaa大片在线观看| 欧美一区二区女人| 日本妇女毛茸茸| 一本色道久久综合亚洲精品酒店 | 美女欧美视频在线观看免费 | 日韩高清不卡一区二区三区| 日韩一区二区电影在线观看| 蜜臀在线观看| 欧美中文字幕久久| 天天摸天天舔天天操| 中文在线www| 日韩欧美在线看| 成年人三级黄色片| 欧美久久天堂| 欧美日韩国产色站一区二区三区| 中文字幕观看av| 色综合久久一区二区三区| 4444kk亚洲人成电影在线| 电影eeuss影院www| 亚洲狠狠丁香婷婷综合久久久| 国产精品无码一区二区三区| aa级大片免费在线观看| 国产视频久久久久久久| 99久久精品国产色欲| 激情小说亚洲一区| 怡红院av亚洲一区二区三区h| 国产亚av手机在线观看| 日日狠狠久久偷偷四色综合免费| 黄色一级片一级片| 国产精彩视频在线| 日本一道本视频| 国产精品va在线播放| 日韩欧美精品在线观看|