毕业设计论文单片机土壤湿度的测控.doc

上传人:土8路 文档编号:10527454 上传时间:2021-05-21 格式:DOC 页数:16 大小:204KB
返回 下载 相关 举报
毕业设计论文单片机土壤湿度的测控.doc_第1页
第1页 / 共16页
毕业设计论文单片机土壤湿度的测控.doc_第2页
第2页 / 共16页
毕业设计论文单片机土壤湿度的测控.doc_第3页
第3页 / 共16页
毕业设计论文单片机土壤湿度的测控.doc_第4页
第4页 / 共16页
毕业设计论文单片机土壤湿度的测控.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《毕业设计论文单片机土壤湿度的测控.doc》由会员分享,可在线阅读,更多相关《毕业设计论文单片机土壤湿度的测控.doc(16页珍藏版)》请在三一文库上搜索。

1、 单片机土壤湿度的测控 第 1 章绪论 1.1 国外灌溉自动化的发展情况 国际上,以色列、日本、美国等一些国家已采用先进节水灌溉制度。由传统的充分灌溉向非 充分灌溉发展,对灌区用水进行监测预报,实际动态管理。采用传感器来监测土壤的墒情和农 作物的生长,实现现水管理的自动化。高效农业和精细农业要求我们必须提高水资源的利用率。 在大规模的现代化农业生产过程中,自动控制土壤湿度不仅对作物生长具有重要意义,而 且对充分合理利用有限的水资源,降低农业生产成本,改变农作物耕作的传统粗放模式,也具 有深远的现实意义。本文介绍的土壤湿度单片机控制系统具有如下特点:基准土壤湿度范围 (上、下限)可任意设置和显示

2、。当实际土壤湿度在基准土壤湿度值范围内或大于等于湿度值 上限时,系统保持停止喷灌状态;当实际土壤湿度小于基准湿度下限时,保持喷灌状态,直到实 际土壤湿度大于上限值时停止喷灌。其实用性、抗干扰能力和可靠性大大提高。湿度传感器 采用石墨电极探头,不易腐蚀,寿命长,成本低。检测灵敏度高,迅速。 第 2 章控制系统硬件简介 2.1 系统总介绍 整个控制系统由 8051 单片机最小系统、传感器电路、模数 A/D 转换电路、基准湿度上下限值 设置与显示电路和开关量输出喷灌控制电路等组成(见图 1) P2 P1 P3 P0 8051 P3 4 位显示 键盘 停止、灌溉控制 74LS373ADC0809 传感

3、器电路 2.2 8051 最小系统 8051 最小系统是整个系统的控制处理中心,主要完成基准湿度上下限的设置与显示、湿度 检测过程中湿度值的采集、运算处理和输出控制等。它由8051单片机、锁存器74LS373和 ADC0809组成。 23 湿度传感器电路 它将土壤湿度的非电量值变成能反映湿度大小的电信号值,并将此电信号变换成A/D转换器 能处理的0-5V模拟电压信号。对它的要求是输出的电信号能正确反映湿度值的大小,传感器工 作寿命长,稳定性和线性良好。湿度传感器采用一对石墨电极探头,电极探头之间的电压与土 壤湿度的关系一一对应,土壤湿度不同,电极探头输出的电压也不同,这种关系能很好地反映 出来

4、。 湿度传感器的基本原理结构是这样的:两个金属电极分别安装在一个绝缘的物体上,而 且两个金属电极伸出来,互相不连通,把湿度传感器插入地下深处后,两个金属电极就和大地 相连通,大地做导体,所以,当大地的湿度很大时,既水分很多,那么大地的电阻就会很少; 而当大地的湿度很低时,由于这时候土地的水分含量少,所以呈现的电阻就很大,这样,在湿 度传感器的两端接上一个电源,外面再设计一些电路,就可以把土壤湿度的大少用电压或者电 流来表示出来。这样就实现了非电量到电量的转换。然后就再经过运算放大电路把电压或者电 流放大,送到A/D转换器转换成单片机能直接处理的数据,这样就可以交给电脑来运算处理了。 24 A/

