0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于51單片機(jī)的智能花盆設(shè)計(jì)

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

項(xiàng)目名:

基于單片機(jī)智能花盆設(shè)計(jì)

單片機(jī):STC89C52

功能:

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

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

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

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

5、通過步進(jìn)電機(jī)來實(shí)現(xiàn)松土;

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; //按鍵掃描標(biāo)志位

uchar flag_display = 0; //顯示模式標(biāo)志位

bit flag_display_cut = 0; //切換界面標(biāo)志位

uint time_num = 0; //10ms計(jì)數(shù)變量

uint temp_value = 0; //溫度值

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

uint humi_value = 0; //濕度值

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

uint light_value = 0; //光照強(qiáng)度值

uchar light_min = 50; //最小光照強(qiáng)度值

uchar time_songtu = 0; //松土?xí)r間

uint time_minus_songtu = 0; //松土倒計(jì)時時間

uchar time_shuye = 0; //輸液時間

uint time_minus_shuye = 0; //輸液倒計(jì)時時間

extern bit flag_songtu_begin; //松土開始標(biāo)志位

extern bit flag_songtu_finish; //松土完成標(biāo)志位

extern bit flag_shuye_begin; //輸液開始標(biāo)志位

extern bit flag_shuye_finish; //輸液完成標(biāo)志位



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

函數(shù)聲明

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

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

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

void Monitor_function(void); //監(jiān)測函數(shù)

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

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



/****

******* 主函數(shù)

*****/

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(); //按鍵函數(shù)

Monitor_function(); //監(jiān)測函數(shù)

Display_function(); //顯示函數(shù)

Manage_function(); //處理函數(shù)


Delay_function(10); //延時10ms

time_num++; //間隔10ms計(jì)時變量+1

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

{

time_num = 0;

}

}

}


/****

******* 延時 x ms函數(shù)

*****/

void Delay_function(uint x)

{

uint m,n;

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

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

}


/****

*******按鍵函數(shù)

*****/

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時,修改松土?xí)r間+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時,修改松土?xí)r間-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

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 繼電器
    +關(guān)注

    關(guān)注

    132

    文章

    5301

    瀏覽量

    148159
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6026

    文章

    44456

    瀏覽量

    631015
  • 51單片機(jī)
    +關(guān)注

    關(guān)注

    273

    文章

    5696

    瀏覽量

    122783
收藏 人收藏

    評論

    相關(guān)推薦

    怎樣去設(shè)計(jì)基于STM32F103C8T6單片機(jī)智能花盆遠(yuǎn)程澆水系統(tǒng)

    基于STM32F103C8T6單片機(jī)智能花盆遠(yuǎn)程澆水補(bǔ)光設(shè)計(jì)一、產(chǎn)品介紹1、本產(chǎn)品由STM32F103C8T6單片機(jī)核心電路+溫濕度傳感器DHT11電路+LCD1602液晶顯示電路+繼電器控制電路
    發(fā)表于 12-06 06:29

    基于單片機(jī)智能花盆的設(shè)計(jì)資料分享

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

    基于51單片機(jī)循跡智能小車

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

    基于51單片機(jī)循跡智能小車

    基于51單片機(jī)的循跡智能小車設(shè)計(jì)方案 僅供初學(xué)者參考
    發(fā)表于 11-20 15:46 ?278次下載

    基于51單片機(jī)循跡智能小車

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

    基于51單片機(jī)智能循跡小車的設(shè)計(jì)

    基于51單片機(jī)智能循跡小車的設(shè)計(jì),智能車設(shè)計(jì)
    發(fā)表于 06-02 16:16 ?182次下載

    51單片機(jī)教程

    51單片機(jī)學(xué)習(xí)詳細(xì)教程,學(xué)習(xí)51單片機(jī)必備
    發(fā)表于 08-31 17:02 ?97次下載

    基于51單片機(jī)智能臺燈

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)智能臺燈.zip》資料免費(fèi)下載
    發(fā)表于 05-26 08:00 ?186次下載

    什么是51單片機(jī)?又該如何自學(xué)51單片機(jī)

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

    51單片機(jī)是什么?應(yīng)該如何學(xué)習(xí)51單片機(jī)

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

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

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

    468【畢設(shè)課設(shè)】基于STM32單片機(jī)遠(yuǎn)程智能花盆GSM短信澆水補(bǔ)光設(shè)計(jì)

    468【畢設(shè)課設(shè)】基于STM32單片機(jī)遠(yuǎn)程智能花盆GSM短信澆水補(bǔ)光設(shè)計(jì)
    發(fā)表于 11-23 18:21 ?30次下載
    468【畢設(shè)課設(shè)】基于STM32<b class='flag-5'>單片機(jī)</b>遠(yuǎn)程<b class='flag-5'>智能</b><b class='flag-5'>花盆</b>GSM短信澆水補(bǔ)光設(shè)計(jì)

    基于單片機(jī)智能花盆

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

    基于51單片機(jī)智能魚缸設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)智能魚缸設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-07 09:45 ?4次下載

    基于51單片機(jī)智能魚缸設(shè)計(jì)

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)智能魚缸設(shè)計(jì).rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:32 ?6次下載