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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17431|回復: 18
收起左側

紅外遙控報警器制作(原理圖+PCB圖+程序+說明文檔)

  [復制鏈接]
ID:169931 發表于 2017-3-11 19:52 | 顯示全部樓層 |閱讀模式
分享一個紅外遙控報警器含有原理圖+PCB圖+程序+說明文檔
                                                    作品解說文檔
這次比賽制作的紅外控制溫度報警器制作歷時半個月,是一個用AT89S52做的以液晶12864為顯示平臺,包含紅外遠程控制,溫度測量,時間顯示,鬧鈴提醒和圖片瀏覽等功能的簡易紅外控制溫度傳感器,
1)  紅外數據接收部分:用HS38B作為紅外接收器,接收頭接收到數據后送入單片機處理。
2)溫度采集部分:執行溫度采集的芯片是溫度傳感器DS18B20,其精度是可達到0.1℃。
3)時間顯示部分:利用單片機AT89S52內置的定時器進行時間更新。
這個制作的最大的特色是多層菜單設計和通過電腦上位機給串口發送數據代替遙控送數,單片機上電開機后會出現一個開機圖片,之后進入基本頁面,基本界面上包括年月日,星期,時分秒和現在溫度。 按按鍵代碼為0x1e的按鍵后,進入主菜單,主菜單上會有四個選項,分別是溫度上下限設置,顯示時間設置,鬧鈴時間設置和圖片瀏覽。按相應按鍵進入下一級設置子菜單,再按相應按鍵進行相應處理。
由于電路連接錯誤,PCB板上的點陣部分無法用上。作品介紹大概就是這些。

附加:
按鍵代碼:
0x01 :  進入主菜單                            0x01 :返回基本界面
0x02 :進入溫度上下限編輯界面               0x03 :進入顯示時間編輯界面
0x06 :進入鬧鈴時間修改界面                 0x07 :進入圖片瀏覽界面
0x0b :進入溫度上限或鬧鈴時編輯狀態              0x1a :進入溫度下限或鬧鈴分編輯狀態
0x19 :在顯示時間設置時按此鍵可調整編輯對象
0x10 :使需要修改的數據按一次加1             0x11:使需要修改的數據按一次減1

ad格式的原理圖:
0.png
ad格式的pcb文件:
0.png

