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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

自己做得單片機萬年歷 Proteus仿真程序與原理圖PCB文件

[復制鏈接]
跳轉到指定樓層
樓主
自己做的
Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


Proteus仿真是用8.1版本的

單片機源程序如下:
  1. /*
  2. * 萬年歷
  3. */

  4. #include "main.h"                         //包含頭文件main.h
  5. #include "LCD.h"                        //包含頭文件LCD.h
  6. #include "DS1302.h"                        //包含頭文件DS1302.h
  7. #include "word.h"                        //包含頭文件word.h
  8. #include "lunar_calendar.h" //包含頭文件lunar_calendar.h
  9. #include "buzz.h"                        //包含頭文件buzz.h


  10. TIME time, tmp_time;        //時間變量
  11. ALARM alarm;                                //時間變量
  12. bit Alarm_flag=0;                        //時間變量
  13. bit Clock_flag=0;                        //時間變量
  14. bit flag=0;                                        //時間變量

  15. sbit DQ=P2^6;   //DS18B20 pin 溫度傳感器引腳

  16. //-----------------18B20-----------------------
  17. unsigned char L_18B20,H_18B20,zhengshu,shangwen,xiawen;  //溫度用變量
  18. unsigned int fg=0,xiaoshu_a;                                                        //溫度用變量
  19. //-----------------18B20----------------------
  20. //-------------音樂-----------------------------
  21. uint8 code SONG_TONE[]=          //音樂數據
  22. {
  23.         212,212,190,212,159,169,212,212,190,212,142,159,212,212,106,126,129,169,190,119,119,126,159,142,159,0
  24. };
  25. uint8 code SONG_LONG[]=//
  26. {
  27.         9,3,12,12,12,24,9,3,12,12,12,24,9,3,12,12,12,12,12,9,3,12,12,12,24,0
  28. };
  29. //------------------------------------------------------------

  30. void delay(uint16 n)//延時us級
  31. {
  32.         while (n--);
  33. }
  34. //************************************************************************/
  35. // 函數: LCD_Delay()
  36. // 描述: 延時t ms函數
  37. // 參數: t
  38. // 返回: 無
  39. // 備注: 11.0592MHZ       t=1延時時間約1ms
  40. // 版本:  2011/01/01      First version
  41. //************************************************************************/
  42. void Delay_nms(unsigned int t)
  43. {
  44.         unsigned int i,j;
  45.         for(i=0;i<t;i++)             //循環t次
  46.         for(j=0;j<113;j++)                 //循環113次 每次約3us
  47.         ;
  48. }
  49. /////////////////////////////////////////////////
  50. //-----------播放音樂----------------------------
  51. void PlayMusic()
  52. {
  53.         uint16 i =0,j,k;
  54.         while(SONG_LONG[i]!=0||SONG_TONE[i]!=0)
  55.         {
  56.                  for(j=0;j<SONG_LONG[i]*20;j++)                 //讀取數據
  57.                 {
  58.                          BEEP = ~BEEP;                                        //蜂鳴器取反
  59.                         for(k=0;k<SONG_TONE[i]/3;k++);  //讀取數據
  60.                 }
  61.                 Delay_nms(10);                                                //延時10ms
  62.                 i++;                                             //累加1
  63.         }
  64.         BEEP =1;                                                                //關閉蜂鳴器
  65. }
  66. /////////////////////////////////////////////////
  67. /*------DS18B20------*/
  68. void delay_18B20(unsigned int i)
  69. {
  70.         while(i--);
  71. }
  72. /*DS18B20的復位脈沖 主機通過拉低單總線至少480us以產生復位脈沖
  73.   然后主機釋放單總線并進入接收模式 此時單總線電平被拉高
  74.   DS18B20檢測到上升沿后 延時15~60us,拉低總線60~240us產生應答脈沖  */                                               
  75. void Init_DS18B20(void)
  76. {
  77.          unsigned char x=0;
  78.          DQ = 1;          //DQ復位
  79.          delay_18B20(8);  //稍做延時
  80.          DQ = 0;          //單片機將DQ拉低
  81.          delay_18B20(80); //精確延時 大于 480us
  82.          DQ = 1;          //拉高總線
  83.          delay_18B20(14); //延時
  84.          x=DQ;            //稍做延時后 如果x=0則初始化成功 x=1則初始化失敗
  85.          delay_18B20(20); //延時
  86. }

  87. /*寫時隙 主機在寫1時隙向DS18B20寫入1,在寫0時隙向DS18B20寫入0
  88.   所有寫時隙至少需要60us,且在兩次寫時隙之間至少需要1us的恢復時間
  89.   兩種寫時隙均以主機拉低總線開始
  90.   產生寫1時隙:主機拉低總線后,必須在15us內釋放總線,由上拉電阻拉回至高電平
  91.   產生寫0時隙:主機拉低總線后,必須整個時隙保持低電平 */
  92. void WriteOneChar(unsigned char dat)
  93. {
  94.         unsigned char i=0;
  95.         for (i=8; i>0; i--)//循環8次
  96.         {
  97.                   DQ = 0;                        //DQ輸出0
  98.                 DQ = dat&0x01;
  99.             delay_18B20(5); //延時
  100.                 DQ = 1;         //DQ輸出1
  101.             dat>>=1;        //右移位
  102. }
  103. }
  104.   
  105. /*所有讀時隙至少60us 且兩次獨立的讀時隙之間至少需要1us的恢復時間
  106.   每次讀時隙由主機發起,拉低總線至少1us。
  107.   若傳1,則保持總線高電平;若發送0,則拉低總線
  108.   傳0時DS18B20在該時隙結束時釋放總線,再拉回高電平狀態,主機必須在讀時隙開始后的15us內釋放總線,并保持采樣總線狀態 */
  109. unsigned char ReadOneChar(void)
  110. {
  111.         unsigned char i=0;
  112.         unsigned char dat = 0;
  113.         for (i=8;i>0;i--)
  114.          {
  115.                   DQ = 0;                 // 給脈沖信號
  116.                   dat>>=1;      //移位
  117.                   DQ = 1;                 // 給脈沖信號
  118.                   if(DQ)       //如果DQ=1,執行下面的語句   
  119.                   dat|=0x80;
  120.                   delay_18B20(4);//延時
  121.          }
  122.         return(dat);                //返回數據
  123. }
  124.                  

  125. void read_18B20(void)
  126. {

  127.         Init_DS18B20();
  128.         WriteOneChar(0xCC);            // 跳過讀序號列號的操作
  129.         WriteOneChar(0x44);         // 啟動溫度轉換

  130.         delay_18B20(100);       // this message is wery important

  131.         Init_DS18B20();                        //初始化DS18B20
  132.         WriteOneChar(0xCC);         //跳過讀序號列號的操作
  133.         WriteOneChar(0xBE);         //讀取溫度寄存器等(共可讀9個寄存器) 前兩個就是溫度

  134.         delay_18B20(100);                //延時

  135.         L_18B20=ReadOneChar();        //讀取低八位數據
  136.         H_18B20=ReadOneChar();        //讀取高八位數據

  137.         zhengshu=L_18B20/16+H_18B20*16; //整數部分
  138.         xiaoshu_a=(L_18B20&0x0f)*10/16; //小數第一位
  139. }
  140. //------------------DS18B20---------------------
  141. /////////////////////////////////////////////////
  142. /*
  143. * 按鍵掃描
  144. */
  145. int8 scan_key(void)
  146. {
  147.         int8 val=-1;                  //初始化鍵值為-1

  148.         if (KeyIn1 == 0)                 //判斷=0?有無按鍵按鍵
  149.         {
  150.                 val = 1;                         //鍵值=1
  151.                 while (KeyIn1 == 0); //等待按鍵釋放
  152.         }
  153.         else if (KeyIn2 == 0)         //判斷=0?有無按鍵按鍵
  154.         {
  155.                 val = 2;                        //鍵值=2
  156.                 while (KeyIn2 == 0);//等待按鍵釋放
  157.         }
  158.         else if (KeyIn3 == 0)        //判斷=0?有無按鍵按鍵
  159.         {
  160.                 val = 3;                        //鍵值=3
  161.                 while (KeyIn3 == 0);//等待按鍵釋放
  162.         }

  163.         //if (val > 0)
  164.                 //buzzer_sound();

  165.         return val;                                //返回鍵值
  166. }

  167. /*
  168. * 主界面框架
  169. */
  170. void main_frame(void)
  171. {
  172.         play32(80, 2, 10); //顯示數
  173.         play32(32, 2, 10); //顯示數
  174.         play8(16, 0, S_xie);//顯示斜線
  175.         play8(40, 0, S_xie);//顯示斜線
  176. //        play8(96, 0, RH);
  177. //        play8(120, 0, S_percent);
  178.         play8(120, 6, S_du);//顯示度
  179. }

  180. /*
  181. * 主界面
  182. */
  183. void main_show(bit refresh)
  184. {
  185.     uint8  lunar[2];
  186.         if (refresh)
  187.                 read_time((uint8 *)&time);// 讀時間函數// 時間                                                                                          
  188.         if (refresh || (time.sec != tmp_time.sec)) // 秒更新
  189.         {
  190.                 tmp_time.sec = time.sec;                                  //讀取秒數據
  191.             play8_num(104, 6,zhengshu);                           //溫度顯示
  192.                 play32_num(96, 2, time.sec);                        //顯示秒
  193.         }
  194.         if (refresh)
  195.                 main_frame();//刷新界面
  196.         if (refresh || (time.min != tmp_time.min)) // 分更新
  197.         {
  198.                 if (!refresh)
  199.                         flag = 0;
  200.                 tmp_time.min = time.min;//讀取分
  201.                 play32_num(48, 2, time.min); //顯示分
  202.         }
  203.         if (refresh || (time.hour != tmp_time.hour)) // 時更新
  204.         {
  205.                 if ((!refresh)&&(Clock_flag))
  206.                         alarm_sound();
  207.                 tmp_time.hour = time.hour;                                 //讀取時
  208.                 play32_num(0, 2, time.hour);                        //顯示時
  209.         }
  210.         if (refresh || (time.day != tmp_time.day))  //日更新
  211.         {
  212.                 tmp_time.day = time.day;                                //讀取日
  213.                 play8_num(48, 0, time.day);                                //顯示日
  214.                 // 農歷       
  215.                 turn_lunar_calendar(&time, lunar);
  216.                 play_lunar_calendar(0, 6, lunar[0], lunar[1]);
  217.         }
  218.         if (refresh || (time.week != tmp_time.week)) // 周更新
  219.         {
  220.                 tmp_time.week = time.week;                                //讀取周
  221.                 play_week(68, 0, time.week);                        //顯示周
  222.         }
  223.         if (refresh || (time.mon != tmp_time.mon))  // 月更新
  224.         {
  225.                 tmp_time.mon = time.mon;                                //讀取月
  226.                 play8_num(24, 0, time.mon);                                //顯示月
  227.                 // 農歷       
  228.                 turn_lunar_calendar(&time, lunar);                                //轉換農歷月
  229.                 play_lunar_calendar(0, 6, lunar[0], lunar[1]);        //顯示農歷月
  230.         }

  231.         if (refresh || (time.year != tmp_time.year)) // 年更新
  232.         {
  233.                 tmp_time.year = time.year;                                        //讀取年數據
  234.                 play8_num(0, 0, time.year);                                        //顯示年
  235.                 // 農歷       
  236.                 turn_lunar_calendar(&time, lunar);                                //轉換農歷年
  237.                 play_lunar_calendar(0, 6, lunar[0], lunar[1]);        //顯示農歷年
  238.         }
  239.        
  240. }
  241. /*
  242. * 主機界面設置
  243. */
  244. void main_set(void)
  245. {
  246.         int8 key_val, state=1;                                 //變量
  247.         play32_num(96, 2|0x80, time.sec);        //顯示秒                       
  248.         while (1)
  249.         {        key_val = scan_key();//鍵盤掃描
  250.                 if (key_val == 1) // 設置
  251.                 {
  252.                         if (state >= 7)
  253.                                 state = 0;
  254.                         else
  255.                                 state++;                                //位置狀態加1
  256.                         set_time((uint8 *)&time);        //設置時間
  257.                         main_show(1);                                //顯示主界面
  258.                         switch (state)
  259.                         {        case 0:        set_time((uint8 *)&time); break;//設置時間
  260.                                 case 1:        play32_num(96, 2|0x80, time.sec); break;//顯示秒
  261.                                 case 2:        play32_num(48, 2|0x80, time.min); break;//顯示分
  262.                                 case 3:        play32_num(0, 2|0x80, time.hour); break;//顯示時
  263.                                 case 4:        play_week(68, 0|0x80, time.week); break;//顯示周
  264.                                 case 5:        play8_num(48, 0|0x80, time.day); break; //顯示日
  265.                                 case 6:        play8_num(24, 0|0x80, time.mon); break; //顯示月
  266.                                 case 7:        play8_num(0, 0|0x80, time.year); break; //顯示年
  267.                                 default: break;                //退出循環                                                  
  268.                         }
  269.                 }
  270.                 else if (key_val > 1)//按鍵值大于1
  271.                 {
  272.                         if (state == 1)//位置1設置秒
  273.                         {
  274.                                 if (key_val == 3)//加按下?
  275.                                         time.sec++;//秒加1
  276.                                 else
  277.                                         time.sec--; //秒減1
  278.                                 if (time.sec >= 60)
  279.                                         time.sec = 0;
  280.                                 else if (time.sec < 0)
  281.                                         time.sec = 59;      
  282.                                 play32_num(96, 2|0x80, time.sec);//顯示秒
  283.                         }
  284.                         else if (state == 2)                                //位置2設置分
  285.                         {
  286.                                 if (key_val == 3)                                //加按下?
  287.                                         time.min++;                                        //加1
  288.                                 else
  289.                                         time.min--;                                        //減1
  290.                                 if (time.min >= 60)
  291.                                         time.min = 0;
  292.                                 else if (time.min < 0)
  293.                                         time.min = 59;
  294.                                 play32_num(48, 2|0x80, time.min);//顯示分
  295.                         }
  296.                         else if (state == 3)                                //位置3設置時
  297.                         {                if (key_val == 3)                                //加按下?
  298.                                         time.hour++;                                //加1
  299.                                 else
  300.                                         time.hour--;                                //減1
  301.                                 if (time.hour >= 24)
  302.                                         time.hour = 0;
  303.                                 else if (time.hour < 0)
  304.                                         time.hour = 23;
  305.                                 play32_num(0, 2|0x80, time.hour);//顯示時
  306.                         }
  307.                         else if (state == 4)                                //位置4設置周
  308.                         {                if (key_val == 3)                        //加按下?
  309.                                         time.week++;                                //加1
  310.                                 else
  311.                                         time.week--;                                //減1
  312.                                 if (time.week >= 8)
  313.                                         time.week = 1;
  314.                                 else if (time.week < 1)
  315.                                         time.week = 7;
  316.                                 play_week(68, 0|0x80, time.week);//顯示周
  317.                         }
  318.                         else if (state == 5)//位置5設置日
  319.                         {
  320.                                 if (key_val == 3)                                //加按下?
  321.                                         time.day++;                                        //加1
  322.                                 else
  323.                                         time.day--;                                        //減1
  324.                                 if (time.day >= 32)
  325.                                         time.day = 1;
  326.                                 else if (time.day < 1)
  327.                                         time.day = 31;
  328.                                 play8_num(48, 0|0x80, time.day);//顯示日
  329.                         }
  330.                         else if (state == 6)                                //位置6設置月
  331.                         {
  332.                                 if (key_val == 3)                                //加按下?
  333.                                         time.mon++;                                        //加1
  334.                                 else
  335.                                         time.mon--;                                        //減1
  336.                                 if (time.mon >= 13)
  337.                                         time.mon = 1;
  338.                                 else if (time.mon < 1)
  339.                                         time.mon = 12;
  340.                                 play8_num(24, 0|0x80, time.mon);//顯示月
  341.                         }
  342.                         else if (state == 7)                                //位置7設置年
  343.                         {
  344.                                 if (key_val == 3)                                //加按下?
  345.                                         time.year++;                                //加1
  346.                                 else
  347.                                         time.year--;                                //減1
  348.                                 if (time.year >= 100)
  349.                                         time.year = 0;                                //0年
  350.                                 else if (time.year < 0)
  351.                                         time.year = 99;                                //99年
  352.                                 play8_num(0, 0|0x80, time.year);//顯示年
  353.                         }
  354.                         else
  355.                         {
  356.                                 break;                //退出循環
  357.                         }
  358.                 }
  359.                 if (state == 0)
  360.                         break;                //退出循環
  361.         }
  362. }

  363. /*
  364. * 鬧鐘界面顯示
  365. */
  366. void alarm_show(void)
  367. {
  368.         int8 key_val, state=1;
  369.         uint32 t=0;

  370.         play16(0, 0, nao);                        //顯示 鬧
  371.         play16(16, 0, zhong);                //鐘
  372.         play16(32, 0, maohao);                //冒號:
  373.         if (Alarm_flag)
  374.                 play16(48, 0, kai);                //開
  375.         else
  376.                 play16(48, 0, guan);//關
  377.         play32_num(32, 2, alarm.hour);        //時
  378.         play32(64, 2, 10);                                //冒號
  379.         play32_num(80, 2, alarm.min);        //分
  380.         play16(0, 6, zheng);                        //顯示 整
  381.         play16(16, 6, dian);                        //顯示 點
  382.         play16(32, 6, bao);                                //顯示 報
  383.         play16(48, 6, shi);                                //顯示 時
  384.         play16(64, 6, maohao);                        //顯示 冒號
  385.         if (Clock_flag)
  386.                 play16(80, 6, kai);                        //顯示 開
  387.         else
  388.                 play16(80, 6, guan);                //顯示 關       
  389.         for (t=0; t<30000; t++)
  390.         {        key_val = scan_key();                //鍵盤掃描 獲取鍵值
  391.                 if (key_val > 1)                        //判斷數據
  392.                         break;
  393.                 else if (key_val == 1)                //判斷數據
  394.                 {
  395.                         if (Alarm_flag)
  396.                                 play16(48, 0|0x80, kai);//顯示 開
  397.                         else
  398.                                 play16(48, 0|0x80, guan);//關                       
  399.                         while (1)
  400.                         {                                key_val = scan_key();//鍵盤掃描 獲取鍵值
  401.                                 if (key_val == 1)                                 // 完成設置
  402.                                 {
  403.                                         if (state >= 4)                                //判斷數據
  404.                                                 state = 0;
  405.                                         else
  406.                                                 state++;
  407.                                         if (Alarm_flag)
  408.                                                 play16(48, 0, kai);                        //顯示 開
  409.                                         else
  410.                                                 play16(48, 0, guan);                //顯示 關
  411.                                         play32_num(32, 2, alarm.hour);  //鬧鐘 時 顯示
  412.                                         play32_num(80, 2, alarm.min);        //鬧鐘 分 顯示
  413.                                         if (Clock_flag)
  414.                                                 play16(80, 6, kai);                        //顯示 開
  415.                                         else
  416.                                                 play16(80, 6, guan);                //顯示 關

  417.                                         switch (state) //判斷數據
  418.                                         {
  419.                                                 case 1:        
  420.                                                         if (Alarm_flag)//判斷數據
  421.                                                                 play16(48, 0|0x80, kai);        //顯示 開
  422.                                                         else
  423.                                                                 play16(48, 0|0x80, guan);         //顯示 關
  424.                                                         break;
  425.                                                 case 2:
  426.                                                         play32_num(80, 2|0x80, alarm.min);//鬧鐘 分 顯示
  427.                                                         break;
  428.                                                 case 3:
  429.                                                         play32_num(32, 2|0x80, alarm.hour);//鬧鐘 時 顯示
  430.                                                         break;
  431.                                                 case 4:
  432.                                                         if (Clock_flag)//判斷數據
  433.                                                                 play16(80, 6|0x80, kai);//顯示 開
  434.                                                         else
  435.                                                                 play16(80, 6|0x80, guan);//顯示 關
  436.                                                         break;
  437.                                                 default: break;
  438.                                         }
  439.                                 }
  440.                                 else if (key_val > 1)//判斷數據
  441.                                 {
  442.                                         if (state == 1)//判斷數據
  443.                                         {
  444.                                                 Alarm_flag = ~Alarm_flag;
  445.                                                 if (Alarm_flag)
  446.                                                         play16(48, 0|0x80, kai);//顯示 開
  447.                                                 else
  448.                                                         play16(48, 0|0x80, guan);//顯示 關
  449.                                         }
  450.                                         else if (state == 2)//判斷數據
  451.                                         {
  452.                                                 if (key_val == 3)//判斷數據
  453.                                                         alarm.min++;//加1
  454.                                                 else
  455.                                                         alarm.min--;//減1
  456.                                                 if (alarm.min >= 60)//判斷數據
  457.                                                         alarm.min = 0;
  458.                                                 else if (alarm.min < 0)//判斷數據
  459.                                                         alarm.min = 59;
  460.                                                 play32_num(80, 2|0x80, alarm.min);//鬧鐘 分 顯示
  461.                                         }
  462.                                         else if (state == 3)//判斷數據
  463.                                         {
  464.                                                 if (key_val == 3)//判斷數據
  465.                                                         alarm.hour++;//加1
  466.                                                 else
  467.                                                         alarm.hour--;//減1
  468.                                                 if (alarm.hour >= 24)//判斷數據
  469.                                                         alarm.hour = 0;
  470.                                                 else if (alarm.hour < 0)//判斷數據
  471.                                                         alarm.hour = 23;
  472.                                                 play32_num(32, 2|0x80, alarm.hour);//鬧鐘 時 顯示
  473.                                         }
  474.                                         else if (state == 4)                        //判斷數據
  475.                                         {
  476.                                                 Clock_flag = ~Clock_flag;
  477.                                                 if (Clock_flag)                                //判斷數據
  478.                                                         play16(80, 6|0x80, kai);//顯示 開
  479.                                                 else
  480.                                                         play16(80, 6|0x80, guan);//顯示 關
  481.                                         }
  482.                                         else
  483.                                         {
  484.                                                 break;        //退出
  485.                                         }
  486.                                 }
  487.                                 if (state == 0)        //狀態為0退出
  488.                                 break;                        //狀態為0退出
  489.                         }
  490.                         if (state == 0)                //狀態為0退出
  491.                                 break;                        //狀態為0退出
  492.                 }

  493.         }
  494. }


  495. main()
  496. {
  497.         uint8 key_val;
  498.     read_18B20();    //初始DS18B20
  499.     Delay_nms(1000);//延時1S,等待18B20工作正常


  500.         LCD_init();           //初始化液晶
  501.         clear12864();         //清屏幕
  502.         main_frame();         //顯示主界面框架
  503.         main_show(1);         //刷新1次

  504.     read_18B20();                                    //讀溫度
  505.         play8_num(104, 6,zhengshu);   //顯示溫度

  506.         while(1)
  507.         {
  508.                 key_val = scan_key();
  509.                 if (key_val == 1)         //K1?
  510.                 {
  511.                         main_set();           //設置主界面
  512.                 }
  513.                 else if (key_val == 2)    //K2?
  514.                 {
  515.                         clear12864();         //清屏幕
  516.                         alarm_show();                  //鬧鐘畫面
  517.                         clear12864();              //清屏幕
  518.                         main_show(1);                  //主界面
  519.                 }
  520.                 else if (key_val == 3)    //K3?
  521.                 {
  522.                         clear12864();         //清屏幕
  523.                         alarm_show();                  //鬧鐘畫面
  524.                         clear12864();         //清屏幕
  525.                         main_show(1);                  //主界面
  526.                 }
  527.                 else
  528.                 {
  529.                         read_time((uint8 *)&time);                        //讀取時間
  530.                         main_show(0);                                                //顯示主界面
  531.                         if((time.sec%2)==0){read_18B20();}  //每隔2S采集一次

  532.                 }
  533.                
  534.                 // 鬧鐘
  535.                 if (Alarm_flag)//如果鬧鐘標志有 執行下面的
  536.                 {
  537.                         if ((flag == 0) && (alarm.hour == time.hour) && (alarm.min == time.min))//判斷條件是否滿足
  538.                         {
  539.                                 flag = 1;
  540.                                 clear12864();     //清屏幕
  541.                                 alarm_show();     //鬧鐘
  542.                             PlayMusic();      //播放音樂
  543.                                 PlayMusic();      //播放音樂
  544.                                 clear12864();     //清屏幕  
  545.                                 main_show(1);     //顯示主界面
  546.                         }
  547.                 }
  548.         }
  549. }
