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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

DIY單片機延時插座(STC15F104W+TM1637)支持延時斷電和延時上電 源程序

  [復制鏈接]
跳轉到指定樓層
樓主
大家好。今天我要分享的是一款DIY延時插座。延時插座并不是新東西,壇子里好幾位前輩分享過類似制作。正是因為看到他們的作品,我才忍不住自己也做一個,這樣才能真正鍛煉自已。先上制作出來的成品圖如下:



功能:
* 可選擇延時斷電或延時上電工作方式,在開機前操作黑色的小開關進行設置。
* 定時時間可設置范圍:1分鐘~99小時59分鐘。
* 短按按鍵1分鐘加1,長按按鍵1小時加1 ,在停止和啟動狀態下均可調整時間。
* 短按按鍵2啟動定時,長按按鍵2復位。
* 使用繼電器控制插座輸出,250V電壓下額定電流10A,建議實際使用不超過1kW。

為方便快速制作,本設計選用模塊化零部件,主要模塊包括單片機STC15F104W、220V轉5V電源模塊、TM1637四位時鐘數碼管模塊、繼電器模塊等。全部材料均可在網上采購,總材料費用30元左右(含盒子和電源線)。

接線圖:



實物內部結構:



分享經驗:
* STC15F104W是一款非常方便實用的小單片機,8個腳的芯片除Vcc和Gnd外6個腳全是IO口,無須外部晶振和復位,供個電就能直接使用,實用是搞小制作的絕佳選擇。
* TM1637數碼管模塊使用I2C通信,只占用兩個IO口就行,而且程序非常簡單,再也不用考慮常規數碼管的刷新和消隱什么的。加載封裝好的頭文件即可輕松調用顯示。
* 繼電器選用了可硬件設置高低電平驅動的模塊,我使用了高電平驅動。一開始輸出高電平發現驅動不了,原來要把IO口設置為強推挽模式才能驅動。
* 因為單片機IO口數量限制,需要按鍵復用,這就引入了長按短按識別機制。我使用了10ms中斷掃描一次按鍵狀態,使用自己琢磨了一套長按短按機制,可能有點粗糙,但親測好用。
* 一開始寫的程序顯示倒計時,是直接顯示計時時間,比如倒計時剩不到1分鐘時,數碼管顯示的是00:00,總感覺這樣不科學。后來改為只要這一分鐘的秒還沒走到0,就仍算1分鐘。比如只剩20秒時,仍顯示00:01,只有倒計時結束剩0秒時,才顯示00:00。程序作了相應修改實現了此功能。但總感覺還能寫的更簡練。。。
* 制作產品當然少不了一個好看的外殼。我經常在網上買防水塑料盒,各種規格都有,這個延時插座使用的盒子尺寸是158mm*90mm*40mm。盒子的切割鉆孔也有技巧。工具方面電鉆當然少不了,還有帶倒鉤的割刀也非常實用,盒子在小太陽前烘烤一下會更軟更好切割。
* 這個延時插座沒裝輸出電源指示燈,忘了。。。如有朋友也制作一個的話可以加上。

歡迎朋友們一起交流。

