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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機智能窗戶系統溫度程序設計 濕度 亮度 紅外報警定時煙霧全功能

  [復制鏈接]
跳轉到指定樓層
樓主
ID:329781 發(fā)表于 2020-1-31 21:36 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
1、單片機的智能窗戶采用51單片機+LCD1602液晶顯示+紅外探頭+DHT11+MQ2+步進電機+蜂鳴器設計而成。
2、液晶實時顯示目前的狀態(tài),包括溫度、濕度、煙霧濃度、光線強度、時間等信息。
3、智能窗戶可以根據外接光線的強弱來進行自動開關窗戶,光線強弱的上下限可以按鍵調節(jié)。
4、不僅具有自動控制功能,還可以手動開關窗戶。
5、在開窗前提下,如果紅外探頭檢測到人體就會發(fā)出報警并且關閉窗戶。
6、可以通過遙控器來進行開關窗戶。

電路原理圖如下:


一、實物介紹


仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


二、功能介紹
1、單片機的智能窗戶采用51單片機+LCD1602液晶顯示+紅外探頭+DHT11+MQ2+步進電機+蜂鳴器設計而成。
2、液晶實時顯示目前的狀態(tài),包括溫度、濕度、煙霧濃度、光線強度、時間等信息。
3、智能窗戶可以根據外接光線的強弱來進行自動開關窗戶,光線強弱的上下限可以按鍵調節(jié)。
4、不僅具有自動控制功能,還可以手動開關窗戶。
5、在開窗前提下,如果紅外探頭檢測到人體就會發(fā)出報警并且關閉窗戶。
6、可以通過遙控器來進行開關窗戶。


三、操作步驟
1、上電后窗戶默認人關閉狀態(tài),步進電機轉動。同時液晶上顯示如下:   
Window         close
Please            wait....
2、等步進電機停止后,屏幕上開始顯示數據,具體如下:
光照強度                    時間
煙霧燃氣值        溫度        濕度
3、按鍵功能如下:
設置        加        減/取消報警        開窗        關窗
4、按下設置按鍵進入設置數據具體如下:(數字代表按下“設置鍵”次數)        按下“加”“減”按鍵進行修改
①:設置當前時間,顯示如下
SEtime        12:37:08   
Please         input...
②:設置當前時間“時”
③:設置當前時間“分”
④:設置當前時間“秒”
⑥:設置關窗時間,顯示如下
ONtime        12:31:10
Please        input...
⑦~⑨:設置關窗時間“時”“分”“秒”
10:設置開窗時間
14:設置光照強度低位報警值(關窗)
15:設置光照強度高位報警值(開窗)
16:設置濕度報警值(高于濕度值開窗)
17:設置溫度報警值(高于溫度開窗)
18:設置煙霧報警值(高于此值蜂鳴器報警,打開風扇)
5、當在開窗狀態(tài)下,紅外光電開關檢測到有人,啟動報警關閉窗戶。
6、按下紅外遙控上快進和后退鍵可打開或關閉窗戶。