復制代碼

所有資料51hei附件下載:
萬年歷.7z (3.13 MB, 下載次數: 47)


無標題.jpg (184.9 KB, 下載次數: 56)

無標題.jpg

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 凹凸日日摸日日碰夜夜 | 日韩网站免费观看 | 午夜精品久久久久久久99黑人 | 日本一区二区影视 | 91欧美激情一区二区三区成人 | 中文字幕在线一区 | www.亚洲| 91视频在线观看 | 亚洲欧美国产精品久久 | 国产成人99av超碰超爽 | 亚洲成人久久久 | 一区免费 | 国产一级一级毛片 | 成年免费大片黄在线观看岛国 | av免费看片 | 波多野结衣精品在线 | 国产精品特级片 | 99精品久久99久久久久 | 最新免费av网站 | 亚洲精品国产a久久久久久 中文字幕一区二区三区四区五区 | 中文字幕日韩欧美一区二区三区 | 在线观看精品 | 日韩国产欧美视频 | 超碰97人人人人人蜜桃 | 亚洲一区二区视频 | 宅女噜噜66国产精品观看免费 | 精品小视频| 亚洲天堂二区 | 亚洲国产欧美在线 | 久草免费在线视频 | 中日韩av | 亚洲欧美aⅴ| 日韩网站在线观看 | 久久这里只有精品首页 | 亚洲区一区二 | 激情毛片 | 国产在线视频一区 | 99福利在线观看 | 国产成人精品一区二区三区在线 | 国产黄色大片网站 | 日韩国产精品一区二区三区 |