智能电子产品综合项目实践设计报告自动浇灌系统设计报告.doc
《智能电子产品综合项目实践设计报告自动浇灌系统设计报告.doc》由会员分享,可在线阅读,更多相关《智能电子产品综合项目实践设计报告自动浇灌系统设计报告.doc(26页珍藏版)》请在三一办公上搜索。
1、常州信息职业技术学院智能电子产品综合项目实践设计报告2011 2012 学年 第 二 学期项目: 自动浇灌系统的设计与实现 班级: 计应102 学号: 1008143239姓名: 戴霞授课教师: 聂章龙制定日期: 2012 年 05 月 10 日目 录第一章总体设计3第二章 硬件电路设计42.1 系统原理图42.2 本章小结6第三章 软件设计83.1主程序设计83.2 简单单片机应用系统结构93.3 DS18B20数字温度测量93.4语音报警模块93.5 LCD液晶显示部分软件设计103.6 定时模块设计103.7按键控制模块103.8 运行环境113.9本章小结11第四章 系统测试124.1
2、硬件测试124.1.1 实验板连接测试124.1.2 显示模块测试124.1.3 按键模块测试124.1.4 报警模块测试124.2软件测试124.2.1 显示模块测试124.2.2 按键模块测试124.2.3 报警模块测试12第五章 结束语135.1总结135.1.1 问题135.1.2 心得13附录14附录1 程序代码14附录2 实物图片24第一章 总体设计本文以51单片机P89V51RB2FN为主控芯片,然后利用DALAS一线式温度传感器DS18B20来实现对周围温度环境的采集操作,单片机再根据采集的温度值来控制电磁阀的开关及持续时间等等操作,从而实现在不同的温度对周围浇灌对象实施间隔性
3、的灌溉,浇灌持续的时间与不同的温度范围有关,同时相关的状态信息要在点阵汉字液晶屏上实时显示的浇灌系统。本系统以最低限度的用水量获得最大的产量或收益,也就是最大限度地提高单位灌溉水量的农作物产量和产值的灌溉措施,灌溉可有效保持土壤中水、肥、气、热等各相的良好状态,具有省水、省工、节能、节肥、增产增收等诸多优点。系统总体结构图如图1-1所示。TG12864BI液晶屏显示单片机电磁阀DS18B20温度采集报警图1-1 自动浇灌系统组合框图 系统采用51单片机P89V51RB2FN为主控芯片,包括DS18B20温度采集模块、汉字液晶屏显示状态信息模块、定时器模块及主程序模块。系统的主要功能模块如下:
4、系统模块: 模块功能:DS18B20温度采集模块:通过该温度传感器获取当前的温度值。汉字液晶屏显示状态信息模块:根据温度,在该屏上逐行显示:温度、水龙头开关状态、浇灌时间和次数等信息。定时器模块:实现记录不同温度段的浇灌时间及浇灌间隔时间等信息主程序模块:对相关模块的初始化及相关模块的控制流程。第二章 硬件电路设计2.1 系统原理图主要实现自动浇灌系统的温度采集、状态信息显示、时间记录和电磁阀开关控制等。(1)汉字液晶屏上实时显示的信息有:1)第一行显示:低温:*.*,或常温:*.*,或高温:*.* 。注:假设24以下为低温,2530为常温,30以上为高温。2)第二行显示:电磁阀状态:开,或关
5、。3)第三行显示:浇灌时间:*m*s,或*h*m。(2)浇灌时间及浇灌次数间隔要求:在低温时,电磁阀始终关,浇灌时间为0分0秒;在常温时,浇灌时间为30分钟,浇灌次数间隔为8小时;在高温时,浇灌时间为50分钟,浇灌次数间隔为4小时。液晶模块与单片同的连接采用模拟I/O方式。只要用程序控制I/O口线产生如图2-1所示的时序信号。与总路线方式相比,对液晶屏初始化、充填液晶屏、显示字符、显示字符串函数完全相同。 图2-1 模拟I/O口方式接口电路VccJ4 4321VCCDQGNDHSOUTR384.7kVccVccQ6R37VD9Q5R33B1R39DSQSPKR364.7kDS1820图2-2
6、蜂鸣器、温度传感器电路温度传感器DS18B20的数据线与单片机的P1.0相连。根据DS18B20的读写时序及操作指令,单片机测温时,首先对其复位操作,然后发SKIP ROM指令,再用CONVERT T指令启动传感器开始温度转换。将温度放入内部暂存器,然后单片机重复操作一,开始读温度值。电磁阀里有密闭的腔,在不同位置开有通孔,每个孔都通向不同的油管,腔中间是阀,两面是两块电磁铁,哪面的磁铁线圈通电阀体就会被吸引到哪边,通过控制阀体的移动来挡住或漏出不同的排油的孔,而进油孔是常开的,液压油就会进入不同的排油管,然后通过油的压力来推动油缸的活塞,活塞又带动活塞杆,活塞杆带动机械装置动。这样通过控制电
7、磁铁的电流通断就控制了机械运动。图2-3 电磁阀控制电路定时器/计数器概述在51系列单片机中有两个16位的加法计数器,分别叫做T0和T1。它们在计数脉冲的作用下,其计数值不断加1,在此过程中,计数器可能产生溢出(溢出是指计数器的计数值全为“1”时,在计数脉冲的作用下,全部归0的动作),产生溢出后,可以向CPU发出中断请求。计数脉冲可以来源于系统时钟或外部电路(通过P3.4/T0、P3.5/T1引脚输入)。如果计数脉冲来自系统时钟,称之为“定时器”,每个机器周期(一个机器周期由12个时钟周期组成)计数器加1;如果计数脉冲来自外部电路,称之为“计数器”,此时单片机在每个机器周期对T0引脚进行检测,
8、如果在两个连续的机器周期内,前一次检测为高电平,而后一次检测到了低电平,即在T0脚检测到了一个下降沿,则计数器加1,因此计数脉冲的频率不能高于振荡频率fosc的1/24。定时器的内部结构如图3-1所示:当控制开关C/=0时,多路开关选择系统时钟的12分频作为计数源,C/=1,多路开关选择来自T0脚的外部脉冲作为计数源,控制位控制着计数源的脉冲是否能够送到加法计数器TL0、TH0的输入端,一旦计数器产生溢出,TF0变为1。系统时钟12分频T0引脚TL0 TH0TF0控制位图3-1 定时器内部结构图C/=0C/=12.2 本章小结定时器/计数器的本质是对脉冲的计数,无论是定时还是计数,当计数器溢出
9、回零时,TFX自动置1,CPU可以通过查询方式对其检测(查询后必须用软件将TFX清0),也可以采用中断方式,在EA1,ETX=1时,一旦TFX置1,CPU会自动进入中断,中断后会自动清除TFX。设计串行通信程序时,如果是方式1和方式3,必须在初始化程序中对定时器/计数器T1进行设置以选择波特率。对于发送程序应先发送,再检测TI的状态,再发送。或都先将TI的状态用程序置1,在中断服务程序中执行发送操作;接收程序只有RI状态有效后才能接收数据。无论是查询方式还是中断方式,发送或接收后都必须用程序将TI或RI清0.数字温度传感器提供了一系列的操作指令,单片机通过这些指令控制传感器实现 温度的测量。首
10、先对传感器执行初始化操作,然后发SKIP ROM指令,接着用CONVERT T指令启动温度转换,转换完成后,再次对传感器执行初始化操作,并跳过ROM 识别,然后发读暂存器指令READ SCRTCHPAD,再连续读出两个字节的温度值。液晶模块内含标准字库,可显示两行、每行16个点阵字符;单片机与液晶模块的连接可选总线方式或模拟I/O口方式;单片机通过操作指令实现 对液晶模块的编程控制;屏幕上的每个字符位置与内部数据存储器之间有着一一对应关系,要将字符显示到屏幕指定位置,必须设置液晶模块的数据存储器地址,然后将字符的ASCII码写入液晶屏的数据端口。第三章 软件设计3.1主程序设计YN电磁阀打开,
11、开始浇灌,打开定时器开始计时,浇灌15秒进入常温不浇灌,再间隔10秒If 24t30开始初始化获取温度和t判断温度值tIf t30N电磁阀打开,开始浇灌,打开定时器开始计时,浇灌25秒进入高温不浇灌,再间隔5秒YN图3-1主程序流程图void LCD_shi(uchar dat)void LCD_feng(ucahr dat)void LCD_miao(uchar dat)void disptime(void)void dispjiben(void)void timer0(void) interrupt 1int GetTemp(uchar temp4)void whileswitch()CP
12、U时钟定时器/计数器I/O接口ROMRAM图3-2 单片图机的结构框3.2 简单单片机应用系统结构单片机全称单片微型计算机,就是将CPU、系统时钟、RAM、ROM、定时器/计数器和多种I/O接口电路集成在一块芯片上的微型计算机。典型的单片机结构图如图3-2所示。3.3 DS18B20数字温度测量开始发DS18B20复位命令发跳过ROM指令发启动温度转换指令发DS18B20复位命令发跳过ROM指令发读暂存器指令读取两字节的温度值将温度值转换为BCD码送显示缓存调用显示程序3-2 温度测量流程图根据DS18B20的读/写时序及操作指令,单片机测量温度时,首先对DS18B20进行复位操作,由于总线上
13、只有一只DS18B20,无需根据序列号来识别传感器。单片机对其复位后可发SKIP ROM指令,再用CONVERT T指令启动传感器开始温度转换。转换完成后,DS18B20已将当前温度值放入了内部的暂存器中,为了读以温度值,单片机仍需对传感器进行复位操作,并跳过ROM操作别,然后发读暂存器指令READ SCRTCHPAD,接着连续读出两个字节的温度值,将其转换为十进制数在数码管上显示出来,相应的流程图如图3-2所示。int readt(void) uchar h,l;bit err;err=reset( );wrbyte(0xcc);wrbyte(0xbe);l=rdbyte( );h=rdby
14、te( );return(h*256+l);3.4语音报警模块void beep(void)uint i;for(i=0;i1000;i+)delay15(10); SPK=SPK;/蜂鸣器的值取反3.5 LCD液晶显示部分软件设计extern void LCD_DispIni(void);extern void LCD_DispFill(uchar filldata);extern void LCD_DispChar(uchar cy,uchar cx,char dispdata);extern void LCD_DispStr(uchar cy,uchar cx,char*disp_str
15、);extern void LCD_DispHZ(uchar cy,uchar cx,uchar dispdata);extern void LCD_DispHZStr(uchar cy,uchar cx,uchar*disp_str);3.6 定时模块设计在使用定时器/计数器时,首先应根据要求对工作方式进行初始化,然后计算出初始值。通常要向TMOD寄存器写入工作方式控制字,再将计数器的初值写入TH0、TL0。然后启动定时器/计数器,将TR0置1,如果采用中断优雅,还应将ET0、EA置1.void InitTimer0(void) TMOD = 0x02; /定时器工作在方式2 TH0 = -
16、250;/定时时间为 250us TL0 = -250; EA = 1; /单片机中断 ET0 = 1; /允许T0中断 TR0=1 ;3.7按键控制模块键盘是计算机系统中不可缺少的输入设备,矩阵式键盘也称为行列式键盘,其结构如图3-3所示。图中有4根行线和4根列线,按键跨接在行线和列线上。4*4的行列结构可以构成16个按键的键盘,与独立式键盘相比,按键数量相同时占用I/O口线少,因此适用于按键数量较多的场合。如图3-3中4根行线接到P2.0P2.3,作为输出口,4根列线接到P2.4P2.7,作为输入口,通常采用扫描法检测键盘有无键按下,并检测所按键(闭合键)的键号。扫描法的步骤如下。(1)
17、判断有无键闭合使行线P2.0P2.3都输出0,检测列线P2.4P2.7是否全为1。如果有键被按下,就会有某一根列线变为0,从而使P2.4P2.7不为全1;如果P2.4P2.7为全1,说明无键闭合。(2) 消除键抖动在检测到有键闭合后,需延时节020ms避开抖动阶段,然后检测P2.4P2.7是否为全1。如果为全1,作无键闭合处理,否则,则进一步检测闭合键键号。(3) 确定闭合键键号如果有键按下,再逐行逐列地扫描,以检测出所按键盘的键号。先使行线P2.0P2.3=0111,分别检测P2.4P2.7。如果P2.4为0,则为0号键按下;如果P2.5为0,则为1号键按下。如果P2.4P2.7都为1,说明
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 智能 电子产品 综合 项目 实践 设计 报告 自动 浇灌 系统
链接地址:https://www.31ppt.com/p-3926915.html