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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 4537|回復(fù): 5
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)智能燈控制系統(tǒng)源程序仿真原理圖與論文全套資料下載

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:75831 發(fā)表于 2018-3-28 20:38 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
設(shè)計(jì)了一款智能控制系統(tǒng)。
AT89C51+LCD1602+DS1302+按鍵+LED組成了這樣一個(gè)完整的設(shè)計(jì)。
P2.0-P2.3  4個(gè)LED等代表庭院內(nèi)的4盞燈
P1.3-P1.7  5個(gè)開關(guān),第一個(gè)代表光敏電阻傳感器,后四個(gè)都是熱釋電紅外傳感器
P3.2、P3.4、P3.5、P3.6為四個(gè)按鍵開關(guān),可設(shè)置萬(wàn)年歷時(shí)間。
人性化地加入了時(shí)間和溫度的LCD顯示,并可以通過(guò)按鍵去設(shè)置時(shí)間日期等。
智能燈控制分為自動(dòng)和手動(dòng)控制。
邏輯功能:
當(dāng)P3.0為0,也就是按下的時(shí)候?yàn)槭謩?dòng)控制,反之則為自動(dòng)控制。
手動(dòng):
按下開關(guān)P3.1,所有的燈都打開,按下開關(guān)P3.2,所有的燈都關(guān)閉。
自動(dòng):
一個(gè)光敏電阻傳感器和四個(gè)紅外熱釋電傳感器,實(shí)現(xiàn)邏輯為:
當(dāng)時(shí)間為晚上18點(diǎn)-早上6點(diǎn)之間或者光敏電阻傳感器為0時(shí),一旦有人,則點(diǎn)亮燈,一個(gè)燈附近安裝一個(gè)紅外熱釋電傳感器,
當(dāng)走進(jìn)燈時(shí),燈亮。

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


參考論文:


單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3.   #include<string.h>
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. #define delayNOP() {_nop_();_nop_();_nop_();_nop_();}
  7. sbit SDA=P1^0;  // DS1302數(shù)據(jù)線
  8. sbit CLK=P1^1;  //         DS1302時(shí)鐘線
  9. sbit RST=P1^2;  // DS1302復(fù)位線
  10. //DS18B20數(shù)據(jù)端口定義
  11. sbit DQ=P2^4;    //DS18B20數(shù)據(jù)端口
  12. sbit LCD_RS=P2^5;   // LCD寄存器選擇
  13. sbit LCD_RW=P2^6;   //         LCD讀寫/寫控制
  14. sbit LCD_EN=P2^7;   //  LCD啟用
  15. sbit K1=P3^2;   //  選擇
  16. sbit K2=P3^3;   // 確定
  17. sbit K3=P3^5;   // 加
  18. sbit K4=P3^6;  // 減


  19. sbit key_1=P3^0;        //自動(dòng)手動(dòng)切換
  20. sbit key_2=P3^1;        //關(guān)燈,按一下,關(guān)一個(gè)
  21. sbit key_3=P3^4;        //開燈,按一下,開一個(gè)
  22. uchar code zz[]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09};
  23. uchar code fz[]={0x09,0x01,0x03,0x02,0x06,0x04,0x0c,0x08};  
  24. sbit R_LED=P2^0;   //紅燈
  25. sbit Y_LED=P2^1;   //黃燈
  26. sbit G_LED=P2^2;   //綠燈
  27. sbit B_LED=P2^3;   //藍(lán)燈

  28. sbit guangmin=P1^3;          //光敏電阻傳感器
  29. sbit ren1=P1^4;                  //紅外熱釋電傳感器1
  30. sbit ren2=P1^5;                  //紅外熱釋電傳感器2
  31. sbit ren3=P1^6;                  //紅外熱釋電傳感器3
  32. sbit ren4=P1^7;                  //紅外熱釋電傳感器4



  33. //溫度字符
  34. uchar code Temperature_Char[8]={0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00};
  35. //溫度小數(shù)對(duì)照表
  36. uchar code df_Table[]={0,1,1,2,3,3,4,4,5,6,6,7,8,8,9,9};
  37. uchar CurrentT=0; //當(dāng)前讀取溫度的整數(shù)部分
  38. uchar Temp_Value[]={0x00,0x00};         //從DS18B20讀取的溫度值
  39. uchar Display_Digit[]={0,0,0,0};//待顯示的各溫度數(shù)位
  40. bit DS18B20_IS_OK=1;//傳感器正常標(biāo)志

  41. uchar tCount=0;
  42. //一年中每個(gè)月的天數(shù),2月的天數(shù)由年份決定
  43. uchar MonthsDays[]={0,31,0,31,30,31,30,31,31,30,31,30,31};
  44. //周日,每周一到周六(0,1-6)【讀取DS1302時(shí)分別是1-7】
  45. uchar *WEEK[]={"SUN","MON","TUS","WEN","THU","FRI","SAT"};

  46. //LCD顯示緩沖
  47. uchar LCD_DSY_BUFFER1[]={"00-00-00        "};
  48. uchar LCD_DSY_BUFFER2[]={"00-00-00      "};
  49. uchar DateTime[7];  //所讀取的日期時(shí)間
  50. uchar Adjust_flag=0; //當(dāng)前調(diào)節(jié)的時(shí)間對(duì)像:秒,分,時(shí),日,月,年(1,2,3,4,5,6)
  51. uchar Change_Flag[]=" YMDHM";//(分,時(shí),日,月,年)(不調(diào)節(jié)秒與周)

  52. //延時(shí)
  53. void DelayMS(uchar x)
  54. {uchar i;
  55. while(x--)
  56. for(i=0;i<120;i++);
  57. }

  58. //向DS1302寫入一個(gè)字節(jié)
  59. void Write_A_Byte_TO_DS1302(uchar x)
  60. {uchar i;
  61. for(i=0;i<8;i++)
  62. {SDA=x&1;  CLK=1;  CLK=0; x>>=1;
  63. }
  64. }

  65. //從DS11302讀取一個(gè)字節(jié)
  66. uchar Get_A_Byte_FROM_DS1302()
  67. {uchar i,b,t;
  68. for(i=0;i<8;i++)
  69. {b>>=1; t=SDA; b|=t<<7;  CLK=1;CLK=0;
  70. }
  71. //BCD碼轉(zhuǎn)換
  72. return b/16*10+b%16;
  73. }
  74. //從DS1302指定位置讀數(shù)據(jù)
  75. uchar Read_Data(uchar addr)
  76. {uchar dat;
  77. RST=0; CLK=0; RST=1;
  78. Write_A_Byte_TO_DS1302(addr);
  79. dat=Get_A_Byte_FROM_DS1302();
  80. CLK=1;RST=0;
  81. return dat;
  82. }

  83. //向DS1302某地址寫入數(shù)據(jù)
  84. void Write_DS1302(uchar addr,uchar dat)
  85. {CLK=0;RST=1;
  86. Write_A_Byte_TO_DS1302(addr);
  87. Write_A_Byte_TO_DS1302(dat);
  88. CLK=0;RST=0;
  89. }

  90. //設(shè)置時(shí)間
  91. void SET_DS1302()
  92. { uchar i;
  93. Write_DS1302(0x8e,0x00); //寫控制字,取消寫保護(hù)
  94. //分時(shí)日月年依次寫入
  95. for(i=0;i<7;i++)
  96. {
  97. //分的起始地址10000010(0x82),后面連續(xù)依次是時(shí),日,月,周,年,寫入 地址每次增2
  98. Write_DS1302(0X80+2*i,(DateTime[i]/10<<4)|(DateTime[i]%10));
  99. }
  100. Write_DS1302(0x8e,0x80);//加保護(hù)
  101. }

  102. //讀取當(dāng)前的時(shí)間
  103. void GetTime()
  104. {
  105.   uchar i;
  106.   for(i=0;i<7;i++)
  107.    {
  108.      DateTime[i]=Read_Data(0x81+2*i);
  109.    }
  110. }


  111. //LCD忙等待
  112. bit LCD_Busy_Check()
  113. {bit result;
  114. LCD_RS=0;
  115. LCD_RW=1;
  116. LCD_EN=1;
  117. delayNOP();
  118. result=(bit)(P0&0x80);
  119. LCD_EN=0;
  120. return result;
  121. }

  122. //寫指令
  123. void Write_LCD_Command(uchar cmd)
  124. {while(LCD_Busy_Check());
  125. LCD_RS=0;LCD_RW=0;LCD_EN=0;        _nop_();         _nop_();
  126. P0=cmd;
  127. delayNOP();
  128. LCD_EN=1;
  129. delayNOP();
  130. LCD_EN=0;
  131. }
  132. //寫數(shù)據(jù)
  133. void Write_LCD_Data(uchar dat)
  134. {while(LCD_Busy_Check());
  135. LCD_RS=1;LCD_RW=0;LCD_EN=0;
  136. P0=dat;
  137. delayNOP();
  138. LCD_EN=1;
  139. delayNOP();
  140. LCD_EN=0;
  141. }

  142. //初始化
  143. void Init_LCD()
  144. {Write_LCD_Command(0x01);DelayMS(5);
  145. Write_LCD_Command(0x38);DelayMS(5);
  146. Write_LCD_Command(0x0c);DelayMS(5);
  147. Write_LCD_Command(0x06);DelayMS(5);
  148. }
  149. //設(shè)置顯示位置
  150. void Set_LCD_POS(uchar pos)
  151. {        Write_LCD_Command(pos|0x80);
  152.   }

  153. //在LCD上顯示字符串
  154. void Display_LCD_String(uchar p,uchar *s)
  155. {uchar i;
  156. Set_LCD_POS(p);
  157. for(i=0;i<16;i++)
  158. {Write_LCD_Data(s[i]);
  159. DelayMS(1);
  160. }
  161. }

  162. //日期與時(shí)間值轉(zhuǎn)換為數(shù)字字符
  163. void Format_DateTime(uchar d,uchar *a)
  164. {a[0]=d/10+'0';
  165. a[1]=d%10+'0';
  166. }

  167. //判斷是否為閏年
  168. uchar isLeapYear(uint y)
  169. {return (y%4==0&&y%100!=0)||(y%400==0);
  170. }

  171. //求自2000.1.1開始的任何一天是星期幾
  172. void RefreshWeekDay()
  173. {uint i,d,w=5; //已知1999.12.31是星期五
  174. for(i=2000;i<2000+DateTime[6];i++)
  175. { d=isLeapYear(i)?366:365;
  176. w=(w+d)%7;
  177. }
  178. d=0;
  179. for(i=1;i<DateTime[4];i++)
  180. d+=MonthsDays[i];
  181. d+=DateTime[3];
  182. //保存星期,0~6表示星期日,星期一,二.....六,為了與DS1302的星期格式匹配,返回值需要加1
  183. DateTime[5]=(w+d)%7+1;
  184. }

  185. //延時(shí)函數(shù)2
  186. void Delay(uint x)
  187. {while(--x);
  188. }
  189. /***************初始化18B20溫度函數(shù)******************/
  190. uchar Init_DS18B20()
  191. {
  192.    uchar status;
  193.    DQ=1;
  194.    Delay(8);
  195.    DQ=0;
  196.    Delay(90);
  197.    DQ=1;
  198.    Delay(8);
  199.    status=DQ;
  200.    Delay(100);
  201.    DQ=1;
  202.    return status;
  203. }

  204. //讀一字節(jié)
  205. uchar ReadOneByte()
  206. {uchar i,dat=0;
  207. DQ=1;_nop_();
  208. for(i=0;i<8;i++)
  209. {DQ=0;dat>>=1;DQ=1;_nop_();_nop_();
  210. if(DQ)dat|=0x80;
  211. Delay(30);
  212. DQ=1;
  213. }
  214. return dat;
  215. }

  216. //寫一字節(jié)
  217. void WriteOneByte(uchar dat)
  218. {uchar i;
  219. for(i=0;i<8;i++)
  220. { DQ=0;DQ=dat&0x01;Delay(5);DQ=1;dat>>=1;
  221. }
  222. }

  223. //讀取溫度值
  224. void Read_Temperature()
  225. {
  226. //延時(shí)值與負(fù)數(shù)標(biāo)識(shí)
  227. uchar t=150,ng=0;
  228. //高5位全為1(0xf8)則為負(fù)數(shù),為負(fù)數(shù)時(shí)取反加1,并設(shè)置負(fù)數(shù)標(biāo)識(shí)

  229. if(Init_DS18B20()==1)  //DS18B20故障
  230. DS18B20_IS_OK=0;
  231. else
  232. {WriteOneByte(0xcc);   //跳過(guò)序列號(hào)
  233. WriteOneByte(0x44);//啟動(dòng)溫度轉(zhuǎn)換
  234. Init_DS18B20();
  235. WriteOneByte(0xcc);   //跳過(guò)序列號(hào)
  236. WriteOneByte(0xBE);//讀取溫度寄存器
  237. Temp_Value[0]=ReadOneByte();  //溫度低8位
  238. Temp_Value[1]=ReadOneByte();  //溫度高8位
  239. DS18B20_IS_OK=1;
  240. if((Temp_Value[1]&0xf8)==0xf8)
  241. {
  242. Temp_Value[1]=~Temp_Value[1];
  243. Temp_Value[0]=~Temp_Value[0]+1;
  244. if(Temp_Value[0]==0x00)
  245. Temp_Value[1]++;
  246. //負(fù)數(shù)標(biāo)志置1
  247. ng=1;
  248. }
  249. //查表得到溫度的小數(shù)部分
  250. Display_Digit[0]=df_Table[Temp_Value[0]&0x0f];
  251. //獲取溫度整數(shù)部分(高字節(jié)中的低三位與低字節(jié)中的高4位,無(wú)符號(hào))
  252. CurrentT=((Temp_Value[0]&0xf0)>>4)|((Temp_Value[1]&0X07)<<4);
  253. //將整數(shù)部分分解為3位待顯示數(shù)字
  254. Display_Digit[3]=CurrentT/100;
  255. Display_Digit[2]=CurrentT%100/10;
  256. Display_Digit[1]=CurrentT%10;

  257. //刷新LCD顯示緩沖
  258. LCD_DSY_BUFFER2[13]= Display_Digit[0]+'0';
  259. LCD_DSY_BUFFER2[12]='.'        ;
  260. LCD_DSY_BUFFER2[11]=Display_Digit[1]+'0';
  261. LCD_DSY_BUFFER2[10]=Display_Digit[2]+'0';
  262. LCD_DSY_BUFFER2[9]=Display_Digit[3]+'0';
  263. //高位為0時(shí)不顯示
  264. if(Display_Digit[3]==0)         LCD_DSY_BUFFER2[9]=' ';
  265. //高位為0,且次高位為0時(shí),次高位不顯示
  266. if(Display_Digit[2]==0&&Display_Digit[3]==0)
  267. LCD_DSY_BUFFER2[10]=' ';

  268. //負(fù)數(shù)符號(hào)顯示在恰當(dāng)?shù)奈恢?br />
  269. if(ng)
  270. {if(LCD_DSY_BUFFER2[10]==' ')
  271. LCD_DSY_BUFFER2[10]='-';
  272. else
  273. if(LCD_DSY_BUFFER2[9]==' ')
  274. LCD_DSY_BUFFER2[9]='-';
  275. else
  276.   LCD_DSY_BUFFER2[8]='-';
  277. }
  278. }
  279. }


  280. //鍵盤中斷 0
  281. void EX_INT0() interrupt 0
  282. {if(K1==0)  //選擇調(diào)整對(duì)象(Y M D H M)
  283. { while(K1==0);
  284. Adjust_flag++;
  285. LCD_DSY_BUFFER1[13]='[';
  286. LCD_DSY_BUFFER1[14]=Change_Flag[Adjust_flag];
  287. LCD_DSY_BUFFER1[15]=']';
  288. if(Adjust_flag==6)
  289. {Adjust_flag=0;
  290. LCD_DSY_BUFFER1[13]=' ';
  291. LCD_DSY_BUFFER1[14]=' ';
  292. LCD_DSY_BUFFER1[15]=' ';

  293. }
  294. }
  295. }

  296. //鍵盤中斷1
  297. void EX_INT1() interrupt 2
  298. {
  299. while(K2==0);
  300. SET_DS1302();//將調(diào)整后的時(shí)間寫入DS1302
  301. LCD_DSY_BUFFER1[13]=' ';
  302. LCD_DSY_BUFFER1[14]=' ';
  303. LCD_DSY_BUFFER1[15]=' ';
  304. Adjust_flag=0;//操作索引重設(shè)為-1,時(shí)間繼續(xù)正常顯示
  305. }


  306. //定時(shí)器0每秒刷新LCD顯示
  307. void T0_INT() interrupt 1
  308. { uchar i;
  309. TH0=-50000/256;
  310. TL0=-50000%256;
  311. Set_LCD_POS(0X4e);Write_LCD_Data(0Xdf);
  312. Set_LCD_POS(0X4f);Write_LCD_Data('C');
  313. if(++tCount!=2) return;
  314. tCount=0;
  315. Read_Temperature();
  316. //按指定的格式生成待顯示的日期時(shí)間串
  317. Format_DateTime(DateTime[6],LCD_DSY_BUFFER1);
  318. Format_DateTime(DateTime[4],LCD_DSY_BUFFER1+3);
  319. Format_DateTime(DateTime[3],LCD_DSY_BUFFER1+6);
  320. //星期
  321. strcpy(LCD_DSY_BUFFER1+9,WEEK[DateTime[5]-1]);
  322. //時(shí)分秒
  323. Format_DateTime(DateTime[2],LCD_DSY_BUFFER2);
  324. Format_DateTime(DateTime[1],LCD_DSY_BUFFER2+3);
  325. Format_DateTime(DateTime[0],LCD_DSY_BUFFER2+6);
  326. //顯示年月日,星期,時(shí)分秒
  327. Display_LCD_String(0x00,LCD_DSY_BUFFER1);
  328. Set_LCD_POS(0x40);
  329. for(i=0;i<14;i++)
  330. {
  331. Write_LCD_Data(LCD_DSY_BUFFER2[i]);
  332. DelayMS(1);
  333. }
  334. }

  335. //手動(dòng)按鍵控制燈函數(shù)
  336. void key_LED()
  337. {
  338.   R_LED=1;
  339.   Y_LED=1;
  340.   G_LED=1;
  341.   B_LED=1;
  342.   if(key_2==0)
  343.    {
  344.        R_LED=0;
  345.        Y_LED=0;
  346.        G_LED=0;
  347.        B_LED=0;  
  348.    }
  349.   if(key_3==0)
  350.    {
  351.        R_LED=1;
  352.        Y_LED=1;
  353.        G_LED=1;
  354.        B_LED=1;  
  355.    }
  356.   
  357. }


  358. //主程序
  359. void main()
  360. {
  361. Init_LCD();//液晶初始化
  362. IE=0X87;//允許INT0,T0中斷
  363. IP=0X05;
  364. IT0=0X01;
  365. IT1=0X01;
  366. TMOD=0X01;
  367. TH0=-50000/256;
  368. TL0=-50000%256;
  369. TR0=1;
  370. while(1)
  371. {  
  372.   R_LED=Y_LED=G_LED=B_LED=1;
  373.   if(key_1==0)        //手動(dòng)模式
  374.    {
  375.             key_LED();         //按鍵控制燈函數(shù)
  376.    }
  377.   else
  378.    {
  379.             if(DateTime[2]>18||DateTime[2]<6||guangmin==0)
  380.       {
  381.             if(ren1==0)
  382.                  {
  383.                    R_LED=0;
  384.                Y_LED=1;
  385.                G_LED=1;
  386.                B_LED=1;
  387.                  }
  388.                 if(ren2==0)
  389.                  {
  390.                    R_LED=0;
  391.                Y_LED=0;
  392.                G_LED=1;
  393.                B_LED=1;
  394.                  }
  395.             if(ren3==0)
  396.                  {
  397.                    R_LED=0;
  398.                Y_LED=0;
  399.                G_LED=0;
  400.                B_LED=1;
  401.                  }
  402.                 if(ren4==0)
  403.                  {
  404.                    R_LED=0;
  405.                Y_LED=0;
  406.                G_LED=0;
  407.                B_LED=0;         
  408.                  }
  409.           }
  410.    
  411.    }
  412. switch(Adjust_flag)
  413. {
  414. case 0:GetTime(); break;
  415. case 1:
  416. if(K3==0&&DateTime[6]<99)
  417. {
  418. while(K3==0);
  419. DateTime[6]++;}

  420. if(K4==0&&DateTime[6]>0)
  421. {
  422. while(K4==0);
  423. DateTime[6]--;
  424. }
  425. MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28;
  426. //如果年份變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限
  427. if(DateTime[3]>MonthsDays[DateTime[4]])
  428. DateTime[3]=MonthsDays[DateTime[4]];
  429. RefreshWeekDay();//刷新星期
  430. break;
  431.       
  432. case 2:
  433. if(K3==0&&DateTime[4]<12)
  434. {
  435. while(K3==0);
  436. DateTime[4]++;}

  437. if(K4==0&&DateTime[4]>1)
  438. {
  439. while(K4==0);
  440. DateTime[4]--;
  441. }
  442. //獲取2月份天數(shù)
  443. MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28;
  444. //如果變化后當(dāng)前月份的天數(shù)大于上限則設(shè)為上限
  445. if(DateTime[3]>MonthsDays[DateTime[4]])
  446. DateTime[3]=MonthsDays[DateTime[4]];
  447. RefreshWeekDay();//刷新星期
  448. break;

  449. case 3://日00-28/29/30/31,調(diào)節(jié)之前首先根據(jù)年份得出該年中2月的天數(shù)
  450. MonthsDays[2]=isLeapYear(2000+DateTime[6])?29:28;
  451. //根據(jù)當(dāng)前的月份決定調(diào)節(jié)日期的上限
  452. if(K3==0&&DateTime[3]<MonthsDays[DateTime[4]])
  453. {
  454. while(K3==0);
  455. ……………………

  456. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
智能燈控制系統(tǒng).rar (1.28 MB, 下載次數(shù): 212)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:298693 發(fā)表于 2018-4-1 10:26 | 只看該作者
謝謝貢獻(xiàn),學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

板凳
ID:308416 發(fā)表于 2018-4-15 10:39 | 只看該作者
論文剛好是這個(gè),很有參考價(jià)值,謝謝了
回復(fù)

使用道具 舉報(bào)

地板
ID:505085 發(fā)表于 2019-4-5 22:10 | 只看該作者
求原理圖
回復(fù)

使用道具 舉報(bào)

5#
ID:629438 發(fā)表于 2019-10-25 21:44 | 只看該作者
謝謝幫助
回復(fù)

使用道具 舉報(bào)

6#
ID:1097521 發(fā)表于 2023-10-27 15:29 | 只看該作者
請(qǐng)問(wèn)用的是keil4嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日日夜夜免费精品视频 | 免费在线看黄 | 免费亚洲婷婷 | 亚洲一区国产精品 | 产真a观专区 | h在线看| 久久国产欧美日韩精品 | 一区二区三区免费 | 亚洲视频区 | 祝你幸福电影在线观看 | 亚欧洲精品在线视频免费观看 | 免费在线观看一区二区 | 色网站入口 | 日韩午夜影院 | av综合站| 国产精品免费av | 精品国产不卡一区二区三区 | 国产精品免费一区二区三区 | 亚洲精品成人在线 | 在线男人天堂 | 一区二区不卡高清 | 成人免费在线观看 | 久久精品国产99国产精品 | 亚洲国产成人精品女人久久久 | 嫩呦国产一区二区三区av | 亚洲一区二区在线免费观看 | 久久在视频 | 最新黄色在线观看 | 古典武侠第一页久久777 | 日韩精品 电影一区 亚洲 | 在线日韩中文字幕 | 国产色在线 | 精品av| 国产日韩一区二区 | 亚洲精品国产成人 | 亚洲国产一区二区三区 | 国产一级特黄真人毛片 | 成人在线国产 | 日本成人在线观看网站 | 在线观看成人免费视频 | 国产精品免费福利 |