资源描述
土壤湿度检测及自动浇水系统设计土壤湿度检测及自动浇水系统设计 1 设计主要内容及要求1.1 设计目的: 随着人们生活水平的提高花卉逐渐受到人们的青睐,本设计要求利用单片机设 计一 款 家庭智能浇花器,实现自动浇花,节省人力,方便人们出差的时候不至于 影响花卉的生长,如果在家也可以关断浇花器 。(1) 了解土壤湿度检测的基本知识以及电工电子学、单片机、传感器等相关技 术。(2) 初步掌握常用土壤湿度检测传感器的特点和应用场合,并选择恰当方法应 用于本设计。 1.2 基本要求(1) 通过c8051f020单片机编程来实现土壤湿度的实时显示,并具有超量程报 警装置。 (2)要求设计相关传感器系统和控制系统实现自动浇水功能。(3) 要求设计相关的硬件电路,包括传感器的选型、控制系统和显示系统的硬 件电路设计。 1.3 发挥部分自由发挥2 设计过程及论文的基本要求:2.1 设计过程的基本要求(1) 基本部分必须完成,发挥部分可任选;(2) 符合设计要求的报告一份,其中包括总体设计框图、电路原理图各一份;(3) 报告的电子档需全班统一存盘上交。2.2 课程设计论文的基本要求(1)参照毕业设计论文规范打印,包括附录中的图纸。项目齐全、不许涂改, 不少于4000字。图纸为A4,所有插图不允许复印。(2) 装订顺序:封面、任务书、成绩评审意见表、中文摘要、关键词、目录、正 文(设计题目、设计任务、设计思路、设计框图、各部分电路及相应的详细的功能 分析和重要的参数计算、工作过程分析、元器件清单、主要器件介绍)、小结、参 考文献、附录(总体设计框图与电路原理图)。 3 时间进度安排顺序 阶段日期 计 划 完 成 内 容 备注讲解主要设计内容,安排学生查阅资料 打分 1检查任务框图的设计情况 打分 2检查整个设计理论方面的准备情况 打分 3指导学生进行传感器的选择 打分 4进程传感器及测量电路的硬件电路设计 打分 5讲解原理图的绘制要求 打分 6检查原理图完成情况,讲解及纠正错误 打分 7检查流程图的绘制及报告的书写要求 打分 8布置答辩 打分 9答辩、写报告 打分 10一 设计任务描述1.1 设计题目:土壤湿度检测及自动浇水系统设计1.2 设计要求1.2.1 设计目的:随着人们生活水平的提高花卉逐渐受到人们的青睐,本设计要求利用单片机设 计一 款家庭智能浇花器,实现自动浇花,节省人力,方便人们出差的时候不至于 影响花卉的生长,如果在家也可以关断浇花器 。(1)了解土壤湿度检测的基本知识以及电工电子学、单片机、传感器等相关技 术。(2)初步掌握常用土壤湿度检测传感器的特点和应用场合,并选择恰当方法应 用于本设计。1.2.2 基本要求:(1)通过 C8051F020 单片机编程来实现土壤湿度的实时显示,并具有超量程报 警装置。(2)要求设计相关传感器系统和控制系统实现自动浇水功能。(3) 要求设计相关的硬件电路,包括传感器的选型、控制系统和显示系统的硬 件电路设计。1二 设计思路 我所设计的土壤湿度检测及自动浇水系统主要由七部分组成。第一部分:精密对称方波发生器。用于驱动湿敏电阻,因为直流电流通过湿敏 电阻时会产生电化学迁移现象而损坏湿敏电阻,所以在这里我选择了具有稳幅作用的精 密对称方波发生器作为信号源。第二部分:湿敏电阻传感器。由于湿敏电阻是最常见,价格也最低廉的一种湿 度传感器所以我选择了湿敏电阻作为本设计的核心传感器。我选择的是 PCRC-55 这款湿 敏传感器。他是一种经过化学方法处理的聚苯乙烯聚合物。其电阻值(R)与相对湿 度(RH)的曲线近似指数曲线,即电阻值随相对湿度的增大为减小。第三部分:对放大器组成的对数放大电路来对湿敏电阻的指数型特性曲线进行线性化。 第四部分:相对湿度校准电路。利用湿度校准电路对40%RH、100%RH两点进行校准,再通过滤波器产生一个代表相对湿度的直流输出电压,输出电压范围是0+10V,所对应的相对湿度变化范围是(0100%)RH。第五部分:断点放大器。由于湿敏电阻在RH?40%时的非线性失真最为显著,我 真对这一情况采用断点放大器再做一次局部的线性化处理,即再进行一次线性补偿。 第六部分:温度补偿电路。利用集成恒流源的正温度系数去补偿湿敏电阻的负温度 系数,大大降低了温漂。当环境温度发生变化时,必然导致组成对数放大器的晶体管 的直流工作点发生改变,而这也终究会影响到对数放大器的输出特性。因此我对组 成对数放大器的晶体管采取一定的温度补偿措施,即用一片廉价的集成音频放大器 对其补偿,以避免这种情况的发生。 第七部分:数据处理及自动浇水系统。利用单片机对湿敏电阻这一传感器所采 集的代表土壤湿度的电压信号进行处理、分析,并对土壤湿度进行实时显示、超范围报 警以及自动浇水。对这以上就是我所设计的土壤湿度检测及自动浇水系统的设计思路。基于此设 计思路设计的土壤湿度检测及自动浇水系统的相对湿度测量范围为0100%,测量精 度为?2%,分辨力可达0.01%。2三设计方框图精密对称方波发生器湿敏电阻稳压电源对数放大器稳压温度补偿电路 (兼半波整流) (恒温器)湿度校准电路断点补偿电路 及滤波器输出放大器湿度显示、超量程报警C8051F020单片机 自动浇水3四设计原理4.1 精密对称方波发生器湿敏电阻只能用交流的,直流会导致湿敏失效,因为直流的电场会导致高分子 材料中的带电粒子偏向两极,一定时间以后湿敏电阻就会失效。所以必须用交流维 持其平衡,这也是为什么测湿敏电阻阻值要用电桥而不能用普通万用表的原因。水分子是极性分子,在直流电厂中会分解为H2和O2,影响测量,并且在湿敏 传感器中存在导电离子,在高湿情况下,如采用直流电会漂移造成电导率漂移,影 像传感器的使用寿命。综上所述:鉴于当直流电流通过湿敏电阻会产生电化学迁移现象而损坏湿敏电 阻,因此必须采用交流信号或对称方波信号来驱动湿敏电阻。这里选用具有稳幅作用的精密对称方波发生器作为信号源,其输出信号中不包 含直流分量。4.2湿敏电阻传感器湿敏电阻是利用湿敏材料吸收空气中的水分而导致本身电阻值发生变化这一原 理而制成的。工业上流行的湿敏电阻主要有:半导体陶瓷湿敏电阻、氯化锂湿敏电 阻、有机高分子膜湿敏电阻。湿敏电阻的特点是在基片上覆盖一层用感湿材料制成 的膜,当空气中的水蒸气吸附在感湿膜上时元件的电阻率和电阻值都发生变化。PCRC-55型湿敏电阻是用经过化学方法处理的聚苯乙烯聚合物制成的。其电阻 值(R)与相对湿度(RH)的影响曲线如图4.2.1湿敏电阻特性曲线所示。该曲线近似 为指数曲线。当湿度从20%变化到100%时,电阻值就从100MQ迅速减小到 35KQ,电阻变化量超过了 4个数量级。因此,构成相对湿度测量仪时必须进行线 性化,才能获得线性输出电压。PCRC-55的温度系数为一0.36%RH/?,精度 为?1%。做0 却 44) 或 M I如图4.2. 1湿敏电阻特性曲线4.3对数放大器为解决湿敏电阻的非线性问题,由晶体管和运算放大器构成对数放大器,对湿 敏电阻的指数型特性曲线进行线性化。4.4 相对湿度校准电路利用湿度校准电路对 40%RH、100%RH 两点进行校准,再通过滤波器产生一个代 表相对湿度的直流输出电压,输出电压范围是o+iov,所对应的相对湿度变化范 围是(0100%)RH。4.5 断点放大器所谓“断点”就是指40%RH这一点,由图4.2.1湿敏电阻特性曲线可见,PCRC-55型湿敏电阻在RH?40%时的非线性失真最为显著,针对这种情况可通过断点放大器再做一次局部线性化处理。4.6 温度补偿电路4.6.1 湿敏电阻的温度补偿由于湿敏电阻具有负温度系数,因此要对其负温度系数进行一定的温度补偿, 这里我采用集成恒流源的正温度系数去补偿湿敏电阻的负温度系数。4.6.2 对数放大电路中晶体管的温度补偿当环境温度发生变化时,必然导致组成对数放大器的晶体管的直流工作点也发 生变化,而这也终究会影响到对数放大器的输出特性。因此要对组成对数放大器的 晶体管采取一定的温度补偿措施,即用一片廉价的集成音频放大器对其进行补偿。4.7 数据处理及自动浇水系统利用单片机对湿敏电阻这一传感器所采集的代表土壤湿度的电压信号进行处 理、分析,并对土壤湿度进行实时显示、超范围报警及自动浇水5五 电路设计5.1 精密对称方波发生器5.1.1 电路图电路图如图5.1.1精密对称方波发生器所示。图5.1.1精密对称方波发生器5.1.2原理精密对称方波发生器由集成运放ICTa(LF347)、三端可调电流源IC2(LM334)、和二极管桥路(VD1VD4)组成。利用二极管桥路和电阻R2、R3构成的 正反馈电路使IC-1a产生振荡。该方波发生器具有对称输出、限流和稳幅的特性。R1为设定电阻(RSET),取R1=15Q时可将LM334的输出电流限定在5mA左右。 利用二极管桥路的正、反向钳位作用,能把输出方波电压U01的幅度限制在?8V。 谐振频率约为100HZ。随着振荡电容C1不断的进行充、放电,在U01端便形成了以零伏为对称轴的 方波信号,其直流分量为零。R2、R3组成分压器,用于设定IC1的阈值电压(即门 限电压),进而控制IC-1a的翻转状态。对称方波发生器输出的U01信号通过缓冲器(IC-1b)驱动湿敏电阻。65.2湿敏电阻传感器5.2.1电路图电路图如图5.2.1湿敏电阻传感器所示。1N4148itoic图5.2. 1湿敏电阻传感器5.2.2原理PCRC-55型湿敏电阻是用经过化学方法处理的聚苯乙烯聚合物制成的。其电阻 值(R)与相对湿度(RH)的影响曲线如图5.2.2湿敏电阻特性曲线所示。当相对湿度 从20%变化到100%时,电阻值就从100MQ迅速减小到35KQ电阻变化量超过4个 数量级。图5.2.2湿敏电阻特性曲线在方波信号的正半周期,VD5截止,在负半周期,VD5导通。75.3对数放大器电路图如图5.3.1对数放大器所示。图5.3.1对数放大器5.3.2原理对数放大器由晶体管VT1和运放IC-1c构成。将VT1的基极接地、集电极接A点(虚地)时,相当于把集电极与基极短接, VT1就等效于硅二极管。此对数放大器用来补偿湿敏电阻的指数曲线,使之近似于线性关系。实现对湿 敏电阻的线性化。在方波信号的正周期,IC-1C作为反相放大器使用,输出的是负向方波信号, 在负半周期,对数放大器不工作。因此对数放大器兼有半波整流作用。5.4相对湿度校准电路5.4.1电路图电路图如图5.4.1相对湿度校准电路所示。图5.4.1相对湿度校准电路5.4.2原理相对湿度校准电路由ICTd和电位器RP1、RP2组成。RP1用以校准40%RH的刻度,RP2用来校准100%RH的刻度。95.5断点放大器5.5.1电路图电路图如图5.5.1断点放大器电路所示。U 卜 卜?1-11 05.H |-rt 图5.5.1断点放大器电路所谓“断点”就是指40%RH这一点。PCRC-55型湿敏电阻在RH?40%时的非线性 失真最为显著,针对这种情况断点放大器再做一次局部的线性化处理。断电放大器(IC-3b)就并联在输出放大器(IC-3a)的两端。当RH?40%时,利用 IC-3b可以改变IC-3a的增益,使相对湿度特性曲线在040%范围内更接近于线 性。当RH,40%时,IC-3b输出低电平,故VT4、VD6截止,断电放大器不工作,对 (40%100%)相对湿度的线性化任务全部由对数放大器来完成。仅当RH=40%时,IC- 3b的输出变成高电平,使VT4、VD6导通,断电放大器才开始工作,可使040%相 对湿度范围内的输出电压与相对湿度仍保持线性关系。电路中R13和VD6的作用是防止在断点附近产生抖动现象。105.6温度补偿电路5.6.1电路图电路图如图5.6.1温度补偿电路所示。图5.6. 1温度补偿电路5.6.2原理湿敏电阻的温度补偿利用LM334的正温度系数(+0.33%/?)去补偿湿敏电阻的负温度系数(- 0.36%/?),实际温度系数仅为-0.03%/?,它与传感器的?1%精度指标相比完全可以 忽略。LM334的安装位置应尽量靠近湿敏电阻。LM334即可构成恒流源,还可作为电压灵敏度为227 口 V/K的温度传感器使用, 这里仅利用其恒流特性,从而大大提高了方波幅度的稳定性。对数放大电路中晶体管的温度补偿当环境温度发生变化时,必然导致组成对数放大器的晶体管VT1的直流工作点 也发生变化,而这也终究会影响到对数放大器的输出特性。因此要对VT1采取一定 的温度补偿措施。温度补偿电路实际上是由IC4IC6和VT2、VT3等组成的小型恒温槽是控制 器,并且需将VT2、VT3与VT1紧贴在一起。将VT2的集电极短接,利用其发射结 作为温度传感器使用。IC5是温控电路。VT3作为加热器,给VT1提供一个+50?(典 型值)的工作温度,使之不受外界环境温度变化的影响。IC6(7812)给1 C5提供+12V 稳定电压。IC5的参考电压U3=+0.63V,该电压所对应的VT1管壳温度恰好为 +50?。一旦VT1始终工作在+50?恒温状态,从而消除了环境温度变化对VT1 工作点 的影响。VDZ为3V稳压管。115.7 数据处理及自动浇水系统5.7.1单片机外围电路电源电路在电源电路中,IC8 SPX1117-3.3是稳压芯片将输入电压5V转换成3.3V作为 C8051F020单片机的主要供电电源。S1为输入电源开关按钮,在下载完数据后可用 此按键来更新下载数据。其电路图如图5.7.1电源电路所示。、匸广 r :二M I - .-A=5.!.J/*-;!哺 .*I ji IriI 用 A图5.7.1电源电路12复位电路当开发板上电时,C4经充电后复位端电压相当于低电平实现上电复位:当断电后通过1N4148形成放电回路。其电路图如图5.7.2复位电路所示。7CCVD8tlN414SE231OKRES匚4104liXiFS1 fcW-PB图5.7.2复位电路液晶显示(LCD )接口电路单片机留有一个LCD液晶接口,相对应的液晶为MzL05-12864,它是一款仅写入的串行SPI接口方式的液晶,给液晶仅需5个控制口即可完成对其控制。单片机J1使用模拟SPI的方式对液晶进行操作。其电路图如图5.7.3液晶接口电路所示。CS3 P2.2SCK P2.5SDI P2.S7CC3.3V图5.7.3液晶接口电路13晶振电路Y1为晶体振荡器,其振荡频率为22.11842MHZ,为单片机提供其工作所需要的 时钟,C7、C8起到帮助晶振的作用。电路图如图5.7.4晶振电路所示。.G?烈I2 .: 11342W1Z =.CBSTAL1图5.7.4晶振电路报警(LED)电路LED以灌电流的方式点亮,阻流电阻选择了 10K。电路图如图5.7.5报警电路 所示。vccE?2410KR2-510K?O2FtU图5.7.5报警电路145.7.2模块单片机程序设计主要有五部分组成。第一部分:采集表示湿度的电压信号。第二部分:十六进制至BCD的转换。第三部分:液晶显示(湿度)第四部分:报警(湿度过高,超量程)第五部分:自动浇水(湿度过低,需要浇水)5.7.3程序采集表示湿度的电压信号程序MOV 30H,ADC0HMOV 31H,ADC0L十六进制数至BCD的转换程序BCD: CLR AMOV 41H,AMOV 40H,AMOV 39H,AMOV 38H,AMOV 37H,AMOV R5,#16 H2B: CLR CMOV A,31HRLC AMOV 31H,AMOV A,30HRLC AMOV 30H,AMOV A,41HADDC A,41HDA AMOV 41H,AMOV A,40HADDC A,40HDA AMOV 40H,AMOV A,39HADDC A,39HMOV 39H,ADJNZ R5,H2BMOV A,41HMOV B,#1615DIV ABMOV 38H,AMOV 37H,BMOV A,39HMOV 41H,AMOV A,40HMOV B,#16DIV ABMOV 40H,AMOV 39H,BRET液晶显示(湿度)程序SYSCLK_Init: MOV 0SCICN,#05H /系统时钟初始化为片内的4MHz时钟RETPORT_Init: CLR A /清零累加器MOV XBR0,A /没有选择数字外设MOV P74OUT,#OFOH /P4P7 口设为推拉方式RETMOV P7,#038H /功能设置:两行显示,5X7点阵MOV P6,#01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序MOV P7 ,#0EH /开显示,开光标,字符不闪烁MOV P6,#01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序MOV P7,#06H /I/D=1,AC自动增1;S=O,整体显示不移动MOV P6,01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序MOV P7,#01H /清除 DDRAM,置 AC=OMOV P6,#01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序RETLine: CLR A /累加器清零MOV A,40H /十位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作16CLR C /进位位清零MOV A,40H /十位数送累加器LCALL DELAY /调用延时程序LCALL DELAY /调用延时程序LCALL DELAY /调用延时程序LCALL DELAY /调用延时程序 NN: MOV A,39H /个位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序MOV A,#0AH /显示小数点MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序MOV A,38H /十分位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序MOV A,37H /百分位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序LCALL Delay /调用延时程序MOV A,#0BH /显示空格MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序LCALL Delay /调用延时程序MOV A,#0DH /显示 “S”MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作17LCALL Delay /调用延时程序RETNCDdata: DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,2EH,20H,63H,53H /ASCI I码表 报警(湿度过高,超量程)程序MM: MOV A,40H /十位的数送累加器CLR C /进位位清零SUBB A,#03H /十位的数与3比较(判断是否大于30)JC NN /进位位为1时跳(小于30时跳到NN,大于30时顺序执行)MOV A,#0FDH /第二盏灯亮MOV P0,A /第二盏灯已亮(湿度已超量程、报警) 自动浇水(湿度过低,需要 浇水)程序SUBB A,#02H /十位的数与2比较(判断是否小于20)JNC MM /进位位为0时跳(大于20时跳到MM,小于20时顺序执行)MOV A,#0FEH /第一盏灯亮MOV P0,A /第一盏灯已亮(浇水)18六 工作过程分析6.1 精密对称方波发生器工作过程分析利用二极管桥路和电阻R2、R3构成的正反馈电路使IC-1a产生振荡。该方波 发生器具有对称输出、限流和稳幅的特性。R1为设定电阻(RSET),取R1=15Q时可将LM334的输出电流限定在5mA左右。 利用二极管桥路的正、反向钳位作用,能把输出方波电压U01的幅度限制在?8V。 谐振频率约为100HZ。随着振荡电容C1不断的进行充、放电,在U01端便形成了以零伏为对称轴的 方波信号,其直流分量为零。R2、R3组成分压器,用于设定IC1的阈值电压(即门 限电压),进而控制IC-1a的翻转状态。对称方波发生器输出的U01信号通过缓冲器(IC-lb)驱动湿敏电阻。6.2湿敏 电阻传感器工作过程分析PCRC-55型湿敏电阻是用经过化学方法处理的聚苯乙烯聚合物制成的。当相对 湿度从20%变化到100%时,电阻值就从100MQ迅速减小到35KQ电阻变化量超过 4个数量级。对称方波发生器输出的U01信号通过缓冲器(IC-lb)驱动湿敏电阻,再接至对 数放大器IC-lc的反相输入端A。A点亦称求和点或虚地点,该点的电位可是为 0V。设湿敏电阻R上的电流为IRH,很容易求出U0lIRH,(6.2.l) R在方波信号的正半周期,VD5截止,在负半周期,VD5导通。6.3 对数放大器工作过程分析将VT1的基极接地、集电极接A点(虚地)时,相当于把集电极与基极短接,VT1就等效于硅二极管。VT1的发射极电压(UBE)与集电极电流(IC)呈对数关系,其 表达式为kTICU,lnBE(6.3.1) qIS,5,19式中k为玻尔兹曼常数,q为电子电量(),T为热k,8.63, 10qV/Kq,1.60219,10C力学温度(K),IS为晶体管反向饱和电流。根据这一特性可 设计成对数放大器用来补偿湿敏电阻的指数曲线,使之近似于线性关系。利用电路 实现线性化的原理如下湿敏电阻的电阻值相对湿度的关系式可近似表示为 ,RHR,Ae(6.3.2)式中A为一变量,RH代表相对湿度(单位是%)。令VT1发射极输出电压为U02,显然,U02二UBE。考虑到 IC=IRH 与式(6.2.1)和式(6.3.2) 并代入式(6.3.1) 中化简后得到,kTU01,U,UBE,ln,RH(6.3.3) 02,qR,19不难看出,U02与相对湿度成正比,这就实现了对湿敏电阻的线性化。在方波信号的正周期,U01=+8V,使VD5截止,U01途径湿敏电阻、求和点A, 接VT1的集电极,在利用电路中的VT1对IRH求对数。因IC-lc作为反相放大器使 用,故U02输出的是负向方波信号,在负半周期时,U01=-8V,使VD5导通对数放 大器不工作。因此对数放大器兼有半波整流作用。6.4 湿度校准工作过程分析U02送至IC-1d的反相输入端。RP1用以校准40%RH的刻度,RP2用来校准100%RH的刻度。校准后的信号通过滤波电容(C3)得到直流信号,再经过输出放大器IC-3a放 大,获得0+10V的输出电压6.5 断点校准工作过程分析所谓“断点”就是指40%RH这一点。PCRC-55型湿敏电阻在RH?40%时的非线性 失真最为显著,针对这种情况断点放大器再做一次局部的线性化处理。当RH?40%时,利用IC-3b可以改变IC-3a的增益,使相对湿度特性曲线在 040%范围内更接近于线性。设IC-3a的同相输入端电压为U1(这也是IC-3b的反相输入端电压),IC-3b的 同相输入端电压为U2。不难计算出U2=+0.37V,该电压即为IC-3b的参考电压。当 RH,40%时,U1,U2,IC-3b输出低电平,故VT4、VD6截止,断电放大器不工作,对 (40%100%)因相对湿度的线性化任务全部由对数放大器来完成。仅当RH=40%时, U1?0.36V,U2,IC-3b的输出变成高电平,使VT4、VD6导通,断电放大器才开始工 作,可使040%相对湿度范围内的输出电压与相对湿度仍保持线性关系。电路中R13和VD6的作用是防止在断点附近产生抖动现象。6.6 温度校准工作过程分析6.6.1 湿敏电阻的温度补偿利用LM334的正温度系数(+0.33%/?)去补偿湿敏电阻的负温度系数(- 0.36%/?),实际温度系数仅为-0.03%/?,它与传感器的?1%精度指标相比完全可以 忽略。LM334的安装位置应尽量靠近湿敏电阻。LM334即可构成恒流源,还可作为电压灵敏度为227 口 V/K的温度传感器使用, 这里仅利用其恒流特性,从而大大提高了方波幅度的稳定性。206.6.2 对数放大电路中晶体管的温度补偿当环境温度发生变化时,必然导致组成对数放大器的晶体管VT1的直流工作点 也发生变化,而这也终究会影响到对数放大器的输出特性。因此要对VT1采取一定 的温度补偿措施。温度补偿电路实际上是由IC4IC6和VT2、VT3等组成的小型恒温槽是控制 器,并且需将VT2、VT3与VT1紧贴在一起。将VT2的集电极短接,利用其发射结 作为温度传感器使用。IC5是温控电路。VT3作为加热器,给VT1提供一个+50?(典 型值)的工作温度,使之不受外界环境温度变化的影响。IC6(7812)给1 C5提供+12V 稳定电压。IC5的参考电压U3=+0.63V,该电压所对应的VT1管壳温度恰好为 +50?。一旦VT1始终工作在+50?恒温状态,从而消除了环境温度变化对VT1 工作点 的影响。VDZ为3V稳压管。6.7数据处理及自动浇水系统工作过程分析6.7.1 单片机运行自动浇水:湿度过低,需要浇水。当湿度显示的数小于“20S”时,表示湿度过低,此时需要浇水(左边第一盏灯 亮)。液晶显示器显示湿度。如图6.7.1湿度过低,需要浇水所示。图6.7. 1湿度过低,需要浇水21报警:湿度过高,超量程报警。当湿度显示的数大于“30S”时,表示湿度过高,已超量程,(左边第二盏灯亮)。液晶显示器显示湿度如图6.7.2湿度过高,超量程报警所示。图6.7.2湿度过高,超量程报警22显示:湿度显示。当湿度显示的数界于“20S30S”时,液晶显示器显示湿度。表示湿度适宜,如图6.7.3湿度显示所示图6.7.3湿度显示6.7.2 源程序$INCLUDE(C8051F020.INC)ORG 0000HLJMP MAINORG 007BHLJMP ADISRORG 0100HMAIN: MOV AMX0CF,#00MOV AMX0SL,#00MOV REF0CN,#03HMOV ADC0CF,#58HMOV XBR2,#40HMOV P1MDOUT,#00HMOV ADC0CN,#80HMOV EIE2,#02HSETB EAORL ADC0CN,#10HLCALL STOPLCALL SYSCLK_Init /调用系统时钟初始化LCALL PORT_Init /调用通用I/O 口及交叉开关初始化MOV 35H,#0FFHAJMP $ADISR: MOV 30H,ADC0HMOV 31H,ADC0LLCALL BCDLCALL STOPLCALL SYSCLK_Init /调用系统时钟初始化LCALL PORT_Init /调用通用I/O 口及交叉开关初始化LCALL Delay /调用延时程序ANL ADC0CN,#0DEHORL ADC0CN,#10H LOP1: RETIBCD: CLR AMOV 41H,AMOV 40H,AMOV 39H,AMOV 38H,AMOV 37H,AMOV R5,#1624H2B: CLR CMOV A,31HRLC AMOV 31H,AMOV A,30HRLC AMOV 30H,AMOV A,41HADDC A,41HDA AMOV 41H,AMOV A,40HADDC A,40HDA AMOV 40H,AMOV A,39HADDC A,39HMOV 39H,ADJNZ R5,H2BMOV A,41HMOV B,#16DIV ABMOV 38H,AMOV 37H,BMOV A,39HMOV 41H,AMOV A,40HMOV B,#16DIV ABMOV 40H,AMOV 39H,BRET/十六进制至BCD的转换STOP: LCALL SYSCLK_Init /调用系统时钟初始化LCALL PORT_Init /调用通用I/O 口及交叉开关初始化LCALL Delay /调用延时程序LCALL Delay /调用延时程序LCALL Delay /调用延时程序LCALL LCD_Init /调用 LCD 初始化LCALL Delay /调用延时程序MOV DPTR,#NCDdata /DPTR指针指向ASCII码表的首位Line: CLR A /累加器清零MOV A,40H /十位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符25MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序CLR C /进位位清零MOV A,40H /十位数送累加器SUBB A,#02H /十位的数与2比较(判断是否小于20)JNC MM /进位位为0时跳(大于20时跳到MM,小于20时顺序执行)MOV A,#0FEH /第一盏灯亮MOV P0,A /第一盏灯已亮(浇水)LCALL DELAY /调用延时程序LCALL DELAY /调用延时程序 MM: MOV A,40H /十位的数送累加器CLR C /进位位清零SUBB A,#03H /十位的数与3比较(判断是否大于30)JC NN /进位位为1时跳(小于30时跳到NN,大于30时顺序执行)MOV A,#0FDH /第二盏灯亮MOV P0,A /第二盏灯已亮(湿度已超量程、报警)LCALL DELAY /调用延时程序LCALL DELAY /调用延时程序 NN: MOV A,39H /个位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序MOV A,#0AH /显示小数点MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序MOV A,38H /十分位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序LCALL Delay /调用延时程序MOV A,37H /百分位的数送累加器MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作26LCALL Delay /调用延时程序LCALL Delay /调用延时程序MOV A,#0BH /显示空格MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序LCALL Delay /调用延时程序MOV A,#0DH /显示 “S”MOVC A,A+DPTR /查表,取 ASCII 码字符MOV P7,A /字符送数据口 P7MOV P6,#05H /写数据操作MOV P6,#04H /结束写操作LCALL Delay /调用延时程序SYSCLK_Init: MOV 0SCICN,#05H /系统时钟初始化为片内的4MHz时钟RETPORT_Init: CLR A /清零累加器MOV XBR0,A /没有选择数字外设MOV P74OUT,#OFOH /P4P7 口设为推拉方式RETLCD_Init: LCALL Delay /调用延时程序MOV P7,#038H /功能设置:两行显示,5X7点阵MOV P6,#01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序MOV P7 ,#0EH /开显示,开光标,字符不闪烁MOV P6,#01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序MOV P7,#06H /I/D=1, AC自动增1;S=0,整体显示不移动MOV P6,01H /写命令MOV P6,#0H /结束写命令LCALL Delay /调用延时程序MOV P7,#01H /清除 DDRAM,置 AC=0MOV P6,#01H /写命令MOV P6,#0H /结束写命令Delay: MOV R7,#06HDelay1: MOV R6,#08HDelay0: MOV R5,#00H27DJNZ R5,$DJNZ R6,Delay0DJNZ R7,Delay1RET/延时程序 NCDdata: DB30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,2EH,20H,63H,53H /ASCII 码表END28
展开阅读全文