單片機源程序:
  1. /*********************************************/
  2. /*                     DIY延時插座                     */
  3. /*                     創建者 :sven                   */
  4. /*                     創建時間:2021/1/23             */
  5. /*********************************************/
  6. #include "STC15.H"
  7. #include "TM1637.H"
  8. #include "intrins.h"

  9. sbit key1=P3^0;                //按鍵1,時間設置:短按分鐘+,長按小時+
  10. sbit key2=P3^1;                //按鍵2,短按啟動,長按復位
  11. sbit key3=P3^2;                //開關按鍵3,切換延時斷電/延時上電功能,只在開機時檢測
  12. sbit relay=P3^3;        //繼電器觸發信號,硬件設置為高電平時線圈通電

  13. unsigned char mode=0;                //mode為工作模式0,1 分別表示停止模式和運行模式        
  14. unsigned char hour=0,minute=0,second=0,time_count=0;   //真實計時的時,分,秒,10ms計數器
  15. unsigned char show[6]={0,0,0,0,0,0}; //TM1637四位數碼管顯示數組:小時的十位和個位,分鐘的十位和個位,最后兩個為小時和分鐘。
  16. unsigned int uiKeyTimeCnt1;   //按鍵1計數
  17. unsigned int uiKeyTimeCnt2;   //按鍵2計數

  18. bit ShortTouchFlag1=0;     //按鍵1短按按鍵有效標志
  19. bit LongTouchFlag1=0;      //按鍵1長按按鍵有效標志
  20. bit LongTouchRelease1=1;   //按鍵1長按釋放過的標志
  21. bit ShortTouchFlag2=0;     //按鍵2短按按鍵有效標志
  22. bit LongTouchFlag2=0;      //按鍵2長按按鍵有效標志
  23. bit LongTouchRelease2=1;   //按鍵2長按釋放過的標志
  24. bit delay_OnOff=0;                   //延時上電和延時斷電選擇位,開機檢查Key3設置此位,0表示延時斷電,1表示延時上電。
  25. bit flag_1s=1;                //秒任務標志位
  26. bit flag_500ms=1;        //半秒標志位
  27. bit stat_500ms=0;        //半秒狀態位,控制時間冒號閃爍


  28. /******************************
  29. 函數說明:延時函數,STC_ISP軟件給出 @6MHz 1T單片機
  30. 入口參數:us=延時微秒數
  31. 出口參數:無
  32. ******************************/
  33. void Delay_US(unsigned int us)
  34. {
  35.    while(us--)
  36.    {
  37.                 _nop_();
  38.                 _nop_();
  39.                 _nop_();
  40.                 _nop_();
  41.                 _nop_();
  42.                 _nop_();
  43.         }
  44. }

  45. /******************************
  46. 函數說明:定時器0初始化,12T自動重裝模式,定時10毫秒
  47. ******************************/
  48. void Timer0Init(void)        //10毫秒@6.000MHz
  49. {
  50.         AUXR &= 0x7F;                //定時器時鐘12T模式
  51.         TMOD &= 0xF0;                //設置定時器模式
  52.         TL0 = 0x78;                        //設置定時初值
  53.         TH0 = 0xEC;                        //設置定時初值
  54.         TF0 = 0;                        //清除TF0標志
  55.         TR0 = 1;                        //定時器0開始計時
  56.         ET0=1;                                //允許T0中斷
  57.         EA=1;                                //開全局中斷
  58. }

  59. /******************************
  60. 函數說明:按鍵短按長按檢測
  61. ******************************/
  62. void Key_scan(void)                //在中斷里調用,每10ms檢查一次按鍵狀態
  63. {
  64.         if(key1==0)                        //如果按鍵1按下
  65.         {
  66.             uiKeyTimeCnt1++; //累加按鍵計時
  67.         }
  68.         if(uiKeyTimeCnt1>200&&LongTouchRelease1==1)         //當按鍵超過2秒且此前釋放過一次時
  69.         {
  70.                 LongTouchFlag1=1;         //長按標志位置1,用于長按2秒后立即處理長按動作
  71.                 LongTouchRelease1=0; //長按釋放標志置0,表示長按未釋放
  72.         }
  73.         if(key1==1)          //當按鍵松開(也可能是抖動彈開)
  74.         {
  75.                 if(uiKeyTimeCnt1>2&&uiKeyTimeCnt1<=200)         //只有大于20mS,且小于2秒,才判為短按
  76.                 {
  77.                         uiKeyTimeCnt1=0;        //清零按鍵計時
  78.                         ShortTouchFlag1=1;        //短按標志位置1
  79.                         LongTouchFlag1=0;        //長按標志位置0        
  80.                 }
  81.                 if(uiKeyTimeCnt1>200)        //如果松開按鍵時按鍵超過2秒,則為長按釋放
  82.                 {
  83.                         uiKeyTimeCnt1=0;        //清零按鍵計時
  84.                         LongTouchRelease1=1; //長按釋放標志位置1,表示長按已釋放
  85.                 }        
  86.         }

  87.         if(key2==0)                  //如果按鍵2按下
  88.         {
  89.             uiKeyTimeCnt2++; //累加按鍵計時
  90.         }
  91.         if(uiKeyTimeCnt2>200&&LongTouchRelease2==1)          //當按鍵超過2秒且此前釋放過一次時
  92.         {
  93.                 LongTouchFlag2=1;                //長按標志位置1,用于長按2秒后立即處理長按動作
  94.                 LongTouchRelease2=0;        //長按釋放標志置0,表示長按未釋放
  95.         }
  96.         if(key2==1)                  //當按鍵松開(也可能是抖動彈開)
  97.         {
  98.                 if(uiKeyTimeCnt2>2&&uiKeyTimeCnt2<=200)          //只有大于20mS,且小于2秒,才判為短按
  99.                 {
  100.                         uiKeyTimeCnt2=0;        //清零按鍵計時
  101.                         ShortTouchFlag2=1;        //短按標志位置1
  102.                         LongTouchFlag2=0;        //長按標志位置0        
  103.                 }
  104.                 if(uiKeyTimeCnt2>200)        //如果松開按鍵時按鍵超過2秒,則為長按釋放
  105.                 {
  106.                         uiKeyTimeCnt2=0;        //清零按鍵計時
  107.                         LongTouchRelease2=1; //長按釋放標志位置1,表示長按已釋放
  108.                 }        
  109.         }
  110. }

  111. /******************************
  112. 函數說明:按鍵處理
  113. ******************************/
  114. void Key_process(void)
  115. {
  116.         if(ShortTouchFlag1==1)         //當按鍵1短按標志位為1時進行按鍵1短按處理
  117.         {
  118.                 ShortTouchFlag1=0;        //清除短按標志位
  119.                 minute++;                        //短按按鍵1的效果:分鐘加1
  120.                 if(minute==60)                //如果設置分鐘達到60分
  121.                         minute=0;                //將分鐘清零
  122.                 if(second>0)                //以下將實際計時的小時和分鐘轉換為數碼管顯示的小時和分鐘。比如計時還有00:00:20秒時,數碼管顯示的是00:01。
  123.                         show[5]=minute+1;  //只要秒不為零,則顯示出來的分鐘應該比實際計時的分鐘加1
  124.                 else
  125.                         show[5]=minute;           //只有秒為零時,顯示的分鐘才和計時的分鐘一致
  126.                 if(show[5]==60)                   //如果顯示的分鐘為60分,則顯示的小時比實際計時的小時+1。
  127.                 {
  128.                         show[5]=0;
  129.                         show[4]=hour+1;
  130.                 }
  131.                 else
  132.                         show[4]=hour;           //如果顯示的分鐘比實際的加1后還不到60分鐘,則顯示的小時和計時的小時一致。
  133.                 show[0]=show[4]/10%10; //顯示的小時十位數
  134.                 show[1]=show[4]%10;           //顯示的小時個位數
  135.                 show[2]=show[5]/10%10; //顯示的分鐘十位數
  136.                 show[3]=show[5]%10;           //顯示的分鐘個位數                        
  137.                 TM1637_display(show[0],show[1],show[2],show[3],1); //顯示定時時間。在按鍵調時狀態下,時間的冒號固定顯示不閃爍。
  138.         }
  139.         if(LongTouchFlag1==1)         //當按鍵1長按標志位為1時進行按鍵1長按處理
  140.         {
  141.                 LongTouchFlag1=0;        //清除長按標志位
  142.                 hour++;                                //按鍵1長按的效果:小時加1
  143.                 if(hour==100)                //如果設定的小時到100了
  144.                         hour=0;                        //小時清零。定時時間最高只能設定99小時59分鐘。
  145.                 if(second>0)                //以下將實際計時的小時和分鐘轉換為數碼管顯示的小時和分鐘,同上。
  146.                         show[5]=minute+1;
  147.                 else
  148.                         show[5]=minute;
  149.                 if(show[5]==60)
  150.                 {
  151.                         show[5]=0;
  152.                         show[4]=hour+1;
  153.                 }
  154.                 else
  155.                         show[4]=hour;
  156.                 show[0]=show[4]/10%10;        //顯示的小時十位數
  157.                 show[1]=show[4]%10;                //顯示的小時個位數
  158.                 show[2]=show[5]/10%10;        //顯示的分鐘十位數
  159.                 show[3]=show[5]%10;                //顯示的分鐘個位數               
  160.                 TM1637_display(show[0],show[1],show[2],show[3],1); //顯示定時時間。在按鍵調時狀態下,時間的冒號固定顯示不閃爍。
  161.         }        
  162.         if(ShortTouchFlag2==1)        //按鍵2短按處理,在停止狀態下短按為啟動運行
  163.         {
  164.                 ShortTouchFlag2=0;        //清除短按標志位
  165.                 if(mode==0&&(minute>0||hour>0))         //只在停止狀態下且設定了有效的定時時間,才能響應短按
  166.                 {
  167.                         mode=1;                        //短按的效果:啟動定時
  168.                         relay=~delay_OnOff;         //開始定時后,根據開機時設定的延時斷電或延時上電,繼電器進行相應動作。如設定的是延時斷電(delay_OnOff為0),啟動后繼電器應該先通電動作。
  169.                 }
  170.         }
  171.         if(LongTouchFlag2==1)        //按鍵2長按處理,長按為復位。在運行和停止狀態下均可長按復位。
  172.         {
  173.                 LongTouchFlag2=0;        //清除長按標志位
  174.                 mode=0;                                //復位后狀態為停止狀態
  175.                 relay=0;                        //繼電器釋放
  176.                 hour=minute=second=0;        //計時時間清0
  177.                 TM1637_display(0,0,0,0,1);        //數碼管顯示時間00:00,時間冒號不閃爍
  178.         }
  179. }

  180. void main(void)
  181. {
  182.         P3M1&=~(1<<3);           //將繼電器驅動腳P3.3設置為推挽輸出
  183.         P3M0|=(1<<3);
  184.         relay=0;                   //繼電器硬件選擇為高電平驅動,開機后默認插座無電
  185.         delay_OnOff=key3;  //延時斷電或延時上電選擇。1:延時上電,0:延時斷電。只在開機前操作Key3有效。
  186.         TM1637_display(0,0,0,0,1); //上電后默認顯示00:00
  187.         Timer0Init();           //定時器T0初始化并啟動
  188.         while(1)
  189.         {
  190.                 Key_process();          //調用按鍵處理函數
  191.                 if(flag_500ms==1)        //每500毫秒進行一次顯示處理,主要是為了實現時間冒號的閃爍
  192.                 {
  193.                         flag_500ms=0;        //清除半秒標志位
  194.                         stat_500ms=~stat_500ms;         //時間冒號每秒亮滅一次
  195.                         if(mode==1)                //只在啟動定時的狀態下刷新顯示時間
  196.                         {
  197.                                 if(second>0) //以下為將實際計時的時間轉換為數碼管顯示的時間。比如定時還剩20秒時,數碼管實際顯示的是00:01。
  198.                                         show[5]=minute+1;
  199.                                 else
  200.                                         show[5]=minute;
  201.                                 if(show[5]==60)
  202.                                 {
  203.                                         show[5]=0;
  204.                                         show[4]=hour+1;
  205.                                 }
  206.                                 else
  207.                                         show[4]=hour;
  208.                                 show[0]=show[4]/10%10;         //顯示的小時十位數
  209.                                 show[1]=show[4]%10;                 //顯示的小時個位數
  210.                                 show[2]=show[5]/10%10;         //顯示的分鐘十位數
  211.                                 show[3]=show[5]%10;                 //顯示的分鐘個位數               
  212.                                 TM1637_display(show[0],show[1],show[2],show[3],stat_500ms);        //顯示時間,冒號位是0還是1由stat_500ms確定,每半秒變化一次。
  213.                         }
  214.                         if(mode==1&&flag_1s==1)                 //以下為定時狀態下更新計時時間,當秒任務標志位為1時進行倒計時
  215.                         {
  216.                                 flag_1s=0;         //清除秒任務標志位
  217.                                 if(second>0) //如果秒大于0,則減1秒
  218.                                 {
  219.                                         second--;
  220.                                 }
  221.                                 else if(minute>0) //如果秒等于0,則從分鐘借位,分鐘減1,秒變為59
  222.                                 {
  223.                                         minute--;
  224.                                         second=59;
  225.                                 }
  226.                                 else if(hour>0)          //如果秒和分鐘都為0,則從小時借位,小時減1,分鐘和秒都為59
  227.                                 {
  228.                                         hour--;
  229.                                         minute=59;
  230.                                         second=59;
  231.                                 }
  232.                                 else                          //如果時分秒都為0
  233.                                 {
  234.                                         mode=0;                  //倒計時結束,進入停止狀態
  235.                                         relay=delay_OnOff;        //依據開機時設置的延時斷電或延時上電,設置計時完成后的繼電器狀態。如果設置的是延時斷電,計時到后繼電器驅動為0。
  236.                                         TM1637_display(0,0,0,0,1);        //計時到后時間顯示00:00,時間冒號不閃爍
  237.                                 }
  238.                         }
  239.                 }//半秒任務結束
  240.         }//while(1)結束
  241. }//main函數結束


  242. void time0(void) interrupt 1   //T0中斷服務,每10ms響應一次
  243. {
  244.         time_count++;                 //計數加1
  245.         Key_scan();                         //每10ms掃描一次按鍵狀態
  246.         if(time_count==50)         //每500ms時設置一次半秒標志位
  247.                 flag_500ms=1;
  248.         if(time_count==100)         //每1秒設置一次半秒標志位和秒任務標志位
  249.         {
  250.                 time_count=0;
  251.                 flag_500ms=1;
  252.                 flag_1s=1;
  253.         }  
  254. }