單片機源程序(部分內容預覽):
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. /********************************位定義區**********************************************************/
  6. sbit DQ=P1^0;
  7. sbit en=P1^2;
  8. sbit rw=P1^3;
  9. sbit rs=P1^4;
  10. sbit dat=P3^2;

  11. sbit LED_second=P1^1;                                                                //跳秒指示;滿一秒時亮
  12. sbit hongwai_key=P3^7;                                                                //紅外按鍵指示;有鍵按下時亮
  13. sbit fenmingqi=P3^3;                                                                //蜂鳴器控制;蜂鳴器鳴叫控制腳
  14. /*********************************各變量定義區*********************************************************/
  15. uchar jump=1,count_time=0,k=0,count_LED=0;
  16. uchar get_data[4],key,hui_sign=0;
  17. uchar Toptemp=30,Downtemp=0;
  18. uchar sec=50,min=59,hour=23,date=1,month=1,weekday=3;
  19. uint year=2009;
  20. uchar a,b,c,d;
  21. uchar nao_shi=6,nao_fen=0,naoling_sign=0,count_nao=0,count_keep_nao=0;
  22. uchar jump_sign=0;
  23. uchar *kaiji;
  24. /**********************************基本顯示頁面顯示內容******************************************************/
  25. unsigned char dis1[16]={"2009年06月20日"};
  26. unsigned char dis2[6]={"星期三"};
  27. unsigned char dis3[14]={"17: 54: 00  PM"};
  28. unsigned char dis4[16]={"現在溫度:  . ℃"};
  29. /***********************************主菜單顯示內容*******************************************************/
  30. unsigned char code menu1[16]={"1.溫度上下限值"};
  31. unsigned char code menu2[16]={"2.時間日期調整"};
  32. unsigned char code menu3[16]={"3.鬧鈴時間調整"};
  33. unsigned char code menu4[16]={"4.圖片播放瀏覽"};
  34. /**********************************各設置時子菜單顯示內容***************************************************/
  35. unsigned char idata wendu1[12]={"1.上限:  ℃"};
  36. unsigned char idata wendu2[12]={"2.下限:  ℃"};
  37. unsigned char code character[10]={'0','1','2','3','4','5','6','7','8','9'};
  38. unsigned char code weekdate[15]={" 一二三四五六天"};
  39. unsigned char idata naoling[16]={"鬧鈴時間:00:00"};
  40. /*********************************圖片顯示代碼區************************************************************/
  41. uchar code pic1[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,                                //圖片1顯示代碼
  42.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  43.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  44.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  45.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  46.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  47.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  48.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  49.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  50.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  51.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  52.                               0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

  53. …………余下代碼請下載附件…………

  54.                               0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
  55.                               0x7F,0xFF,0xFF,0xC0,0x00,0x3F,0xFF,0xFF,
  56.                               0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
  57.                               0x7F,0xFF,0xFF,0xE3,0x03,0xFF,0xFF,0xFF,
  58.                               0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,
  59.                               0x7F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,
  60.                               0xFF,0xFF,0xFF,0xE0,0x00,0x00,0x00,0x00};                        
  61. /*****************************************延時程序*************************************************/
  62. void delay(uchar n)                                                         //6微妙延時子程序
  63. {
  64.         while(n--)
  65.         {;}
  66. }
  67. void delay1(uint n1)                                                        //開機圖片現顯示時間
  68. {
  69.         uchar i,j,k;
  70.         for(i=0;i<200;i++)
  71.         {
  72.                 for(j=0;j<200;j++)
  73.                 {
  74.                         for(k=0;k<n1;k++)
  75.                         {}
  76.                 }
  77.         }
  78. }

  79. /**************************************開機圖片顯示及基本頁面顯示******************************************/
  80. void dis_data()                                                        //開機初始化顯示                                
  81. {
  82.         dis1[0]=character[year/1000];
  83.         dis1[1]=character[(year%1000)/100];
  84.         dis1[2]=character[(year%100)/10];
  85.         dis1[3]=character[year%10];
  86.         dis1[6]=character[month/10];
  87.         dis1[7]=character[month%10];
  88.         dis1[10]=character[date/10];
  89.         dis1[11]=character[date%10];
  90.         dis2[4]=weekdate[weekday];
  91.         dis2[5]=weekdate[weekday+1];
  92.         dis3[0]=character[hour/10];
  93.         dis3[1]=character[hour%10];
  94.         dis3[4]=character[min/10];
  95.         dis3[5]=character[min%10];
  96.         dis3[8]=character[sec/10];
  97.         dis3[9]=character[sec%10];
  98.         if(hour>11){dis3[12]='P';}
  99.         else dis3[12]='A';
  100. }
  101. void write_com_12864(uchar com)                        //單片機對12864寫指令
  102. {
  103.         rs=0;
  104.         rw=0;
  105.         en=1;
  106.         delay(20);
  107.         P2=com;
  108.         delay(20);
  109.         en=0;
  110.         delay(20);
  111. }
  112. void write_data_12864(uchar date)                //單片機寫數據到12864
  113. {
  114.         rs=1;
  115.         rw=0;
  116.         en=1;
  117.         delay(20);
  118.         P2=date;
  119.         delay(20);
  120.         en=0;        
  121.         delay(20);
  122. }

  123. void Init_12864()                                                //液晶初始化子程序
  124. {
  125.         delay(20);
  126.         write_com_12864(0x30);                                //基本指令操作
  127.         delay(20);
  128.         write_com_12864(0x0c);                                //開顯示,游標關,游標位置反白不允許
  129.         delay(20);        
  130.         write_com_12864(0x01);                                //寫入新數據后光標右移
  131.         delay(20);
  132.         write_com_12864(0x06);                                //顯示清屏
  133.         delay(20);        
  134. }
  135. void yemian()
  136. {
  137.         uchar i;
  138.         write_com_12864(0x80);                                        //基本頁面第一行顯示
  139.         for(i=0;i<14;i++)                                                
  140.         {
  141.                 write_data_12864(dis1[i]);
  142.                 delay(100);
  143.         }
  144.         write_com_12864(0x92);                                        //基本頁面第二行顯示
  145.         for(i=0;i<6;i++)
  146.         {
  147.                 write_data_12864(dis2[i]);
  148.                 delay(100);
  149.         }
  150.         write_com_12864(0x89);                                        //基本頁面第三行顯示
  151.         for(i=0;i<14;i++)
  152.         {
  153.                 write_data_12864(dis3[i]);
  154.                 delay(100);
  155.         }
  156.         write_com_12864(0x98);                                        //基本頁面第四行顯示
  157.         for(i=0;i<16;i++)
  158.         {
  159.                 write_data_12864(dis4[i]);
  160.                 delay(100);
  161.         }
  162. }

  163. void tuchu(uchar x,uchar y)                                        //圖片處理子程序
  164. {
  165.         write_com_12864(0x34);
  166.         delay(20);
  167.         write_com_12864(y);
  168.         delay(20);
  169.         write_com_12864(x);
  170.         delay(20);
  171.         write_com_12864(0x30);
  172. }
  173. void dis_pic(uchar code *pic)                                //圖片顯示入口程序
  174. {
  175.         int i,j;
  176.         uint b=0;
  177.         int x,y;
  178.         x=0x80;
  179.         y=0x80;
  180.         for(i=0;i<32;i++)
  181.         {
  182.                 tuchu(x,y);
  183.                 for(j=0;j<16;j++)
  184.                 {        
  185.                         write_data_12864(~pic[b]);
  186.                         b++;
  187.                         delay(20);
  188.                 }
  189.                 y++;
  190.         }
  191.         x=0x88;
  192.         y=0x80;
  193.         for(i=0;i<32;i++)
  194.         {
  195.                 tuchu(x,y);
  196.                 for(j=0;j<16;j++)
  197.                 {        
  198.                         write_data_12864(~pic[b]);
  199.                         b++;
  200.                         delay(20);
  201.                 }
  202.                 y++;
  203.         }
  204.         write_com_12864(0x36);
  205.         b=0;        
  206. }

  207. void yejinxianshi()
  208. {
  209.         kaiji=pic1;
  210.         Init_12864();                                                                //開機液晶初始化
  211.         delay(250);                                
  212.         dis_pic(kaiji);                                                                //開機圖片顯示
  213.         delay1(12);
  214.         Init_12864();                                                                //基本頁面顯示前初始化
  215.         delay(100);
  216.         dis_data();                                                                        //對顯示內容初始化
  217.         delay(250);
  218.         yemian();                                                                        //基本頁面顯示
  219. }
  220. /********************************溫度采集及顯示程序*****************************************************/
  221. void data_done(uchar templ,uchar temph)                                //溫度數據采集后的數據整理
  222. {
  223.         uint result,temp,t,t1;
  224.         t1=templ&0x0f;
  225.         templ=templ&0xf0;
  226.         templ=templ>>4;
  227.         temph=temph&0x07;
  228.         temph=temph<<4;
  229.         temp=templ+temph;
  230.         result=temp;
  231.         a=result/100;
  232.         t=result%100;
  233.         b=t/10;
  234.         c=result%10;
  235.         if(t1>9)
  236.         {
  237.                 c=c+1;
  238.                 d=t1-10;
  239.                 if(c>9)
  240.                 {
  241.                         c=c-10;
  242.                         b=b+1;
  243.                 }
  244.         }
  245.         if(temp>=Toptemp||temp<=Downtemp)
  246.         {
  247.                 fenmingqi=0;                                                //當檢測到的溫度大于上限溫度或小于下限溫度時蜂鳴器鳴叫        
  248.         }
  249.         else
  250.                 fenmingqi=1;                                                //否則關閉蜂鳴器
  251. }
  252. read_bit_DS18B20()                                                   //傳感器DS18B20讀比特位
  253. {
  254.         uchar i,temp;
  255.         for(i=0;i<8;i++)
  256.         {
  257.                 DQ=0;
  258.                 temp=temp>>=1;
  259.                 DQ=1;
  260.                 if(DQ==1){temp=temp+0x80;}
  261.                 delay(4);
  262.         }
  263.         return(temp);        
  264. }
  265. void write_bit_DS18B20(uchar com)                        //傳感器DS18B20寫比特位
  266. {
  267.         uchar i;
  268.         for(i=0;i<8;i++)
  269.         {
  270.                 DQ=0;
  271.                 DQ=(com&0x01);
  272.                 delay(5);
  273.                 DQ=1;
  274.                 com>>=1;
  275.         }
  276. }
  277. Init_DS18B20()                                                                   //DS18B20初始化子程序,判斷傳感器是否存在
  278. {
  279.         uchar Judge;
  280.         DQ=1;
  281.         delay(1);
  282.         DQ=0;
  283.         delay(65);
  284.         DQ=1;
  285.         delay(5);
  286.         Judge=DQ;
  287.         delay(15);
  288.         return(Judge);
  289. }
  290. void wendu_caiji()                                                                  //溫度采集子程序入口
  291. {
  292.         uchar x,TEMP_L,TEMP_H;
  293.         x=Init_DS18B20();
  294.         if(x==0)
  295.         {
  296.                 write_bit_DS18B20(0xcc);
  297.                 write_bit_DS18B20(0x44);
  298.                 delay(250);
  299.                 x=Init_DS18B20();
  300.                 if(x==0)
  301.                 {
  302.                 write_bit_DS18B20(0xcc);
  303.                 write_bit_DS18B20(0xbe);
  304.                 TEMP_L=read_bit_DS18B20();
  305.                 TEMP_H=read_bit_DS18B20();
  306.                 data_done(TEMP_L,TEMP_H);
  307.                 }        
  308.         }
  309. }
  310. /**********************************************溫度和時間更新子程序*******************************************/
  311. void update_wendu()                                                                        //溫度更新顯示子程序
  312. {
  313.         wendu_caiji();
  314.         dis4[10]=character[b];
  315.         dis4[11]=character[c];
  316.         dis4[13]=character[d];
  317.         write_com_12864(0x9d);
  318.         write_data_12864(dis4[10]);
  319.         write_data_12864(dis4[11]);
  320.         write_data_12864('.');
  321.         write_data_12864(dis4[13]);        
  322. }
  323. update_time()                                                                                        //時間更新顯示子程序
  324. {
  325.         uchar a1,b1,c1,d1;
  326.         if(naoling_sign)
  327.         {
  328.                 fenmingqi=0;
  329.                 if(count_nao==20)
  330.                 {
  331.                         count_nao=0;
  332.                         fenmingqi=~fenmingqi;
  333.                         
  334.                 }
  335.         }
  336.         if(count_LED==8)
  337.         {
  338.                 count_LED=0;
  339.                 LED_second=~LED_second;
  340.         }
  341.         if(count_time==16)
  342.         {
  343.                 count_time=0;
  344.                 sec++;
  345.                 if((min==nao_fen)&&(hour==nao_shi))
  346.                 {
  347.                         count_keep_nao++;
  348.                         if(count_keep_nao==1)
  349.                         {
  350.                                 naoling_sign=1;
  351.                         }
  352.                         if(count_keep_nao==30)
  353.                         {
  354.                                 naoling_sign=0;
  355.                         }
  356.                         if(count_keep_nao>61)
  357.                         {
  358.                                 count_keep_nao=0;
  359.                                 naoling_sign=0;
  360.                         }
  361.                 }
  362.                 a1=sec/10;
  363.                 if(a1==6){a1=0;}
  364.                 dis3[8]=character[a1];
  365.                 dis3[9]=character[sec%10];
  366.                 write_com_12864(0x8d);
  367.                 write_data_12864(dis3[8]);
  368.                 write_data_12864(dis3[9]);
  369.                 if(sec==60)
  370.                 {
  371.                         sec=0;
  372.                         min++;
  373.                         d1=min/10;
  374.                         if(d1==6){d1=0;}
  375.                         dis3[4]=character[d1];
  376.                         dis3[5]=character[min%10];
  377.                         write_com_12864(0x8b);
  378.                         write_data_12864(dis3[4]);
  379.                         write_data_12864(dis3[5]);
  380.                         if(min==60)
  381.                         {
  382.                                 min=0;
  383.                                 hour++;
  384.                                 b1=hour/10;
  385.                                 c1=hour%10;
  386.                                 if(hour>11&&hour!=24)
  387.                                 {
  388.                                         dis3[12]='P';
  389.                                         write_com_12864(0x8f);
  390.                                         write_data_12864(dis3[12]);
  391.                                 }
  392.                                 else
  393.                                 {
  394.                                         dis3[12]='A';
  395.                                         write_com_12864(0x8f);
  396.                                         write_data_12864(dis3[12]);
  397.                                 }
  398.                                 if(b1==2&&c1==4){b1=0;c1=0;}
  399.                                 dis3[0]=character[b1];
  400.                                 dis3[1]=character[c1];
  401.                                 write_com_12864(0x89);
  402.                                 write_data_12864(dis3[0]);
  403.                                 write_data_12864(dis3[1]);
  404.                                 if(hour==24)
  405.                                 {
  406.                                         hour=0;
  407.                                         date++;
  408.                                         weekday=weekday+2;
  409.                                         if(weekday>15)weekday=1;
  410.                                         if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//考慮閏年時的時間計算
  411.                                         {
  412.                                                 if(date==31)
  413.                                                 {
  414.                                                         date=1;
  415.                                                         month++;
  416.                                                         if(month>12)
  417.                                                         {
  418.                                                                 month=1;
  419.                                                                 year++;
  420.                                                         }
  421.                                                         if(month>12)
  422.                                                         {
  423.                                                                 month=1;
  424.                                                                 year++;
  425.                                                         }
  426.                                                 }
  427.                                         }        
  428.                                         if(month==4||month==6||month==9||month==11)
  429.                                         {
  430.                                                 if(date==30)
  431.                                                 {
  432.                                                         date=1;        
  433.                                                         month++;
  434.                                                         if(month>12)
  435.                                                         {
  436.                                                                 month=1;
  437.                                                                 year++;
  438.                                                         }
  439.                                                 }
  440.                                         }        
  441.                                         if(month==2)
  442.                                         {
  443.                                                 if((year%4==0&&year%100!=0)||year%400==0)
  444.                                                 {
  445.                                                         if(date==29)
  446.                                                         {
  447.                                                                 date=1;
  448.                                                                 year++;
  449.                                                         }
  450.                                                 }
  451.                                                 else
  452.                                                 {
  453.                                                         if(date==28)
  454.                                                         {
  455.                                                                 date=1;
  456.                                                                 year++;
  457.                                                         }
  458.                                                 }
  459.                                         }
  460.                                 }
  461.                                 dis1[10]=character[date/10];
  462.                                 dis1[11]=character[date%10];
  463.                                 write_com_12864(0x85);
  464.                                 write_data_12864(dis1[10]);
  465.                                 write_data_12864(dis1[11]);

  466.                                 write_com_12864(0x94);
  467.                                 write_data_12864(weekdate[weekday]);
  468.                                 write_data_12864(weekdate[weekday+1]);        

  469.                                 dis1[6]=character[month/10];
  470.                                 dis1[7]=character[month%10];
  471.                                 write_com_12864(0x83);
  472.                                 write_data_12864(dis1[6]);
  473.                                 write_data_12864(dis1[7]);        

  474.                                 dis1[0]=character[year/1000];
  475.                                 dis1[1]=character[(year%1000)/100];
  476.                                 dis1[2]=character[(year%100)/10];
  477.                                 dis1[3]=character[year%10];        
  478.                                 write_com_12864(0x80);
  479.                                 write_data_12864(dis1[0]);
  480.                                 write_data_12864(dis1[1]);
  481.                                 write_data_12864(dis1[2]);
  482.                                 write_data_12864(dis1[3]);                                
  483.                         }        
  484.                 }
  485.         }               
  486. }
  487. /********************************菜單設置及功能****************************************************/
  488.                 /************************溫度上下限設置***************************/
  489. void temp_limit()                                                        //溫度上下限數值設置               
  490. {
  491.         uchar flag1=0,i=0;
  492.         wendu1[8]=character[Toptemp/10];
  493.         wendu1[9]=character[Toptemp%10];
  494.         wendu2[8]=character[Downtemp/10];
  495.         wendu2[9]=character[Downtemp%10];
  496.         Init_12864();
  497.         delay(200);
  498.         write_com_12864(0x80);
  499.         delay(200);
  500.         for(i=0;i<12;i++)
  501.         {
  502.                 write_data_12864(wendu1[i]);
  503.                 delay(100);
  504.         }
  505.         write_com_12864(0x90);
  506.         for(i=0;i<12;i++)
  507.         {
  508.                 write_data_12864(wendu2[i]);
  509.                 delay(100);
  510.         }
  511.         jump=1;
  512.         while(jump)
  513.         {
  514.                 k=1;
  515.                 if(key==0x0b||key==0x1a)
  516.                 {
  517.                         if(key==0x0b)                                                                //按0x0b鍵進入上限溫度編輯
  518.                         {
  519.                                 flag1=0;
  520.                                 write_com_12864(0x84);
  521.                                 write_com_12864(0x0f);
  522.                         }
  523.                         else if(key==0x1a)                                                        //按0x1a鍵進入下限溫度編輯
  524.                         {
  525.                                 flag1=1;
  526.                                 write_com_12864(0x94);
  527.                                 write_com_12864(0x0f);
  528.                         }
  529.                 }
  530.                 else if(key==0x10||key==0x11)                                        //按0x10鍵加數據,按0x11鍵減數據                        
  531.                 {                                                        
  532.                         if(key==0x10)
  533.                         {
  534.                                 if(flag1==0)
  535.                                 {        
  536.                                         Toptemp++;
  537.                                         write_com_12864(0x84);
  538.                                         write_com_12864(0x0f);
  539.                                 }
  540.                                 else if(flag1==1)
  541.                                 {
  542.                                         Downtemp++;
  543.                                         write_com_12864(0x94);
  544.                                         write_com_12864(0x0f);
  545.                                 }
  546.                         }
  547.                         else if(key==0x11)
  548.                         {
  549.                                 if(flag1==0)
  550.                                 {
  551.                                         Toptemp--;
  552.                                         write_com_12864(0x84);
  553.                                         write_com_12864(0x0f);
  554.                                 }
  555.                                 else if(flag1==1)
  556.                                 {
  557.                                         Downtemp--;
  558.                                         write_com_12864(0x94);
  559.                                         write_com_12864(0x0f);
  560.                                 }
  561.                         }
  562.                 }
  563.                 else if(key==0x01)                                                                //按0x01返回到主程序
  564.                 {
  565.                         jump_sign=1;
  566.                         write_com_12864(0x0c);
  567.                         write_com_12864(0x01);
  568.                         return;
  569.                 }
  570.                 if(flag1==0)
  571.                 {
  572.                 wendu1[8]=character[Toptemp/10];
  573.                 wendu1[9]=character[Toptemp%10];
  574.                 write_com_12864(0x84);
  575.                 write_data_12864(wendu1[8]);
  576.                 write_data_12864(wendu1[9]);
  577.                 write_com_12864(0x84);
  578.                 }
  579.                 if(flag1==1)
  580.                 {
  581.                 wendu2[8]=character[Downtemp/10];
  582.                 wendu2[9]=character[Downtemp%10];
  583.                 write_com_12864(0x94);
  584.                 write_data_12864(wendu2[8]);
  585.                 write_data_12864(wendu2[9]);
  586.                 write_com_12864(0x94);
  587.                 }
  588.                 while(k);
  589.         }
  590. }
  591. /**************************************************************************************************************/
  592.                                         /**************************時間日期設置****************************/
  593. void time_setting()        
  594. {
  595.         uchar flag=0;
  596.         write_com_12864(0x01);
  597.         delay(200);
  598.         dis_data();
  599.         yemian();                                                                //顯示編輯界面
  600.         jump=1;
  601.         while(jump)
  602.         {
  603.                 k=1;
  604.                 if(key==0x19)                                                //按0x19鍵進行編輯位置選擇
  605.                 {
  606.                         flag++;                                                        //利用flag作標志,選擇合適的位置并進行數據修改
  607.                         if(flag==7)
  608.                         {flag=0;}
  609.                         else if(flag==1)
  610.                         {
  611.                                 write_com_12864(0x81);
  612.                                 write_com_12864(0x0f);
  613.                         }
  614.                         else if(flag==2)
  615.                         {
  616.                                 write_com_12864(0x83);
  617.                                 write_com_12864(0x0f);
  618.                         }
  619.                         else if(flag==3)
  620.                         {
  621.                                 write_com_12864(0x85);
  622.                                 write_com_12864(0x0f);
  623.                         }
  624.                         else if(flag==4)
  625.                         {
  626.                                 write_com_12864(0x94);
  627.                                 write_com_12864(0x0f);
  628.                         }        
  629.                         else if(flag==5)
  630.                         {
  631.                                 write_com_12864(0x89);
  632.                                 write_com_12864(0x0f);
  633.                         }        
  634.                         else if(flag==6)
  635.                         {
  636.                                 write_com_12864(0x8b);
  637.                                 write_com_12864(0x0f);
  638.                         }
  639.                 }
  640.                 else if(key==0x10||key==0x11)                                                //按0x10鍵進行數據加,按0x11鍵進行數據減
  641.                 {
  642.                         if(key==0x10)
  643.                         {
  644.                                 if(flag==1)
  645.                                 {
  646.                                         year++;
  647.                                         write_com_12864(0x81);
  648.                                         write_com_12864(0x0f);
  649.                                         dis1[0]=character[year/1000];
  650.                                         dis1[1]=character[(year%1000)/100];
  651.                                         dis1[2]=character[(year%100)/10];
  652.                                         dis1[3]=character[year%10];
  653.                                         write_com_12864(0x80);
  654.                                         write_data_12864(dis1[0]);
  655.                                         write_data_12864(dis1[1]);
  656.                                         write_data_12864(dis1[2]);
  657.                                         write_data_12864(dis1[3]);
  658.                                         write_com_12864(0x81);        
  659.                                 }
  660.                                 else if(flag==2)
  661.                                 {
  662.                                         month++;
  663.                                         if(month==13)month=0;
  664.                                         write_com_12864(0x83);
  665.                                         write_com_12864(0x0f);        
  666.                                         dis1[6]=character[month/10];        
  667.                                         dis1[7]=character[month%10];        
  668.                                         write_com_12864(0x83);
  669.                                         write_data_12864(dis1[6]);
  670.                                         write_data_12864(dis1[7]);
  671.                                         write_com_12864(0x83);
  672.                                 }
  673.                                 else if(flag==3)
  674.                                 {
  675.                                         date++;
  676.                                         if(date==32)date=0;
  677.                                         write_com_12864(0x85);
  678.                                         write_com_12864(0x0f);
  679.                                         dis1[10]=character[date/10];        
  680.                                         dis1[11]=character[date%10];        
  681.                                         write_com_12864(0x85);
  682.                                         write_data_12864(dis1[10]);
  683.                                         write_data_12864(dis1[11]);
  684.                                         write_com_12864(0x85);
  685.                                 }
  686.                                 else if(flag==4)
  687.                                 {
  688.                                         weekday=weekday+2;
  689.                                         if(weekday==16)weekday=1;
  690.                                         write_com_12864(0x94);
  691.                                         write_com_12864(0x0f);
  692.                                         dis2[4]=character[weekday];        
  693.                                         dis2[5]=character[weekday+1];        
  694.                                         write_com_12864(0x94);
  695.                                         write_data_12864(dis2[4]);
  696.                                         write_data_12864(dis2[5]);
  697.                                         write_com_12864(0x94);
  698.                                 }
  699.                                 else if(flag==5)
  700.                                 {
  701.                                         hour++;
  702.                                         if(hour==24)hour=0;
  703.                                         write_com_12864(0x89);
  704.                                         write_com_12864(0x0f);
  705.                                         dis3[0]=character[hour/10];        
  706.                                         dis3[1]=character[hour%10];               
  707.                                         write_com_12864(0x89);
  708.                                         write_data_12864(dis3[0]);
  709.                                         write_data_12864(dis3[1]);
  710.                                         write_com_12864(0x89);
  711.                                 }
  712.                                 else if(flag==6)
  713.                                 {
  714.                                         min++;
  715.                                         if(min==60)min=0;
  716.                                         write_com_12864(0x8b);
  717.                                         write_com_12864(0x0f);
  718.                                         dis3[4]=character[min/10];        
  719.                                         dis3[5]=character[min%10];               
  720.                                         write_com_12864(0x8b);
  721.                                         write_data_12864(dis3[4]);
  722.                                         write_data_12864(dis3[5]);
  723.                                         write_com_12864(0x8b);
  724.                                 }
  725.                         }
  726.                         else if(key==0x11)
  727.                         {
  728.                                 if(flag==1)
  729.                                 {
  730.                                         year--;
  731.                                         write_com_12864(0x81);
  732.                                         write_com_12864(0x0f);
  733.                                         dis1[0]=character[year/1000];
  734.                                         dis1[1]=character[(year%1000)/100];
  735.                                         dis1[2]=character[(year%100)/10];
  736.                                         dis1[3]=character[year%10];
  737.                                         write_com_12864(0x80);
  738.                                         write_data_12864(dis1[0]);
  739.                                         write_data_12864(dis1[1]);
  740.                                         write_data_12864(dis1[2]);
  741.                                         write_data_12864(dis1[3]);
  742.                                         write_com_12864(0x81);        
  743.                                 }
  744.                                 else if(flag==2)
  745.                                 {
  746.                                         month--;
  747.                                         if(month<0)month=12;
  748.                                         write_com_12864(0x83);
  749.                                         write_com_12864(0x0f);        
  750.                                         dis1[6]=character[month/10];        
  751.                                         dis1[7]=character[month%10];        
  752.                                         write_com_12864(0x83);
  753.                                         write_data_12864(dis1[6]);
  754.                                         write_data_12864(dis1[7]);
  755.                                         write_com_12864(0x83);
  756.                                 }
  757.                                 else if(flag==3)
  758.                                 {
  759.                                         date--;
  760.                                         if(date<0)date=31;
  761.                                         write_com_12864(0x85);
  762.                                         write_com_12864(0x0f);
  763.                                         dis1[10]=character[date/10];        
  764.                                         dis1[11]=character[date%10];        
  765.                                         write_com_12864(0x85);
  766.                                         write_data_12864(dis1[10]);
  767.                                         write_data_12864(dis1[11]);
  768.                                         write_com_12864(0x85);
  769.                                 }
  770.                                 else if(flag==4)
  771.                                 {
  772.                                         weekday=weekday-2;
  773.                                         if(weekday==0)weekday=13;
  774.                                         write_com_12864(0x94);
  775.                                         write_com_12864(0x0f);
  776.                                         dis2[4]=character[weekday];        
  777.                                         dis2[5]=character[weekday+1];        
  778.                                         write_com_12864(0x94);
  779.                                         write_data_12864(dis2[4]);
  780.                                         write_data_12864(dis2[5]);
  781.                                         write_com_12864(0x94);
  782.                                 }
  783.                                 else if(flag==5)
  784.                                 {
  785.                                         hour--;
  786.                                         if(hour<0)hour=24;
  787.                                         write_com_12864(0x89);
  788.                                         write_com_12864(0x0f);
  789.                                         dis3[0]=character[hour/10];        
  790.                                         dis3[1]=character[hour%10];               
  791.                                         write_com_12864(0x89);
  792.                                         write_data_12864(dis3[0]);
  793.                                         write_data_12864(dis3[1]);
  794.                                         write_com_12864(0x89);
  795.                                 }
  796.                                 else if(flag==6)
  797.                                 {
  798.                                         min--;
  799.                                         if(min<0)min=59;
  800.                                         write_com_12864(0x8b);
  801.                                         write_com_12864(0x0f);
  802.                                         dis3[4]=character[min/10];        
  803.                                         dis3[5]=character[min%10];               
  804.                                         write_com_12864(0x8b);
  805.                                         write_data_12864(dis3[4]);
  806.                                         write_data_12864(dis3[5]);
  807.                                         write_com_12864(0x8b);
  808.                                 }
  809.                         }
  810.                 }
  811.                 else if(key==0x01)                                                                //按0x01鍵返回主程序
  812.                 {
  813.                         jump_sign=1;
  814.                         write_com_12864(0x0c);
  815.                         write_com_12864(0x01);
  816.                         return;
  817.                 }
  818.                 while(k);
  819.         }
  820. }
  821. /*****************************************************************************************************/
  822.                                                 /*******************鬧鈴時間設置*********************/
  823. void bell_setting()
  824. {
  825.         uchar i,flag2=0;
  826.         naoling[10]=character[nao_shi/10];
  827.         naoling[11]=character[nao_shi%10];
  828.         naoling[14]=character[nao_fen/10];
  829.         naoling[15]=character[nao_fen%10];

  830.         write_com_12864(0x01);
  831.         delay(20);
  832.         
  833.         write_com_12864(0x80);
  834.         delay(20);
  835.         for(i=0;i<16;i++)
  836.         {
  837.                 write_data_12864(naoling[i]);
  838.                 delay(200);
  839.         }
  840.         jump=1;
  841.         while(jump)
  842.         {
  843.                 k=1;
  844.                 if(key==0x0b||key==0x1a)
  845.                 {
  846.                         if(key==0x0b)                                                //按0x0b鍵進入鬧鈴時鐘編輯
  847.                         {
  848.                                 flag2=0;
  849.                                 write_com_12864(0x85);
  850.                                 write_com_12864(0x0f);
  851.                         }
  852.                         else if(key==0x1a)                                        //按返回鍵進入鬧鈴分鐘編輯
  853.                         {
  854.                                 flag2=1;
  855.                                 write_com_12864(0x87);
  856.                                 write_com_12864(0x0f);
  857.                         }
  858.                  }
  859.                 else if(key==0x10||key==0x11)                        //按0x10鍵進行數據加,按0x11鍵進行數據減        
  860.                 {                                                        
  861.                         if(key==0x10)
  862.                         {
  863.                                 if(flag2==0)
  864.                                 {        
  865.                                         nao_shi++;
  866.                                         if(nao_shi==24)nao_shi=0;
  867.                                         write_com_12864(0x85);
  868.                                         write_com_12864(0x0f);
  869.                                         naoling[10]=character[nao_shi/10];
  870.                                         naoling[11]=character[nao_shi%10];
  871.                                         write_com_12864(0x85);
  872.                                         write_data_12864(naoling[10]);
  873.                                         write_data_12864(naoling[11]);
  874.                                         write_com_12864(0x85);
  875.                                 }
  876.                                 else if(flag2==1)
  877.                                 {
  878.                                         nao_fen++;
  879.                                         if(nao_fen==60)nao_fen=0;
  880.                                         write_com_12864(0x87);
  881.                                         write_com_12864(0x0f);
  882.                                         naoling[14]=character[nao_fen/10];
  883.                                         naoling[15]=character[nao_fen%10];
  884.                                         write_com_12864(0x87);
  885.                                         write_data_12864(naoling[14]);
  886.                                         write_data_12864(naoling[15]);
  887.                                         write_com_12864(0x87);
  888.                                 }
  889.                         }
  890.                         else if(key==0x11)
  891.                         {
  892.                                 if(flag2==0)
  893.                                 {
  894.                                         nao_shi--;
  895.                                         if(nao_shi<0)nao_shi=59;
  896.                                         write_com_12864(0x85);
  897.                                         write_com_12864(0x0f);
  898.                                         naoling[10]=character[nao_shi/10];
  899.                                         naoling[11]=character[nao_shi%10];
  900.                                         write_com_12864(0x85);
  901.                                         write_data_12864(naoling[10]);
  902.                                         write_data_12864(naoling[11]);
  903.                                         write_com_12864(0x85);
  904.                                 }
  905.                                 else if(flag2==1)
  906.                                 {
  907.                                         nao_fen--;
  908.                                         if(nao_fen<0)nao_fen=59;
  909.                                         write_com_12864(0x87);
  910.                                         write_com_12864(0x0f);
  911.                                         naoling[14]=character[nao_fen/10];
  912.                                         naoling[15]=character[nao_fen%10];
  913.                                         write_com_12864(0x87);
  914.                                         write_data_12864(naoling[14]);
  915.                                         write_data_12864(naoling[15]);
  916.                                         write_com_12864(0x87);
  917.                                 }
  918.                         }
  919.                 }
  920.                 else if(key==0x01)                                                        //按0x01鍵返回主程序
  921.                 {
  922.                         jump_sign=1;
  923.                         write_com_12864(0x0c);
  924.                         write_com_12864(0x01);
  925.                         return;
  926.                 }
  927.                 while(k);
  928.          }
  929. }
  930. /*********************************************************************************************************/
  931.                                                         /********************圖片瀏覽顯示**********************/
  932. void pic_show()
  933. {
  934.         Init_12864();                                                                //液晶初始化
  935.         delay(250);                                
  936.         dis_pic(pic1);                                                                //圖片1顯示
  937.         delay1(5);
  938.         
  939.         Init_12864();                                                                //液晶初始化
  940.         delay(250);                                
  941.         dis_pic(pic2);                                                                //圖片2顯示        
  942.         delay1(5);
  943.         
  944.         Init_12864();                                                                //液晶初始化
  945.         delay(250);                                
  946.         dis_pic(pic3);                                                                //圖片3顯示
  947.         delay1(5);


  948.         key=0x1e;
  949.         jump=0;
  950.         k=0;
  951. }
  952. /************************************************************************************************************/
  953. /*************************************************主菜單顯示子程序*******************************************/
  954. void function1()
  955. {
  956.         uchar i;
  957.         Init_12864();
  958.         delay(200);
  959.         write_com_12864(0x80);
  960.         delay(100);
  961.         for(i=0;i<14;i++)                                                                //主菜單第一行顯示
  962.         {
  963.                 write_data_12864(menu1[i]);
  964.                 delay(100);
  965.         }
  966.         write_com_12864(0x90);
  967.         for(i=0;i<14;i++)                                                                //主菜單第二行顯示
  968.         {
  969.                 write_data_12864(menu2[i]);
  970.                 delay(100);
  971.         }
  972.         write_com_12864(0x88);
  973.         for(i=0;i<14;i++)                                                                //主菜單第三行顯示
  974.         {
  975.                 write_data_12864(menu3[i]);
  976.                 delay(100);
  977.         }
  978.         write_com_12864(0x98);
  979.         for(i=0;i<14;i++)                                                                //主菜單第四行顯示
  980.         {
  981.                 write_data_12864(menu4[i]);
  982.                 delay(100);
  983.         }
  984.         jump=1;
  985.         while(jump)
  986.         {
  987.                 k=1;
  988.                 switch(key)
  989.                 {
  990.                         case 0x02: temp_limit();break;                                //按0x02鍵進入溫度上下限設置
  991.                         case 0x03: time_setting();break;                        //按0x03鍵進入時間日期設置
  992.                         case 0x06: bell_setting();break;                        //按0x06鍵進入鬧鈴時間設置
  993.                         case 0x07: pic_show();break;                                //按0x07鍵進入圖片瀏覽
  994.                         case 0x01: return; break;                                        //按0x01鍵返回主程序
  995.                 }
  996.                 while(k);
  997.         }
  998. }
  999. function2()                                                                                        //返回主程序標志設置
  1000. {
  1001.         uchar hui;
  1002.         hui=0;
  1003.         hui_sign=1;
  1004.         return(hui);
  1005. }
  1006. /********************************************主程序***********************************************/
  1007. void main()               
  1008. {
  1009.         uchar hui;
  1010.         LED_second=0;
  1011.         yejinxianshi();
  1012.         TMOD=0x21;
  1013.         TH0=0x3C;
  1014.         TL0=0xB0;
  1015.         TH1=0xfd;
  1016.         TL1=0xfd;
  1017.         SCON=0x50;
  1018.         IP=0x01;
  1019.         ES=1;
  1020.         ET0=1;
  1021.         IT0=1;
  1022.         TR1=1;
  1023.         TR0=1;
  1024.         EX0=1;
  1025.         EA=1;
  1026.         delay(5);
  1027.         while(1)
  1028.         {
  1029.                 write_com_12864(0x01);
  1030.                 delay(200);
  1031.                 write_com_12864(0x0c);
  1032.                 yemian();
  1033.                 hui=1;
  1034.                 while(hui)
  1035.                 {
  1036.                         if(hui_sign==1)
  1037.                         {
  1038.                                 hui_sign=0;
  1039.                                 key=0x09;
  1040.                         }
  1041.                         if(key!=0x00)
  1042.                         {
  1043.                                 switch(key)
  1044.                                 {        
  1045.                                 
  1046.                                         case 0x1e: function1();     break;                                //顯示菜單
  1047.                                         case 0x01: hui=function2(); break;                                //退出到日歷
  1048.                                 }
  1049.                         }
  1050.                         update_wendu();
  1051.                         update_time();
  1052.                 }
  1053.         }
  1054. }

  1055. /*********************************外部中斷0入口程序(紅外按鍵中斷)******************************************************/
  1056. void int0(void) interrupt 0
  1057. {
  1058.         uchar i,j,N=0;
  1059.         EA=0;
  1060.         fenmingqi=1;
  1061.         if(jump_sign==1)
  1062.         {
  1063.                 jump_sign=0;
  1064.                 jump=0;
  1065.         }
  1066.         k=0;
  1067.         hongwai_key=0;
  1068.         if(dat==1)
  1069.         {
  1070.                 EA=1;
  1071.                 return;
  1072.         }
  1073.     while(!dat);                 //跳過引導碼4.5ms低電平
  1074.         while(dat);                  //跳過引導碼4.5ms高電平
  1075.         for(i=0;i<4;i++)                         //開始接收4組共32位數據
  1076.         {        
  1077.                 for(j=0;j<8;j++)                  //開始接收8bit數據
  1078.                 {
  1079.                         while(!dat);                          //跳過低電平,等待高電平到來比較
  1080.                         while(dat)
  1081.                         {
  1082.                                 delay(83);
  1083.                                 N++;
  1084.                                 if(N>30)
  1085.                                 {
  1086.                                         EA=1;
  1087.                                         return;
  1088.                                 }        
  1089.                         }        
  1090.                         get_data[i]=get_data[i]>>1;
  1091.                         if(N>2&&N<6){get_data[i]=get_data[i]|0x80;}
  1092.                         N=0;
  1093.                 }
  1094.         }
  1095.         if(get_data[2]!=(~get_data[3]))
  1096.         {
  1097.                 EA=1;
  1098.                 return;
  1099.         }
  1100.         key=get_data[2];                                        //將得到的數據送給變量key
  1101.         delay(5000);
  1102.         delay(5000);
  1103.         hongwai_key=1;
  1104.         fenmingqi=0;
  1105.         EA=1;
  1106. }

  1107. /*****************************************定時中斷0入口程序(時鐘時間更新)***********************************************************/
  1108. void update_time0() interrupt 1
  1109. {
  1110.         TH0=0x3C;
  1111.         TL0=0xB0;
  1112.         count_time++;
  1113.         count_nao++;
  1114.         count_LED++;

  1115. }
  1116. /******************************************串口中斷入口程序(串口代替紅外)**********************************************************/
  1117. void chuankou() interrupt 4
  1118. {
  1119.         TR0=0;



  1120.         …………余下代碼請下載附件…………
復制代碼


0.png

單片機紅外遙控報警器全部制作資料下載:
紅外遙控報警器(原理圖 PCB圖 程序 說明文檔).zip (319.77 KB, 下載次數: 217)

評分

參與人數 4黑幣 +132 收起 理由
zb12138 + 10 贊一個!
練氏 + 12
zhaok2013 + 10 很給力!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:165838 發表于 2017-3-11 22:13 | 顯示全部樓層
謝了,拿去學習學習
回復

使用道具 舉報

ID:139323 發表于 2017-4-11 11:33 | 顯示全部樓層
不錯,想學習一下
回復

使用道具 舉報

ID:171746 發表于 2017-4-16 20:31 | 顯示全部樓層
程序有錯誤啊,沒通過。
回復

使用道具 舉報

ID:237063 發表于 2017-10-2 22:44 | 顯示全部樓層
好東西,學習下。
回復

使用道具 舉報

ID:102702 發表于 2017-10-3 01:43 | 顯示全部樓層
好資料,學習一下
回復

使用道具 舉報

ID:241788 發表于 2017-10-22 13:26 | 顯示全部樓層
能不能發到我郵箱里
回復

使用道具 舉報

ID:287527 發表于 2018-3-4 20:11 | 顯示全部樓層

好東西,學習下。
回復

使用道具 舉報

ID:146746 發表于 2018-3-8 16:08 | 顯示全部樓層
贊一個!
回復

使用道具 舉報

ID:289262 發表于 2018-3-29 09:40 | 顯示全部樓層
好東西,下載學習下。
回復

使用道具 舉報

11#
無效樓層,該帖已經被刪除
ID:350853 發表于 2018-7-5 21:41 | 顯示全部樓層
請問電路原理圖有?
回復

使用道具 舉報

ID:380389 發表于 2018-7-29 10:15 來自觸屏版 | 顯示全部樓層
珍藏了
回復

使用道具 舉報

ID:436061 發表于 2018-11-29 20:42 | 顯示全部樓層
javacc 發表于 2017-3-11 22:13
謝了,拿去學習學習

我也要學習
回復

使用道具 舉報

ID:462924 發表于 2019-1-6 11:21 | 顯示全部樓層
學習一下
回復

使用道具 舉報

ID:466131 發表于 2019-6-21 11:52 | 顯示全部樓層
謝謝了,大哥、
回復

使用道具 舉報

ID:573572 發表于 2019-6-27 17:04 | 顯示全部樓層
只能說一聲牛批
回復

使用道具 舉報

ID:114330 發表于 2019-10-29 10:33 | 顯示全部樓層
學習一下,謝謝了
回復

使用道具 舉報

ID:780117 發表于 2020-6-15 17:03 | 顯示全部樓層
學習一下,謝謝了

回復

使用道具 舉報

ID:781499 發表于 2020-6-16 23:08 | 顯示全部樓層
好東西,學習下
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
亚洲成人精品电影在线观看| 在线观看免费黄色小视频| 99re在线视频观看| 亚洲乱码国产乱码精品精| 久久久国产综合精品女国产盗摄| 日韩精品电影| 91在线成人| 国产尤物视频在线| xxx欧美尤物xxx| 亚洲在线精品视频| 蜜桃av.com| www.久久av.com| 懂色av粉嫩av蜜臀av| 国产欧美精品在线播放| 中文国产成人精品久久一| 欧美优质美女网站| 一区精品在线播放| 国产91在线观看丝袜| 亚洲日本视频| 欧洲激情综合| 成人网av.com/| 蜜臀av在线| 视频二区在线| 日本一区二区三区视频在线播放| 欧美大片欧美激情性色a∨久久| 7777精品久久久大香线蕉| 一区二区三区在线免费| 不卡av电影在线播放| 久久亚洲色图| 欧美+亚洲+精品+三区| 国内精品偷拍| 国产成人免费视频网站视频社区| av资源在线看片| 国产美女视频一区二区三区 | 色欲av无码一区二区三区| 777久久久精品一区二区三区| 日韩免费电影一区二区三区| av在线不卡一区| 国产成人精品视频在线| 久久久久国产一区二区三区| 色香阁99久久精品久久久| 精品乱人伦小说| 欧美高清视频一二三区 | 丰满少妇xbxb毛片日本| 国产视频九色蝌蚪| 日产精品久久久久久久蜜臀| 亚洲欧美综合一区| 日韩高清专区| 欧美福利一区二区三区| aaa级精品久久久国产片| 国产日韩在线播放| 国产精品女主播视频| 欧美怡春院一区二区三区| 久久免费视频在线| 欧美精品国产精品日韩精品| 久久久av亚洲男天堂| 色狠狠久久aa北条麻妃| 最新的欧美黄色| 正在播放欧美视频| 视频在线观看99| 日韩视频免费在线| 最近中文字幕mv在线一区二区三区四区| 亚洲精品成人网| 亚洲激情自拍图| 精品五月天久久| 亚洲天堂免费视频| 色先锋资源久久综合5566| 日韩视频免费看| 欧美成人精品不卡视频在线观看| 欧美精品在线免费| 97国产精品久久| 18性欧美xxxⅹ性满足| 91地址最新发布| 国产精品v片在线观看不卡| 国产精品成av人在线视午夜片| 国产999在线| 欧洲成人免费视频| 国产区亚洲区欧美区| 91免费版黄色| 欧美成人免费在线| 亚洲综合首页| 婷婷五月综合缴情在线视频| 日韩人妻精品无码一区二区三区| mm1313亚洲国产精品无码试看| 九九热免费精品视频| 一级黄色大片儿| 91九色单男在线观看| 91久久精品美女高潮| 丁香五月网久久综合| 色吧亚洲视频| 青青草视频在线免费播放| 天天干天天干天天干天天干天天干| www激情五月| 国产综合精品在线| 日韩乱码人妻无码中文字幕| 亚洲一区二区影视| 影音先锋中文字幕在线播放| 午夜免费福利影院| 色天使在线视频| 天海翼在线视频| 精品黑人一区二区三区| 亚洲国产精品二区| 国产欧美一区二区三区小说| 欧洲免费av| 亚洲大胆精品| 国产精品xx| 粉嫩一区二区三区四区公司1| 神马影视一区二区| 国产亚洲综合精品| 99精品国产热久久91蜜凸| 亚洲男人电影天堂| 日韩亚洲欧美一区| 免费91麻豆精品国产自产在线观看| 国产精品久久久久久亚洲调教 | 日韩精品一区二区三区中文字幕 | 精品视频一区二区三区免费| 日韩激情av在线播放| 久久久久久中文| 翡翠波斯猫1977年美国| 成人在线免费高清视频| 91九色蝌蚪porny| 精品成人av一区二区在线播放| 亚洲高清视频在线播放| 国内自拍九色| 欧美三级黄网| 超碰地址久久| 亚洲一区成人| 国产精品久久网站| 欧美一级精品在线| 欧洲成人在线视频| www.午夜色| 91超薄肉色丝袜交足高跟凉鞋| 国产一区二区三区在线视频观看| www.蜜臀av| 电影天堂av在线| а√天堂资源地址在线下载| 国产精品成人自拍| 日韩精品亚洲一区| 亚洲综合一区二区| 在线观看欧美日韩国产| 91丝袜脚交足在线播放| 免费观看精品视频| 91高清免费观看| 黄频网站在线观看| 日本按摩中出| 91av亚洲| 欧美精品观看| 国产精品三级av在线播放| 欧美va亚洲va在线观看蝴蝶网| 97视频在线观看视频免费视频| 亚洲国产高清国产精品| 2一3sex性hd| 国产三级第一页| 很黄很污的网站| 亚洲欧洲精品视频| 最近中文字幕2019第二页视频| 美洲精品一卡2卡三卡4卡四卡| 国产亚洲电影| 91在线视频播放地址| 日韩欧美高清在线| 国产在线拍偷自揄拍精品| 国产亚洲精品网站| 欧美日韩免费做爰视频| 亚洲欧美日韩综合精品网| 加勒比一区二区三区在线| 精品视频高潮| 丁香六月综合激情| 欧美一级专区免费大片| 国产日韩av在线| 777视频在线| 中国精品一区二区| jizz国产| 精品一区二区三区亚洲| 国内精品国产三级国产a久久| 欧美午夜电影网| 国产伦精品免费视频| 性生生活大片免费看视频| 夜夜躁很很躁日日躁麻豆| 一级网站免费观看| 色88888久久久久久影院| 96av麻豆蜜桃一区二区| 亚洲日本欧美中文幕| 天堂资源在线亚洲视频| 欧美激情久久久久久久| 精品卡1卡2卡三卡免费网站| 黄网av在线| 先锋影音久久久| 欧洲一区在线电影| 91免费福利视频| 韩国三级视频在线观看| 特黄视频在线观看| 中文在线观看免费| 久久精选视频| 欧美一级爆毛片| 激情欧美一区二区三区中文字幕| 国产又大又粗又爽的毛片| 国产精品被窝福利一区| 成人全视频免费观看在线看| 国产成人啪午夜精品网站男同| 亚洲成人精品av| 亚洲一卡二卡三卡四卡无卡网站在线看| 黄色香蕉视频在线观看| av在线你懂的| 亚洲+变态+欧美+另类+精品| 亚洲视频 欧洲视频| 4k岛国日韩精品**专区| 91小视频网站| 五十路在线视频| 九色porny自拍视频在线观看| 免费欧美在线视频| 亚洲美女动态图120秒| 国产资源第一页| 伊人精品一区二区三区| 日本成人一级片| 香蕉视频在线免费| 婷婷综合激情| 在线观看日韩精品| 麻豆蜜桃91| 国产情侣在线视频| 欧美白人做受xxxx视频| 极品日韩av| 精品美女在线观看| a级黄色片免费| 国产精品天天操| 蜜桃成人365av| 国产.欧美.日韩| 色综合久久精品亚洲国产| 在线观看免费视频高清游戏推荐| 天天操中文字幕视频| 国产一区二区色噜噜| 国产精品情趣视频| 国产精品视频久久久久| 亚洲精品国产91| a视频v在线| 欧美日韩一区自拍| 精品剧情v国产在线观看在线| 六月婷婷激情网| 亚洲AV无码精品自拍| 婷婷激情一区| 国产精品盗摄一区二区三区| 国产在线日韩在线| 校园春色 亚洲| 日韩av视屏| 日韩黄色片在线观看| 色婷婷久久一区二区| 国内av免费观看| 黄色免费观看| 国产二区精品| 亚洲缚视频在线观看| 激情综合网婷婷| 国产黄色免费| 青青草91久久久久久久久| 精品视频在线看| 国产91沈先生在线播放| 男女作爱免费网站| 超碰精品在线| 欧美日韩三级在线| 老太脱裤让老头玩ⅹxxxx| 亚洲欧美综合图片| 婷婷成人影院| 日韩欧美在线网站| 日韩一级片播放| 尤物视频在线观看网站| 久久国产精品成人免费观看的软件| 91精品免费在线| 日韩福利视频在线| fc2ppv素人在线| 国产精品hd| 日韩视频一区在线| 国产精品密蕾丝袜| 中文字幕在线播放| 国产网红主播福利一区二区| 成人做爰66片免费看网站| 亚洲图片小说视频| 久久婷婷五月综合色丁香| 五月激情丁香一区二区三区| 色一情一乱一乱一区91| 中文字幕先锋av影音资源网| yw3121.龙物视频永不失联| 日韩精品中文字幕第1页| 亚洲精品suv精品一区二区| 在线视频观看91| 日本调教视频在线观看| 麻豆精品蜜桃视频网站| 国产mv免费观看入口亚洲| 日韩欧美国产亚洲| 99亚洲伊人久久精品影院| 色偷偷88欧美精品久久久| 国产毛片视频网站| 蜜桃av导航| 免费成人性网站| 国产欧美中文字幕| 国产精品自拍电影| 日韩黄色网络| 国产亚洲欧美视频| 亚洲av成人无码久久精品| 久久综合之合合综合久久| 国产精品福利一区| eeuss中文| 九九热免费在线视频| 秋霞成人午夜伦在线观看| 国产伦精品免费视频| va视频在线观看| 精品久久久亚洲| 中文字幕欧美在线| 清纯粉嫩极品夜夜嗨av| 成人精品三级| 制服丝袜亚洲网站| 在线免费看黄色片| 成年人黄视频在线观看| 亚洲国产一二三| 人人干人人视频| 婷婷国产在线| 最新不卡av在线| 日韩在线综合网| 麻豆影视在线观看| 国产精品蜜臀在线观看| av在线播放天堂| 免费观看一二区视频网站| 91丨九色porny丨蝌蚪| 欧美日韩在线免费观看视频| 色总=综合色| 91丨porny丨蝌蚪视频| 黄色网zhan| 久播影院第一理论片| 国产日产精品1区| 丁香六月激情婷婷| 超碰在线一区二区三区| 国产精品午夜在线观看| 久久亚洲中文字幕无码| 中文在线а√在线| 亚洲人成亚洲人成在线观看图片 | 亚洲国产精品久久网午夜小说| 一区二区自拍| 亚洲最大成人免费视频| 欧美色图欧美色图| 久久成人精品无人区| 免费99视频| 色视频在线看| 九九热线视频只有这里最精品| 国产白丝在线观看| 激情亚洲成人| 精品国产电影| 青草av.久久免费一区| 欧美视频中文字幕在线| 国产无色aaa| av片在线观看永久免费| 欧美吞精做爰啪啪高潮| 亚洲伦理久久| 少妇激情综合网| 亚洲三级中文字幕| 99久久精品免费精品国产| 午夜免费看毛片| 日韩色性视频| 日韩av第一页| 青青草娱乐视频| 亚洲影院理伦片| 顶级黑人搡bbw搡bbbb搡| 久久中文字幕av| 日韩欧美三级一区二区| 最新97超碰在线| 国产亚洲精品综合一区91| 亚洲热在线观看| 中文字幕精品一区二区三区精品| 自拍视频一区二区| 国产一区二区三区四区| 国产在线一区二| 国产中文字幕在线| 亚洲毛片在线免费观看| 一区三区三区不卡| 国产精品你懂的在线欣赏| 一区二区三区四区免费| 欧美gayvideo| 色一情一乱一伦一区二区三区| 日本在线观看| 色多多国产成人永久免费网站 | 中文字幕天堂av| 妖精视频一区二区三区免费观看 | 影音先锋中文字幕第一页| 国产精品国产三级国产普通话三级| 一级黄色录像毛片| 一区二区三区网站| 国产精品久久久久久久乖乖| 欧美日韩精品免费观看视欧美高清免费大片| 91大神在线播放精品| xxxx69视频| 亚洲福利视频专区| 亚洲国产精品久久久久婷婷软件| 一区二区三区日韩欧美精品| 国产一级一级片| 国内精品不卡在线| 性欧美18—19sex性高清| 凹凸成人精品亚洲精品密奴| 色乱码一区二区三区熟女| 欧美gay视频| 亚洲综合在线小说| 色三级在线观看| 久久久久久久电影一区| 成人精品3d动漫| 亚洲精品天天看|