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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

PROTEUS 雙層卸灰閥仿真

[復制鏈接]
跳轉到指定樓層
樓主
ID:72519 發表于 2015-1-21 21:31 | 只看該作者 回帖獎勵 |正序瀏覽 |閱讀模式








  1. #include <reg52.h>

  2. #define uchar unsigned char                 //宏定義uchar為無符型字節

  3. #define uint unsigned int                 //宏定義uint為無符型整數

  4. #define RCOMMAND 0x01                        //宏定義讀命令

  5. #define WCOMMAND 0x02                        //宏定義寫命令

  6. #define ECOMMAND 0x03                        //宏定義擦寫命令

  7. #define WAITTIME 0x01



  8. sfr ISP_DATA=0xe2;                               //定義數據寄存器地址

  9. sfr ISP_ADDRH=0xe3;                               //定義地址寄存器地址高位

  10. sfr ISP_ADDRL=0xe4;                               //定義地址寄存器地址低位

  11. sfr ISP_CMD=0xe5;                               //定義命令寄存器地址

  12. sfr ISP_TRIG=0xe6;                               //定義觸發命令地址

  13. sfr ISP_CONTR=0xe7;                               //定義控制寄存器地址



  14. sbit duan=P1^6 ;              //定義段選

  15. sbit wei=P1^7  ;              //定義位選



  16.        /*指示燈led*/

  17. sbit yx_led=P2^0;          //運行燈

  18. sbit jsms_led=P2^1;   //計時燈

  19. sbit jsums_led=P2^2;  //計數燈

  20. sbit sgdw_led=P2^3;   // 上關到位燈

  21. sbit skdw_led=P2^4;   // 上開到位燈

  22. sbit xgdw_led=P2^5;   //  下關到位燈

  23. sbit xkdw_led=P2^6;  //       下開到位燈



  24. /*按鈕*/

  25. sbit ms_key=P1^0;         //       模式按鈕

  26. sbit shang_key=P1^1;  //       向上鍵

  27. sbit seding_key=P1^2;       //       設定按鈕

  28. sbit qiting_key=P1^3;       //       啟停按鈕

  29. sbit xia_key=P1^4;          //       向下按鈕

  30. sbit rest_key=P1^5;  //       復位按鈕



  31.    /*閥門位置信號*/

  32. sbit skdw_in=P3^0;   //    上閥開到位信號

  33. sbit sgdw_in=P3^1;   //  上閥關到位信號

  34. sbit xkdw_in=P3^2;         //    下閥開到位信號

  35. sbit xgdw_in=P3^3;   //    下閥關到位信號



  36. /*輸出啟動電機*/

  37. sbit skq=P3^4;       //    上閥電機開得電

  38. sbit sgq=P3^5;       //    上閥電機關得電

  39. sbit xkq=P3^6;       //    下閥電機開得電

  40. sbit xgq=P3^7;       //    下閥電機關得電



  41. uchar table[8];         //定義字符數組存放EEPROM里存的變量,和調整后存入EEPROM里



  42. uchar ms,shang,xia,seding,qiting,rest,sfk,xfk,xfg,sfg,dj;

  43. uchar jsgz=1,flg,x,err;                     //計時間隔,計時工作時間 e工作數 fl計時工作開始標志

  44. uchar js_jg=10,js_gz=20,jsu_cs,un,jisu;

  45. char e,jsjg,time,time2=3,flg1,flg2,fqwz,fqwz2=3,sd1,ys,ys1=5,flag3,cbz;

  46. /******************變量名稱***************************

  47. ms 模式狀態  shang按鈕上  xia按鈕下鍵   seding設定鍵值  qiting啟停鍵變量   rest復位鍵變量

  48. sfk上閥開  sfg上閥關   xfk下閥開  xfg下閥關   dj定時器延時標志位

  49. jsgz計時工作   flg計時工作工作時間倒計時減標志位  x閥位連續開關狀態    err錯誤時用閃爍

  50. e計時工作時間     jsjg計時工作間隔時間   time閥開到位等待進放料時間   

  51. time2閥門開到位等待時間存在E2ROM值   flg1閥開到位倒計時標志位    flg2上下閥啟動但位置信號不復位

  52. fqwz上下閥開關啟動多久位置沒變化       fqwz2上下閥開關啟動多久們沒變化設定值

  53. sd1設定有邏輯故障是否繼續工作          ys測試閥電機得電幾秒鐘沒到位    flag3閥電機得電沒到位標志位倒計時

  54. ys1存EEPROM閥得電幾秒沒到位       js_jg能調整數值EEPROM存,賦給值   js_gz能調整數值EEPROM存,賦值

  55. jisu計數倒計數值  cbz錯標志位復位用

  56. //jisu time2 js_jg js_gz        */

  57.                                  

  58. /*led數碼管段選位選*/

  59. uchar code dm[]={0xc0,0xf9,0xa4,0xb0,0x99,

  60. 0x92,0x82,0xd8,0x80,0x90,0xaf,0xa3,0xfb,0xab,0x7f,0x86,0x87};

  61. uchar code wm[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,} ;



  62. /**************毫秒延時函數*****************/

  63. void delay(unsigned int a)

  64. {

  65.        unsigned int i,x;

  66.        for(i=0;i<a;i++)

  67.           for(x=0;x<110;x++);

  68. }

  69.        /*********按鍵掃描函數************/

  70. void  key_scan()

  71. {

  72.    // uchar k;                //定義變量返回值

  73.        ms_key=1;                //送高電平到模式位

  74.        if(ms_key!=1)         //檢測如果不等于高電平

  75.        {

  76.               delay(5);         //延時

  77.               if(ms_key!=1)

  78.               ms=ms+1;                     //       確定,計時模0或計數模式1

  79.               if(ms>=2)ms=0;  

  80.               while(ms_key!=1);  //等侍按鍵抬起            

  81.        }                                                                        

  82. //       else ms=0;                 //如果還是低電平返回0

  83.       

  84.        if(shang_key!=1)  //如果檢測上鍵不是高電平

  85.        {

  86.               delay(5);              // 延時

  87.               if(shang_key!=1)

  88.               shang=1;                     //如果上鍵還是低電平返回1            

  89.        }

  90.        else shang=0;

  91.        if(seding_key!=1)          //如果檢測設定不是高電平

  92.        {

  93.               delay(5);       //延時

  94.               if(seding_key!=1)

  95.               seding++;                 //如果檢測設定還是低電平返回1

  96.               if(seding>=3)seding=0;

  97.               while(seding_key!=1);

  98.        }

  99.        if(qiting_key!=1)          //檢測起動按鈕如果是低電平

  100.        {                              

  101.               delay(5);         //延時

  102.               if(qiting_key!=1)

  103.               qiting=1;                 //如果啟動還是低電平返回1

  104.               else qiting=0;

  105.        }

  106.        if(xia_key!=1)           //如果下檢測是低電平

  107.        {

  108.               delay(5);              //延時

  109.               if(xia_key!=1)

  110.               xia=1;                     //如果下不是低電平返回1

  111.        }

  112.        else xia=0;

  113.        if(rest_key!=1)              //檢測復位按鈕如果是低電平

  114.        {

  115.               delay(5);              //延時

  116.               if(rest_key!=1)

  117.            rest=1;                     //如果復位按鈕還是低電平返回1

  118.               else rest=0;

  119.        }

  120. }

  121.        /********閥門位置掃描***********/

  122. void fmwz()

  123. {

  124.        if(skdw_in!=1)                     //       測試如果上閥在開的位置

  125.        {

  126.               delay(5);              //延時

  127.               if(skdw_in!=1)

  128.               sfk=1;                     //上閥如果真的在開的位置SF復位0

  129.        }

  130.        else sfk=0;

  131.        if(sgdw_in!=1)                     //       測試如果上閥在關的位置      

  132.        {

  133.               delay(5);              //延時

  134.               if(sgdw_in!=1)

  135.               sfg=1;                     //上閥如果真的在關的位置SF置位1

  136.        }

  137.        else sfg=0;

  138.        if(xkdw_in!=1)                     //測試如果下閥在開的位置

  139.        {

  140.               delay(5);              //延時

  141.               if(xkdw_in!=1)

  142.               xfk=1;                     //如果下閥還在開的位置,復位XF為0

  143.        }

  144.        else xfk=0;

  145.        if(xgdw_in!=1)                     // 測試如果下閥在關的位置

  146.        {

  147.               delay(5);              //延時

  148.               if(xgdw_in!=1)

  149.               xfg=1;

  150.                                    //如果下閥還是在關位置,置XF為1

  151.        }

  152.        else xfg=0;

  153. }

  154. /************閥門位置指示燈****************************/

  155. void fled()

  156. {

  157.        sgdw_led=!sfg;                    //上閥在關的位置,上關到位燈亮

  158.        skdw_led=!sfk;                              //上閥在開的位置,上開到位燈亮

  159.        xgdw_led=!xfg;                            //下閥在關的位置,下關到位燈亮

  160.        xkdw_led=!xfk;                            //下閥在開的位置,下開到位燈亮

  161.        if(ms)                                          //如果模式是不是0

  162.        {   

  163.          jsums_led=0;                            //計數LED燈亮

  164.          jsms_led=1;                            //計時模式LED燈滅

  165.        }

  166.        else                                             //如果模式是0

  167.        {

  168.           jsms_led=0;                              //計時LED燈亮

  169.           jsums_led=1;                              //計數LED燈滅

  170.        }

  171. }

  172. /****************顯示數碼管函數*********************/

  173. void display(uchar a,uchar b)

  174. {

  175.        duan=1;                                      //開段選

  176.        P0=dm[a];                               //段碼給P0口

  177.        duan=0;                                      //關段選

  178.        wei=1;                                      //開位選

  179.        P0=wm[b];                               //位碼給P0口

  180.        wei=0;                                      //關位選

  181.        P0=0xff;                               //消隱

  182.     delay(2);      

  183. }



  184. /**************ISP使能**********************************/

  185. void enable()

  186. {                                                                      //關閉總中斷

  187.        EA=0;

  188.        ISP_CONTR=ISP_CONTR|WAITTIME;              //寫入硬件等待時間

  189.        ISP_CONTR|=0x80;                                   //啟動ISP

  190. }



  191. /***************ISP 禁止*******************************/

  192. void disable()

  193. {

  194.        ISP_CONTR=ISP_CONTR&0x7f;                     //關閉ISP

  195.        ISP_TRIG=0x00;                                          //清0

  196.        EA=1;                                                        //開總中斷

  197. }



  198. /*******************觸發********************************/

  199. void goon()

  200. {

  201.        enable();

  202.        ISP_TRIG|=0x46;

  203.        ISP_TRIG|=0xb9;

  204. }



  205. /******************讀一個字節**************************/

  206. uchar read_byte(uint a)

  207. {

  208.        ISP_ADDRH=(uchar)((a>>8)|ISP_ADDRH);         //地址高位寫入

  209.        ISP_ADDRL=(uchar)(a|0x00ff);                       //地址低位寫入

  210.        ISP_CMD=ISP_CMD&0xf8;                                     //清低3位

  211.        ISP_CMD=ISP_CMD|RCOMMAND;                              //寫入讀命令

  212.        goon();                                                                 //觸發

  213.        disable();                                                        //關閉

  214.        return ISP_DATA;                                            //返回讀出數據

  215. }



  216. /*****************寫一個字節****************************/

  217. void write_byte(uint b,uchar c)

  218. {

  219.        ISP_ADDRH=(uchar)((b>>8)|ISP_ADDRH);          //賦值地址高位

  220.        ISP_ADDRL=(uchar)(b|0x00ff);                        //賦值地址低位

  221.        ISP_CMD=ISP_CMD&0xf8;                                      //清低3位

  222.        ISP_CMD=ISP_CMD|WCOMMAND;                               //寫入寫命令

  223.        goon();                                                                  //觸發

  224. //       disable();                                                           //關閉

  225.        ISP_DATA=c;                                                           //把要寫入字節賦給寄存器

  226. }            



  227. /******************擦除扇區*****************************/

  228. void sector_erase(uint a)

  229. {

  230.        ISP_ADDRH=(uchar)((a>>8)|ISP_ADDRH);       //賦值地址高位

  231.        ISP_ADDRL=0;                                                 //賦值低位

  232.        ISP_CMD=ISP_CMD&0xf8;                                   //清低3位

  233.        ISP_CMD=ISP_CMD|ECOMMAND;                            //寫入擦除命令

  234.        goon();                                                               //觸發

  235.        disable();                                                        //關閉

  236. }



  237. /*******************寫入調整好的數值數組到EEPROM******************/

  238. void write()

  239. {

  240.     uchar *pa=0x2000;                 //定義指針變量地址是2000

  241.     uchar x,y;

  242.        table[0]=js_gz;                //計時工作工作時間  (e)

  243.        table[1]=js_jg;                       //計時間隔數值         (jsjg)

  244.        table[2]=jisu;            //計數數值                (jisu)

  245.        table[3]=time2;                       //閥門開到位待待進,放料時間  (time)

  246.        table[4]=ys1;             //電機得電檢測沒到位時間         (ys)

  247.        table[5]=fqwz2;           //電機啟動檢測沒離開位置時間  (fqwz)

  248.        sector_erase(pa);                //擦除2000地址扇區

  249.        for(x=0;x<8;x++)                 //循環

  250.        {

  251.               write_byte(pa+x,table[x]);              //把數組寫入EEPROM里

  252.        }

  253.        disable();                                                 //關ISP

  254. }





  255. /***********開機初始化閥門回關位置顯示INI**************/

  256. void initia()

  257. {                                                      

  258.      uchar a=4,x;                            //定義延時變量

  259.        uchar *pa=0x2000;              //定義指針變量并賦值為2000                    

  260.       P3=0x0f;                                   //把P3口初化下

  261.          for(x=0;x<8;x++)                     //循環

  262.          {

  263.                 table[x]=read_byte(pa+x);       //讀出EEPROM 2000以后連續數賦給數組

  264.          }

  265.          js_gz=table[0];                //把讀出來數賦給計時工作變量

  266.          js_jg=table[1];                //把讀出來數賦給計時間隔變量

  267.          jisu=table[2];                 //把讀出來數賦給計數變量

  268.          time2=table[3];                //把讀出來數賦給閥開到位進,放料等待變量

  269.          ys1=table[4];                  //把讀出來數賦給檢測電機得電多久沒到位變量

  270.        // fqwz2=table[5];                //把讀出來數賦給檢測電機得電多久位置沒動變量

  271.        fqwz2=5;//臨時測試

  272.        while(a|((sfg&xfg)!=1))        //如果延時和上閥關下閥關都等于1

  273.     {

  274.          fmwz();                                   //檢測閥門位置

  275.          fled();                                   //閥門位置LED

  276.          if(dj)a--;                            //閥門延時變量4秒--

  277.       display(12,5);                     //顯示I

  278.       display(13,4);                      //顯示N

  279.       display(12,3);                     //顯示I

  280.       if(sfg!=1)sgq=1;                     //如果上閥沒在關的位置,啟動關上閥電機

  281.          else sgq=0;                            //或者上閥關電機停

  282.          if(xfg!=1)xgq=1;                     //如果下閥沒在關的位置,啟協關下閥電機

  283.          else xgq=0;                            //或者下閥關電機停

  284.        }         

  285. }



  286. /********************顯示錯誤碼Error****************/

  287. void error()

  288. {

  289.                     display(15,6);               //顯示字符E

  290.                  display(10,5);              //顯示字符R

  291.                  display(10,4);              //顯示字符R

  292.                  display(11,3);              //顯示字符O

  293.                  display(10,2);              //顯示字符R

  294.                  cbz=1;                 //錯誤標志位





  295. //              display(0xff,0x08);       //全部不顯示

  296. //              delay(60);                     //延時

  297.   

  298.                                                 

  299. }

  300. /************掃描錯閥位置邏輯錯誤*****************/

  301. void scan_error()

  302. {

  303.        if(sfk&sfg) error(); //如果上閥開,關到位信號同時來顯示錯誤

  304.        if(xfk&xfg) error(); //如果下閥開,關到位信號同時來顯示錯誤

  305.    

  306.        if(skq)                                      //上閥開電機啟動

  307.        {

  308.               flag3=1;                        //置標志位FLAG3為1

  309.               if(sfk&(ys>0))flag3=0;    //如果上閥在開位和倒計時大于0成立,清FLAG3為0

  310.               while(!sfk&(ys==0))              //如果過了設定延時,上開位還沒到進行死循環

  311.               {

  312.                      error();                        //顯示錯誤碼

  313.                      if(err)skdw_led=~skdw_led;         //上閥開到位LED燈閃爍

  314.                      skq=0;                                            //關開上閥電機

  315.                      ys=0;                                          //延時賦0

  316.                      if(!sfg)sgq=1;                            //如果上閥沒在關的位置,關上閥電機啟動

  317.                      else sgq=0;                                   //或在關位置,停關上閥電機

  318.                      if(!xfg)xgq=1;                            //如果下閥沒在關的位置,下閥關電機啟動

  319.                      else xgq=0;                                   //或者關下閥電機停止

  320.               }

  321.        }

  322.        if(sgq)                                      //上閥關電機啟動

  323.        {

  324.               flag3=1;                        //置標志位FLAG3為1

  325.               if(sfg&(ys>0))flag3=0;    //如果上閥在關位和倒計時大于0成立,清FLAG3為0

  326.               while(!sfg&(ys==0))              //如果過了設定延時,上關位還沒到進行死循環

  327.               {

  328.                      error();                        //顯示錯誤碼

  329.                      if(err)sgdw_led=~sgdw_led;         //上閥關到位LED燈閃爍

  330.                      sgq=0;                                            //關上閥電機停

  331.                      ys=0;                                          //延時賦0

  332.                      if(!sfg)sgq=1;                            //如果上閥沒在關的位置,關上閥電機啟動

  333.                      else sgq=0;                                   //或在關位置,停關上閥電機

  334.                      if(!xfg)xgq=1;                            //如果下閥沒在關的位置,下閥關電機啟動

  335.                      else xgq=0;                                   //或者關下閥電機停止

  336.               }

  337.        }      

  338.        if(xkq)                                      //下閥開電機啟動

  339.        {

  340.               flag3=1;                        //置標志位FLAG3為1

  341.               if(xfk&(ys>0))flag3=0;    //如果下閥在開位和倒計時大于0成立,清FLAG3為0

  342.               if(xfk&(ys>0))flag3=0;    //如果下閥在開位和倒計時大于0成立,清FLAG3為0

  343.               while(!xfk&(ys==0))              //如果過了設定延時,下開位還沒到進行死循環

  344.               {

  345.                      error();                        //顯示錯誤碼

  346.                      if(err)xkdw_led=~xkdw_led;         //下閥開到位LED燈閃爍

  347.                      xkq=0;                                            //關開下閥電機

  348.                      ys=0;                                          //延時賦0

  349.                      if(!sfg)sgq=1;                            //如果上閥沒在關的位置,關上閥電機啟動

  350.                      else sgq=0;                                   //或在關位置,停關上閥電機

  351.                      if(!xfg)xgq=1;                            //如果下閥沒在關的位置,下閥關電機啟動

  352.                      else xgq=0;                                   //或者關下閥電機停止

  353.               }

  354.        }      

  355.        if(xgq)                                      //下閥關電機啟動

  356.        {

  357.               flag3=1;                        //置標志位FLAG3為1

  358.               if(xfg&(ys>0))flag3=0;    //如果下閥在關位和倒計時大于0成立,清FLAG3為0

  359.               while(!xfg&(ys==0))              //如果過了設定延時,下關位還沒到進行死循環

  360.               {

  361.                      error();                        //顯示錯誤碼

  362.                      if(err)xgdw_led=~xgdw_led;         //下閥關到位LED燈閃爍

  363.                      xgq=0;                                            //下關閥電機停

  364.                      ys=0;                                          //延時賦0

  365.                      if(!sfg)sgq=1;                            //如果上閥沒在關的位置,關上閥電機啟動

  366.                      else sgq=0;                                   //或在關位置,停關上閥電機

  367.                      if(!xfg)xgq=1;                            //如果下閥沒在關的位置,下閥關電機啟動

  368.                      else xgq=0;                                   //或者關下閥電機停止

  369.               }

  370.        }

  371.       

  372.             





  373.        if(skq)                            //如果上閥開電機得電,

  374.        {

  375.               flg2=1;                     //置倒計時標志位為1

  376.               if(sfk)flg2=0;       //如果上閥在開位置,倒計時標志位清0

  377.               else                       //如果上閥沒在開的位置

  378.               {

  379.               if((fqwz==0)&sfg)         //倒計時數等于0時間到,上閥還在關的位置

  380.             

  381.                  {       sd1=1;

  382.                        while(sd1)                              //如果設定數為(內參)進行循環顯示錯誤碼

  383.                      {

  384.                             error();                       //錯誤函數

  385.                             if(err)sgdw_led=~sgdw_led;          //上關到位LED燈閃爍

  386.                             skq=0;                                             //關上閥開電機

  387.                      }

  388.               //       if(err)sgdw_led=~sgdw_led;                 //如果設定(內參)為0只上關到位LED閃顯示

  389.               }                    

  390.                  }

  391.        }

  392.           if(sgq)                             //如果上閥關電機得電,

  393.        {

  394.               flg2=1;                     //置倒計時標志位為1

  395.               if(sfg)flg2=0;              //如果上閥在關位置,倒計時標志位清0

  396.               else                            //如果上閥沒在關的位置

  397.                 if((fqwz==0)&sfk)       //倒計時數等于0時間到,上閥還在開的位置

  398.               {       sd1=1;

  399.                        while(sd1)                //如果設定數為(內參)進行循環顯示錯誤碼

  400.                      {

  401.                             error();              //錯誤函數

  402.                             if(err)skdw_led=~skdw_led;       //上開到位LED燈閃爍

  403.                             sgq=0;                                          //關上閥關電機

  404.                      }

  405.               //       if(err)skdw_led=~skdw_led;              //如果設定(內參)為0只上開到位LED閃顯示

  406.               }                    

  407.                

  408.        }

  409.           if(xkq)                             //如果下閥開電機得電,

  410.        {

  411.               flg2=1;                     //置倒計時標志位為1

  412.               if(xfk)flg2=0;                       //置倒計時標志位為1

  413.               else if((fqwz==0)&xfg)         //倒計時數等于0時間到,下閥還在關的位置

  414.               {       sd1=1;

  415.                        while(sd1)                       //如果設定數為(內參)進行循環顯示錯誤碼

  416.                      {

  417.                             error();                 //錯誤函數

  418.                             if(err)xgdw_led=~xgdw_led;       //下關到位LED燈閃爍

  419.                             xkq=0;                                            //關下閥關電機

  420.                      }                                                      

  421.        //              if(err)xgdw_led=~xgdw_led;              //如果設定(內參)為0只下關到位LED閃顯示

  422.               }                    

  423.                

  424.        }

  425.               if(xgq)                            //如果下閥關電機得電,

  426.        {

  427.               flg2=1;                        //置倒計時標志位為1

  428.               if(xfg)flg2=0;                     //置倒計時標志位為1

  429.               else if((fqwz==0)&xfk)       //倒計時數等于0時間到,下閥還在開的位置

  430.               {       sd1=1;

  431.                        while(sd1)                     //如果設定數為(內參)進行循環顯示錯誤碼

  432.                      {

  433.                             error();                //錯誤函數

  434.                             if(err)xkdw_led=~xkdw_led;         //下開到位LED燈閃爍

  435.                             skq=0;

  436.                      }                                                          //關下閥開電機

  437.        //              if(err)xkdw_led=~xkdw_led;                //如果設定(內參)為0只下開到位LED閃顯示

  438.               }                    

  439.                

  440.        }

  441. }

  442. /*************待機狀態*************/

  443. void jsdaiji()

  444. {

  445.     uchar a,b,c,d;

  446.             a=js_jg/10;                                   //計時間隔十位

  447.          b=js_jg%10;                                   //計時間隔個位

  448.          c=js_gz/10;

  449.          d=js_gz%10;

  450.   if(dj)                                           //如果變量DJ等于1

  451.       {                                                  

  452.           display(10,7);                     //顯示R字符            

  453.        display(a,2);                     //顯示間隔數字十位

  454.        display(b,1);                     //顯示間隔數字個位

  455.          }      

  456.   else                                                  //或者變量DJ等于0

  457.       {

  458.            display(11,7);

  459.                 display(c,2);                     //顯示工作時間0

  460.               display(d,1);                     //顯示工作時間

  461.          }                     

  462. }



  463. /**********計時工作運行函數***************/

  464. void jsigzuo()

  465. {

  466.   

  467.      uchar a,b,c,d;

  468.       

  469.        yx_led=0;                              //運行燈點亮

  470.        a=jsjg/10;                                   //計時間隔十位

  471.        b=jsjg%10;                                   //計時間隔個位

  472.        c=e/10;

  473.        d=e%10;

  474.        if(e<1)                         //計時工作倒計時小于1,計時間隔開始工作

  475.        {      

  476.                  flg=0;                    //計時工作減標志位置0

  477.          if(jsjg==0)                 //如果計時間隔數值倒計時為0

  478.            {

  479.                 e=js_gz;                        //把計時工作時間重新賦給E

  480.                 TR1=0;                        //關閉定時器1,停止計時間隔倒計時

  481.               }

  482.           if(dj)display(10,7);                     //每隔一秒閃一次顯示間隔字符

  483.        display(14,7);                       //點小數點

  484.           display(a,2);                            //顯示間隔時間

  485.           display(b,1);                            //顯示間隔時間



  486.           if(xfg&sfg)                                   //工作模式工作沒完成,上下閥都在關

  487.           {

  488.                         skq=0;                                   //開上閥電機停

  489.                      xkq=0;                                   //開下閥電機停

  490.                      sgq=0;                                   //關上閥電機停

  491.                      xgq=0;                                   //關下閥電機停

  492.           }

  493.           else

  494.            {

  495.                      switch(x)

  496.                 {

  497.                     case 0:                                   //狀態等于0執行上閥開動作

  498.                           {   if(sfk==0)skq=1;              //如果上閥沒要開位,上開閥電機得電啟動

  499.                            else

  500.                              {

  501.                                   skq=0;                            //或者上開閥電機停

  502.                                   flg1=1;                            //閥開到位倒計時標志位

  503.                                if(time==1)x=1;              //改狀態為1       //上閥開到位,等待時間到

  504.                                 }

  505.                              }       break;            

  506.                  case 1:                     //如果狀態是1執行上閥關

  507.                        {

  508.                               flg1=0;              //閥開到位倒計時標志位            

  509.                         sgq=1;                            //上閥關電機啟動

  510.                                  if(sfg==1)         //如果上閥關到位,上閥電機停

  511.                                 {

  512.                                    sgq=0;              //上閥關電機啟動

  513.                                    x=3;                  //改狀態為3

  514.                                 }

  515.                        } break;               

  516.                           case 3:                            //如果狀態為3執行下閥開電機啟動

  517.                

  518.                            {

  519.                                  if(xfk==0)xkq=1;         //如果下閥沒開到位下開電機得電

  520.                                  else

  521.                                        {

  522.                                    xkq=0;              //或下閥開到位,下閥開電機停

  523.                                       flg1=1;              //閥開到位倒計時標志位

  524.                                       if(time==1)x=4;       //等待時間到改狀態字為4

  525.                                     }

  526.                               }

  527.                                   break;

  528.                        case 4:                                   //狀態字為4執行下閥關

  529.                              {

  530.                                   flg1=0;                     //閥開到位倒計時標志位

  531.                                   if(xfk==1) xgq=1;         //如果狀態為4下閥關電機啟動

  532.                                if(xfg==1)                       // 如果下閥到關位置,

  533.                                    {

  534.                                        xgq=0;         //下閥關電機停

  535. //                                       z=0;

  536.                                        x=0;         //狀態字改為0

  537.                                 }

  538.                           }break;

  539.                 }

  540.               }

  541.     }

  542.        if(e>=1)                                   //計時工鐵倒計時小于等于1,開始工作

  543.      {                                       

  544.            

  545.               flg=1;                             //置計時工作減標志為1

  546.           if(dj)display(11,7);                     //每隔一秒閃一次顯示工作字符

  547.               display(14,7);

  548.               display(c,2);

  549.               display(d,1);                     //顯示工作時間

  550.               if(e==1)                            //如果計時工作變量倒計時等于1

  551.               {

  552.                  jsjg=js_jg;                 //重新給計時間隔賦值

  553.                  TR1=1;                        //開定時器1,啟動計時間隔減



  554.               }

  555.          switch(x)

  556.          {

  557.            case 0:                                   //狀態等于0執行上閥開動作

  558.                  {   if(sfk==0)skq=1;              //如果上閥沒要開位,上開閥電機得電啟動

  559.                else

  560.                   {

  561.                         skq=0;                            //或者上開閥電機停

  562.                         flg1=1;                            //閥開到位倒計時標志位

  563.                      if(time==1)x=1;              //改狀態為1       //上閥開到位,等待時間到

  564.                      }

  565.               }       break;            

  566.         case 1:                     //如果狀態是1執行上閥關

  567.             {

  568.                    flg1=0;              //閥開到位倒計時標志位            

  569.              sgq=1;                            //上閥關電機啟動

  570.                      if(sfg==1)         //如果上閥關到位,上閥電機停

  571.                        {

  572.                         sgq=0;              //上閥關電機啟動

  573.                         x=3;                  //改狀態為3

  574.                        }

  575.              } break;               

  576.                  case 3:                            //如果狀態為3執行下閥開電機啟動

  577.                

  578.                   {

  579.                         if(xfk==0)xkq=1;         //如果下閥沒開到位下開電機得電

  580.                         else

  581.                                {

  582.                             xkq=0;              //或下閥開到位,下閥開電機停

  583.                                flg1=1;              //閥開到位倒計時標志位

  584.                                if(time==1)x=4;       //等待時間到改狀態字為4

  585.                             }

  586.                        }

  587.                        break;

  588.               case 4:                                   //狀態字為4執行下閥關

  589.                   {

  590.                      flg1=0;                     //閥開到位倒計時標志位

  591.                      if(xfk==1) xgq=1;         //如果狀態為4下閥關電機啟動

  592.                    if(xfg==1)                       // 如果下閥到關位置,

  593.                             {

  594.                                        xgq=0;         //下閥關電機停

  595.               //                         z=0;

  596.                                        x=0;         //狀態字改為0

  597.                           }

  598.                   }break;

  599.            }

  600.        }               

  601. }



  602. /*****************計數待機模式********************/

  603. void jsudaiji()

  604. {            

  605.        uchar a,b;

  606.           a=jisu/10;

  607.           b=jisu%10;                           

  608.           display(16,7);                     //顯示倒計數字符            

  609.        display(a,2);                     //顯示倒計數字十位

  610.        display(b,1);                     //顯示倒計數數字個位

  611. }

  612. /****************計數模式運行函數*****************/

  613. void jsugzuo()

  614. {

  615.        uchar a,b,c,d;

  616.        a=jisu/10;

  617.        b=jisu%10;

  618.        yx_led=0;                                 //運行燈點亮

  619.        if(dj)display(16,7);              //顯示倒計數字符

  620.        display(c,2);                     //顯示倒計數字十位

  621.      display(d,1);                     //顯示倒計數數字個位



  622. }



  623. /************計時計數工作模式數值調整************/

  624. void jstz()

  625. {

  626.        uchar a,b,c,d,e,f;

  627.        if((ms==0)&(~qiting)&(seding==1))                 //如果工作在計時待機模式,調整間隔數值

  628.        {

  629.           a=js_jg/10;

  630.           b=js_jg%10;

  631.          

  632.           display(10,7);                         //顯示R字符            

  633.        if(dj)                                          //如果T0里計時變量DJ是1

  634.            {

  635.                  display(a,2);                     //顯示間隔數字十位

  636.            display(b,1);                     //顯示間隔數字個位

  637.               }

  638.         if(shang)js_jg++;                     //如果上按鍵按下,計時間隔變量加1

  639.            if(xia)js_jg--;                            //如果下按鍵按下,計時間隔變量減1

  640.            while(shang|xia)                     //檢測等待上,下按鍵抬起

  641.            {

  642.                  key_scan();                            //循環掃描按鍵

  643.            }                    

  644.        }

  645.        if((ms==0)&(~qiting)&(seding==2))  //如果工作在計時待機模式,調整計時工作數值

  646.        {

  647.           c=js_gz/10;

  648.           d=js_gz%10;

  649.           display(11,7);                     //顯示o字符            

  650.        if(dj)                                   //如果T0里計時變量DJ是1

  651.            {

  652.                  display(c,2);                     //顯示間隔數字十位

  653.            display(d,1);                     //顯示間隔數字個位

  654.               }

  655.       if(shang)js_gz++;                            //如果上按鍵按下,計時工作變量加1

  656.          if(xia)js_gz--;                            //如果下按鍵按下,計時工作變量減1

  657.          while(shang|xia)                            //等待上,下按鍵抬起

  658.            {

  659.                  key_scan();                            //循環掃按鍵

  660.            }

  661.               write();                    //把修改后數值寫入EEPROM

  662.        }

  663.        if((ms==1)&(~qiting)&(seding==1))//如果工作在計數待機模式,調整計數數值      

  664.        {

  665.            e=jisu/10;

  666.               f=jisu%10;

  667.               display(16,7);                     //顯示倒計數字符            

  668.         if(dj)

  669.               {

  670.                   display(e,2);                     //顯示倒計數字十位

  671.             display(f,1);                     //顯示倒計數數字個位

  672.               }

  673.               if(shang)jisu++;                     //如果上按鍵按下,計數變量加1

  674.            if(xia)jisu--;                            //如果下按鍵按下,計數變量減1

  675.            while(shang|xia)                     //檢測等待上,下按鍵抬起

  676.            {

  677.                  key_scan();                            //循環掃描按鍵

  678.            }

  679.                      write();                    //把修改后數值寫入EEPROM                                 

  680.        }                    

  681. }

  682. /*********定時器0初始化***********/

  683. void initime0()

  684. {

  685.     TMOD=0X11;             //開啟定時器0

  686.        TH0=(65536-45782)/256; //裝初值

  687.        TL0=(65536-45782)%256; //裝初值

  688.        TH1=(65536-45782)/256;

  689.        TH0=(65536-45782)%256;

  690.        EA=1;                               //開總中斷

  691.        ET0=1;                               //開定時器0中斷

  692.        ET1=1;

  693.        TR0=1;

  694.        TR1=1;                               //啟動定時器0

  695.        time=time2;            //閥門開到位等待時間賦值

  696.        ys=ys1;                //閥門電機得電多久沒到位時間賦值

  697. }

  698. /****************計時,計數變量賦值*******************/

  699. void fz()

  700. {

  701.       

  702. }



  703. void main()

  704. {      

  705. //   uchar d ,c;                            //定義變量

  706.          initime0();                            //定時器初始化

  707.        initia();                            //開機初始化

  708.          while(1)                                            //大循環

  709.        {        

  710.          

  711.                 fmwz();                                     //閥門位置

  712.           fled();                                     //閥門位置燈

  713.                 key_scan();                               //鍵盤掃描

  714.                 if(cbz&rest)ISP_CONTR=0x20;   //如果有錯誤復位按鍵按下

  715.        //   if((sfk&sfg)||(xfk&xfg))            //如果閥門位置有邏輯錯誤

  716.              scan_error();                               //檢測閥位置邏輯錯誤

  717.     //       else

  718.       

  719.            {      

  720.                     jstz();                                //計時數值調整函數

  721.                   if((qiting==0)&(ms==0)&(seding==0))       //啟停按鈕,模式,設定都是0,執行待機程序

  722.                      {

  723.                         jsdaiji();                                            //計時待機

  724.                         jsjg=js_jg;                                          //把設定的好的計時間隔時間傳遞給計時間隔變量

  725.                         e=js_gz;

  726.                      }

  727.                   if(qiting&(ms==0))          //啟停按鈕和計時模式都是1,執行計時程序

  728.                      {

  729.                         jsigzuo();                   //計時工作函數

  730.             

  731.                      }

  732.                      if((qiting==0)&(ms==1))jsudaiji();         //如果啟停按鈕和計數模式都是1,執行計數程序

  733.                   if(qiting&(ms==1)) jsugzuo();                //計數工作函數

  734.            }

  735.        }

  736. }

  737.    /**********定時器0中斷函數***************/

  738. void time0()interrupt 1

  739. {

  740.     static a,er;                                   //定義靜態變量A

  741.        TH0=(65536-45872)/256;              //重新裝初值

  742.        TL0=(65536-45872)%256;

  743.        a++;                                          //變量A加1

  744.        er++;



  745.        if(er>=30)

  746.        {

  747.            er=0;

  748.            err=~err;              //錯誤顯示如果ER變量中斷大于等于30次

  749.        }

  750.        if(a>=20)                                   //如果計滿大于等于20次次      

  751.        {

  752.               a=0;                                   //A清0

  753.               if(flg1)time--;                     //閥門開到位等待標志位是1,倒計時減1

  754.               else time=time2;        //如果閥門開到位標志位是0,重新把設定值賦給

  755.               if(flag3)ys--;          //如果閥電機得電標志位,幾秒沒到是1延時變量值減1

  756.               else ys==ys1 ;            //如果是0重新賦值

  757.               dj=~dj;                                   //變量DJ取反

  758.               if(flg)                                   //如果計時工作變量標志是1

  759.               {

  760.                      e--;                            //計時工作變量E減1

  761.               }

  762.               if(flg2)fqwz--;

  763.               else fqwz=fqwz2;                                 

  764.        }

  765. }

  766. /**********定時器1中斷函數****************/

  767. void time1()interrupt 3

  768. {

  769.     static b;

  770.        TH1=(65536-45782)/256;

  771.        TL1=(65536-45782)%256;

  772.        b++;                                     //中斷一次B增加1

  773.        if(b>=20)                              //如果中斷20次就是一秒

  774.        {

  775.               b=0;                              //變量賦0

  776.               jsjg--;                       //計時間隔變量減1

  777.                     

  778.        }

  779. }