復制代碼
完整程序可從附件下載。
DIY延時插座.rar (372.65 KB, 下載次數: 394)

評分

參與人數 4黑幣 +136 收起 理由
piplxh + 6
老愚童63 + 15
luliang02003 + 15 贊一個!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:848824 發表于 2021-1-25 16:24 | 只看該作者
感謝分享,很好用啊,哪天我也找個盒子裝上
回復

使用道具 舉報

板凳
ID:862648 發表于 2021-1-25 16:45 | 只看該作者
還是很實用的
回復

使用道具 舉報

地板
ID:848824 發表于 2021-1-25 20:23 | 只看該作者
圖是怎么畫的真偏亮
回復

使用道具 舉報

5#
ID:702386 發表于 2021-1-26 08:45 | 只看該作者
zhangleixbyl 發表于 2021-1-25 20:23
圖是怎么畫的真偏亮

圖是先在AD中畫好線路和元器件,然后在畫圖軟件中貼上模塊實物圖并挪動線路對齊。有點混搭風格吧n :-)

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

6#
ID:620287 發表于 2021-1-30 22:24 來自手機 | 只看該作者
時間跑的太快了,數碼管設定1分鐘,實際上用30秒左右就結束了,如果要定時10分鐘就要設定運行時間為20分鐘才夠10分鐘
回復

