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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機12864鬧鐘代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:432036 發表于 2018-11-23 19:55 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
鬧鐘簡單代碼
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #include<stdlib.h>

  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. /*端口定義*/
  7. sbit LCD_RS=P2^6;
  8. sbit LCD_RW=P2^5;
  9. sbit LCD_EN=P2^4;
  10. sbit LCD_PSB=P2^3;
  11. sbit DQ=P3^7;                              //18b20
  12. sbit SDA=P1^4;                              //ds32321            //模擬I2C數據傳送位SDA        
  13. sbit SCL=P1^3;                                   //模擬I2C時鐘控制位SCL
  14. //***按鍵功能****//
  15. ////***K1停止時間顯示****//
  16. ////***K2選擇修改位置****//
  17. ////***K3進行加1的修改****//
  18. ////***K4將修改寫入ds3231,同時啟動時間顯示****//
  19. sbit K1=P3^2;                       
  20. sbit K2=P3^3;
  21. sbit K3=P3^4;
  22. sbit K4=P3^5;
  23. //定義變量               
  24. uchar numbr[10]="0123456789";                      //字模


  25. uchar dis4[]="   ";                                                            //          第四行顯示   自己添加
  26. uchar t[]="  .   ℃" ;                                            //18b20
  27. uint sdata,xiaoshu1,xiaoshu2;                                 //整數、小數1位、小數2位
  28. bit fg=1;                                  //溫度正負標志
  29. uchar tempL=0,tempH=0;                                                                // 變量         
  30. uchar year,month,date,hour,min,sec;                                 //    ds3231
  31. uchar a[]="2011年22月33日";
  32. uchar b[]="11時22分33秒";
  33.                                 ///函數
  34. //******************延時子程序 *******************************

  35. //這個延時程序的具體延時時間是time=i*8+10,適用于小于2ms的延時

  36. //************************************************************
  37. void delay(unsigned char i)
  38. {
  39. for(i;i>0;i--);
  40. }
  41. //***********************************************************
  42. //                     延時子程序
  43. //************************************************************
  44. void delay1ms(uchar j)
  45. {
  46. while(j!=0)
  47. {uchar i;
  48. for(i=124;i>0;i--);  //延時124*8+10=1002us
  49. j--;
  50. }
  51. }
  52. /**************************12864部分*************************************/
  53. /**************************12864部分*************************************/     
  54.                                                                                              /*寫指令數據到LCD
  55.                                                                                              RS=L——表示DB0-DB7為顯示指令數據
  56.                                                                                              RW=L——表示DB0-DB7數據被write(當E=“H-L”,指令數據被寫到IR或DR)
  57.                                                                                              E=高脈沖
  58.                                                                                              此時DB0-DB7=指令碼   */
  59. void write_cmd(uchar cmd)
  60. {
  61.          LCD_RS=0;
  62.          LCD_RW=0;
  63.          LCD_EN=0;
  64.          P0=cmd;
  65.          delay1ms(5);
  66.          LCD_EN=1;
  67.          delay1ms(5);
  68.          LCD_EN=0;
  69. }
  70.                                                                                     /*設定顯示位置*/
  71. void lcd_pos(uchar X, uchar Y)
  72. {
  73.          ucharpos;

  74.          if(X== 0)
  75.          {
  76.                    X= 0x80;
  77.          }
  78.          elseif(X == 1)
  79.          {
  80.                    X= 0x90;
  81.          }
  82.          elseif(X == 2)
  83.          {
  84.                    X= 0x88;
  85.          }
  86.          elseif(X == 3)
  87.          {
  88.                    X= 0x98;
  89.          }
  90.          pos= X + Y;
  91.          write_cmd(pos);                                                     //顯示地址
  92. }

  93.                                                                                                                 /*寫顯示數據到LCD*/
  94.                                                                                                                 /*
  95.                                                                                                                          RS=H——表示DB0-DB7為顯示數據
  96.                                                                                                                          RW=L——RW=L,E='H-L',DB0-DB7數據被寫到IR或DR   
  97.                                                                                                                           E=高脈沖
  98.                                                                                                                          DB0-DB7=顯示數據        */
  99. void write_dat(uchar dat)
  100. {
  101.          LCD_RS=1;
  102.          LCD_RW=0;
  103.          LCD_EN=0;
  104.          P0=dat;
  105.          delay1ms(5);
  106.          LCD_EN=1;
  107.          delay1ms(5);
  108.          LCD_EN=0;
  109. }
  110.                                                                                                                          /*LCD初始化*/
  111. void lcd_init()
  112. {        uinti;

  113.          LCD_PSB=1;                                                                                //并口方式
  114.          write_cmd(0x30);                                                            //基本操作指令
  115.          delay1ms(5);
  116.          write_cmd(0x0c);                                                            //打開顯示,光標關閉
  117.          delay1ms(5);
  118.          write_cmd(0x01);                                                            //清除LCD顯示類容
  119.          delay1ms(5);


  120.          lcd_pos(3,0);
  121.                                      i=0;
  122.                                      while(dis4[ i]!='\0')
  123.                                                {
  124.                                                delay1ms(1);
  125.                                                write_dat(dis4);
  126.                                                delay1ms(1);
  127.                                                i++;
  128.                                                }

  129. }
  130. /**********************************18b20************************************************/
  131. /**********************************18b20************************************************/


  132. void Init_DS18B20(void)                                                                                              //初始化
  133. {
  134. uchar x=0;
  135. DQ=1; //DQ先置高
  136. delay(8); //稍延時
  137. DQ=0; //發送復位脈沖
  138. delay(80); //延時(>480us)
  139. DQ=1; //拉高數據線
  140. delay(5); //等待(15~60us)
  141. x=DQ; //用X的值來判斷初始化有沒有成功,18B20存在的話X=0,否則X=1
  142. delay(20);
  143. }

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

  145. ReadOneChar(void)  //主機數據線先從高拉至低電平1us以上,再使數據線升為高電平,從而產生讀信號
  146. {
  147. unsigned char i=0; //每個讀周期最短的持續時間為60us,各個讀周期之間必須有1us以上的高電平恢復期
  148. unsigned char dat=0;
  149. for (i=8;i>0;i--) //一個字節有8位
  150. {
  151. DQ=1;
  152. delay(1);
  153. DQ=0;
  154. dat>>=1;
  155. DQ=1;
  156. if(DQ)
  157. dat|=0x80;
  158. delay(4);
  159. }
  160. return(dat);
  161. }
  162. //*********************** **寫一個字節**************************//

  163. void WriteOneChar(unsigned char dat)
  164. {
  165. unsigned char i=0; //數據線從高電平拉至低電平,產生寫起始信號。15us之內將所需寫的位送到數據線上,
  166. for(i=8;i>0;i--) //在15~60us之間對數據線進行采樣,如果是高電平就寫1,低寫0發生。
  167.   {
  168.   DQ=0; //在開始另一個寫周期前必須有1us以上的高電平恢復期。
  169.   DQ=dat&0x01;
  170.   delay(5);
  171.   DQ=1;
  172.   dat>>=1;
  173.   }
  174. delay(4);
  175. }

  176. void ReadTemperature(void)                                                                                      //讀溫度值(低位放tempL;高位放tempH;)//
  177.          {
  178.           Init_DS18B20(); //初始化
  179.           WriteOneChar(0xcc); //跳過讀序列號的操作
  180.           WriteOneChar(0x44); //啟動溫度轉換
  181.           delay(125); //轉換需要一點時間,延時
  182.           Init_DS18B20(); //初始化
  183.           WriteOneChar(0xcc); //跳過讀序列號的操作
  184.           WriteOneChar(0xbe); //讀溫度寄存器(頭兩個值分別為溫度的低位和高位)
  185.           tempL=ReadOneChar(); //讀出溫度的低位LSB
  186.           tempH=ReadOneChar(); //讀出溫度的高位MSB

  187.                    if(tempH>0x7f)      //最高位為1時溫度是負
  188.                    {
  189.                     tempL=~tempL;         //補碼轉換,取反加一
  190.                     tempH=~tempH+1;      
  191.                     fg=0;     //讀取溫度為負時fg=0
  192.       }
  193.                    sdata= tempL/16+tempH*16;      //整數部分
  194.                    xiaoshu1= (tempL&0x0f)*10/16; //小數第一位
  195.                    xiaoshu2= (tempL&0x0f)*100/16%10;//小數第二位
  196.                    t[0]=numbr[sdata/10];
  197.                    t[1]=numbr[sdata%10];
  198.                    t[3]=numbr[xiaoshu1];
  199.                    t[4]=numbr[xiaoshu2];

  200.          }
  201. /*****************************************ds3231********************************************/

  202. #define ADDRTW          0xD0    //器件寫地址
  203. #define ADDRTD          0xD1 //器件讀地址
  204. #define DS3231_SEC      0x00   //秒
  205. #define DS3231_MIN      0x01   //分
  206. #define DS3231_HOUR     0x02   //時
  207. #define DS3231_DAY      0x03   //星期
  208. #define DS3231_DATE     0x04   //日
  209. #define DS3231_MONTH    0x05   //月
  210. #define DS3231_YEAR     0x06   //年
  211. //鬧鈴1            
  212. #define DS3231_Al1SEC   0x07   //秒
  213. #define DS3231_AL1MIN   0x08   //分
  214. #define DS3231_AL1HOUR  0x09   //時
  215. #define DS3231_AL1DAY   0x0A   //星期/日
  216. //鬧鈴2
  217. #define DS3231_AL2MIN   0x0b   //分
  218. #define DS3231_AL2HOUR  0x0c   //時
  219. #define DS3231_AL2DAY   0x0d   //星期/日
  220. #define DS3231_CONTROL  0x0e   //控制寄存器
  221. #define DS3231_STATUS   0x0f   //狀態寄存器
  222. bit ack;


  223. uchar BCD2HEX(uchar val)           //BCD轉換為Byte           
  224. {        uchari;
  225.    i= val&0x0f;
  226.    val >>= 4;
  227.    val &= 0x0f;
  228.    val *= 10;
  229.     i+= val;

  230.    return i;
  231. }


  232. uchar HEX2BCD(uchar val)//B碼轉換為BCD碼
  233.          {
  234.          uchari,j,k;

  235.            i=val/10;
  236.            j=val%10;
  237.            k=j+(i<<4);
  238.            return k;
  239.          }

  240. void Start()      
  241. {
  242.    SDA=1;                  //發送起始條件的數據信號
  243.    delay(1);
  244.    SCL=1;
  245.    delay(5);             //起始條件建立時間大于4.7us,延時
  246.      SDA=0;                  //發送起始信號
  247.    delay(5);             // 起始條件鎖定時間大于4μs
  248.    SCL=0;                  //鉗住I2C總線,準備發送或接收數據
  249.    delay(2);
  250. }
  251. void Stop()
  252. {
  253.    SDA=0;                  //發送結束條件的數據信號
  254.    delay(1);             //發送結束條件的時鐘信號
  255.    SCL=1;                  //結束條件建立時間大于4us
  256.     delay(5);

  257.    SDA=1;                  //發送I2C總線結束信號
  258.    delay(4);
  259. }
  260. /********************************************************/
  261. /*******************************************************************
  262.                   字節數據發送函數               
  263. 函數原型:     void  SendByte(uchar Dat);
  264. 功能:      將數據c發送出去,可以是地址,也可以是數據,發完后等待應答,并對
  265.           此狀態位進行操作.(不應答或非應答都使ack=0)
  266.           ack=1        發送數據正常,
  267.           ack=0        被控器無應答或損壞。
  268. ********************************************************************/
  269. void SendByte(uchar Dat)
  270. {
  271. uchar BitCnt;

  272.    for(BitCnt=0;BitCnt<8;BitCnt++)         //要傳送的數據長度為8位
  273.     {
  274.        if((Dat<<BitCnt)&0x80)
  275.            SDA=1;                          //判斷發送位
  276.        else
  277.            SDA=0;               
  278.          delay(1);
  279.          SCL=1;                            //置時鐘線為高,通知被控器開始接收數據位
  280.          delay(5);                       //保證時鐘高電平周期大于4μs   
  281.          SCL=0;
  282.     }

  283.    delay(2);
  284.    SDA=1;                                 //8位發送完后釋放數據線,準備接收應答位
  285.    delay(2);  
  286.    SCL=1;
  287.     delay(3);
  288.    if(SDA==1)
  289.        ack=0;   
  290.    else
  291.        ack=1;                             //判斷是否接收到應答信號
  292.    SCL=0;
  293.    delay(2);
  294. }

  295. uchar RcvByte()                                                                                  //功能:     用來接收從器件傳來的數據,并判斷總線錯誤(不發應答信號),發完后請用應答函數應答從機。
  296. {
  297. uchar retc;
  298. uchar BitCnt;

  299.   retc=0;
  300.   SDA=1;                          //置數據線為輸入方式
  301.   for(BitCnt=0;BitCnt<8;BitCnt++)
  302.    {
  303.        delay(1);  
  304.        SCL=0;                      //置時鐘線為低,準備接收數據位

  305.        delay(5);                 //時鐘低電平周期大于4.7μs

  306.        SCL=1;                      //置時鐘線為高使數據線上數據有效
  307.        delay(3);
  308.        retc=retc<<1;
  309.        if(SDA==1)
  310.            retc=retc+1;            //讀數據位,接收的數據位放入retc中
  311.        delay(2);
  312.    }
  313.   SCL=0;
  314.   delay(2);
  315.   return(retc);
  316. }

  317. void I2CACK(bit a)                       // 功能:       主控器進行應答信號(可以是應答或非應答信號,由位參數a決定)
  318. {

  319.    if(a==0)
  320.        SDA=0;              //在此發出應答或非應答信號
  321.    else
  322.        SDA=1;
  323.    delay(3);     
  324.    SCL=1;

  325.    delay(5);             //時鐘低電平周期大于4μs

  326.    SCL=0;                  //清時鐘線,鉗住I2C總線以便繼續接收
  327.    delay(2);   
  328. }



  329. uchar I2CRead()                                                                                  /************從DS3231當前地址讀一個字節************/
  330. {
  331. uchar read_data;
  332.          Start();
  333.    SendByte(ADDRTD);                                             
  334.    if(ack==0)
  335.     {
  336. return(0);
  337.     }
  338.    read_data = RcvByte();
  339.    I2CACK(1);
  340.    Stop();
  341.    return read_data;
  342. }


  343. uchar I2CReadAdd(uchar addr)                                                      /************從DS3231指定地址讀一個字節************/
  344.          {
  345.              Start();
  346.              SendByte(ADDRTW);                           
  347.              if(ack==0)
  348.              {        
  349.            return(0);
  350.              }
  351.              SendByte(addr);
  352.              if(ack==0)
  353.              {        
  354.            return(0);
  355.              }
  356.              return(I2CRead());
  357.          }
  358. void Readtime()                                                                                            /*********************讀取時間**********************/
  359.          {
  360.           uchar temp;
  361.           temp=I2CReadAdd(DS3231_SEC);//秒
  362.           sec=BCD2HEX(temp);

  363.           temp=I2CReadAdd(DS3231_MIN);//分
  364.           min=BCD2HEX(temp);

  365.           temp=I2CReadAdd(DS3231_HOUR);  //時                  
  366.           hour=BCD2HEX(temp);

  367.           temp=I2CReadAdd(DS3231_DATE);  //日
  368.           date=BCD2HEX(temp);

  369.           temp=I2CReadAdd(DS3231_MONTH); //月
  370.           month=BCD2HEX(temp);

  371.           temp=I2CReadAdd(DS3231_YEAR);  //年
  372.           year=BCD2HEX(temp);
  373.           }

  374. void InitDS3231()                                                                                                            //ds3231初始化
  375.          {SCL=1;
  376.           delay(5);
  377.           SDA=1;
  378.           delay(5);

  379.          }
  380. void TimeDisplay(uchar Dhour,ucharDmin,uchar Dsec)                                     //時分秒數組賦值
  381.          {        b[0]=numbr[Dhour / 10];        // 時十位
  382.              b[1]=numbr[Dhour % 10];        // 時個位
  383.              b[4]=numbr[Dmin / 10];         // 分十位
  384.              b[5]=numbr[Dmin % 10];         // 分個位
  385.              b[8]=numbr[Dsec / 10];         // 秒十位
  386.              b[9]=numbr[Dsec % 10];         // 秒個位
  387.          }
  388. void DateDisplay(uchar Dyear,ucharDmonth,uchar Dday)                       //年月天數組賦值   
  389.          {        a[2]=numbr[Dyear / 10];        // 年十位
  390.              a[3]=numbr[Dyear % 10];        // 年個位
  391.              a[6]=numbr[Dmonth / 10];       // 月十位
  392.              a[7]=numbr[Dmonth % 10];       // 月個位
  393.              a[10]=numbr[Dday / 10];         // 天十位
  394.              a[11]=numbr[Dday % 10];         // 天個位                                   
  395.          }

  396. void Start_I2C()
  397. {
  398.    SDA=1;                  //發送起始條件的數據信號
  399.    delay(1);
  400.    SCL=1;
  401.    delay(5);             //起始條件建立時間大于4.7us,延時

  402.    SDA=0;                  //發送起始信號
  403.    delay(5);             // 起始條件鎖定時間大于4μs

  404.    SCL=0;                  //鉗住I2C總線,準備發送或接收數據
  405.    delay(2);
  406. }

  407. void Stop_I2C()
  408. {
  409.     SDA=0;                  //發送結束條件的數據信號
  410.    delay(1);             //發送結束條件的時鐘信號
  411.    SCL=1;                  //結束條件建立時間大于4us
  412.    delay(5);

  413.    SDA=1;                  //發送I2C總線結束信號
  414.    delay(4);
  415. }

  416. uchar write_byte(uchar addr, ucharwrite_data)
  417. {
  418.    Start_I2C();
  419.    SendByte(ADDRTW);                //////*******************************************************************///////////
  420.    if (ack == 0)
  421.        return 0;

  422.    SendByte(addr);   
  423.    if (ack == 0)
  424.        return 0;

  425.    SendByte(write_data);
  426.    if (ack == 0)
  427.        return 0;

  428.    Stop_I2C();
  429.     delay1ms(10);      
  430.    return 1;
  431. }

  432. void ModifyTime(uchar yea,uchar mon,ucharda,uchar hou,uchar min,uchar sec)
  433. {     uchar temp=0;

  434.    temp=HEX2BCD(yea);
  435.    write_byte(DS3231_YEAR,temp);   //修改年

  436.    temp=HEX2BCD(mon);
  437.    write_byte(DS3231_MONTH,temp);  //修改月

  438.    temp=HEX2BCD(da);                                                                                     /////////////////////
  439.    write_byte(DS3231_DATE,temp);   //修改日

  440.    temp=HEX2BCD(hou);
  441.    write_byte(DS3231_HOUR,temp);   //修改時

  442.    temp=HEX2BCD(min);
  443.    write_byte(DS3231_MIN,temp); //修改分

  444.    temp=HEX2BCD(sec);
  445.    write_byte(DS3231_SEC,temp); //修改秒
  446. }





  447. void xianshi(void)
  448.    {

  449.                             {uint i;


  450.                    TimeDisplay(hour,min,sec);                                                                                         
  451.                                      lcd_pos(1,1);                         //時間
  452.                                      i=0;
  453.                                      while(b[ i]!='\0')
  454.                                                {
  455.                                                delay1ms(1);
  456.                                                write_dat(b);
  457.                                                delay1ms(1);
  458.                                                i++;
  459.                                                }

  460.                                      DateDisplay(year,month,date);        //顯示日期                                                                                                                                                                    
  461.                                      delay1ms(1);
  462.                                      lcd_pos(0,0);
  463.                                      i=0;
  464.                                      while(a[ i]!='\0')
  465.                                                {
  466.                                                delay1ms(1);
  467.                                                write_dat(a);
  468.                                                delay1ms(1);
  469.                                                i++;
  470.                                                }
  471.                                      ReadTemperature();                                                                //顯示溫度
  472.                                      delay1ms(1);
  473.                                      lcd_pos(2,1);
  474.                                      delay1ms(1);
  475.                                      i=0;
  476.                                      while(t[ i]!='\0')
  477.                                                         {
  478.                                                         delay1ms(1);
  479.                                                         write_dat(t);
  480.                                                         delay1ms(2);
  481.                                                         i++;
  482.                                                         }
  483.                             }
  484. }

  485. void shuaxin(void)
  486.          {                 uint i;
  487.                  TimeDisplay(hour,min,sec);                                                                                         
  488.                                      lcd_pos(1,1);                         //時間
  489.                                      i=0;
  490.                                      while(b[ i]!='\0')
  491.                                                {
  492.                                                delay1ms(1);
  493.                                                write_dat(b);
  494.                                                delay1ms(1);
  495.                                                i++;
  496.                                                }

  497.                                      DateDisplay(year,month,date);        //顯示日期                                                                                                                                                                    
  498.                                      delay1ms(1);
  499.                                      lcd_pos(0,0);
  500.                                      i=0;
  501.                                      while(a[ i]!='\0')
  502.                                                {
  503.                                                delay1ms(1);
  504.                                                write_dat(a);
  505.                                                delay1ms(1);
  506.                                                i++;
  507.                                                }
  508.          }



  509. void sotp(void)                                                                                                                 
  510. {
  511.          uinti;                     

  512. while(1)
  513.           {
  514.          duan1:                if(K1==0)
  515.                             {
  516.                             delay1ms(100);
  517.                             if(K1==0)
  518.                                      {
  519.                                      Readtime();
  520.                                      shuaxin();
  521.                                      i=0;
  522.                             gotoduan2;

  523.                                      }
  524.                             }
  525.                             else
  526.                             {gotoduan5;}

  527.          duan2:               if(K2==0)
  528.                             {
  529.                                      delay1ms(100);
  530.                                      if(K2==0)
  531.                                      {
  532.                                      i++;
  533.                                      if(i>6){i=0;}
  534.                                      shuaxin();
  535.                                      }        
  536.                             }
  537.                             switch(i)
  538.                              {
  539.                                      case 0:  if(K3==0){delay1ms(100);if(K3==0){year=year+1;}                 if(year>=100){year=0;}                                                             shuaxin();}break;
  540.                                       case 1:  if(K3==0){delay1ms(100);if(K3==0){month=month+1;}         if(month>=13){month=0;}                                                                shuaxin();}break;
  541.                                      case 2:  if(K3==0){delay1ms(100);if(K3==0){date=date+1;}                if(date>=32){date=0;}                                                              shuaxin();}break;
  542.                                      case 3:  if(K3==0){delay1ms(100);if(K3==0){hour=hour+1;}                if(hour>=25){hour=0;}                                                              shuaxin();}break;
  543.                                      case 4:  if(K3==0){delay1ms(100);if(K3==0){min=min+1;}                 if(min>=61){min=0;}                                                                        shuaxin();}break;
  544.                                      case 5:  if(K3==0){delay1ms(100);if(K3==0){sec=sec+1;}                   if(sec>=61){sec=0;}                                                                shuaxin();} break;
  545.                              }


  546.          duan4:               if(K4==0)
  547.                             {
  548.                             delay1ms(100);
  549.                             if(K4==0)
  550.                             {
  551.                             ModifyTime(year,month,date,hour,min,sec);
  552.                             gotoduan5;                                 ///////////////////*******************//////////
  553.                             }        
  554.                    }

  555.                           else
  556.                             {gotoduan2;}







  557. duan5:      Readtime();
  558.                     xianshi();
  559.                    }

  560.          }




  561. main()                                              /*主程序*/
  562. {


  563.          lcd_init();
  564.          delay1ms(5);
  565.          InitDS3231();
  566.          delay1ms(5);
  567.          delay1ms(5);
  568.          sotp();      
  569. }