單片機源程序如下:
  1.                                                                                                                                                                                                                                                             /***************   writer:shopping.w   ******************/
  2. #include <reg52.h>//庫函數
  3. #include <dht11.h> //庫函數//如果 實物 打開
  4. #include <adc0832.h> //AD轉換庫函數

  5. #define uchar unsigned char//宏定意
  6. #define uint  unsigned int//宏定意
  7. #define ulong unsigned long        //宏定意

  8. sbit rs=P2^0;//LCD 1602 引腳定意               
  9. sbit rd=P2^1;//LCD 1602 引腳定意               
  10. sbit lcden=P2^2;//LCD 1602 引腳定意

  11. sbit menu=P2^5;        //主功能鍵        
  12. sbit add=P2^4;//加鍵               
  13. sbit dec=P2^3;// 減鍵
  14. sbit open=P2^6;// 手動 開
  15. sbit close=P2^7;// 手動 關        
  16. sbit IR=P3^5; //紅外感 應
  17. sbit BEEP=P3^1;// 報警



  18. #define MOTORSTEP P1                         //宏定義,定義P1口為步進電機驅動端口

  19. uchar  dsflj,kval,lofl,menusw,con,befl,zhenfl,fanfl,brigfl;// 各種變量標記 正返轉標記
  20. uint sudu,dwbrigfl,humfl;  //電機速度 //光度下限/濕度標記
  21. uchar count0,second,zhenzhuan,fanzhuan,timeflg,opensw,closesw,keysw;//時鐘變量 正反轉 變量        
  22. uint adc0,adc1;
  23. uint upbrig,dwbrig,kwbrig,uphum,uptemp,upsmo; // 下限 亮度 上限濕度// 上限溫度

  24. uint hour,minit,secon,DSdat,VAldat ,time;//時鐘變量

  25. uint ONhour,ONminit,ONsecon; // 開窗時間變量
  26. uint OFhour,OFminit,OFsecon; // 關窗時間變量
  27. uchar   U8T_data_H,U8RH_data_H;


  28. #define Imax 14000    //此處為晶振為11.0592時的取值,
  29. #define Imin 8000    //如用其它頻率的晶振時,沒
  30. #define Inum1 1450    //要改變相應的取值。
  31. #define Inum2 700
  32. #define Inum3 3000

  33. uchar f=0;
  34. uchar Im[4]={0x00,0x00,0x00,0x00}; // 遙控碼存儲空間
  35. uchar show[2]={0,0};  // 變量申明
  36. ulong m,Tc;          // 變量申明
  37. uchar IrOK;                // 變量申明



  38. void delay(uint z);// 開窗時間變量

  39. void write_rvalue(); // 顯示函數
  40. //**************以下是各種字幕提示語數組************************
  41. uchar code logo1[]= "Welcome to use  ";
  42. uchar code logo2[]="window   system  ";
  43. uchar code logo3[]="S=253T=85oCU=85%";
  44. uchar code logo4[]="Br=     12:00:00 ";
  45. uchar code logo5[]="window open      ";
  46. uchar code logo6[]="window close     ";
  47. uchar code logo7[]="GWbrig=    LUX  ";
  48. uchar code logo8[]="UP-Hum=    %    ";
  49. uchar code logo9[]="Please input...  ";
  50. uchar code logo10[]="Please wait...  ";
  51. uchar code logo11[]="UP-TEM=    oC   ";
  52. uchar code logo12[]="SEtime  12:00:00";
  53. uchar code logo13[]="ONtime  12:00:00";
  54. uchar code logo14[]="OFtime  12:00:00";
  55. uchar code logo15[]="UP-SMO=         ";
  56. uchar code logo16[]="KWbrig=    LUX  ";



  57. void delaymoto()                                         //步進電機每一步間延遲函數
  58. {         
  59.         uint y=sudu;
  60.         while(y--);
  61. }



  62. uchar code FFW[]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //步進電機驅動值數組

  63. uchar code REV[]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //步進電機驅動值數組



  64. xdata num1 [4] =    {0x00,0x00,0x00,0x00,};                                
  65. xdata num2 [4] =    {0x00,0x00,0x00,0x00,};                        
  66. xdata num3 [4] =    {0x00,0x00,0x00,0x00,};                  
  67. xdata num4 [4] =    {0x00,0x00,0x00,0x00,};        // AD轉換變量組組
  68. xdata num5 [4] =    {0x00,0x00,0x00,0x00,};        // AD轉換變量組組




  69. void delaylog(uint z)//延時函數
  70. {
  71.         uint x,y;
  72.         for(x=z;x>0;x--)
  73.                 for(y=500;y>0;y--);
  74. }




  75. void delay(uint z)//延時函數
  76. {
  77.         uint x,y;
  78.         for(x=z;x>0;x--)
  79.                 for(y=10;y>0;y--);
  80. }






  81.   void SETP_MOTOR_FFW()         //反轉
  82. {
  83.                     uint i=0;

  84.                 for(i=0;i<8;i++) //8步一個循環(huán)
  85.                         {
  86.                                 MOTORSTEP=FFW[i]; //取值賦給P1驅動口
  87.                                 delaymoto();
  88.                         }

  89. }

  90. void SETP_MOTOR_REV()  //正轉
  91. {


  92.     uint i=0;

  93.                 for(i=0;i<8;i++) //8步一個循環(huán)
  94.                         {
  95.                                 MOTORSTEP=REV[i]; //取值賦給P1驅動口
  96.                                 delaymoto();
  97.                         }

  98. }

  99. void write_com(uchar com) //LCD 1602 寫指令
  100. {
  101.         rs=0;
  102.         lcden=0;
  103.         P0=com;
  104.         delay(5);
  105.         lcden=1;
  106.         delay(5);
  107.         lcden=0;        
  108. }

  109. void write_date(uchar date)//LCD 1602 寫數據
  110. {
  111.         rs=1;
  112.         lcden=0;
  113.         P0=date;
  114.         delay(5);
  115.         lcden=1;
  116.         delay(5);
  117.         lcden=0;        
  118. }

  119. void init1602()//LCD 1602 初始化
  120. {
  121.         uchar num;
  122.         rd=0;
  123.         lcden=0;
  124.         write_com(0x38);
  125.         write_com(0x0c);
  126.         write_com(0x06);
  127.         write_com(0x01);
  128.         write_com(0x80);



  129.          
  130.    
  131.         for(num=0;num<16;num++)
  132.                 {
  133.                         write_date(logo1[num]);//開機字幕
  134.                         delay(2);
  135.                 }

  136.         
  137.    

  138.         write_com(0x80+0x40);
  139.         for(num=0;num<16;num++)
  140.                 {
  141.                         write_date(logo2[num]);        //開機字幕
  142.                         delay(2);
  143.                 }

  144.                 delaylog(200);
  145. //***************************************************

  146.                   write_com(0x80);

  147.                           for(num=0;num<16;num++)        //開機字幕
  148.                 {
  149.                         write_date(logo6[num]);
  150.                         delay(2);
  151.                 }

  152.         
  153.    

  154.         write_com(0x80+0x40);
  155.         for(num=0;num<16;num++)
  156.                 {
  157.                         write_date(logo10[num]);//開機字幕
  158.                         delay(2);
  159.                 }


  160. }













  161. void write_sfm() // 拆分 個位 十位顯示

  162. {        uchar shi ,ge;

  163.         shi=DSdat/10;
  164.         ge=DSdat%10;
  165.         
  166.         write_date(0x30+shi);
  167.         write_date(0x30+ge);        


  168. }







  169. void keyscn()//按鍵掃描函數
  170. {
  171.   uchar num; //局部變量

  172. if(keysw==1)
  173. {
  174. if(opensw==1)
  175. {
  176. if(open==0)         // 手動開窗
  177.         {
  178.                     write_com(0x80);

  179.                           for(num=0;num<16;num++)//顯示提示語
  180.                 {
  181.                         write_date(logo5[num]);
  182.                         delay(2);
  183.                 }


  184.                   write_com(0x80+0x40);

  185.                           for(num=0;num<16;num++)//顯示提示語
  186.                 {
  187.                         write_date(logo10[num]);
  188.                         delay(2);
  189.                 }



  190.                  
  191.                  
  192.                  closesw=1;        // 已打開標記
  193.              delay(10);
  194.                 if(open==0)
  195.                 {
  196.                 while(!open);
  197.                 zhenzhuan=1;// 正轉 開啟
  198.                 fanzhuan=0;         // 返轉關閉
  199.                 second=0;// 秒清零 步進電機 會停
  200.                 keysw=0;
  201.                 menusw=0;
  202.                  }
  203.                
  204.                 }
  205.          
  206. }

  207.   if(closesw==1)//如果窗戶是打開的
  208.   {
  209. if(close==0)//按下手動開
  210.         {

  211.            write_com(0x80);

  212.                           for(num=0;num<16;num++)//顯示提示語
  213.                 {
  214.                         write_date(logo6[num]);
  215.                         delay(2);
  216.                 }

  217.                            write_com(0x80+0x40);

  218.                           for(num=0;num<16;num++)
  219.                 {
  220.                         write_date(logo10[num]);//顯示提示語
  221.                         delay(2);
  222.                 }


  223.                  
  224.              delay(10);
  225.                 if(close==0)
  226.                 {
  227.                 while(!close);
  228.                 zhenzhuan=0;  //正轉關
  229.                 fanzhuan=1;        // 反轉 開啟
  230.                 second=0;          // 定時清零
  231.                 keysw=0; // 標記請零
  232.                  menusw=0;
  233.                  }
  234.                
  235.                 }

  236. }

  237. }


  238. if(menusw==1)//如果窗戶運行完畢
  239. {
  240.   if(menu==0)// 如果主功能鍵按下
  241.         {

  242.                 lofl=1;        //字幕載入

  243.                

  244.              delay(10);        //延時消抖動
  245.                 if(menu==0)
  246.                 {
  247.                 while(!menu);//松手檢測
  248.                  dsflj=0;// 關主頁顯示
  249.                  kval++; // 按鍵變量++
  250.                  keysw=0;//不允許手動 開窗  和關窗
  251.                  }
  252.                  }

  253.                  

  254. //*************************************************************************8

  255.   if(kval==1)  // 如果變量==1  進入時間設定

  256. {
  257.   
  258.   if(lofl==1)
  259.   {
  260. write_com(0x80);

  261.                           for(num=0;num<16;num++)
  262.                 {
  263.                         write_date(logo12[num]);//顯示提示語
  264.                         delay(2);

  265.                
  266.                 }



  267.            write_com(0x80+0x40);

  268.                           for(num=0;num<16;num++)        //顯示提示語
  269.                 {
  270.                         write_date(logo9[num]);
  271.                         delay(2);

  272.                         lofl=0;
  273.                 }




  274.                    DSdat=hour;
  275.         write_com(0x80+8);        // 刷新 設定時間
  276.                 write_sfm();


  277.       
  278.                 DSdat=minit;
  279.             write_com(0x80+11);// 刷新 設定時間
  280.             write_sfm();

  281.                  DSdat=secon;
  282.                 write_com(0x80+14);        // 刷新 設定時間
  283.                 write_sfm();



  284. }


  285. }



  286. //uint hour,minit,secon;

  287.    if(kval==2)//如果變量=2 進入小時設定

  288. {DSdat=hour;          // 刷新顯示小時
  289.   
  290.   
  291.   write_com(0x40+0x40+8);// 顯示坐標
  292.   write_com(0x0e);
  293.                                            // 開關標

  294.   
  295. if(add==0)// 如果加鍵按下

  296. {

  297. while(!add); // 松手檢測


  298. hour++;        //小時++

  299. DSdat=hour; //送顯示
  300. write_sfm(); // 拆分
  301. if(hour==24)  //
  302. {hour=0;}



  303. }





  304. if( dec==0) // 如果減鍵按下

  305. {

  306. while(! dec);// 松手檢測


  307. hour--;         //小時--
  308. DSdat=hour;
  309. write_sfm(); //拆分限位
  310. if(hour==0)//限位
  311. {hour=23;}




  312. }

  313. }







  314. //**************************以下時 分鐘設 定 秒鐘設定 和上面小時一樣
  315. //只是就量不一樣 不作注釋*******************************************
  316. //********************************************************************

  317.    if(kval==3)

  318. {


  319. DSdat=minit;

  320.   write_com(0x40+0x40+11);
  321.   write_com(0x0e);


  322.   
  323. if(add==0)

  324. {

  325. while(!add);


  326. minit++;

  327. DSdat=minit;
  328. write_sfm();
  329. if(minit==60)
  330. {minit=0;}



  331. }





  332. if( dec==0)

  333. {

  334. while(! dec);


  335. minit--;

  336. DSdat=minit;
  337. write_sfm();
  338. if(minit==0)
  339. {minit=59;}



  340. }

  341. }














  342.    if(kval==4)

  343. {


  344. DSdat=secon;
  345.   
  346.   write_com(0x40+0x40+14);
  347.   write_com(0x0e);


  348.   
  349. if(add==0)

  350. {

  351. while(!add);


  352. secon++;

  353. DSdat=secon;
  354. write_sfm();
  355. if(secon==60)
  356. {secon=0;}



  357. }





  358. if( dec==0)

  359. {

  360. while(! dec);


  361. secon--;

  362. DSdat=secon;
  363. write_sfm();
  364. if(secon==0)
  365. {secon=59;}



  366. }

  367. }


  368. //uint ONhour,ONminit,ONsecon;
  369. //uint OFhour,OFminit,OFsecon;



  370. //**************************以下 開窗時  小時 分鐘設 定 秒鐘設定 和上面小時一樣
  371. //只是就量不一樣 不作注釋*******************************************
  372. //**************

  373. //*************************************設定開時****************************************

  374.    if(kval==5)

  375. {
  376.   
  377.    if(lofl==1)
  378.   {
  379. write_com(0x80);

  380.                           for(num=0;num<16;num++)
  381.                 {
  382.                         write_date(logo13[num]);
  383.                         delay(2);

  384.                
  385.                 }



  386.            write_com(0x80+0x40);

  387.                           for(num=0;num<16;num++)
  388.                 {
  389.                         write_date(logo9[num]);
  390.                         delay(2);

  391.                
  392.                 }



  393.                 DSdat=ONhour;
  394.         write_com(0x80+8);
  395.                 write_sfm();


  396.                   DSdat=ONminit;
  397.             write_com(0x80+11);
  398.             write_sfm();


  399.        DSdat=ONsecon;
  400.                 write_com(0x80+14);
  401.                 write_sfm();

  402.         
  403.                


  404.                   lofl=0;





  405. }





  406. }




  407.   if(kval==6)

  408. {
  409.   
  410.   write_com(0x80+0x08);
  411.   write_com(0x0e);


  412.   
  413. if(add==0)

  414. {

  415. while(!add);


  416. ONhour++;

  417. DSdat=ONhour;
  418. write_sfm();
  419. if(ONhour==24)
  420. {ONhour=0;}



  421. }





  422. if( dec==0)

  423. {

  424. while(! dec);


  425. ONhour--;

  426. DSdat=ONhour;
  427. write_sfm();
  428. if(ONhour==0)
  429. {ONhour=23;}



  430. }

  431. }






  432.    if(kval==7)

  433. {
  434.   
  435.   write_com(0x40+0x40+11);
  436.   write_com(0x0e);


  437.   
  438. if(add==0)

  439. {

  440. while(!add);


  441. ONminit++;

  442. DSdat=ONminit;
  443. write_sfm();
  444. if(ONminit==60)
  445. {ONminit=0;}



  446. }





  447. if( dec==0)

  448. {

  449. while(! dec);


  450. ONminit--;

  451. DSdat=ONminit;
  452. write_sfm();
  453. if(ONminit==0)
  454. {ONminit=59;}



  455. }

  456. }






  457.   if(kval==8)

  458. {
  459.   
  460.   write_com(0x40+0x40+14);
  461.   write_com(0x0e);


  462.   
  463. if(add==0)

  464. {

  465. while(!add);


  466. ONsecon++;

  467. DSdat=ONsecon;
  468. write_sfm();
  469. if(ONsecon==60)
  470. {ONsecon=0;}



  471. }





  472. if( dec==0)

  473. {

  474. while(! dec);


  475. ONsecon--;

  476. DSdat=ONsecon;
  477. write_sfm();
  478. if(ONsecon==0)
  479. {ONsecon=59;}



  480. }

  481. }


  482. //**************************以下 關窗時  小時 分鐘設 定 秒鐘設定 和上面小時一樣
  483. //只是就量不一樣 不作注釋*******************************************
  484. //**************


  485. //**************************************設定關時間**************************************
  486.         
  487.         

  488.    if(kval==9)

  489. {
  490.   
  491.    if(lofl==1)
  492.   {
  493. write_com(0x80);

  494.                           for(num=0;num<16;num++)
  495.                 {
  496.                         write_date(logo14[num]);
  497.                         delay(2);

  498.                
  499.                 }



  500.            write_com(0x80+0x40);

  501.                           for(num=0;num<16;num++)
  502.                 {
  503.                         write_date(logo9[num]);
  504.                         delay(2);

  505.                         lofl=0;
  506.                 }


  507.                 DSdat=OFhour;
  508.         write_com(0x80+8);
  509.                 write_sfm();


  510.                 DSdat=OFminit;
  511.             write_com(0x80+11);
  512.             write_sfm();

  513.                

  514.         DSdat=OFsecon;
  515.                 write_com(0x80+14);
  516.                 write_sfm();

  517.                

  518. }





  519. }        
  520.         
  521.         
  522.         
  523.         
  524.         
  525.         
  526.         
  527.         
  528.                
  529. if(kval==10)

  530. {
  531.   
  532.   write_com(0x80+0x08);
  533.   write_com(0x0e);


  534.   
  535. if(add==0)

  536. {

  537. while(!add);


  538. OFhour++;

  539. DSdat=OFhour;
  540. write_sfm();
  541. if(OFhour==24)
  542. {OFhour=0;}



  543. }





  544. if( dec==0)

  545. {

  546. while(! dec);


  547. OFhour--;

  548. DSdat=OFhour;
  549. write_sfm();
  550. if(OFhour==0)
  551. {OFhour=23;}



  552. }

  553. }






  554.    if(kval==11)

  555. {
  556.   
  557.   write_com(0x40+0x40+11);
  558.   write_com(0x0e);


  559.   
  560. if(add==0)

  561. {

  562. while(!add);


  563. OFminit++;

  564. DSdat=OFminit;
  565. write_sfm();
  566. if(OFminit==60)
  567. {OFminit=0;}



  568. }





  569. if( dec==0)

  570. {

  571. while(! dec);


  572. OFminit--;

  573. DSdat=OFminit;
  574. write_sfm();
  575. if(OFminit==0)
  576. {OFminit=59;}



  577. }

  578. }












  579.   if(kval==12)

  580. {
  581.   
  582.   write_com(0x40+0x40+14);
  583.   write_com(0x0e);


  584.   
  585. if(add==0)

  586. {

  587. while(!add);


  588. OFsecon++;

  589. DSdat=OFsecon;
  590. write_sfm();
  591. if(OFsecon==60)
  592. {OFsecon=0;}



  593. }





  594. if( dec==0)

  595. {

  596. while(! dec);


  597. OFsecon--;

  598. DSdat=OFsecon;
  599. write_sfm();
  600. if(OFsecon==0)
  601. {OFsecon=59;}



  602. }

  603. }












  604. //**************************以下 亮度會上設定  和上面小時一樣
  605. //只是就量不一樣 不作注釋*******************************************
  606. //**************


  607.   //********************************設定環(huán)境參數************************************

  608.   if(kval==13)

  609. {

  610.    write_com(0x0c);

  611.    num4[4]=dwbrig;
  612.    write_rvalue();
  613.   if(lofl==1)
  614.   {
  615. write_com(0x80);

  616.                           for(num=0;num<16;num++)
  617.                 {
  618.                         write_date(logo7[num]);
  619.                         delay(2);

  620.                
  621.                 }



  622.            write_com(0x80+0x40);

  623.                           for(num=0;num<16;num++)
  624.                 {
  625.                         write_date(logo9[num]);
  626.                         delay(2);

  627.                         lofl=0;
  628.                 }


  629. }


  630.     if(add==0)        
  631.         {
  632.            delay(10);

  633.             
  634.                 if(add==0)
  635.                 {
  636.                 while(!add);                                                               
  637.                  dwbrig++;
  638.                  num4[4]=dwbrig;
  639.                  write_rvalue();


  640.          if(dwbrig==250)
  641.           {dwbrig=0;}


  642.                  }
  643.                  }



  644.                 if(dec==0)        
  645.         {
  646.            delay(10);

  647.             
  648.                 if(dec==0)
  649.                 {
  650.                 while(!dec);                                                               
  651.                  dwbrig--;
  652.                  num4[4]=dwbrig;
  653.                  write_rvalue();


  654.          if(dwbrig==0)
  655.           {dwbrig=250;}


  656.                  }
  657.                  }


  658. }











  659. //*********************************************************************


  660.    //********************************設定環(huán)境參數************************************

  661.   if(kval==14)

  662. {

  663.    write_com(0x0c);

  664.    num4[4]=kwbrig;
  665.    write_rvalue();
  666.   if(lofl==1)
  667.   {
  668. write_com(0x80);

  669.                           for(num=0;num<16;num++)
  670.                 {
  671.                         write_date(logo16[num]);
  672.                         delay(2);

  673.                
  674.                 }



  675.            write_com(0x80+0x40);

  676.                           for(num=0;num<16;num++)
  677.                 {
  678.                         write_date(logo9[num]);
  679.                         delay(2);

  680.                         lofl=0;
  681.                 }


  682. }


  683.     if(add==0)        
  684.         {
  685.            delay(10);

  686.             
  687.                 if(add==0)
  688.                 {
  689.                 while(!add);                                                               
  690.                  kwbrig++;
  691.                  num4[4]=kwbrig;
  692.                  write_rvalue();


  693.          if(kwbrig==250)
  694.           {kwbrig=0;}


  695.                  }
  696.                  }



  697.                 if(dec==0)        
  698.         {
  699.            delay(10);

  700.             
  701.                 if(dec==0)
  702.                 {
  703.                 while(!dec);                                                               
  704.                  kwbrig--;
  705.                  num4[4]=kwbrig;
  706.                  write_rvalue();


  707.          if(kwbrig==0)
  708.           {kwbrig=250;}


  709.                  }
  710.                  }


  711. }














  712. //**************************以下 濕度會上設定  和上面小時一樣
  713. //只是就量不一樣 不作注釋*******************************************
  714. //**************               
  715. if(kval==15)

  716. {
  717.    num4[4]=uphum;
  718.    write_rvalue();
  719.   if(lofl==1)
  720.   {
  721. write_com(0x80);

  722.                           for(num=0;num<16;num++)
  723.                 {
  724.                         write_date(logo8[num]);
  725.                         delay(2);

  726.                
  727.                 }



  728.            write_com(0x80+0x40);

  729.                           for(num=0;num<16;num++)
  730.                 {
  731.                         write_date(logo9[num]);
  732.                         delay(2);

  733.                         lofl=0;
  734.                 }


  735. }


  736.            

  737.          




  738.     if(add==0)        
  739.         {
  740.            delay(10);

  741.             
  742.                 if(add==0)
  743.                 {
  744.                 while(!add);                                                               
  745.                  uphum++;
  746.                  num4[4]=uphum;
  747.                  write_rvalue();


  748.          if(uphum==100)
  749.           {uphum=0;}


  750.                  }
  751.                  }



  752.                 if(dec==0)        
  753.         {
  754.            delay(10);

  755.             
  756.                 if(dec==0)
  757.                 {
  758.                 while(!dec);                                                               
  759.                  uphum--;
  760.                  num4[4]=uphum;
  761.                  write_rvalue();


  762.          if(uphum==0)
  763.           {uphum=100;}


  764.                  }
  765.                  }


  766. }






  767. //**************************以下 溫度度會上設定  和上面小時一樣
  768. //只是就量不一樣 不作注釋*******************************************
  769. //**************                                
  770. if(kval==16)

  771. {
  772.    num4[4]=uptemp;
  773.    write_rvalue();
  774.   if(lofl==1)
  775.   {
  776. write_com(0x80);

  777.                           for(num=0;num<16;num++)
  778.                 {
  779.                         write_date(logo11[num]);
  780.                         delay(2);

  781.                
  782.                 }



  783.            write_com(0x80+0x40);

  784.                           for(num=0;num<16;num++)
  785.                 {
  786.                         write_date(logo9[num]);
  787.                         delay(2);

  788.                         lofl=0;
  789.                 }


  790. }


  791.            

  792.          




  793.     if(add==0)        
  794.         {
  795.            delay(10);

  796.             
  797.                 if(add==0)
  798.                 {
  799.                 while(!add);                                                               
  800.                  uptemp++;
  801.                  num4[4]=uptemp;
  802.                  write_rvalue();


  803.          if(uptemp==100)
  804.           {uptemp=0;}


  805.                  }
  806.                  }



  807.                 if(dec==0)        
  808.         {
  809.            delay(10);

  810.             
  811.                 if(dec==0)
  812.                 {
  813.                 while(!dec);                                                               
  814.                  uptemp--;
  815.                  num4[4]=uptemp;
  816.                  write_rvalue();


  817.          if(uptemp==0)
  818.           {uptemp=100;}


  819.                  }
  820.                  }


  821. }







  822. //**************************以下煙霧度會上設定  和上面小時一樣
  823. //只是就量不一樣 不作注釋*******************************************
  824. //**************                                
  825. if(kval==17)

  826. {
  827.    num4[4]=upsmo;
  828.    write_rvalue();
  829.   if(lofl==1)
  830.   {
  831. write_com(0x80);

  832.                           for(num=0;num<16;num++)
  833.                 {
  834.                         write_date(logo15[num]);
  835.                         delay(2);

  836.                
  837.                 }



  838.            write_com(0x80+0x40);

  839.                           for(num=0;num<16;num++)
  840.                 {
  841.                         write_date(logo9[num]);
  842.                         delay(2);

  843.                         lofl=0;
  844.                 }


  845. }


  846.            

  847.          




  848.     if(add==0)        
  849.         {
  850.            delay(10);

  851.             
  852.                 if(add==0)
  853.                 {
  854.                 while(!add);                                                               
  855.                  upsmo++;
  856.                  num4[4]=upsmo;
  857.                  write_rvalue();


  858.          if(upsmo==100)
  859.           {upsmo=0;}


  860.                  }
  861.                  }



  862.                 if(dec==0)        
  863.         {
  864.            delay(10);

  865.             
  866.                 if(dec==0)
  867.                 {
  868.                 while(!dec);                                                               
  869.                  upsmo--;
  870.                  num4[4]=upsmo;
  871.                  write_rvalue();


  872.          if(uptemp==0)
  873.           {upsmo=100;}


  874.                  }
  875.                  }


  876. }















  877.    

  878. //*****退出設定*********               


  879.   if(kval==18)

  880. {



  881.   
  882.    write_com(0x0c);


  883. kval=0;
  884.   
  885. dsflj=1;
  886. lofl=1;
  887. keysw=1;
  888.   if(lofl==1)
  889.   {
  890. write_com(0x80);

  891.                           for(num=0;num<16;num++)
  892.                 {
  893.                         write_date(logo4[num]);//字幕顯示
  894.                         delay(2);
  895.                 }


  896.            write_com(0x80+0x40);

  897.                           for(num=0;num<16;num++)//字幕顯示
  898.                 {
  899.                         write_date(logo3[num]);
  900.                         delay(2);
  901.                 }




  902.            lofl=0;

  903.           }






  904.   }





  905. }










  906. }


  907.         
  908. //步進電機函數
  909. void setmoto()
  910. {
  911.   char num;
  912. //zhenfl fanfl

  913.    if(zhenzhuan==1)         //正轉
  914.            {
  915.                  dsflj=0;
  916.                   SETP_MOTOR_REV();
  917.                  
  918.                 if(second==10)
  919.                 {
  920.                 zhenzhuan=0;
  921.                 P1=0X00;
  922.                 dsflj=1;
  923.                 opensw=0;
  924.                 closesw=1;
  925.                 keysw=1;
  926.            menusw=1;


  927.                   zhenfl=1;
  928.                 fanfl=0;
  929.                 brigfl=0;
  930.                  humfl=0;


  931.                 write_com(0x80);
  932.                           for(num=0;num<16;num++)
  933.                 {                                                   //字幕顯示
  934.                         write_date(logo4[num]);
  935.                         delay(2);
  936.                 }


  937.                         write_com(0x80+0x40);        //字幕顯示
  938.                           for(num=0;num<16;num++)
  939.                 {
  940.                         write_date(logo3[num]);
  941.                         delay(2);
  942.                 }



  943.                 }


  944.         

  945.            }
  946.         
  947.                   

  948.                
  949.      if(fanzhuan==1)  //反轉
  950.            { dsflj=0;
  951.                
  952.                   SETP_MOTOR_FFW();
  953.                  
  954.                 if(second==10)
  955.                 { second=0;
  956.                           P1=0X00;

  957.                     zhenfl=0;
  958.                      fanfl=1;        
  959.    
  960.                  fanzhuan=0;
  961.                  dsflj=1;
  962.                  
  963.                  dwbrigfl=0;
  964.                  brigfl=0;


  965.                 opensw=1;
  966.                 closesw=0;
  967.                 keysw=1;
  968.                 menusw=1;
  969.             humfl=1;
  970.          
  971.                     

  972.                 write_com(0x80);

  973.                           for(num=0;num<16;num++)         //字幕顯示
  974.                 {
  975.                         write_date(logo4[num]);
  976.                         delay(2);
  977.                 }

  978.                                 write_com(0x80+0x40);
  979.                           for(num=0;num<16;num++)
  980.                 {                                                          //字幕顯示
  981.                         write_date(logo3[num]);
  982.                         delay(2);
  983.                 }


  984.                  
  985.                 }



  986.                



  987.            }
  988.                

  989. }

  990. void TEMPHRDSPLAY()                    //顯示空氣溫濕度函數   寫入1602
  991. {  
  992.     num1[4]=U8T_data_H;                //溫度高8位,即是整數部分  
  993.     num1[1]=num1[4]/10;        //整數十位
  994.     num1[0]=num1[4]%10;        //整數個位
  995.         
  996.     write_com(0x80+0x40+7);                                 //顯示溫度
  997.         write_date(0x30+num1[1]);
  998.         write_date(0x30+num1[0]);





  999.         num2[4]=U8RH_data_H;         //濕度高8位,即是整數部分  
  1000.     num2[3]=num2[4]/10;        //整數十位
  1001.     num2[2]=num2[4]%10;        //整數個位

  1002.     write_com(0x80+0x40+13);                         //顯示濕度
  1003.         write_date(0x30+num2[3]);
  1004.         write_date(0x30+num2[2]);

  1005. }        


  1006.   




  1007. void SMOGDSPLAY()                    //顯示空氣溫濕度函數   寫入1602
  1008. {  
  1009.     num3[4]=adc0;                //溫度高8位,即是整數部分
  1010.          

  1011.    
  1012.          
  1013.     num3[0]=num3[4]%10;         //顯示ge位  
  1014.         num3[1]=num3[4]%100/10;   //顯示shi位
  1015.         num3[2]=num3[4]%1000/100;//顯示百位
  1016.         
  1017.     write_com(0x80+0X40+2);                                 
  1018.         write_date(0x30+num3[2]);
  1019.         write_date(0x30+num3[1]);
  1020.         write_date(0x30+num3[0]);

  1021. }

  1022.   








  1023. void BRDSPLAY()        
  1024. {  
  1025.    
  1026.          
  1027.         num5[4]=adc1;                //溫度高8位,即是整數部分
  1028.    
  1029.          
  1030.     num5[0]=num5[4]%10;         //顯示ge位  
  1031.         num5[1]=num5[4]%100/10;   //顯示shi位
  1032.         num5[2]=num5[4]%1000/100;//顯示百位

  1033.     write_com(0x80+3);                        
  1034.         write_date(0x30+num5[2]);
  1035.         write_date(0x30+num5[1]);
  1036.         write_date(0x30+num5[0]);

  1037.   }

  1038.   

  1039. void write_rvalue()

  1040. {   

  1041.    
  1042.          
  1043.     num4[0]=num4[4]%10;         //顯示ge位  
  1044.         num4[1]=num4[4]%100/10;   //顯示shi位
  1045.         num4[2]=num4[4]%1000/100;//顯示百位



  1046.     write_com(0x80+7);                                 //顯示溫度
  1047.         write_date(0x30+num4[2]);
  1048.         write_date(0x30+num4[1]);
  1049.         write_date(0x30+num4[0]);
  1050. }







  1051. void init()
  1052. {

  1053.          TMOD=0X11;                                           //定時器設置
  1054.         TH0=0X3C;                                        //定時器0置初值 0.05S
  1055.         TL0=0XBA;
  1056.         EA=1;                                                //開總中斷
  1057.         ET0=1;                                                //定時器0中斷開啟
  1058.         TR0=1;                                                //啟動定時0




  1059.           TL1=0X3C;                //定時初值
  1060.         TH1=0XBA;                //定時初值
  1061.                          //總中斷打開
  1062.         TR1=1;                 //啟動定時器
  1063.         ET1=1;                 //軟件沒用到
  1064.         


  1065.         RCAP2H =(0xFFFF-50000)/256;                //賦T2的預置值0x1000,溢出30次就是1秒鐘
  1066.     RCAP2L =(0xFFFF-50000)%256;   
  1067.     TR2=1;                       //啟動定時器
  1068.     ET2=1;   


  1069.     IT1=1;
  1070.         TH0=0;        //定時器0初值
  1071.         TL0=0;        //定時器0初值
  1072.     TR0=1;        //定時器0啟動           
  1073.         EX1=1;        //外部中斷 軟件沒用到


  1074.         
  1075. }



  1076. void main()//主函數
  1077. {
  1078.   init();
  1079.   init1602();

  1080.   sudu=200;        //電要速度
  1081.   zhenzhuan=0;//上電關正轉
  1082.   fanzhuan=1;//上電反轉打開
  1083.   dsflj=1;
  1084.                         // 顯示打開

  1085.   uptemp=38; //溫度上限
  1086.   uphum=80;         //濕度上限


  1087.   upbrig=120; // 光控值

  1088.   dwbrig=10;//光控下限
  1089.   kwbrig=180;
  1090.   upsmo=85;

  1091.   opensw=1;
  1092.   closesw=1;
  1093.   keysw=1;
  1094.   menusw=1;
  1095.   second=0;

  1096.                 zhenfl=0;
  1097.                      fanfl=0;


  1098.                         brigfl=1;
  1099.                         dwbrigfl=1;
  1100.                         humfl=0;

  1101. adc0 = ADC0832(1,0);  //差分模式,CH0-CH1
  1102. adc1 = ADC0832(1,1);  //差分模式,CH0-CH1




  1103. hour=12;
  1104. minit=5;
  1105. secon=10; // 系統時間          這些值可以按鍵修改


  1106. ONhour=12;        // 自動開窗時間  為了方便演示 設定 一分鐘后開 這些值可以按鍵修改
  1107. ONminit=6;
  1108. ONsecon=10;


  1109. OFhour=12;        // 自動關窗時間 為了方便演示 設定 一分鐘后關 這些值可以按鍵修改
  1110. OFminit=7;
  1111. OFsecon=10;



  1112.         while(1)//大循環(huán)

  1113.         {
  1114.   
  1115.          


  1116.          
  1117.          
  1118.             

  1119. keyscn();
  1120. setmoto();



  1121. if (dsflj==1 )
  1122. {

  1123. //get_temp(); //SHT10調用
  1124. //cal_wet();//SHT10調用

  1125. RH(); //DHT11 調用
  1126.    
  1127. //  U8T_data_H= SENSOR[k].temp;//SHT10調用
  1128. //  U8RH_data_H=SENSOR[k].wet;//SHT10調用         
  1129.          
  1130.          
  1131. TEMPHRDSPLAY();











  1132. adc0 = ADC0832(1,0);  //差分模式,CH0-CH1
  1133. SMOGDSPLAY();

  1134. adc1 = ADC0832(1,1);  //差分模式,CH0-CH1
  1135. BRDSPLAY();








  1136.          if(fanfl==1)
  1137.         {


  1138.      if(adc1> kwbrig )//如果際亮度小與設定值 關窗
  1139. {

  1140.   zhenzhuan=1;


  1141. }
  1142.    
  1143.    
  1144.    
  1145.    
  1146.    
  1147.             
  1148.    if(Im[2]==0x40)
  1149.          
  1150. {
  1151. Im[2]=0x00;
  1152. zhenzhuan=1;

  1153. }




  1154.    second=0;

  1155. if(U8T_data_H>uptemp )//如果際溫度大與設定值 開窗
  1156. {

  1157. zhenzhuan=1;

  1158. }



  1159. if(adc0>upsmo )//如果際溫度大與設定值 開窗
  1160. {

  1161. zhenzhuan=1;

  1162. }


  1163.   













  1164. }

  1165.         if(zhenfl==1)
  1166.         {

  1167.            if(Im[2]==0x44)
  1168.          
  1169. {
  1170. Im[2]=0x00;
  1171. fanzhuan=1;

  1172. }


  1173.         second=0;
  1174. if(U8RH_data_H>uphum )//如果際濕度大與設定值 關窗
  1175. {

  1176. fanzhuan=1;
  1177.   brigfl=0;
  1178.   dwbrigfl=0;
  1179.   
  1180.   }


  1181.     if(adc1<dwbrig )//如果際亮度小與設定值 關窗
  1182. {


  1183. fanzhuan=1;
  1184. }
  1185.   





  1186.   



  1187. if(IR==0)        
  1188.         {
  1189.            delay(10);

  1190.             
  1191.                 if(IR==0)
  1192.                 {
  1193.                 //while(!IR);        
  1194.                   befl=1;
  1195.                    ET2=1;
  1196.                   fanzhuan=1;
  1197.                   con=0;
  1198.                                                                         
  1199.                  }

  1200.                   


  1201.            }








  1202.   


  1203. }








  1204.                          if(dec==0)        
  1205.         {
  1206.            delay(10);

  1207.             
  1208.                 if(dec==0)
  1209.                 {
  1210.                 while(!dec);                                                               
  1211.                  befl=0;
  1212.                  BEEP=1;
  1213.                   

  1214.                  }


  1215.            }
  1216.    


  1217.                            
  1218.                







  1219.         DSdat=secon;
  1220.                 write_com(0x80+14);
  1221.                 write_sfm();

  1222.                 DSdat=minit;
  1223.             write_com(0x80+11);
  1224.             write_sfm();

  1225.                 DSdat=hour;
  1226.         write_com(0x80+0x08);
  1227.                 write_sfm();



  1228. ……………………

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

所有資料51hei提供下載:
程序.7z (1.51 MB, 下載次數: 357)


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

使用道具 舉報

無效樓層,該帖已經被刪除
板凳
ID:698723 發(fā)表于 2020-2-27 17:14 來自觸屏版 | 只看該作者
樓主,想在自己家弄一個智能窗戶,能分享一下PCB嗎?
回復

使用道具 舉報

無效樓層,該帖已經被刪除
5#
ID:711095 發(fā)表于 2020-3-21 20:58 | 只看該作者
Proteus仿真弄了半天才打開,原來只能用7.5的版本才能打開,其他版本都不行,目前完美運行
回復

使用道具 舉報

6#
ID:517951 發(fā)表于 2020-11-15 16:27 | 只看該作者
不錯,值得學習。51hei有你更精彩!!
回復

使用道具 舉報

7#
無效樓層,該帖已經被刪除
8#
ID:850270 發(fā)表于 2020-12-1 16:34 | 只看該作者
有proteus具體仿真圖嗎
回復

使用道具 舉報

9#
無效樓層,該帖已經被刪除
10#
ID:850270 發(fā)表于 2020-12-2 12:36 | 只看該作者
為什么下載后,8.8版本仿真沒有結果?只能7.5嗎?
回復

使用道具 舉報

11#
ID:679337 發(fā)表于 2021-4-18 09:52 | 只看該作者
需要Proteus7.5才能打開
回復

使用道具 舉報

12#
ID:920783 發(fā)表于 2021-5-16 11:32 | 只看該作者
樓主能分享下PCB圖嗎
回復

使用道具 舉報

13#
無效樓層,該帖已經被刪除
14#
無效樓層,該帖已經被刪除
15#
無效樓層,該帖已經被刪除
16#
無效樓層,該帖已經被刪除
17#
ID:668925 發(fā)表于 2022-7-12 20:56 來自觸屏版 | 只看該作者
51電子有你真好
回復

使用道具 舉報

18#
ID:1072104 發(fā)表于 2023-4-16 20:31 | 只看該作者
下載了,多謝大佬
回復

使用道具 舉報

19#
ID:92810 發(fā)表于 2025-1-15 10:57 | 只看該作者
下載了,多謝大佬
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
亚洲一级免费观看| 国产一级伦理片| 7777精品久久久久久| 亚洲777理论| 欧美三区四区| 日本精品一区二区三区在线播放视频| 97久久超碰精品国产| 天天做天天爱天天综合网| av中文字幕在线看| 日本xxxxwwww| 亚洲色大成网站www| 久久国产精品二区| 欧美日韩久久婷婷| 日韩激情视频一区二区| 91亚洲午夜在线| 成人一二三区视频| 手机在线一区二区三区| 99久久精品一区二区成人| 蜜桃视频在线观看网站| 日本www高清| 成 人 免费 黄 色| 日本一级黄色大片| 亚洲AV无码国产成人久久| 成人免费观看毛片| 亚洲天堂av免费在线观看| 亚洲一区免费网站| 456亚洲影院| 中文字幕在线观看日韩| 欧美日韩国产在线观看| 1000部国产精品成人观看| 国产精品一区在线观看乱码| 亚洲二区视频| 日韩精品第一区| 国产精品巨作av| 国产精品久久久久久久久久齐齐 | 国产精品2区| 欧美精品videosex| 六十路在线观看| 男女激情视频网站| 德国极品另类| 99久久免费国产精品| 国产综合视频在线| 在线免费av片| 你懂的国产视频| 麻豆明星ai换脸视频| 精品国产人妻一区二区三区| 天天干天天综合| 国产黄色一级网站| 日本精品久久久久久久久久| 中文字幕一区二区三区乱码 | 国产精品jk白丝蜜臀av小说| 成人开心激情| 色是在线视频| 中文字幕资源网在线观看免费| 91在线播放网站| 成人免费在线视频网| 中文字幕在线视频免费观看| 电影天堂最新网址| 国产网站免费观看| 欧美aaa大片| 免费国产视频| 好吊的妞视频这里都有| 日韩一区二区麻豆国产| 国产欧美日韩91| 精品国产成人av在线免| 极品色影院av| 日韩激情一区二区三区| 黄色裸体一级片| 女女互磨互喷水高潮les呻吟| 国产精品嫩草69影院| 亚洲黄色片免费| 色综合久久久无码中文字幕波多| 久久久精品视频国产| 免费成年人高清视频| 亚洲精品第三页| 日本人dh亚洲人ⅹxx| 婷婷综合伊人| √天堂8在线网| 亚洲图区一区| 国产不卡人人| 最新日韩一区| 久久wwww| 亚洲免费观看高清完整版在线观| 伊人久久大香线蕉综合网蜜芽 | 又大又硬又爽免费视频| 国产二区视频在线| 日韩有码在线观看| 日韩小视频在线| 欧美成年人网站| 欧美性猛片xxxxx免费中国 | 国产精品乱码一区二区三区软件| 国产日韩欧美麻豆| 亚洲精品视频在线观看免费| 亚洲1区2区3区4区| 欧美日韩大陆一区二区| 欧美变态tickle挠乳网站| 亚洲老头同性xxxxx| 精品国产一区二区三区久久久| 欧美另类老女人| 国产精品第3页| 久久爱av电影| 成年丰满熟妇午夜免费视频 | 亚洲精品欧美一区二区三区| 国内精品二区| 9191国产视频| 亚洲精品mv在线观看| 国产精品无码一区二区三区免费| 杨钰莹一级淫片aaaaaa播放| 波多野结衣绝顶大高潮| 亚洲免费视频在线| 人与牲动交xxxbbb| 亚洲有码转帖| 中文在线аv在线| 国产精品毛片av| 亚洲日本久久| 2020国产精品| 日韩欧美亚洲成人| 美女做爰内谢全过程视频| 无码人妻av一区二区三区波多野| 国产一区二区在线视频聊天| 亚洲成人黄色小说| www狠狠操| xxxxx日韩| 久久精品嫩草影院| 亚洲h色精品| 精品一区二区三区不卡| 亚洲同性gay激情无套| 欧美精品在线视频| 欧美国产精品va在线观看| 色菇凉天天综合网| 亚洲经典中文字幕| 欧美在线性视频| 日韩精品久久一区二区三区| 人人干人人视频| 中文字幕91视频| 国产伦精品一区二区三区视频痴汉| 国产一级片大全| 日本护士...精品国| 精品视频一区二区三区四区五区| 成人免费在线播放| 国产精品综合二区| 欧美日韩在线另类| 久久精品国产亚洲一区二区| 亚洲影院污污.| 国模吧无码一区二区三区| 一级在线观看视频| 黄色a在线观看| 欧美福利网站| 国产一区二区精品调教| 精久久久久久| 国产精品嫩草99a| 日韩成人中文字幕在线观看| 成人福利在线观看| 国产第一页视频| 国产在线拍揄自揄拍无码视频| 新久草在线视频| 992tv免费直播在线观看| 日韩欧美高清一区二区三区| 久久一二三区| 精品女同一区二区三区在线播放| 久久精品青青大伊人av| 日本在线一区| 最近中文字幕在线mv视频在线| 亚洲精品字幕在线| 麻豆影视在线观看| 国产精品亚洲欧美一级在线| 人人狠狠综合久久亚洲| 精品久久久久久电影| 欧美精品中文字幕一区| 亚洲一区综合| 毛片久久久久久| 亚洲第一欧美| av中文字幕在线观看| 91麻豆精品国产91久久久平台| 91亚洲精品久久久蜜桃网站| 日韩欧美一级二级三级久久久| 国产精品一区=区| 亚洲天堂网一区| 羞羞色院91蜜桃| 116美女写真午夜一级久久| 国产伦精品一区二区三区视频小说 | 女生影院久久| 91久久夜色精品国产九色| 亚洲精品国产成人久久av盗摄 | 95在线视频| 91精品亚洲| 亚洲一区中文在线| 欧美一级视频一区二区| 女人另类性混交zo| 潘金莲一级淫片aaaaaa播放| 亚洲四虎av| 51社区在线成人免费视频| 成人一区二区三区中文字幕| 日韩精品欧美国产精品忘忧草| 欧美不卡1区2区3区| 亚洲午夜精品久久久久久高潮| 欧美野外性xxxxfeexxxx| 伊人春色在线观看| 国产精品人人爽人人做我的可爱| 日韩欧美中文在线| 亚洲一区二区久久久久久| 尤物网站在线观看| 欧美人与z0zoxxxx特| 色网在线免费观看| 国产一区二区三区在线看麻豆| 精品国产乱码久久久久久老虎| 欧美精品成人一区二区在线观看| 美女福利视频网| 天天色天天上天天操| 牛牛精品成人免费视频| 一区在线观看视频| 国产精品av免费在线观看| 自拍一级黄色片| 亚洲欧美综合一区二区| 午夜影院一区| 国产一区 二区 三区一级| 精品视频一区在线视频| 毛片在线视频观看| av毛片在线免费观看| 精品视频一二三| 制服诱惑一区二区| 亚洲国产精品免费| 日本wwwcom| 国产成人精品免费看视频| 久做在线视频免费观看| 久久av最新网址| 日韩风俗一区 二区| 999久久欧美人妻一区二区| 在线免费av片| 国精一区二区三区| 成人av免费在线观看| 精品中文字幕在线| 国产精品一级无码| 黄无遮挡免费网站| 欧美女王vk| 精品视频免费在线| 杨幂一区欧美专区| 国产精品系列视频| 在线观看福利电影| 国产欧美日韩在线观看| 国产欧美亚洲视频| 欧美肥妇bbwbbw| 亚洲mv在线| 日本成人中文字幕| 日韩一区在线视频| 91人人澡人人爽| 麻豆自创视频在线观看| 午夜精品av| 日韩电影中文字幕av| 992kp快乐看片永久免费网址| 欧美中文字幕一二三四区| 97se亚洲| 欧美熟乱第一页| 日韩免费在线观看av| 无码精品黑人一区二区三区| 久久久久久久性潮| 亚洲福利电影网| 先锋影音亚洲资源| 亚洲精品福利网站| 91视频成人| 欧美日韩美女视频| 一本二本三本亚洲码| 深夜福利视频网站| caoporn成人免费视频在线| 色综合久久久久久久久| 超碰成人在线免费观看| 性xxxxbbbb| 色愁久久久久久| 欧美一区二区三区四区五区| 亚洲精品久久久久久久蜜桃臀| 波多野结衣久久高清免费| 欧美有码在线| 亚洲成av人乱码色午夜| 色天使在线观看| 羞羞的视频网站| 久热re这里精品视频在线6| 欧美情侣性视频| 四虎永久免费地址| 黄色网页在线播放| 国产精品色婷婷| 天堂va久久久噜噜噜久久va| 亚洲小说春色综合另类网蜜桃| 视频小说一区二区| 亚洲激情视频在线| 国产chinese中国hdxxxx| 一本一道dvd在线观看免费视频| 国产成人在线视频免费播放| 91精品国产自产在线观看永久| 亚洲国产无线乱码在线观看| 国产亚洲精彩久久| 欧美日韩综合在线免费观看| 哪个网站能看毛片| 国产对白在线| 国产成人亚洲综合a∨猫咪| 成人在线免费观看视视频| 中文字幕视频免费观看| 日韩精品视频中文字幕| 日韩一区二区三区在线| 91性高潮久久久久久久| 久久精品国产亚洲a∨麻豆| 国产日韩三级在线| 亚洲午夜精品久久久久久浪潮| 国产又爽又黄又刺激的软件| 你懂的视频一区二区| 久久久久成人网| 丁香六月婷婷综合| 日韩欧美中文字幕一区二区三区| 日韩欧美精品在线| 日韩av在线看免费观看| 五月天激情在线| 二区在线播放| 中文字幕码精品视频网站| www色啪啪| 日日噜噜夜夜狠狠视频欧美人 | 午夜久久福利影院| 3d动漫一区二区三区| 国产专区中文字幕| 成人免费网站在线观看视频| 成人亚洲欧美激情在线电影| 亚洲高清av| 国产成人精品视频在线观看| 中文字幕永久在线视频| 超碰在线成人| 亚洲午夜未删减在线观看| 国产精品酒店视频| 欧美在线极品| 欧美一级夜夜爽| 欧美 日本 国产| 免费黄色在线看| 天天综合天天综合色| 国产福利影院在线观看| 欧美色老女人| 久久品道一品道久久精品| 中文字幕一区二区三区5566| chinese叫床对白videos| 成人久久视频在线观看| 手机福利在线视频| 公交车强行挺进岳身体| 粉嫩高潮美女一区二区三区| 成人xxxxx色| 国产精品高潮久久久久无| 日本 欧美 国产| 手机在线免费av| 成人一级免费视频| 宅男午夜视频| 中文字幕第一区综合| 国产欧美123| 国产va在线| 国产欧美一区二区精品性色超碰| 老子影院午夜伦不卡大全| 久草影视在线| 亚洲色图视频免费播放| 久久综合久久色| 在线日本中文字幕| 欧美日韩一区二区三区在线| av男人的天堂av| 国产精品黄色片| 久久久成人av| 一本色道久久综合熟妇| 女人香蕉久久**毛片精品| 国产suv精品一区二区| 国产日本精品视频| 亚洲精品看片| 国产v亚洲v天堂无码| 国产大学生自拍视频 | 精品欧美一区二区久久久久| 亚洲高清在线一区| 久久久午夜视频| 国产同性人妖ts口直男| 好吊日精品视频| 国产精品成人一区二区三区| 国产亚洲第一的欧洲日产| 激情综合亚洲精品| 亚洲 国产 欧美一区| 97福利电影| 亚洲精品中文字幕乱码三区| av不卡中文字幕| 韩国久久久久久| 色偷偷av亚洲男人的天堂| 亚洲成熟女性毛茸茸| 精品亚洲成a人在线观看| 777av视频| 黄网av在线| 日韩亚洲精品电影| 午夜一区在线观看| 成人a免费在线看| 一级淫片在线观看| 色综合久久久| 庆余年2免费日韩剧观看大牛| 国产久草在线| 中文字幕精品在线不卡| 99精品999| 久久国产三级| 国产精国产精品| 天天色天天操天天做| 日韩欧美精品中文字幕| 亚洲午夜高清视频| 亚洲一区在线不卡| 91在线高清| 一区二区三区高清国产|