5、D模数转换电路 它将湿度传感器送来的。5V模拟电压信号转换为能被计算机接收处理的数字信号。对模数 转换电路的要求是转换线性和精度良好。A/D模数转换电路采用ADC0809,它可实现8路转换, 满足湿度多点检测的需求。 2.5 基准湿度上下限设置与显示电路 这部分电路通过单片机P3口的两个外部中断引脚外接的2个独立式按键完成基准湿度上下限 值的设置,湿度设置基准值的大小通过单片机P1口外接的4只LED数码管显示器显示。 2.6 开关输出控制喷灌电路 单片机将采集到的湿度数字量与预先设置的基准湿度上下限值进行运算比较处理后,从 P2.0端口输出驱动电磁伐,从而打开电磁阀进行喷灌控制。 第 3 章所

6、用主要芯片介绍 3.1 8051 简介: 3.1.1. 8051 是 MCS-51 系列单片机中的最具代表产品,是美国英特尔公司的 8 位高档单片 机系列 ,也是我国目前应用最为广泛的一种单片机系列.其引脚排列如下图: 3.1.2. 8051 内部包括 8 位中央处理器,4KbROM,硬件乘除法器、21 个专用控制寄存器、 128 字节的数据存储器、4 组 8 位的并行口、两个 16 位的可编程定时/计数器、一个全双工的串 行口以及布尔处理器。MCS-51 的地址线为 16 条,可寻址范围为 64kB。 3.1.3 MCS-51 采用的是复杂指令系统计算机技术,最大的特点是指令丰富,可以灵活编

7、程, 适合用在复杂的控制领域. MCS-51 单片机的工作频率为 2-12MHz。8051 有各种完善的中断源, 用户可方便地使用。 32 ADC0809 简介: 3.2.1 主要特性 1)8 路 8 位 AD 转换器,即分辨率 8 位。 2)具有转换起停控制端。 3)转换时间为 100s 4)单个5V 电源供电 5)模拟输入电压范围 05V,不需零点和满刻度校准。 6)工作温度范围为-4085 摄氏度 7)低功耗,约 15mW。 3.2.2 内部结构 ADC0809 是 CMOS 单片型逐次逼近式 AD 转换器,内部结构下图所示: 开关树 型 D/A 定时和控制 逐次逼近寄 存器 (SAR)

8、 8 位 锁存 和 三态 门 通道地 址锁存 和译码 通道 选择 开关 它由 8 路模拟开关、地址锁存与译码器、比较器、8 位开关树型 DA 转换器、逐次逼 近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809 可处理 8 路模拟量输入, 且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与 TTL 兼容。 3.2.3外部特性(引脚功能) ADC0809 芯片有 28 条引脚,采用双列直插式封装,如图 13.23 所示。下面说明各引脚功能。 IN0IN7:8 路模拟量输入端。 2-12-8:8 位数字量输出端。 ADDA、ADDB、ADDC:3 位地址输入线,用于选通

9、 8 路模拟输入中。 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为 低电平) 。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能 打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+) 、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 3.2.4 ADC0809的工作过程: ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器

10、中。此地址 经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD 转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示 AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出 三态门打开,转换结果的数字量输出到数据总线上。 第 4 章系统软硬件设计 4.1系统的硬件设计 由于本设计采用的是 8051 单片机,其内部已经集成有 4K 的程序存储单元,还有 128 字节的 RAM,所以不需要外扩 ROM。除此之外,还有要配置键盘和 LED 显示和 A/D 转换器。在对应用系 统外围电路进行扩展

11、时,应尽可能选择典型电路以及要软硬件综合考虑。为降低线路压降,使系 统工作电压不致太高,各种引线尽可能地短,整个控制系统一般置于室外被控制的地面上,因此 周围环境温度变化大,灰尘多,还有无法预测的各种干扰,如电网的电压波动、雷电、接触器 的火花等。因此,除了正确设计软件、硬件外,还在线路工艺、电源和输出控制等方面采取了 抗干扰措施。电源经低通滤波器,降压稳压后给系统供电;系统机箱浮空接地,屏蔽起来; 输出控制采用继电器隔离。 4.2 系统的软件设计 4.2.1 软件程序设计 在进行软件的开发时,应注意采用下列原则: 1)软件在结构上应清晰、简洁、流程合理,采用模块化设计,通俗易懂,便于以后维护