使用道具 舉報

7#
ID:702386 發表于 2021-1-30 22:48 | 只看該作者
22583596 發表于 2021-1-30 22:24
時間跑的太快了,數碼管設定1分鐘,實際上用30秒左右就結束了,如果要定時10分鐘就要設定運行時間為20分鐘 ...

燒錄時選擇時鐘頻率為6MHz。你可能默認選的是12MHz,當然要快1倍。
回復

使用道具 舉報

8#
ID:815949 發表于 2021-3-22 22:28 | 只看該作者
樓主的設計不錯,這個用在產品的測試很有用處,我之前做過一個可以控制三路的,用的是pic單片機實現的,但是我的繼電器選用的是固態繼電器,已經老化使用一年,相當穩定。

評分

參與人數 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

9#
ID:848824 發表于 2021-3-24 11:03 | 只看該作者
什么畫圖軟件畫的,真牛
回復

使用道具 舉報

10#
ID:702386 發表于 2021-3-25 18:09 | 只看該作者
zhangleixbyl 發表于 2021-3-24 11:03
什么畫圖軟件畫的,真牛

用Win10自帶的畫圖軟件畫的。牛就談不上了,就是有一點創意,結合了altium畫的原理圖和實物照片,看起來直觀一點。
回復

使用道具 舉報

