模拟灌溉系统.doc_第1页
模拟灌溉系统.doc_第2页
模拟灌溉系统.doc_第3页
模拟灌溉系统.doc_第4页
模拟灌溉系统.doc_第5页
免费预览已结束,剩余12页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机与单片机原理及应用课程设计报告题 目:模拟智能灌溉系统 学 号: 110603136 姓 名: 黄鑫 年 级: 11级自动化 指导教师: 丛玉华 开课学期教室上交时间成绩大三上实B3032013-12-21 一、 硬件部分1、涉及芯片:(1)、STC90C519RD+基本功能8位CPU4kbytes程序存储器(ROM) (52为8K)128bytes的数据存储器(RAM) (52有256bytes的RAM)32条I/O口线111条指令,大部分为单字节指令21个专用寄存器2个可编程定时/计数器5个中断源,2个优先级(52有6个)一个全双工串行通信口外部数据存储器寻址空间为64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插40PinDIP封装单一+5V电源供电CPU:由运算和控制逻辑组成,同时还包括中断系统和部分外部特殊功能寄存器;RAM:用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据;ROM:用以存放程序、一些原始数据和表格;I/O口:四个8位并行I/O口,既可用作输入,也可用作输出T/C:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;五个中断源的中断控制系统;一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最佳振荡频率为6M12M。引脚图引脚功能P0口有三个功能: 1、外部扩展存储器时,当做数据总线 2、外部扩展存储器时,当作地址总线 3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。、P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能: 1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,PSEN 外部程序存储器读选通信号ALE 地址锁存控制信号EA 访问和序存储器控制信号XTAL1和XTAL2 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V输入 VSS:GND接地 RST 复位信号(2)、74HC138基本功能HC138 按照三位二进制输入码和赋能输入条件,从8 个输出端中译出一个 低电平输出。真值表 引脚图引脚功能(3)、DS1302基本功能74HC138可以对年、月、日、周、日、时、分、秒进行计时,且具有闰年补偿等多种功能。引脚图引脚功能DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据传送的方法。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc2.0V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向)。SCLK为时钟输入端。数据格式控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。(4)、PCF8591基本功能PCF8591的功能包括多路模拟输入、内置跟踪保持、8-bit模数转换和8-bit数模转换。引脚图引脚功能AIN0AIN3:模拟信号输入端。 A0A2:引脚地址端。VDD、VSS:电源端。(2.56V) SDA、SCL:I2C 总线的数据线、时钟线。OSC:外部时钟输入端,内部时钟输出端。EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。AGND:模拟信号地。 AOUT:D/A 转换输出端。 VREF:基准电源端。数据格式在传输数据的时候,SDA线必须在时钟的高电平周期保持稳定,SDA的高或低电平状态只有在SCL 线的时钟信号是低电平时才能改变 。SCL 线是高电平时,SDA 线从高电平向低电平切换,这个情况表示起始条件;SCL 线是高电平时,SDA 线由低电平向高电平切换,这个情况表示停止条件。(5)、24C02基本功能串行E2PROM是基于I2C-BUS 的存储器件,遵循二线制协议,其具有接口方便,体积小,数据掉电不丢失等特点。引脚图引脚功能A0,A1,A2:器件地址选择 SDA:串行数据、地址 SCL:串行时钟WP:写保护 Vcc:1.8V-6.0V工作电压 Vss:地数据格式同上(PCF8591)2、 系统电路图:二、 软件部分2、程序#include #includei2c.h #includeds1302.h #include #define GPIO_DIG P0 /-定义使用的IO-/-定义PCF8591的读写地址-/#define WRITEADDR 0x90 /写地址#define READADDR 0x91 /读地址/74LS138定义 sbit LSA=P22; sbit LSB=P23; sbit LSC=P24; /独立按键 sbit S4=P10; sbit S5=P11; sbit S6=P12; sbit S7=P13; sbit LED_RED=P14; /红灯,手动模式 sbit LED_GREEN=P15; /绿灯,自动模式 sbit fengmingqi=P16; sbit RELAY=P17; bit flag_mode=0; bit issetting=0; uchar num=50; /-定义全局变量-/ unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的显示码 unsigned char DisplayData8;/用来存放要显示的8位数的值 unsigned char table8; /用来存放自动模式下设置界面 /-声明全局变量-/ void DigDisplay(); void Delay10ms(uchar c); bit ISendByte(unsigned char sla,unsigned char c); unsigned char IRcvByte(unsigned char sla); void At24c02Write(unsigned char ,unsigned char ); unsigned char At24c02Read(unsigned char ); void Timer0Configuration(); void Key_down(); /*PCF8591*/ void Pcf8591SendByte(unsigned char channel); unsigned char Pcf8591ReadByte();/* 函 数 名 : main* 函数功能 : 主函数* 输 入 : 无* 输 出 : 无*/void main() unsigned int adNum;float value;LED_RED=0;LED_GREEN=0;num = At24c02Read(2);Ds1302Init(); while(1) Pcf8591SendByte(0); /发送电位器转换命令 adNum = Pcf8591ReadByte(); /将转换结果读走value = adNum / 2.55 ; if(adNum99) adNum=99;if(adNumnum) RELAY=1; fengmingqi=1; else RELAY=0;fengmingqi=0; Ds1302ReadTime();Key_down();DisplayData0 = DIG_CODETIME2/16;/时DisplayData1 = DIG_CODETIME2&0x0f; DisplayData2 = 0x40;DisplayData3 = DIG_CODETIME1/16;/分DisplayData4 = DIG_CODETIME1&0x0f;DisplayData5 = 0x00;DisplayData6 = DIG_CODEadNum/10;DisplayData7 = DIG_CODEadNum%10;table0=0x40;table1=0x40;table2=0x40;table3=0x40;table4=0x40;table5=0x40;table6=DIG_CODEnum/10;table7=DIG_CODEnum%10; DigDisplay();/* 按键*/void Key_down() uchar n=0; if(S7=0) Delay10ms(1); if(S7=0) if(flag_mode=0) flag_mode=1; else flag_mode=0; while(n50)&(S7=0) Delay10ms(1); n+; n=0;if(flag_mode) /手动模式 LED_RED=1; LED_GREEN=0; if(S6=0) Delay10ms(1);if(S6=0) fengmingqi=fengmingqi;while(n50)&(S6=0) Delay10ms(1); n+;n=0; if(S5=0) Delay10ms(1);if(S5=0) RELAY=0; /打开灌溉系统while(n50)&(S5=0) Delay10ms(1); n+;n=0; if(S4=0) Delay10ms(1);if(S4=0) RELAY=1; /关闭灌溉系统 while(nnum) RELAY=1; fengmingqi=1; else/自动模式 LED_RED=0;LED_GREEN=1; if(S6=0) Delay10ms(1);if(S6=0) issetting=issetting;while(n50)&(S6=0) Delay10ms(1); n+;n=0; if(issetting) if(S5=0) Delay10ms(1);if(S5=0) if(num99) num+;while(n0) num-;while(nnum) RELAY=1; fengmingqi=1;else RELAY=0; fengmingqi=0; /* 函 数 名 : DigDisplay* 函数功能 : 使用数码管显示* 输 入 : 无* 输 出 : 无*/void DigDisplay()unsigned char i;unsigned int j;for(i=0;i0;c-) for(b=38;b0;b-) for(a=130;a0;a-); 三、 系统说明手册功能简述:要求“模拟智能灌溉系统”能够实现土壤湿度测量、土壤湿度和时间显示、湿度阈值设定及存储等基本功能。通过电位器Rb2输出电压信号,模拟湿度传感器输出信号,再通过AD采集完成湿度测量功能;通过DS1302芯片提供时间信息;通过按键完成灌溉系统控制和湿度阈值调整功能,通过LED完成系统工作状态指示功能。系统硬件电路主要由单片机控制电路、显示单元、ADC采集单元、RTC单元、EEPROM存储单元、继电器控制电路及报警输出电路组成,系统框图如图1所示:1. 系统工作及初始化状态说明1.1、自动工作状态,根据湿度数据自动控制打开或关闭灌溉设备,以L1点亮指示;1.2、手动工作状态,通过按键控制打开或关闭灌溉设备,以L2点亮指示;1.3、系统上电后处于自动工作状态,系统初始湿度阈值为50%,此时若湿度低于50%,灌溉设备自动打开,达到50%后,灌溉设备自动关闭;1.4、灌溉设备打开或关闭通过继电器工作状态模拟。2. 数码管单元“模拟智能灌溉系统”通过读取DS1302时钟芯片相关寄存器获得时间,DS1302芯片时、分、秒寄存器在程序中设定为系统进行初始化设定,时间为08时30分。3. 报警输出单元系统工作于手动工作状态下时,若当前湿度低于湿度阈值,蜂鸣器发出提示音,并可通过按键S6关闭提醒功能。4. 功能按键4.1、按键S7设定为系统工作状态切换按键;4.2、手动工作状态下按键S6、S5、S4功能设定如下:按下S6关闭蜂鸣器提醒功能,再次按下S6打开蜂鸣器提醒功能,如此循环;S5功能设定为打开灌溉系统;S4功能设定为关闭灌溉系统。4.3、自动工作状态下按键S6、S5、S4功能设定如下:S6功能设定为湿度阈值调整按键,按下S6后,进入湿度阈值调整界面(如图3所示),此时按下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论