12、。 2)程序存储区、数据存储区应合理规划,做到既节约内存容量,又方便操作。 3)必需软件抗干扰措施,以提高系统的可靠性。 4)如有必要可增加加密措施,以保护自身的合法的知识产权权利 4. 2.2软件的抗干扰措施: 当 CPU 本身受到干扰,程序计数器 PC 因干扰而改变内容时,CPU 将不能按正常状态执行程 序,从而引起混乱,产生所谓程序“跑飞”现象。为此可在软件上采取指令冗余、软件陷阱等 技术以控制程序流向。(1)指令冗余当 CPU 受干扰后,会把操作数当指令码引起混乱。MCS5 1 指令系统,大多为单字节指令,最长不超过 3 字节。当程序弹飞到双字节和 3 字节指令上时, 继续出错的机会较

13、大,而当弹飞到单字节指令上时,程序将自动纳入轨道。因此在程序中对程 序流向起决定作用指令之前插入 3 条空操作指令(如转移、子程序调用和对系统工作状态至关重 要的指令),并将跳转指令冗余一次,以保证被正确执行。指令冗余技术可减少弹飞次数,使程 序很快纳入轨道。(2)软件陷阱当程序弹飞到非程序区(EPROM 未使用区,数据区)时,冗余 指令将无能为力。为此可设计软件陷阱,即在程序断裂点(无条件跳转指令、返回指令之后)和 数据区末尾插入 NOP NOP LJMP 3 条指令。将空白区充满 LJMP 指令,强行将捕获的程序引向出 错处理程序入口。出错处理程序的主要功能是实现系统恢复。因 LJMP 指

14、令的操作码是 02H,故 若把出错处理程序入口安排在 0202H,则可方便地利用开发系统中 Debug 功能把大片程序空白区 固化为 020202,从而大批陷阱处理完毕。 4.2.3 软 件 系 统主要由主程序和一个检测控制子程序组成。 采用等待方式采集8路数据,存储到内部30H-37H单元中 38H存储按键上限 39H存储按键下限 38H的数据经标度转换后存到46H 39H的数据经标度转换后存到47H 46H的数据转换成BCD码后存储在40H和41H中待输出显示 47H的数据转换成BCD码后存储在42H和43H中待输出显示 44H存大于上限的个数 45H存小于下限的个数 A. 主程序流程图以

15、及程序 调用显示程序 调用数据采集程序 调用转换程序 开始 主程序框图如图2所示。系统上电后,先调用转换程序,包括表度转换和BCD码转换,然 后调用显示程序, 接下来调用数据采集程序,之后循环重复上述过程. ORG 0000H SJMP STAR ORG 0003H AJMP INTR0 ORG 0013H AJMP INTR1 STAR: SETB IT1 SETB IT0 SETB EA ;开中断 SETB EX1 SETB EX0 MOV 38H,#200 ; 系统默认的土壤湿度初始基准上限值 MOV 39H,#70 ; 系统默认的土壤湿度初始基准下限值 XHUAN: ACALL ZH

16、; 调用转换程序 ACALL XIANSHI ;调用显示程序 ACALL CAIJI ;调用数据采集程序 JMP XHUAN XIANSHI:MOV R0,#40H ;显示40H-43H缓冲区的内容 MOV A,#0FFH 灭LED MOV P1,A MOV A,R0 ADD A,#53 ;对A进行地址修正 MOVC A,A+PC ;查表 MOV P1,A ;输出字型控制码 MOV C,#0H MOV P3.0,C ; 输出位控制码,P3.0,P3.1,P3.4,P3.5分别对应输出低位,高位; 低位.高位的位控制字 ACALL DELAY ;延时一定时间 CPL P3.0 ;灭 INC R0

