标题:
基于单片机的智能花卉培养装置源码
[打印本页]
作者:
yyt895213586
时间:
2018-1-22 10:02
标题:
基于单片机的智能花卉培养装置源码
光照检测,外围环境变暗时,指示灯亮,5s后指示灯灭,生物补给灯亮,外围环境恢复光亮时,生物补给灯灭,
土壤湿度检测,土壤过干时,水泵抽水,土壤变湿润时,水泵停止工作
温度检测,温度过高时,风扇启动,使空气流通来降温,温度适宜时,风扇停止,12864会显示这三个环境因素的情况
0.jpg
(32.48 KB, 下载次数: 31)
下载附件
2018-1-23 01:49 上传
单片机源程序:
#include<reg52.h>
#include "dht12.h"
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
///*TS12864A-3 端口定义*/
//#define LCD_data P0 //数据口
//sbit LCD_RS = P3^4; //寄存器选择输入
//sbit LCD_RW = P3^5; //液晶读/写控制
//sbit LCD_EN = P3^6; //液晶使能控制
//sbit LCD_PSB = P3^7; //串/并方式控制
///* 89c52 端口定义*/
//sbit turang=P1^3;
//sbit choushui=P2^5;
//sbit feng=P1^7;
sbit guang=P2^1;
sbit zhao=P2^2;
sbit guangbu=P2^4;
//uchar chun ;
//uchar i;
//uchar code dis1[] = {"智能花卉培养装置"};
//uchar code dis2[] = {"光照:"};
//uchar code dis3[] = {"温度:"};
//uchar code dis4[] = {"湿度:"};
//uchar code dis5[] = {"适宜"};
//uchar code dis6[] = {"较暗"};
//uchar code dis7[] = {"适宜"};
//uchar code dis8[] = {"偏高"};
//uchar code dis9[] = {"适宜"};
//uchar code dis0[] = {"干燥"};
//
//#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};
//uchar IRDIS[2];
//uchar IRCOM[4];
//void delay0(uchar x); //x*0.14MS
//void beep();
//void dataconv();
//void lcd_pos(uchar X,uchar Y); //确定显示位置
/*******************************************************************/
/* */
/* 延时函数 */
/* */
/*******************************************************************/
void delay(int ms)
{
while(ms--)
{
uchar i;
for(i=0;i<250;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}
/*******************************************************************/
/* */
/*检查LCD忙状态 */
/*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */
/* */
/*******************************************************************/
//bit lcd_busy()
// {
// bit result;
// LCD_RS = 0;
// LCD_RW = 1;
// LCD_EN = 1;
// delayNOP();
// result = (bit)(P0&0x80);
// LCD_EN = 0;
// return(result);
// }
///*******************************************************************/
///* */
///*写指令数据到LCD */
///*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */
///* */
///*******************************************************************/
//void lcd_wcmd(uchar cmd)
//{
// while(lcd_busy());
// LCD_RS = 0;
// LCD_RW = 0;
// LCD_EN = 0;
// _nop_();
// _nop_();
// P0 = cmd;
// delayNOP();
// LCD_EN = 1;
// delayNOP();
// LCD_EN = 0;
//}
///*******************************************************************/
///* */
///*写显示数据到LCD */
///*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */
///* */
///*******************************************************************/
//void lcd_wdat(uchar dat)
//{
// while(lcd_busy());
// LCD_RS = 1;
// LCD_RW = 0;
// LCD_EN = 0;
// P0 = dat;
// delayNOP();
// LCD_EN = 1;
// delayNOP();
// LCD_EN = 0;
//}
///*******************************************************************/
///* */
///* LCD初始化设定 */
///* */
///*******************************************************************/
//void lcd_init()
//{
// LCD_PSB = 1; //并口方式
//
// lcd_wcmd(0x34); //扩充指令操作
// delay(5);
// lcd_wcmd(0x30); //基本指令操作
// delay(5);
// lcd_wcmd(0x0C); //显示开,关光标
// delay(5);
// lcd_wcmd(0x01); //清除LCD的显示内容
// delay(5);
//}
///**************************************/
// /*********************************************************/
///* */
///* 延时x*0.14ms子程序 */
///* */
///*********************************************************/
//void delay0(uchar x) //x*0.14MS
//{
// uchar i;
// while(x--)
// {
// for (i = 0; i<13; i++) {}
// }
//}
///*********************************************************/
///* */
///* 设定显示位置 */
///* */
///*********************************************************/
//void lcd_pos(uchar X,uchar Y)
//{
// uchar pos;
// if (X==0)
// {X=0x80;}
// else if (X==1)
// {X=0x90;}
// else if (X==2)
// {X=0x88;}
// else if (X==3)
// {X=0x98;}
// pos = X+Y ;
// lcd_wcmd(pos); //显示地址
//}
//void Lcd()
//{
// /*************************************/
// /******** 显示屏初始化 ********/
// /*************************************/
// /*************************************/
// delay(10); //延时
// lcd_init(); //初始化LCD
//
// /*************************************/
// /******** 显示屏 ********/
// /***************第一行*****************/
// /*************************************/
// lcd_pos(0,0); //设置显示位置为第一行的第1个字符
// i = 0;
// while(dis1[i] != '\0')
// { //显示字符
// lcd_wdat(dis1[i]);
// i++;
// }
// /*************************************/
// /******** 显示屏 ********/
// /***************第二行*****************/
// /*************************************/
// lcd_pos(1,0); //设置显示位置为第二行的第1个字符
// i = 0;
// while(dis2[i] != '\0')
// {
// lcd_wdat(dis2[i]); //显示字符
// i++;
// }
// lcd_pos(1,3); //设置显示位置为第二行的第4个字符
// i = 0;
// if(guang==0)
// {
// while(dis5[i] != '\0')
// {
// lcd_wdat(dis5[i]); //显示字符
// i++;
// }
// }
// else
// {
// while(dis6[i] != '\0')
// {
// lcd_wdat(dis6[i]); //显示字符
// i++;
// }
// }
// /*************************************/
// /******** 显示屏 ********/
// /***************第三行*****************/
// /*************************************/
// lcd_pos(2,0); //设置显示位置为第三行的第1个字符
// i = 0;
//
// while(dis3[i] != '\0')
// {
// lcd_wdat(dis3[i]); //显示字符
// i++;
// }
// lcd_pos(2,3); //设置显示位置为第三行的第4个字符
// i = 0;
// if(chun<25)
// {
// while(dis7[i] != '\0')
// {
// lcd_wdat(dis7[i]); //显示字符
// i++;
// }
// }
// else
// {
// while(dis8[i] != '\0')
// {
// lcd_wdat(dis8[i]); //显示字符
// i++;
// }
// }
// /*************************************/
// /******** 显示屏 ********/
// /***************第四行*****************/
// /*************************************/
// lcd_pos(3,0); //设置显示位置为第四行的第1个字符
// i = 0;
// while(dis4[i] != '\0')
// {
// lcd_wdat(dis4[i]); //显示字符
// i++;
// }
// lcd_pos(3,3); //设置显示位置为第四行的第4个字符
// i = 0;
// if(turang==0)
// {
// while(dis9[i] != '\0')
// {
// lcd_wdat(dis9[i]); //显示字符
// i++;
// }
// }
// else
// {
// while(dis0[i] != '\0')
// {
// lcd_wdat(dis0[i]); //显示字符
// i++;
// }
// }
//}
///*******温度检测******/
// /*********************/
// /*********************/
//void Temperature()
//{
//
//
// struct DHT12_Message dht11;
// init_dht11();
// dht11=get_data_dht11();
// chun= (dht11.temperature_shi-48)*10+(dht11.temperature_ge-48);
// if(chun>25)
//
// {
// feng=0;
// }
// else
// {
// feng=1;
//
// }
//}
// /*****土壤湿度检测******/
// /*********************/
// /*********************/
//void Soil()
//{
//
//
// if(turang==0)
// {
// choushui=1;
//
// }
// else
// {
// choushui=0;
// }
//}
/*****光照检测******/
/*********************/
/*********************/
void Illumination()
{
if(guang==0)
{
zhao=1;
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
bishe1.7z
(25.49 KB, 下载次数: 16)
2018-1-22 10:01 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1