模拟灌溉系统设计报告模板Word文件下载.docx
- 文档编号:8601774
- 上传时间:2023-05-12
- 格式:DOCX
- 页数:19
- 大小:588.15KB
模拟灌溉系统设计报告模板Word文件下载.docx
《模拟灌溉系统设计报告模板Word文件下载.docx》由会员分享,可在线阅读,更多相关《模拟灌溉系统设计报告模板Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。
2、在数据传送过程中,当SCL=1时,数据线SDA必须保持稳定状态,不允许有跳变;
SCL=1时,数据线SDA的任何电平变化将被看作总线的起始或停止信号;
起始信号
时钟线SCL保持高电平期间,数据线SDA电平从高到低的跳变作为I2C总线的起始信号。
停止信号
时钟线SCL保持高电平期间,数据线SDA电平从低到高的跳变作为I2C总线的停止信号
DS1302自动时钟芯片:
1DS1302简介:
DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。
实时时钟可提供秒、分、时、日、星期、月和年,一个月小与31天时可以自动调整,且具有闰年补偿功能。
工作电压宽达2.5~5.5V。
采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后背电源进行涓细电流充电的能力。
DS1302的外部引脚分配如图1所示及内部结构如图2所示。
DS1302用于数据记录,特别是对某些具有特殊意义的数据点的记录上,能实现数据与出现该数据的时间同时记录,因此广泛应用于测量系统中。
EEPROM:
利用I2总线,作为可擦除逻辑器件存储数据。
模拟灌溉系统
一、综合设计目的
1、掌握综合性单片机应用系统的开发与设计
2、掌握时钟芯片DS1302的原理与应用
3、掌握I2C总线器件E2PROM的原理与应用
4、掌握I2C总线器件PCF8591的原理与应用
二、设计内容及要求
1.1自动工作状态,根据湿度数据自动控制打开或关闭灌溉设备,以L1点亮指示;
1.2手动工作状态,通过按键控制打开或关闭灌溉设备,以L2点亮指示;
1.3系统上电后处于自动工作状态,系统初始湿度阈值为50%,此时若湿度低于
50%,灌溉设备自动打开,达到50%后,灌溉设备自动关闭;
1.4灌溉设备打开或关闭通过继电器工作状态模拟。
2.数码管单元
时间及湿度数据显示格式如图2所示:
08-30805
时(8时)分隔符分(30分)熄灭湿度(5%)
数码管DS1数码管DS2
图2.显示格式(8点30分,土壤湿度5%)
3.报警输出单元
系统工作于手动工作状态下时,若当前湿度低于湿度阈值,蜂鸣器发出提示音,并
可通过按键S6关闭提醒功能。
4.功能按键
2.1按键S7设定为系统工作状态切换按键;
2.2手动工作状态下按键S6、S5、S4功能设定如下:
按下S6关闭蜂鸣器提醒功能,再次按下S6打开蜂鸣器提醒功能,如此循环;
S5功能设定为打开灌溉系统;
S4功能设定为关闭灌溉系统。
2.3自动工作状态下按键S6、S5、S4功能设定如下:
S6功能设定为湿度阈值调整按键,按下S6后,进入湿度阈值调整界面(如图3
所示),此时按下S5为湿度阈值加1,按下S4湿度阈值减1,再次按下S6后,系
统将新的湿度阈值保存到EEPROM中,并退出湿度阈值设定界面。
--888852
湿度阈值设置提示符熄灭湿度阈值(52%)
图3.湿度阈值设定界面
5.实时时钟
大赛组委会版权所有,未经允许,不得转载。
3/4
“模拟智能灌溉系统”通过读取DS1302时钟芯片相关寄存器获得时间,DS1302
芯片时、分、秒寄存器在程序中设定为系统进行初始化设定,时间为08时30分。
6.湿度检测单元
以电位器Rb2输出电压信号模拟湿度传感器输出信号,且假定电压信号与湿度成正
比例关系H湿度=KVRb2(K为常数),Rb2电压输出为5V时对应湿度为99%。
7.EEPROM存储单元
系统通过EEPROM存储湿度阈值,自动工作状态下,可通过按键S6、S5、S4设置
和保存阈值信息。
8.电路设计部分
使用PTC热敏电阻、场效应管、继电器及简单阻容元件设计“智能灌溉系统”中置
于电机内部的过热保护电路,当电机内部温度超过70℃,断开电机电源,设计电路
原理图并简述设计思路与电路工作原理。
PTC热敏电阻参数说明:
当温度小于68℃时,热敏电阻阻值小于100欧姆;
温度超过68℃后,电阻值随温度
升高呈阶跃性增高,温度到达70℃后,热敏电阻阻值接近10kΩ。
三、模拟灌溉系统的设计
1、模拟灌溉系统原理图
在PROTEUS仿真软件中完成模拟灌溉系统原理图的设计。
原理图中8位数码显示器为共阴极的显示器;
SPI总线器件DS1302为时钟芯片;
I2C总线器件PCF8591为10位的AD/DA;
I2C总线器件24C02为E2PROM。
1)DS1302的寄存器
1)PCF8591工作时序
选择性读时序
3)PCF8591进行AD转换的函数
voidadc(void)//测量土壤湿度函数
{
IIC_Start();
IIC_SendByte(0x92);
IIC_WaitAck();
IIC_SendByte(0x40);
IIC_Stop();
IIC_SendByte(0x93);
shidu=IIC_RecByte();
sdzh=((float)shidu/255)*99;
//modf(sdzh,float*ip);
shidu=(unsignedchar)sdzh;
}
2、程序主流程图设计
3、手动模式流程图
4、自动模式流程图
1)自动模式主流程图
2)湿度阈值调整子流程图
3)T0中断显示子程序流程图
四、系统程序
#include<
reg51.h>
math.h>
#include"
DS1302.h"
iic.h"
#defineucharunsignedchar
ucharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
ucharcodeledcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
uchardispbuf[8]={10,10,10,10,10,10,10,10};
uchardisp=0;
ucharshidu;
ucharshiduyz;
bitbaojing=1;
bitflag_yz=0;
floatsdzh;
sbitS7=P1^0;
sbitS6=P1^1;
sbitS5=P1^2;
sbitS4=P1^3;
sbitL1=P1^4;
sbitL2=P1^5;
sbitL3=P1^6;
sbitL4=P1^7;
bitZS=0;
bitCn=0;
voiddelay(uchari)
{ucharj;
for(j=0;
j<
248;
j--)
{while(i--);
voidkey_scan()
if(S7==0)
{delay
(1);
ZS=~ZS;
}
while(!
S7);
if(S6==0)
{
delay
(1);
baojing=~baojing;
flag_yz=~flag_yz;
S6);
voidT0_timer()interrupt1using2
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
P2=dispbitcode[disp];
P0=ledcode[dispbuf[disp]];
disp++;
if(disp==8)disp=0;
voidT1_timer()interrupt3
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
L3=~L3;
voidinit_time()
Write_Ds1302(0x8e,0x00);
Write_Ds1302(0x84,0x08);
Write_Ds1302(0x82,0x30);
Write_Ds1302(0x8e,0x80);
voidread_time()
{TR0=1;
dispbuf[7]=Read_Ds1302(0x85)/16;
dispbuf[6]=Read_Ds1302(0x85)%16;
dispbuf[5]=11;
dispbuf[4]=Read_Ds1302(0x83)/16;
dispbuf[3]=Read_Ds1302(0x83)%16;
voidread_sd()
dispbuf[1]=shidu/10;
dispbuf[0]=shidu%10;
voidwrite_yz(unsignedcharadd,unsignedchardat)
IIC_SendByte(0xa0);
IIC_SendByte(add);
IIC_SendByte(dat);
delay(20);
unsignedcharread_yz(void)
IIC_SendByte(0x00);
IIC_SendByte(0xa1);
shiduyz=IIC_RecByte();
returnshiduyz;
voidmain()
TMOD=0X01;
ET0=1;
EA=1;
TR0=1;
TMOD=0X10;
ET1=1;
TR1=0;
L1=0;
init_time();
write_yz(0x00,45);
delay(50);
read_yz();
while
(1){
while
(1)//SHOUDONG
{
key_scan();
if(ZS==1){L1=1;
L2=0;
else{TR0=0;
TR1=0;
baojing=1;
flag_yz=0;
break;
read_time();
adc();
read_sd();
if(shiduyz>
shidu&
&
baojing==1){TR1=1;
if(baojing==0){TR1=0;
L3=1;
if(S5==0)L4=1;
if(S4==0)L4=0;
}
while
(1){//ZIDONG
if(ZS==0){L1=0;
L2=1;
if(flag_yz==1)while
(1)
{
key_scan();
dispbuf[7]=11;
dispbuf[6]=11;
dispbuf[5]=10;
dispbuf[4]=10;
dispbuf[3]=10;
dispbuf[2]=10;
dispbuf[1]=shiduyz/10;
dispbuf[0]=shiduyz%10;
delay
(1);
if(S5==0)
{
delay(5);
shiduyz=shiduyz+1;
}while(!
S5);
if(S4==0)
{
shiduyz=shiduyz-1;
S4);
if(flag_yz==0){write_yz(0x00,shiduyz);
delay(50);
}
shidu){L4=0;
else{L4=1;
read_yz();
}
五、综合设计体会和感受
本次综合设计是基于蓝桥杯模拟题来的,是有专门的系统训练,在老师的指导下把本学期尚未完成的I2总线知识通过本次实验彻底掌握,更对单片机的应用有了更深一步的理解和认识,学习到了很多知识,理论联合实际掌握知识很好能更好的掌握。
实验中:
首先是对题目的了解,和资料查询。
通过老师对器件的时序功能讲解,把握好程序的设计和逻辑顺序一步一步根据老师的安排把每一部分做好。
实验内容虽然不难,但是老师的指导真的很重要,以前一个任务都是整体思考去完成很慢又很难不出错的完成,老师是把每一个功能拆分成各个组件然后整合,每次的任务量减少而且很容易就完成了,还有大量的时间去优化程序。
对于小学期的学习,我的知识和应用得到了锻实验又很有趣味,充满热情的完成自认为做的还好,以后要继续努力,积极学习。
参考文献
[1]李广第.单片机基础.第1版.北京:
北京航空航天大学出版社,1999
[2]张毅刚单片机原理及应用--C51编程+Proteus仿真高等教育出版社
[3]童诗白,华成英.模拟电子技术基础[M].北京:
高等教育出版社,2000。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模拟 灌溉系统 设计 报告 模板