精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于51單片機的智能花盆設計

白茶茶668 ? 來源:白茶茶668 ? 作者:白茶茶668 ? 2023-08-01 00:52 ? 次閱讀

項目名:

基于單片機智能花盆設計

單片機:STC89C52

功能:

1、通過顯示屏顯示花盆中土壤的溫度、濕度,花盆外光照強度;

2、通過按鍵切換顯示屏的界面,設置土壤最小溫度值、最小濕度值,花盆外光照強度值,輸液倒計時,松土倒計時;

3、通過土壤濕度傳感器檢測土壤濕度,通過DS18B20檢測土壤溫度;

4、通過繼電器控制加熱片,水泵,輸液,補光燈;

5、通過步進電機來實現松土;

wKgaomTH5tqAV4B0AAQ1lveAWqA823.png

部分程序:

#include "main.h"

#include "lcd1602.h"

#include "key.h"

#include "ds18b20.h"

#include "adc.h"

#include "motor.h"

#include "timer.h"



/**********************************

變量定義

**********************************/

uchar key_num = 0; //按鍵掃描標志位

uchar flag_display = 0; //顯示模式標志位

bit flag_display_cut = 0; //切換界面標志位

uint time_num = 0; //10ms計數變量

uint temp_value = 0; //溫度值

uchar temp_min = 10; //最小溫度值

uint humi_value = 0; //濕度值

uchar humi_min = 30; //最小濕度值

uint light_value = 0; //光照強度值

uchar light_min = 50; //最小光照強度值

uchar time_songtu = 0; //松土時間

uint time_minus_songtu = 0; //松土倒計時時間

uchar time_shuye = 0; //輸液時間

uint time_minus_shuye = 0; //輸液倒計時時間

extern bit flag_songtu_begin; //松土開始標志位

extern bit flag_songtu_finish; //松土完成標志位

extern bit flag_shuye_begin; //輸液開始標志位

extern bit flag_shuye_finish; //輸液完成標志位



/**********************************

函數聲明

**********************************/

void Delay_function(uint x); //延時函數

void Key_function(void); //按鍵函數

void Monitor_function(void); //監測函數

void Display_function(void); //顯示函數

void Manage_function(void); //處理函數



/****

******* 主函數

*****/

void main()

{

Lcd1602_Init(); //LCD1602初始化

Delay_function(50);

lcd1602_clean(); //清屏

Delay_function(50);

Ds18b20_Init(); //DS18B20初始化

Delay_function(50);

Timer0_Init(); //定時器0初使化

Delay_function(50);


while(1)

{

Key_function(); //按鍵函數

Monitor_function(); //監測函數

Display_function(); //顯示函數

Manage_function(); //處理函數


Delay_function(10); //延時10ms

time_num++; //間隔10ms計時變量+1

if(time_num >= 5000) //計時累加到5000,重新從0開始累加

{

time_num = 0;

}

}

}


/****

******* 延時 x ms函數

*****/

void Delay_function(uint x)

{

uint m,n;

for(m=x;m>0;m--)

for(n=110;n>0;n--);

}


/****

*******按鍵函數

*****/

void Key_function(void)

{

key_num = Chiclet_Keyboard_Scan(0); //按鍵掃描

if(key_num != 0) //有按鍵按下

{

switch(key_num)

{

case 1: //按鍵1,切換界面

flag_display++;

if(flag_display >= 6) //一共6個界面

flag_display = 0;


lcd1602_clean(); //按一下,清屏一次

break;


case 2:

switch(flag_display)

{

case 0: //界面為0時,手動松土

Motor_Foreward();

break;


case 1: //界面為1時,修改溫度最小值+1

if(temp_min < 99)

temp_min++;

break;

case 2: //界面為2時,修改濕度最小值+1

if(humi_min < 99)

humi_min++;

break;

case 3: //界面為3時,修改光照最小值+1

if(light_min < 99)

light_min++;

break;

case 4: //界面為4時,修改松土時間+1

time_songtu++;

time_minus_songtu = time_songtu*60;

break;

case 5: //界面為5時,修改輸液時間+1

time_shuye++;

time_minus_shuye = time_shuye*60;

break;


default:

break;

}

break;

case 3: //按鍵3

switch(flag_display)

{

case 0: //界面為0時,手動輸液

RELAY_SHUYE = 0; //閉合輸液繼電器,開始輸液

Delay_function(3000); //輸液三秒

RELAY_SHUYE = 1; //斷開輸液繼電器,停止輸液

break;


case 1: //界面為1時,修改溫度最小值-1

if(temp_min > 0)

temp_min--;

break;

case 2: //界面為2時,修改濕度最小值-1

if(humi_min > 0)

humi_min--;

break;

case 3: //界面為3時,修改光照最小值-1

if(light_min > 0)

light_min--;

break;

case 4: //界面為4時,修改松土時間-1

if(time_songtu > 0)

{

time_songtu--;

time_minus_songtu = time_songtu*60;

}

break;

case 5: //界面為5時,修改輸液時間-1

if(time_shuye > 0)

{

time_shuye--;

time_minus_shuye = time_shuye*60;

}

break;


default:

break;

}

break;

case 4: //按鍵4,切換界面

flag_display_cut = ~flag_display_cut;

lcd1602_clean(); //按一下,清屏一次

break;


default:

break;

}

}

}