11#
ID:456690 發表于 2021-3-26 20:49 | 只看該作者
按鍵長按短按檢測程序寫的好,學習了
回復

使用道具 舉報

12#
ID:140489 發表于 2021-5-8 15:40 | 只看該作者
樓主代碼是吳堅鴻的代碼風格
回復

使用道具 舉報

13#
ID:59830 發表于 2021-5-8 17:32 | 只看該作者
看了一下,挺好.
不過制作過程 安全問題有2點建議(做來用的):
1. 220V   繼電器控制 單線火線,要三點插頭 分清 火線, 或 改控制 雙線繼電器.
2.  5V 電源模塊  熱熔膠  遇到熱融化,熱熔膠與模塊的間距大些,
回復

使用道具 舉報

14#
ID:702386 發表于 2021-5-10 08:40 | 只看該作者
lids 發表于 2021-5-8 15:40
樓主代碼是吳堅鴻的代碼風格

我是初學者,不講風格哈。代碼能跑就行。
回復

使用道具 舉報

15#
ID:702386 發表于 2021-5-10 08:42 | 只看該作者
yygdzjs 發表于 2021-5-8 17:32
看了一下,挺好.
不過制作過程 安全問題有2點建議(做來用的):
1. 220V   繼電器控制 單線火線,要三點 ...

