【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
設一個溫室大棚模型(用鞋盒子模擬),最上層鋪上一層透明塑料保鮮膜,
設計由51單片機電路、
1602液晶顯示電路、
光照檢測電路、
土壤濕度檢測電路組成,
A/D模塊PCF8591電路、
1顆高亮LED燈補光電路、
溫度檢測DS18B20電路、
1顆黃色高亮LED燈加熱電路、
風扇電路、
水泵灌溉電路、
4位按鍵電路、
1、通過光敏電阻檢測光照強度,然后A/D模塊PCF8591處理后,將光照強度值實時顯示在液晶上,并且可以按鍵控制光照的強度值,
當光照低于設定的閾值,1顆白色高亮LED燈亮進行補光,光照高于設定的閾值,就不用管,
2、通過DS18B20檢測溫度值,并且實時顯示在1602液晶上,并且可以通過按鍵設定溫度值,當溫度低于設定值時,通過一顆黃色高亮LED燈模擬,當溫度超過設定值時,風扇旋轉,
3、通過土壤濕度傳感器檢測土壤的濕度,并且將濕度值實時顯示在液晶上,并且可以設定土壤的使讀者,當土壤濕度小于設定的閾值,水泵加水,大于閾值時,不動作,

#include<reg52.h> //包含頭檔案,一般情況不需要改動,頭檔案包含特殊功能暫存器的定義
#include<stdio.h>
#include "1602.h"
#include "delay.h"
#include "sysdefine.h"
#include"18b20.h"
sbit led_l = P1^0;
sbit led_b = P1^1;
sbit fan = P1^4;
sbit relay = P1^3;
sbit key_s = P3^4;
sbit key_a = P3^5;
sbit key_u = P3^6;
void Init_Timer0(void);
unsigned char readTem = FALSE ;//定義讀時間標志
unsigned char readADCFlag = FALSE ;
int temp;
float temperature = 0;
char disdat[16]; //列印陣列初始化
char disset[16];
unsigned long time_20ms=0; //定時器計數
float Lv=0.0; //光照采集電壓
float Tv=0.0; //土壤采集電壓
unsigned int Lval =0; //光照強度
unsigned int Rval = 0; //土壤濕度
unsigned int distem;
unsigned char rekey = 0;
unsigned char SetFlag = 0; //設定值
unsigned char setLval = 50;
unsigned char setRval = 50;
unsigned char setTval = 30;
void main (void)
{
unsigned char midval;
Init_Timer0();
LCD_Init(); //初始化液晶
DelayMs(20); //延時有助于穩定
LCD_Clear(); //清屏
sprintf(disdat,"L:%2d R:%2d T:%2d C",Lval,Rval,distem);//列印電壓電流值
LCD_Write_String(0,0,disdat);//顯示
sprintf(disset," L:%2d R:%2d T:%2d",(unsigned int)setLval,(unsigned int)setRval,(unsigned int)setTval);//列印電壓電流值
LCD_Write_String(0,1,disset);
while (1) //主回圈
{

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/218768.html
標籤:其他
上一篇:【涂鴉物聯網足跡】涂鴉云平臺介面串列—萬能紅外遙控器
下一篇:codewars相關問題求助