17、 MOV A,R0 ADD A,#38 ; 对A进行地址修正 MOVC A,A+PC MOV P1,A ;输出下一个字形码 MOV C,#0H MOV P3.1,C ACALL DELAY CPL P3.1 INC R0 MOV A,R0 ADD A,#26 ; 对A进行地址修正 MOVC A,A+PC MOV P1,A MOV C,#0H MOV P3.4,C ACALL DELAY CPL P3.4 INC R0 MOV A,R0 ADD A,#11 ; 对A进行地址修正 MOVC A,A+PC MOV P1,A MOV C,#0H MOV P3.5,C ACALL DELAY CPL P

18、3.5 RET DTAB: DB 3FH,06H,5BH,4FH,66H, DB 6DH,7DH,07H,7FH,6FH 标度转换: 把按键输入的存储在38H和39H单元的二进制值转换成BCD形式的温度值,然后存放到显示缓冲区 40-43H中,对于一般线性转换有以下公式: Ax=Ao+(Am-Ao)(Nx-No)/(Nm-No) 其中Ao为测量仪表的显示下限,Am为上限;Ax为实际测量值;No为仪表显示下限所对应的数 字量;Nm为仪表显示上限所对应的数字量;Nx为测量所得数,由于本系统的上限设置和下限设置 的显示系统都是用2位LED显示的,所以显示范围为0-99,即Ao=0,Am=99;;又由

19、于8031内部的存 储器为8位的,所以对应的数字量No=00H=0,Nm=FFH=255; 最后所得公式为:Ax=99*Nx/255 也就 是:Ax=63H*Nx/FFH 转换程序: ZH: MOV A,#0FFH MOV B,A MOV R0,#38H MOV R1,#46H DD: MOV A,R0 DIV AB ;本系统不要求很精确,所以B中的余数不作理 MOV R1,A MOV A,#63H MOV B,A MOV A,R1 MUL AB MOV R1,A INC R0 INC R1 NOP NOP CJNE R0,#39H,DD ;未转换完继续 把46H和47H单元的数据转换成BCD

20、码(经上述转换后,不会出现百位BCD码,即用两位即可 显示完) MOV R0,#40H MOV R1,#46H MOV A,#64H MOV B,A EE: MOV A,R1 DIV AB MOV R3,A MOV A,B NOV R0,A INC R0 MOV A,R3 MOV R0,A INC R1 INC R0 NOP NOP CJNE R1,#47,EE ;未转换完继续 RET B、数据采集程序 采集 8 点温度值存入内部 RAM 中 实际湿度值大于上限值 的点数大于 5? 实际湿度值小于下限值 的点数大于 5? 灌溉 停止灌溉 湿度检测控制程序框图如上图所示。单片机对传感器送来的8路

21、湿度值进行采样,并存入 单片机的内部30H-37H RAM单元;将采集到的8个湿度值分别与基准湿度上下限值进行比较,8个 返回 湿度值中若有6个或6个以上的值大于上限值,单片机发出控制信号,停止喷灌;直至8个湿度值 中有6个或6个以上的值小于下限值,单片机发出控制信号,进行喷灌;再至单片机检测到的8个 湿度值中有6个或6个以上的值大于上限值时才停止喷灌。 采集8路数据,存储到内部30H-37H单元中 CAIJI: MOV R0,#30H MOV R2,#08H MOV R1,#00H ;第一通道地址(第2通道地址为01H, 第3通道地址为02H第4通道 地址为03H第8通道地址为07H)送R1

22、 AD: MOVX R1,A ;启动转换 ACALL DL10MS ;延时10MS等待转换完成 MOVX A,R1 MOV R0,A INC R1 INC R0 NOP NOP DJNZ R2,AD ;采集到8路数据未?未则转 BIJIAO:MOV R0,#30H ; 比较 MOV R2,#07H MOV A,38H SUBB A,R0 JC JIAYI1 AA: MOV A,39H SUBB A,R0 JNC JIAYI2 CLR C INC R0 NOP NOP BB: DJNZ R2,BIJAO ,8个数据比较完未?未就继续 MOV A,44H SUBB A,#05H JNC TINGZ

23、HI MOV 44H,#00H CLR C MOV A,45H SUBB A,#05H NOP NOP JNC GUABGAI CLR C MOV 45H,#00H RET TINGZHI: MOV C,#0H ;输出停止信号 MOV P2.0,C MOV 44H,#00H LJMP STAR GUANGAI: MOV C,#1H ;输出灌溉信号 MOV P2.0,C MOV 45H,#00H LJMP STAR DELAY: MOV R7,#03H DELAY1: MOV R6,#0FFH DELAY2: DJNZ R6, DELAY2 DJNZ R7, DELAY1 RET JIAYI1:

24、 INC 44H CLR C JMP AA JIAYI2: INC 45H JMP BB DL10MS: MOV R3,#0AH DL2: MOV R4,#7DH DL1: NOP NOP DJNZ R4,DL1 DJNZ R3,DL2 RET 中断服务程序:(利用两个中断源处理两个按键, P3.2接上限设置按键,P3.3接下限设置按键) INTR0:JNB P3.2,$ ;按键未提起等待 INC 38H 38H单元加1(00H到FFH循环) ACALL ZH ;调用转换程序 ACALL XIANSHI ;调用显示程序 RETI INTR1:JNB P3.3,$ INC 39H ACALL Z

25、H ACALL XIANSHI RETI END 4.3 软件硬件结合调试 4.3.1 基本检测: 先用万用表等工具检查试验样机联线正确对否,然后检查硬件电路的地址总线、数据总线和 控制总线是否有短路、开路或错位现象;如有则立刻改正.电路检查完成后,在不插入集成电路 芯片的情况下加电检查,确定一些关键点的电位是否正常。加电后,不可拔插任何集成电路芯 片。 4.3.2 高级检测: 用单片机仿真开发装置来调试,排错。具体的方法有单步运行、断点运行、跟踪运行、全 速运行等,在此不详细介绍。 总结 经过几个月的时间,毕业设计就要结束了,也意味着离离开学校的时间更近了,多少有点 唏嘘。因为从此就要离开曾

26、经一起生活了几年的同学,踏入社会了。但无论怎么样,从这做毕 业设计的几个月中,确实使我学到了很多丰富了课本的知识也增强了动手能力。就拿单片机的 纠错技术来说吧,8051 指令系统能被正确地执行是系统正常工作的前提,为此可以设计一段涉 及各种指令的测试程序,判断其运行结果是否正确,以排除 CPU 失灵的可能性。可以编一段程 序,向 RAM 区依次进行写入读出操作,比较读出与写入内容是否相同来判断写入的内容有没有 错。对于 EPROM 的诊断,当固化目标程序的 EPROM 在使用时间长,窗口密封不好等情况下,可 能出现个别零星单元信息发生变化的情况,必须主动进行检查,可用下面方法。在程序固化之 前

27、,利用开发装置求出所有指令的异或和并把结果写入最后一个空单元中,诊断时再求所有指 令,包括“结果”的异或和,若和数为零,可以认为 EPROM 中的内容是正确的 。 由于本人的理论知识水平有限,实践能力和设计经验不足,在设计的过程中难免还存在一 些问题甚至是错误。恳请老师批评指导,以便在以后的学习和工作中加以改正。希望本人的毕 业设计能给老师交上一份满意的答卷,也为我们这三年的大学生活画上一个圆满的句号! 附录 附图(控制原理图) EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P1

28、2 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 D 0 3 D 1 4 D 2 7 D 3 8 D 4 13 D 5 14 D 6 17 D 7 18 OE 1 LE 11 OUT 0 2 OUT 1 5 OUT 2 6 OUT 3 9 OUT 4 12 OUT 5 15 OU

29、T 6 16 OUT 7 19 U2 373 OE 1 START 2 ALE 3 ADDA 4 ADDB 5 ADDC 6 D0 7 D1 8 D2 9 D3 10 D4 11 D5 12 IN0 13 IN1 14 IN2 15 IN3 16 IN4 17 IN5 18 IN6 19 IN7 20 CLOCK 21 EOC 22 D7 23 D6 24 U4 0809 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp E 9 DS1 LED1 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp E 9 DS2 LED2 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp E 9 DS3 LED3 a bf c g d e DPY 1 2 3 4 5 6 7 a b c d e f g 8 dp dp E 9 DS4 LED4 SW1 * SW2* +5V 伐伐伐伐伐伐 Y 8 HEADER +5V 伐伐伐伐

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1