復制代碼



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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
桃色av一区二区| 91一区二区三区在线观看| 97蜜桃久久| 天天色天天爽| 国产v片在线观看| 深爱五月激情网| 成人在线播放网址| 亚洲sss综合天堂久久| 精品亚洲一区二区| 亚洲mv在线观看| 国产成人综合自拍| 欧美精品黄色| 久久精品国产亚洲blacked| 18视频在线观看网站| 妞干网在线观看| 色偷偷av男人的天堂| 国产成人无码精品亚洲| 朝桐光av一区二区三区| 免费在线a视频| 蜜桃av色综合| 国产精品日韩专区| 久久精品成人动漫| 日韩欧美在线不卡| 欧美日韩中文字幕综合视频| 久久这里都是精品| 久久精品久久久精品美女| 97视频精品| 嗯用力啊快一点好舒服小柔久久| 日本色护士高潮视频在线观看| 性疯狂做受xxxx高清视频| 韩国视频一区| 丁香六月天婷婷| 秋霞精品一区二区三区| 伊人在线视频观看| 超碰97人人干| 国产大学生av| 熟女少妇精品一区二区| 妞干网视频在线观看| 日韩高清三级| 国产日韩久久| 国产精品专区一| 高清欧美性猛交xxxx黑人猛交| 亚洲欧美视频在线| 日韩精品中文字幕一区二区三区 | 亚洲男人第一网站| 欧美日本韩国一区二区三区视频| 亚洲成人激情av| 亚洲欧美在线另类| 国产视频911| a级高清视频欧美日韩| 国产乱一区二区| 免费xxxx性欧美18vr| 一本色道久久综合亚洲精品不| 99re久久最新地址获取| 热久久天天拍国产| 日韩久久精品| 色狮一区二区三区四区视频| 欧美日韩在线二区| 欧美日韩大片免费观看| 精品三级在线观看视频| 成人资源在线| 欧美18xxxx| 四虎884aa成人精品最新| 天天草夜夜草| 福利视频网站| eeuss鲁片一区| 二个人看的毛片| 超级污的网站| 中文字幕97| 少妇精品放荡导航| 一级在线观看| 国产小视频在线| 成黄免费在线| a免费在线观看| 男女羞羞视频在线观看| 91九色国产在线播放| 高清视频在线观看三级| 成人免费网站视频| 欧美在线se| 亚洲国产精品免费视频| 美女视频亚洲色图| 国产探花一区二区| 亚洲理论电影网| 亚洲黄页一区| 麻豆国产一区二区| 菠萝蜜视频在线观看一区| 久久久久久久久一| 国产成人澳门| 亚洲伊人春色| 欧美成熟视频| 日本一不卡视频| 国产999精品久久| 国产亚洲一本大道中文在线| 亚洲女同女同女同女同女同69| 亚洲电影在线播放| 欧美视频中文一区二区三区在线观看| 9191成人精品久久| 日韩精品免费在线视频| 精品国模在线视频| 国产97色在线|日韩| 成人高清在线观看| 一区二区不卡在线观看| 国产伦精品一区二区三区四区视频_| 岳毛多又紧做起爽| 亚洲麻豆一区二区三区| 一起操在线播放| 波多野结衣激情视频| 成人毛片在线免费观看| 国产成人禁片免费观看视频| eeuss在线播放| 在线观看黄色av| 91精品美女| 精品国产一区一区二区三亚瑟| 中文国产一区| 97久久精品人人爽人人爽蜜臀 | 国产成人在线亚洲欧美| 国产主播一区二区三区四区| 日韩成人午夜影院| 日本一本在线视频| avove在线播放| 99久久精品国产成人一区二区| 久热中文字幕在线精品首页| 人成网站免费观看| 麻豆网站在线| 欧美性suv| 日韩电影在线视频| 久久99国产精品免费| 亚洲视频你懂的| 欧美一区二区不卡视频| 欧美精品久久久久久久免费观看 | 日韩精品国产一区二区| 香蕉视频黄色片| 黄色漫画在线免费观看| 亚洲资源一区| 久久99精品久久久久久欧洲站| 亚洲伦伦在线| 日本一区二区三区高清不卡| 欧美日韩高清一区| 久久久欧美精品| 久久亚裔精品欧美| 久久婷婷综合色| 久久久久久久久97| 中文字幕在线观看av| 在线观看理论片| 成人全视频免费观看在线看| 国户精品久久久久久久久久久不卡| 成人在线综合网站| 欧美在线不卡一区| 久久久亚洲成人| 欧美一级二级在线观看| 久久精品国产亚洲精品2020| 国产精品久久亚洲| 密臀av一区二区三区| 免费在线观看国产精品| 免费中文字幕| 你懂的好爽在线观看| 999久久久久久久久6666| 日日夜夜精品视频天天综合网| 国产精品第四页| 日韩精品视频免费在线观看| 99re在线观看| www.se五月| 在线观看国产区| 成人免费淫片95视频观看网站| 久久久男人天堂| 亚洲欧美网站在线观看| 国产精品无圣光一区二区| 亚洲第一页在线| 亚洲综合在线做性| 亚洲欧美一区二区三区不卡| 亚洲图片小说视频| 日本aⅴ中文| 国产一区 二区| 久久99精品国产麻豆婷婷| 欧美色成人综合| 国产盗摄xxxx视频xxx69| 777777av| av大片免费观看| h视频免费网站| 亚洲成av在线| 九九精品视频在线看| 欧美精品1区2区3区| 国产视频观看一区| 91精品999| 国产丝袜在线视频| 青青久草在线| 精品久久精品| 国产精品福利影院| 欧美另类交人妖| 国产3p露脸普通话对白| 精品人妻一区二区三区免费看| 超碰成人福利网| 亚洲精品午夜| 91蜜桃在线免费视频| 亚洲性生活视频| 在线码字幕一区| www日韩精品| 国产三级香港三韩国三级| www.久久东京| 国产喂奶挤奶一区二区三区| 日韩日本欧美亚洲| 阿v天堂2018| 亚洲精品无码久久久久| 日本一本草久在线中文| 亚洲国产精品成人| 粉嫩av一区二区三区免费野| 国产精品自拍网| 88av在线播放| 成人亚洲欧美日韩在线观看| 亚洲成人va| av日韩在线网站| 久久视频中文字幕| 99蜜桃臀久久久欧美精品网站| 国产理论片在线观看| 日本在线免费中文字幕| 欧美资源在线| 亚洲国产成人精品久久| 五月天av影院| 一区二区三区麻豆| 国产精品视频一区二区久久| 激情久久中文字幕| 日韩一区二区在线观看视频| 亚洲va久久久噜噜噜久久狠狠| 色婷婷在线观看视频| 天天av综合网| 亚洲自拍另类| 日韩av在线免费播放| 51xx午夜影福利| 一级做a爰片久久毛片16| 91麻豆国产福利在线观看宅福利| 蜜臀av一区二区三区| 亚洲图片在线综合| 日本中文字幕片| 国语对白中文字幕| 9999精品视频| 亚洲激情图片一区| 97在线电影| 久久久久噜噜噜亚洲熟女综合| 亚洲人性生活视频| 久久精品一区| 亚洲视频在线观看网站| 亚洲精品高清无码视频| 欧洲精品乱码久久久久蜜桃| 草莓视频一区二区三区| 亚洲成人综合视频| 欧美激情一区二区三区在线视频| 久久99精品波多结衣一区| 毛片在线视频| 成人成人成人在线视频| 97在线视频免费观看| 国产精品815.cc红桃| 国产黄色av免费看| 亚洲大胆av| 亚洲欧洲在线播放| wwwwwxxxx日本| www怡红院| 午夜久久福利| 国产午夜精品久久久| 日本人69视频| www.尤物.com| 亚洲午夜黄色| 亚洲欧美日韩天堂一区二区| 老司机午夜性大片| www.麻豆av.com| 亚洲人成免费| 久久久国产成人精品| 波多野结衣办公室33分钟| 在线看的av| 精品一区二区日韩| 欧美在线影院在线视频| 538任你躁在线精品视频网站| 成年人在线观看| 成人免费毛片高清视频| 国产精品普通话| 日韩av一二三区| 久久男人天堂| 一区二区三区四区乱视频| 日本欧美色综合网站免费| 欧美 日韩 综合| 偷拍一区二区| 日韩成人高清在线| 91av免费观看| 亚洲女人天堂| 99re在线视频这里只有精品| 成人做爰66片免费看网站| 91久久精品国产91性色69 | 国产视频911| 欧美日韩精品一区| 区日韩二区欧美三区| 最新中文乱码字字幕在线| 成人在线观看免费播放| 婷婷久久综合九色综合绿巨人| 日本久久高清视频| 欧美乱大交xxxxx在线观看| 99久久久久| 精品国产欧美一区二区三区成人| 中文字幕第二区| 欧美v亚洲v| 疯狂做受xxxx欧美肥白少妇| 无码人妻少妇伦在线电影| 比比资源先锋| 精品在线观看视频| 亚洲一区二区三区四区在线播放 | www.555国产精品免费| 欧美成人综合在线| 国产日韩成人精品| 午夜精品亚洲一区二区三区嫩草 | 久久久久久久久成人| 4438x亚洲最大成人网| 日本女人黄色片| 番号在线播放| 亚洲人成网站精品片在线观看| 欧美日韩中文字幕在线播放| 奇米四色7777| 成人a区在线观看| 明星裸体视频一区二区| 欧美在线中文字幕高清的| 亚洲国产婷婷| 国产精品视频白浆免费视频| 亚洲av无码一区二区三区性色| 色狮一区二区三区四区视频| 国内精品伊人久久| 亚洲视频在线观看一区二区 | 在线观看h网| 欧美性高跟鞋xxxxhd| 日韩av一卡二卡三卡| 成人性生交大片免费看午夜| 亚洲最色的网站| 亚洲精品一二三四五区| 在线看a视频| 亚洲欧洲综合另类在线| 成人在线观看a| 黄色av网站在线免费观看| 一区二区三区精密机械公司| 成人小视频在线看| 青梅竹马是消防员在线| 亚洲黄色在线视频| av亚洲天堂网| 99在线视频观看| 欧美日韩成人一区| 日韩影视一区二区三区| 国产成人精品一区二区三区在线 | 九九视频精品在线观看| 国产综合在线观看| 天天操天天综合网| 精品人妻二区中文字幕| a国产在线视频| 欧美成人aa大片| caoporn91| 美国成人xxx| 97在线免费观看| 五月婷在线视频| 免费的成人av| 亚洲蜜桃在线| 一二三区高清| 亚洲影视资源网| 亚洲 自拍 另类 欧美 丝袜| 99riav视频在线观看| 精品电影一区二区| 国产无套粉嫩白浆内谢| 伊人久久大香线蕉av不卡| 欧美亚洲国产日韩2020| 亚州av在线播放| 激情都市一区二区| 国产精品无码电影在线观看| 精品乱码一区二区三四区视频| 日本高清不卡一区| 最新日韩免费视频| 精品国产一区二区三区不卡蜜臂 | jizz日本免费| 国产一区二区三区精品在线观看| 久久亚洲电影天堂| 日本美女一级视频| 国产一区二区在线电影| 三上悠亚久久精品| 日本免费中文字幕在线| 日韩欧美久久久| 国产精品人人人人| 伊人久久成人| 日产国产精品精品a∨| jk破处视频在线| 在线观看不卡一区| 久久婷婷国产麻豆91| 91日韩视频| 久久99精品久久久久久水蜜桃 | 亚洲欧洲视频在线观看| 国产精品影视天天线| 亚洲人成色77777| 午夜裸体女人视频网站在线观看| 中文字幕视频一区二区在线有码| www.亚洲欧美| 国产精品18久久久久久久久久久久 | 亚洲无亚洲人成网站77777| 国产又黄又大又爽| 美女网站在线免费欧美精品| 国产欧美123| 国产精品yjizz视频网| 欧美成人免费va影院高清| 欧美最猛黑人xxxx| 综合亚洲深深色噜噜狠狠网站|