wKgZomTH5tuACJthAAJgjJJ9BdU096.png

wKgZomTH5tyASY-JAAZ65dpYf3o323.png

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 繼電器
    +關注

    關注

    132

    文章

    5320

    瀏覽量

    148595
  • 單片機
    +關注

    關注

    6032

    文章

    44521

    瀏覽量

    633086
  • 51單片機
    +關注

    關注

    273

    文章

    5697

    瀏覽量

    123204
收藏 人收藏

    評論

    相關推薦

    怎樣去設計基于STM32F103C8T6單片機智能花盆遠程澆水系統

    基于STM32F103C8T6單片機智能花盆遠程澆水補光設計一、產品介紹1、本產品由STM32F103C8T6單片機核心電路+溫濕度傳感器DHT11電路+LCD1602液晶顯示電路+繼電器控制電路
    發表于 12-06 06:29

    基于單片機智能花盆的設計資料分享

    設計簡介:本設計是基于單片機智能花盆,主要實現以下功能:LCD1602顯示當前溫度、土壤濕度以及光照值繼電器控制加熱、水泵、輸液以及補光步進電機模擬松土可通過按鍵設置溫度、土壤濕度、光照度、松土
    發表于 01-24 07:05

    基于51單片機循跡智能小車

    基于51單片機循跡智能小車基于51單片機循跡智能小車基于51
    發表于 11-13 15:55 ?0次下載

    基于51單片機循跡智能小車

    基于51單片機的循跡智能小車設計方案 僅供初學者參考
    發表于 11-20 15:46 ?278次下載

    基于51單片機循跡智能小車

    基于51單片機循跡智能小車程序加原理加仿真。
    發表于 05-05 14:06 ?19次下載

    基于51單片機智能循跡小車的設計

    基于51單片機智能循跡小車的設計,智能車設計
    發表于 06-02 16:16 ?182次下載

    51單片機教程

    51單片機學習詳細教程,學習51單片機必備
    發表于 08-31 17:02 ?97次下載

    基于51單片機智能臺燈

    電子發燒友網站提供《基于51單片機智能臺燈.zip》資料免費下載
    發表于 05-26 08:00 ?187次下載

    什么是51單片機?又該如何自學51單片機

    51 單片機是目前使用最多的單片機之一,那么什么是 51 單片機呢?作為新手,又該如何自學 51
    的頭像 發表于 11-03 21:14 ?6982次閱讀

    51單片機是什么?應該如何學習51單片機

    51 單片機是目前使用最多的單片機之一,那么什么是 51 單片機呢?作為新手,又該如何自學 51
    發表于 12-23 07:57 ?73次下載

    51單片機(一)—— 51單片機簡介

    一、51單片機標識信息 通常我們所說的51單片機是指以51內核擴展出的單片機。生產
    發表于 11-11 18:06 ?245次下載
    <b class='flag-5'>51</b><b class='flag-5'>單片機</b>(一)—— <b class='flag-5'>51</b><b class='flag-5'>單片機</b>簡介

    468【畢設課設】基于STM32單片機遠程智能花盆GSM短信澆水補光設計

    468【畢設課設】基于STM32單片機遠程智能花盆GSM短信澆水補光設計
    發表于 11-23 18:21 ?30次下載
    468【畢設課設】基于STM32<b class='flag-5'>單片機</b>遠程<b class='flag-5'>智能</b><b class='flag-5'>花盆</b>GSM短信澆水補光設計

    基于單片機智能花盆

    設計簡介:本設計是基于單片機智能花盆,主要實現以下功能:LCD1602顯示當前溫度、土壤濕度以及光照值 繼電器控制加熱、水泵、輸液以及補光 步進電機模擬松土 可通過按鍵設置溫度、土壤濕度、光照度
    發表于 11-29 10:36 ?20次下載
    基于<b class='flag-5'>單片機</b>的<b class='flag-5'>智能</b><b class='flag-5'>花盆</b>

    基于51單片機智能魚缸設計

    電子發燒友網站提供《基于51單片機智能魚缸設計.rar》資料免費下載
    發表于 01-07 09:45 ?4次下載

    基于51單片機智能魚缸設計

    電子發燒友網站提供《基于51單片機智能魚缸設計.rar》資料免費下載
    發表于 01-12 10:32 ?6次下載