【资源下载】下载地址如下1562:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
[摘要]本设计主要的内容是土壤湿度检测电路的设计与制作。该电路的工作原理是由STC89C52单片机和ADC0832组成系统的核心部分,湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号。选用湿度传感器和AD转换,电路内部包含有湿度采集、AD转换、单片机译码显示等功能。单片机需要采集数据时,发出指令启动A/D转换器工作,ADC0832根据送来的地址信号选通IN1通道,然后对输入的模拟信号进行转换,转换结束时,EOC输出高电平,通知单片机可以读取转换结果,单片机通过调用中断程序,读取转换后的数据。最后,单片机把采集到的湿度数据经过软件程序处理后送到LCD1602进行显示。自动浇水系统设计为智能和手动两个部分:智能浇水部分是通过单片机程序设计浇水的上下限值与感应电路送入单片机的土壤湿度值相比较,当低于下限值时,单片机输出一个信号控制浇水,高于上限值时再由单片机输出一个信号控制停止浇水;手动部分是由通过关闭单片机电源,由外围电路供电进行浇灌、
[关键词]STC89C52干湿度的采集与显示 LED
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include <intrins.h>
//数码管段选定义 0 1 2 3 4 5 6 7 8 9
uchar code smg_du[]={0x14,0x77,0x4c,0x45,0x27,0x85,0x84,0x57,0x04,0x05,
// A B C D E F 不显示
0x06,0xa4,0x9c,0x64,0x8c,0x8e,0xff}; //断码
//数码管位选定义
sbit smg_we1 = P2^0; //数码管位选定义
sbit smg_we2 = P2^2;
sbit smg_we3 = P2^4;
sbit smg_we4 = P2^6;
uchar dis_smg[8] = {0x14,0x77,0x4c,0x45,0x27,0x85,0x84};
sbit SCL=P1^2; //SCL定义为P1口的第3位脚,连接ADC0832SCL脚
sbit DO=P1^3; //DO定义为P1口的第4位脚,连接ADC0832DO脚
sbit CS=P1^0; //CS定义为P1口的第4位脚,连接ADC0832CS脚
uchar shidu; //湿度等级
uchar s_high = 70,s_low = 25; //湿度报警参数
sbit dianji = P3^5; //电机IO定义
/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/***********************数码位选函数*****************************/
void smg_we_switch(uchar i)
{
switch(i)
{
case 0: smg_we1 = 0; smg_we2 = 1; smg_we3 = 1; smg_we4 = 1; break;
case 1: smg_we1 = 1; smg_we2 = 0; smg_we3 = 1; smg_we4 = 1; break;
case 2: smg_we1 = 1; smg_we2 = 1; smg_we3 = 0; smg_we4 = 1; break;