亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 564|回復(fù): 1
收起左側(cè)

51單片機(jī)設(shè)計(jì)寵物飼養(yǎng)可控溫定時投喂箱 原理圖源程序

[復(fù)制鏈接]
ID:1167381 發(fā)表于 2026-3-12 15:49 | 顯示全部樓層 |閱讀模式
  本設(shè)計(jì)是一個寵物飼養(yǎng)可控溫定時投喂箱,該飼養(yǎng)箱以STC89C51單片機(jī)為主控芯片,配合多組基礎(chǔ)模塊。我們根據(jù)所飼養(yǎng)寵物的需求,通過按鍵設(shè)定基準(zhǔn)溫度,設(shè)定投喂時間。為了更加清晰的顯示效果,我們將所有需要觀測的數(shù)據(jù)統(tǒng)一顯示在0.96寸OLED顯示屏上。為了保存設(shè)定的基準(zhǔn)溫度和投喂時間,我們采用AT24C02一個2K位串行CMOS E2PROM保存數(shù)據(jù),防止掉電丟失,避免因突發(fā)情況破壞飼養(yǎng)箱的工作狀態(tài)。
1、溫度控制
依靠DS18B20溫度傳感器檢測飼養(yǎng)箱內(nèi)當(dāng)前溫度。單片機(jī)采集到當(dāng)前溫度后與基準(zhǔn)溫度對比,若當(dāng)前溫度高于基準(zhǔn)溫度,單片機(jī)驅(qū)動與風(fēng)扇相連接的繼電器,使風(fēng)扇工作,對飼養(yǎng)箱進(jìn)行降溫處理;若當(dāng)前溫度低于基準(zhǔn)溫度,單片機(jī)驅(qū)動與加熱器相連接的繼電器,使加熱器工作,對飼養(yǎng)箱進(jìn)行加熱處理。
2、定時控制
依靠DS1302時鐘模塊提供標(biāo)準(zhǔn)時間,保證飼養(yǎng)箱的時間標(biāo)準(zhǔn)與生活狀態(tài)一致。單片機(jī)實(shí)時讀取當(dāng)前時間,若讀取的當(dāng)前時間與設(shè)定的投喂時間一致時,單片機(jī)驅(qū)動蜂鳴器,蜂鳴器報警,提示已到投喂時間。待投喂后,蜂鳴器恢復(fù)靜息狀態(tài),等待下一次報警。
1.1.2設(shè)計(jì)原理
在保證每個部件正確供電的情況下,STC89C51單片機(jī)作為主控芯片,AT24C02數(shù)據(jù)存儲器用于存儲數(shù)據(jù),DS18B20溫度傳感器用于測量溫度,DS1302時鐘模塊用于規(guī)定當(dāng)前時間,OLED顯示屏用于顯示參數(shù),獨(dú)立按鍵用于修改溫度閾值和定時時間,兩個LED分別用于照明和提示,蜂鳴器用于報警,繼電器用于打開加熱棒和風(fēng)扇

制作出來的實(shí)物圖如下:

實(shí)物圖

實(shí)物圖


電路原理圖如下:

原理圖

原理圖

單片機(jī)源程序如下:
  1. #include "reg52.h"

  2. #include "config.h"
  3. #include "control.h"
  4. #include "oled.h"
  5. #include "Ds18b20.h"
  6. #include "ds1302.h"
  7. #include "menu.h"

  8. unsigned int Actural_temp = 0; //讀取的實(shí)際溫度 *10 3位
  9. unsigned char OLED_Reflash = 0;  //刷新費(fèi)時間,分三次刷新。

  10. void DelayXms(unsigned int xtime)
  11. {
  12.         unsigned char i = 0;
  13.         for(;xtime>0;xtime--)
  14.                 for(i = 110;i>0;i--);        
  15. }

  16. void ALL_Init(void)
  17. {
  18.         T0Init();  //定時10ms
  19.         OLED_Init(); //初始化OLED
  20.         OLED_Clear();
  21.         start_window();
  22.         DS18B20_init();
  23.         TIME[2] = ZH_Data(1,23);
  24.         TIME[1] = ZH_Data(1,58);
  25.         TIME[0] = ZH_Data(1,58);
  26.         Ds1302Init();
  27.         SET_Init();
  28.         
  29.         LIGHT_LED = 1;
  30.         FEED_BEEP = 1;
  31.         HIGH_RELAY = 1;
  32.         LOW_RELAY = 1;
  33.         
  34. }

  35. void main(void)
  36. {
  37.         unsigned char BeepFlag = 0;
  38.         ALL_Init();
  39.         DelayXms(1000);
  40.         while(1)
  41.         {               
  42.                 KeyPorc();
  43.                 if(xDelay(TIMERINDEX1,1)  == TIMEISUP)
  44.                 {
  45.                         EA = 0;                                                                                                        //采集對時序要求嚴(yán)格,不允許打斷
  46.                         Actural_temp = temper_change();
  47.                         Ds1302ReadTime();
  48.                         KeyRead();
  49.                         EA = 1;
  50.                 }
  51.                
  52.                 if(xDelay(TIMERINDEX2,5)  == TIMEISUP)
  53.                 {
  54.                         DataProce();
  55.                         StateReflash();                                                
  56.                 }
  57.                
  58.                 if(xDelay(TIMERINDEX3,10)  == TIMEISUP) //100ms
  59.                 {                                       
  60.                         OLED_Reflash++;if(OLED_Reflash > 5)OLED_Reflash = 0;
  61.                         menuEventHandle();
  62.                 }
  63.                
  64.                 if(xDelay(TIMERINDEX4,100)  == TIMEISUP) //1s
  65.                 {                                       
  66.                         
  67.                         if(flagData.feedFlag)
  68.                         {
  69.                                 BeepFlag++;
  70.                                 FEED_BEEP ^= 1;
  71.                                 if(BeepFlag > 6)
  72.                                 {
  73.                                         BeepFlag = 0;
  74.                                         FEED_BEEP = 1;
  75.                                         flagData.feedFlag = 0;
  76.                                 }
  77.                         }
  78.                         
  79.                 }               
  80.                
  81.         }
  82.                
  83. }
復(fù)制代碼

程序原理圖和word文檔下載: single-chip-ke-master.7z (1.87 MB, 下載次數(shù): 0)

評分

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

查看全部評分

回復(fù)

使用道具 舉報

ID:1172516 發(fā)表于 2026-6-3 10:22 | 顯示全部樓層
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表