復制代碼


鬧鐘.docx

18.31 KB, 下載次數: 5, 下載積分: 黑幣 -5

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久成人免费 | 中午字幕在线观看 | 欧美色综合一区二区三区 | 99精品一区 | 天天澡天天狠天天天做 | 在线视频 亚洲 | 日日噜噜夜夜爽爽狠狠 | 99精品电影 | 午夜极品 | 99婷婷| 91视频.com| 一级毛片播放 | 欧美亚洲第一区 | 三级视频久久 | 亚洲精品第一国产综合野 | 久久视频免费观看 | 国产精品一区二区三 | 日韩av电影院 | 午夜丰满寂寞少妇精品 | 一区二区在线观看免费视频 | 97视频在线观看网站 | 91精品国产91久久综合桃花 | 国产成人99久久亚洲综合精品 | 日韩在线小视频 | 国产精品乱码一区二区三区 | 欧美区日韩区 | 成人在线免费电影 | 一级毛片黄片 | 久草综合在线 | 青娱乐国产 | 欧美日韩精品中文字幕 | 久久这里有精品 | 日韩一区在线播放 | www.亚洲一区 | 九九久久精品 | 日韩天堂av| 97视频在线观看免费 | 中文字幕亚洲一区二区三区 | 狠狠操婷婷 | h视频免费在线观看 | 久久九九99 |