【单片机毕业设计】【mcuclub-jj-053】基于单片机的宠物喂食器的设计
最近設計了一個項目基于單片機的寵物喂食器系統,與大家分享一下:
一、基本介紹
項目名:寵物喂食器
項目編號:mcuclub-jj-053
單片機類型:STC89C52、STM32F103C8T6
具體功能:
1、通過DS1302獲取時間
2、通過AT24C02存儲設定的投喂時間
3、通過按鍵可修正實時時間、添加或刪除投喂時間、查看投喂時間
4、當投喂時間到達時,蜂鳴器報警提醒(2s),并開啟兩個繼電器(喂食、喂水)
5、通過顯示屏顯示數據
拓展功能:通過藍牙模塊手機端可分別控制兩個繼電器及蜂鳴器報警
二、51實物圖
單片機型號:STC89C52
板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。
供電接口:TYPE-C
?
三、51仿真圖
仿真軟件版本:proteus8.9
電路連線方式:網絡標號連線方式
注意:部分實物元器件仿真中沒有,仿真中會用其他工作原理相似的元件代替,這樣可能導致實物程序和仿真程序不一樣
?
?四、32實物圖
單片機型號:STM32F103C8T6
板子為綠色PCB板,兩層板,厚度1.2,上下覆銅接地。元器件基本上為插針式,個別降壓芯片會使用貼片式。
供電接口:TYPE-C
?
?五、原理圖
軟件版本:AD2013
電路連線方式:網絡標號連線方式
注意:原理圖只是畫出了模塊的引腳圖,而并不是模塊的內部結構原理圖
?
?六、PCB圖
由原理圖導出,封裝很大一部分都是作者自己繪制,不提供封裝庫,只提供連接好的源文件。中間有一個項目編號,隱藏在單片機底座下,插入單片機后不會看到。
兩層板,上下覆銅接地。
?
七、系統框圖
本設計以單片機為核心控制器,加上其他模塊一起組成此次設計寵物喂食器的整個系統,其中包括中控部分、輸入部分和輸出部分。中控部分采用了單片機控制器,其主要作用是獲取輸入部分的數據,經過內部處理,邏輯判斷,最終控制輸出部分。輸入由四部分組成,第一部分是時鐘模塊,通過該模塊獲取當前的時間;第二部分是存儲模塊,通過該模塊存儲投喂時間;第三部分是按鍵模塊,用戶可以根據自己的需求設置定時投喂時間等信息;第四部分是供電模塊,通過該模塊可給整個系統進行供電。輸出由三部分組成,第一部分是顯示模塊,通過該模塊可以顯示監測的數據以及設置的閾值;第二部分是繼電器模塊,通過繼電器控制投喂實物或者水;第三部分是聲光報警模塊,定時投喂時間到達進行報警提醒。除此之外,藍牙模塊既作為輸入又作為輸出,藍牙模塊和手機進行連接,可以將監測的數據傳輸到用戶手機端,用戶也可以通過手機端發送指令控制繼電器的工作及其模式的切換。具體系統框圖如圖所示。
?
?八、軟件設計流程
系統的主流程圖如圖所示。在主程序中:首先對各個模塊進行初始化,隨后進入while主循環,在主循環中,首先進入第一個函數按鍵函數,該函數主要分為兩部分,第一部分為調用按鍵掃描函數獲取按鍵鍵值,第二部分通過鍵值進行相應的處理操作,包括切換界面、設置時間、開關水等;緊接著進入第二個函數監測函數,該函數主要通過調用相應的驅動函數獲取測量值,并通過藍牙模塊將監測的數據傳輸到手機端,用戶也可以通過手機端發送指令,設備根據用戶發送的指令執行對應的處理;緊接著進入第三個函數顯示函數,該函數顯示監測值及閾值;最后進入第四個函數處理函數,判斷當前時間是否是投喂時間,如果是,開始投喂5S,且開啟兩秒蜂鳴器,手動喂食,定時到達時,關閉繼電器。
?
?九、部分程序展示
軟件版本:keil5
邏輯程序和驅動程序分開,分布于main.c和其他.c文件
void Manage_function(void) {uchar i = 0;if(flag_display == 0) //測量界面{if(flag_time_feed == 0){for(i = 0; i < set_feed_count; i++) //判斷當前時間是否是投喂時間,如果是,開始投喂5S,且開啟兩秒蜂鳴器{if(p_feeddata[i].time_shi == ds1302_buf[4] && p_feeddata[i].time_fen == ds1302_buf[5] && ds1302_buf[6] == 0){BEEP = 0;RELAY_TS = 0;RELAY_WS = 0;beep_crtl = 1;flag_timer_begin = 1;flag_time_feed = 1;break;}}}else{if(flag_1s < 2){if(time_num % 20 == 0)BEEP = ~BEEP;}else{BEEP = 1;beep_crtl = 0;if(flag_1s >= 5){flag_timer_begin = 0;flag_time_feed = 0;flag_1s = 0;RELAY_TS = 1;RELAY_WS = 1;}}}if(flag_time_feed == 0 && flag_manu == 1) //手動喂食,定時到達時,關閉繼電器{if(flag_1s >= 3){flag_timer_begin = 0;flag_manu = 0;RELAY_TS = 1;RELAY_WS = 1;beep_crtl = 0;BEEP = 1;}else{if(beep_crtl == 1){if(time_num % 20 == 0)BEEP = ~BEEP;}}}}else //設置界面{BEEP = 1;RELAY_TS = 1;RELAY_WS = 1;} }總結
以上是生活随笔為你收集整理的【单片机毕业设计】【mcuclub-jj-053】基于单片机的宠物喂食器的设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac 连上无线网络,无法上网
- 下一篇: photoSwipe 结合jquery使