非常感謝寶貴建議!安全方面確實欠考慮了,繼電器斷開的時候仍可能存在火線有電的情況。
回復

使用道具 舉報

16#
ID:892864 發表于 2021-6-16 00:05 | 只看該作者
我最近也想做一個,不過要比樓主做的簡單
回復

使用道具 舉報

17#
ID:424598 發表于 2021-7-18 14:35 來自手機 | 只看該作者
贊,比我早期做的好多了,論壇就需要這種新鮮血液。
回復

使用道具 舉報

18#
ID:444215 發表于 2021-7-26 14:10 | 只看該作者
贊,也不錯了,支持下,下載下來研究研究
回復

使用道具 舉報

19#
ID:476415 發表于 2021-7-27 12:25 來自手機 | 只看該作者
沒用過這種單片機,看介紹確實是適合DIY!!
回復

使用道具 舉報

20#
ID:880987 發表于 2021-8-16 10:39 | 只看該作者
樓主,TM1637有按鍵掃描功能,支持2X8=16個按鍵掃描,節約單片機IO口
回復

使用道具 舉報

21#
ID:961072 發表于 2021-8-18 11:55 | 只看該作者
新手前來學習一下~學學思路和程序
回復

使用道具 舉報

22#
ID:15726 發表于 2021-12-19 22:01 | 只看該作者
我好象用過同款的盒子
回復

使用道具 舉報

23#
ID:686536 發表于 2022-6-26 17:10 | 只看該作者
我想搞一個終于有個參考樣了,感謝謝。
回復

使用道具 舉報

24#
ID:292518 發表于 2022-7-4 17:27 | 只看該作者
新手前來學習一下~學學思路和程序
回復

使用道具 舉報

25#
ID:1037212 發表于 2022-7-6 05:45 | 只看該作者
新手前來學習一下,從頭開始。
回復

使用道具 舉報

26#
ID:941129 發表于 2022-9-16 14:49 | 只看該作者
實用,好評
回復

使用道具 舉報

27#
ID:941129 發表于 2022-9-16 15:04 | 只看該作者
編程用的是keil嗎
回復

使用道具 舉報

28#
ID:941129 發表于 2022-9-16 15:22 | 只看該作者
這個單片機我在keil4上沒有找到,請問大神用什么軟件編程
回復

使用道具 舉報

29#
ID:507641 發表于 2022-9-21 09:26 | 只看該作者
貼近生活工作的應用與技巧,創新源自于生活工需求原來是真的
回復

使用道具 舉報

30#
ID:1045132 發表于 2022-9-21 15:40 | 只看該作者
可以做定時器了
回復

使用道具 舉報

31#
ID:849826 發表于 2022-12-12 11:01 來自手機 | 只看該作者
3523485271 發表于 2022-9-16 15:22
這個單片機我在keil4上沒有找到,請問大神用什么軟件編程

用51的頭文件就可以
回復

使用道具 舉報

32#
ID:491875 發表于 2022-12-12 12:46 | 只看該作者
不錯的實用制作,圖也很清晰。電源指示燈可以考慮使用一只雙向LED,這樣可以省略一只4007。
回復

使用道具 舉報

33#
ID:833307 發表于 2023-7-19 14:56 | 只看該作者
能不能倒計時顯示,以秒為單位
回復

使用道具 舉報

34#
ID:200118 發表于 2023-12-21 18:14 | 只看該作者
很好,學習一下。。。
回復

使用道具 舉報

35#
ID:372579 發表于 2023-12-22 21:06 | 只看該作者
不錯不錯,做一個玩玩
回復

使用道具 舉報

36#
ID:67678 發表于 2023-12-24 10:17 | 只看該作者
不錯不錯,做一個玩玩
回復

使用道具 舉報

37#
ID:316162 發表于 2023-12-27 07:47 來自手機 | 只看該作者
很好,值得學習,設計思路清晰,代碼工整,關鍵是注釋也清晰明了
回復

使用道具 舉報

38#
ID:156094 發表于 2024-2-24 20:27 | 只看該作者
新手前來學習一下~
回復

使用道具 舉報

39#
ID:232366 發表于 2024-12-12 19:01 | 只看該作者
感謝共享作品!!好用是好用但就是有一個BUG!!!!!!!!!!!
呈現問題為:比如定時:05:00分啟動后此時再按分鐘加1這時數碼管會顯示04:01而不是定時5小時了!!!!!!!!!!!!!!!!!!!!!!
回復

使用道具 舉報

40#
ID:430492 發表于 2025-2-20 17:49 | 只看該作者
這個設計還是很實用的!!!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: www.操com| 国产日韩欧美激情 | 久久国产综合 | 亚洲视频一区二区三区四区 | 国产综合久久 | 成人国产精品久久 | 99精品视频一区二区三区 | 一区二区三区四区不卡视频 | 黄频免费| 国产在线精品一区二区三区 | 999久久 | 日韩一区二区三区在线观看 | 免费在线黄色av | 亚洲精品黄 | 免费视频久久 | 欧美精品网站 | 99精品久久久 | 色视频网站在线观看 | 精品一区二区三区视频在线观看 | jlzzjlzz欧美大全 | 日韩一区二区在线视频 | 激情久久久久 | 奇米av| 亚洲精品一区二区三区丝袜 | 国产精品资源在线 | 亚洲精品一区中文字幕乱码 | 日本大香伊一区二区三区 | 日韩免费一区 | 欧美精品一区二区三区在线四季 | 国产精品色 | 手机在线一区二区三区 | 久久久久久久一区 | aaaaaaa片毛片免费观看 | 黄色亚洲网站 | 久久一区二区三区四区五区 | 色综合天天天天做夜夜夜夜做 | 色综合久久天天综合网 | 日屁视频| 久久国产精品色av免费观看 | 午夜精品 | 国产精品视频在线播放 |