还剩42页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
摘要未来几十年,在世界范围内,水资源的矛盾将日趋紧张我国的水资源严重短缺,且分布很不平衡农业用水占总用水的80%在农业灌溉中推广自动化控制,不仅可以缓解水资源严重短缺的矛盾,同时可以提高农作物的产量,降低农产品的成本本文介绍一种系统,它用于大棚、花窖、房间喷水、消毒的自动及人工控制实现大棚喷水消毒系统该系统通过对房间湿度采集并计算判断湿度是否符合该房间植物生长的标准,并根据需要及时进行喷水同时为了防御病虫害,也具备定时喷洒农药和消毒溶液的功能;由于不同植物的不同特性,本系统还能对液体(包括水,药液)的流量、流速进行控制,以适应喷洒更均匀、有效本系统采用多机串行通信方法,实现任一点到点或点到多点的通信,使管理人员可以使用一台IBM-PC机控制其它点的工作关键词RS-422单片机串行通信AbstractNextseveraldozensyearsaroundtheworldwaterresourcescontradictiondaybydayanxious.Ourcountryswaterresourcescriticalshortageanddistributesisnotverybalanced.Theagriculturalwateroccupiesthetotalwaterused80%.Promotestheautomatedcontrolintheagriculturalirrigationnotonlymayalleviatethewaterresourcescriticalshortagethecontradictionsimultaneouslymayenhancethecropstheoutputreducestheagriculturalproductthecost.Thisarticleintroducesakindofsystemappliedforwateringandsprayingdisinfectants.Thesystemcanwateringautomaticallybyjudgingthehumiditywhetherit’scomfortabletoplantsintheroomandcansprayingdisinfectantsagainstplantdiseasesandinsectpests.Accordingtomeettheneedofpouringdemand,thesystemcanbeadjustedtocontroltherateandthespeedofflow.Thissystemadoptspctomulti-singlechipmicrocomputerserialcommunicationnetworkwhichtallieswithRS-422standard.ItcanachievepointtopointorpointtopointscorrespondingwhichthejockeycantakeadvantageoftocontrolsinglechipmicrocomputerthroughIBM-PC.Keywords:RS-422SCMSerialcommunication目录TOC\o1-3\h\z\u绪论
10.1选题背景
10.2研究目的
10.3当前形势1第1章系统方案论证与总体设计
21.1方案论证
21.2系统设计2第2章系统硬件电路设计
32.1湿度测量部分
32.
1.1概述
32.
1.2湿度控制的基本原理
32.
1.3感湿特性曲线
42.2A/D转换电路设计
92.3微处理器AT89C
51132.4流速控制电路设计
162.
4.1数字电位器
162.5键盘及显示电路设计
202.
5.1软件设计
212.6串行通信电路设计
222.
6.1简介
222.
6.2端口串行通信接口卡
232.
6.3 系统结构
232.
6.4通信协议23第3章肥料、水选择部分
263.1施肥系统
263.2肥料和水的调配方法26第4章系统软件设计
274.1系统总图
274.2软件设计27总结31致谢32参考文献33附录134附录237附录341绪论
0.1选题背景目前国外设施栽培技术比比较先进的国家已经实现按照作物生长的最适宜生态条件,在现代化温室内实现作物的自动灌溉和自动施肥而这一节水高效的先进农业技术在我国还属于起步阶段,国内在这方面虽有自主研发的自动浇灌系统但技术比较简单、落后目前我国温室中采用的微灌设备几乎都是从农业园林设施发达的欧美国家引进而国内成套引进的系统成本较高
0.2研究目的灌溉自动化是发展高效节能农业和园艺的重要手段由于我国水资源缺乏因此实现按需、按期、按量喷灌既可节省宝贵的水资源也可节省人工费用具有较强的实用性这对于贯彻党中央的“建设节能型社会”的号召非常有利有较好的经济效益和社会效益
0.3当前形势我国现有近33万多hm2温室大棚,主要种植各种时令蔬菜、花卉和经济作物,绝大多数采用传统的畦灌,水的利用率只有40%,灌水定额为40~53m立方米/h平方米进入90年代,我国开始大面积推广节水灌溉技术,先后开发和引进先进国家的温室灌溉设备(主要是滴灌、微灌和与之相配套的设备),促进了我国温室大棚节水灌溉设备的生产和应用大城市郊区已开始大面积推广温室大棚滴灌设备,灌水定额仅为20多立方米/平方米,节水效果十分明显,增产
0.2~
1.0倍,提高了作物的品质,节省劳力,为发展工厂化农业奠定了基础第1章系统方案论证与总体设计
1.1方案论证本文介绍一套用单片机实现的自动灌溉、自动施肥及营养液浓度自动控制的微灌系统,该系统能够按作物所需灌溉水量、施肥量自动灌溉、施肥及按作物所需营养液浓度自动进行营养液的混合并且可以通过用户界面输入控制指令、监控系统工作、查询系统信息等该系统结构简单,价格低廉
1.2系统设计现代化微灌系统中农作物所需要养分来自营养液,所以在灌溉过程中不但要根据作物需求灌溉水,还要将是以作物生长的一定浓度的营养液通过灌溉水提供给作物系统由单片机控制器、灌溉管路、检测系统等几部分组成当注水泵1运行时,管道1中的灌溉水在稳压阀的作用下以恒定压力流动,这样灌溉水量就与灌溉时间成正比其中大部分灌溉水流经管道2流向灌溉水(如微喷头、滴灌器等)完成作物的灌溉在每个灌溉支路上装有一个电磁阀,当某种作物需要灌溉时,则打开该支路上的控制电磁阀当混合罐中的水位达到一定数值时,液位控制阀关闭管道3与混合罐之间的通道需要施加营养液时,打开通往混合罐的电磁阀即可将传感器安装在水泵出水口的好处是经过水泵后水与液肥能够进一步的混合,以提高检测精度第2章系统硬件电路设计
2.1湿度测量部分
2.
1.1概述 湿度是电子、化工、电力、机械制造等行业重要的检测参数由于湿度传感的非线性输出及一致性较差,使湿度的测量方法和手段相对复杂,而且湿度传感器的特性又与温度密切相关,温度变化直接影响传感器参数特性变化,因此湿度测量比其他物理量测量要复杂,控制难度大目前国内对于湿度大多数设备属于只测不控或采用简单的开关控制,精度低、误差大、能耗高,往往不能满足工艺要求针对上述问题,该文设计了一套基于新型单片机AT89C51为核心器件,高精度的传感器作为检测元件,液晶图形显示作为人机界面,控制算法优良的高精度、低成本自动控制系统
2.
1.2湿度控制的基本原理湿度是表示空气中水蒸汽的含量的物理量,常用绝对湿度、相对湿度、露点等表示所谓的绝对湿度就是单位体积空气内所含的水蒸汽的质量,也就是指空气中水蒸汽的密度一般用一立方米空气中水蒸汽的克数表示,即为式中,是待测空气中水蒸汽的质量,V为待测空气的体积单位为g/m相对湿度是表示空气中实际所含水蒸汽的分压(Pw)和同温度下饱和水蒸汽的分压(Pn)的百分比,即为通常,用RH%表示相对湿度当温度和压力变化时,因饱和水蒸汽变化,所以气体中的水蒸汽气压即使相同,其对应的相对湿度也会发生变化日常生活所说的空气湿度,实际上说的就是相对湿度湿度高的气体,含水蒸汽越多若将其气体冷却,即使其中所含水蒸汽量不变,相对湿度将逐渐增加,增到某一个温度时,相对湿度达100%,呈饱和状态,再冷却时,蒸汽的一部分凝聚成露,于是我们把这个温度称之为露点温度即空气在气压不变下为了使其所含水蒸汽达到饱和状态时所必须冷却到的温度称为露点温度气温和露点温度的差越小,表示空气越接近饱和
2.
1.3感湿特性曲线感湿特性曲线是指湿敏传感器的感湿特性量随环境湿度的变化曲线图2-1是典型TiO-VO湿敏传感器的感湿特性曲线,该曲线反映出相应传感器的最佳使用范围及灵敏度的高低图2-1典型TiO-VO湿敏传感器的感湿特性曲线
①灵敏度由于大多数湿敏传感器的感湿特性曲线是非线性的,在不同的湿度范围内具有不同的斜率,故目前多用传感器在不同环境湿度下的湿度特征量之比来表示其灵敏度A)测湿量程这是指湿敏传感器能够比较精确测量环境湿度的最大范围B)响应时间当环境湿度改变时,湿度传感器完成吸湿或者脱湿以及动态平衡(感湿特征量达到稳定值)过程所需要的时间,称为响应时间感湿特征量的变化滞后与环境湿度的变化,这种现象称为滞后现象实际多采用632%或者90%响应时间,即感湿特征量的改变量达到总改变量的
63.2%或者90%所需要的时间图2-2表示出了典型的KO-FeO湿敏传感器的响应特性曲线图2-2表示出了典型的KO-FeO湿敏传感器的响应特性曲线C)温度系数这是指在感湿特征量的条件下,环境相对湿度的变化率对于相对湿敏传感器而言,单位是%RH/CD)湿滞回差一般情况下,湿敏传感器在吸湿和脱湿过程中的两条曲线不相重合,而是形成一闭合的湿滞回线,如下图2-3湿滞回差是指湿滞回线上对应同一感湿特征量值下,环境湿度的最大差值图2-3湿滞回差示意图
②集成湿度传感器集成湿度传感器的测量范围一般可达到0~100%但有的厂家为保证精度指标而将测量范围限制为10%~95%设计+
3.3V低压供电的湿度/温度测试系统时,可选用SHT
11、SHT15传感器这种传感器在测量阶段的工作电流为550μA,平均工作电流为28μA(12位)或2μA(8位)上电时默认为休眠模式(SleepMode),电源电流仅为
0.3μA(典型值)测量完毕只要没有新的命令,就自动返回休眠模式,能使芯片功耗降至最低此外,它们还具有低电压检测功能当电源电压低于+
2.45V±
0.1V时,状态寄存器的第6位立即更新,使芯片不工作,从而起到了保护作用
③湿度传感器的温度系数 湿敏元件除对环境湿度敏感外,对温度亦十分敏感,其温度系数一般
0.2~
0.8%RH/℃范围内,而且有的湿敏元件在不同的相对湿度下,其温度系数又有差别温漂非线性,这需要在电路上加温度补偿式采用单片机软件补偿,或无温度补偿的湿度传感器是保证不了全温范围的精度的,湿度传感器温漂曲线的线性化直接影响到补偿的效果,非线性的温漂往往补偿不出较好的效果,只有采用硬件温度跟随性补偿才会获得真实的补偿效果湿度传感器工作的温度范围也是重要参数多数湿敏元件难以在40℃以上正常工作 IH-3605是一种电容式集成湿敏传感器,主要性能参数如下V+=5v;T=25C;精度±2%RH(0%到100%RH);互换性±5%RH(0%到60%),±8%RH(90%RH)典型值;线性度±
0.5%RH(典型值);迟滞±
1.2%RH全量程;响应时间慢流动空气中为30s;工作电压范围4-9v,标定时的工作电压为5v;工作电流为200μA,工作电压时为9v时,工作电流为2mA;输出电压5v工作电压时为
0.8-4v(典型值),其他工作电压时,输出电压与工作电压成正比;工作温度范围-40到+85C温度补偿可按下式计算,即真实RH值=传感器RH值/(
1.0546-
0.00216T)式子中,T为环境温度(C)例如,环境温度为85C时,湿敏传感器输出电压为
3.05v,则其真实的输出电压值应如下计算,即,真实RH值=
3.05v/(
1.0546-
0.00216*85)=
4.02v出厂时,每个湿敏集成传感器有两个已经标定的数据,即0%RH的输出电压值和75%RH的输出电压值由于该传感器有极好的线性度,所以可以根据上述两个标定点画出整个湿度特性,如下图2-4使用时可以按这两个点的电压对电路进行检测、调整,不必再对湿度进行标定图2-4温度系数示意图IH-3605可以直接接0到5v直流电压表构成制度检测仪表,由于没有湿度补偿,但精度稍差电路硬件图中的一部分是带温度补偿湿敏电路在0%到100%RH时相应输出0到10vIH-3605的输出信号经过集成运放A处理,使在0%RH时输出为0v;25C时,100%RH的输出为10vPt100铂电阻为温度传感器,经过集成运放A放大,输出与温度成比例的信号Pt
100、RP、R及R构成电桥,集成运放A的输出提供其工作电压,以满足图2-5所示的补偿特性A为加法器,将湿度放大后的信号及温度补偿信号(取自RP)相加,其输出电压即是经过温度补偿的输出电压湿度测量电路如图2-6图2-5温度补偿特性图2-6湿度测量电路
2.2A/D转换电路设计双积分式A/D转换器常采用动态输出的方法,我们可以通过三态缓冲器把它的输出数据线与CPU的数据总线相连接,然后根据动态输出的时序将其逐位读入 MC14433是31/2位的双积分式A/D转换器,转换速度每秒1~10次,量程为
1.999V或
199.9mV,以BCD码的形式输出,其逻辑符号如图2-7所示图2-7MC14433的逻辑符号 MC14433的数据信号有 DS1~DS4多路选通脉冲输出,DS1为千位,DS4为个位 Q0~Q3BCD码输出 -OR过量程标志输出,当|VX|>VR时,-OR为低电平 DU更新转换结果的输出 EOC转换周期结束标志 与模拟输入有关的信号有 R1,R1/C1,C1外接积分电阻与电容在量程为2V时,R1=470kΩ,C1=
0.1μF量程为200mV时,R1=27kΩ,C1=
0.1μF C01,C02补偿电容,
0.1μF CLK0,CLK1时钟振荡器外接电阻、典型值为470kΩ,电阻加大,时钟频率降低 VR基准电压输入端,选
2.0V或200mV VX被测电压输入端 VAG被测电压,基准电压接地端 VDD,VSS,VEE正负电源及接地端 图2-8为输出选通脉冲的时序图图2-8MC14433输出选通脉冲时序图 在DS1有效时输出千位数据,DS4有效时输出个位数据每个选通脉冲宽度为18个时钟周期两个相邻脉冲之间的间隔为2个时钟周期 DSl有效时输出的千位数据的含义如下Q3位表示千位,如Q3=1,则千位为0,如Q3=0,则千位为1Q2位表示极性,Q2=1表示输入电压为正,反之为负Q0位=1时表示超出量程范围,在Q0=1时为欠量程,Q0=0时为过量程 MC14433可通过74LS244与CPU的数据总线相连,其连接方法如图2-9所示图2-9MC14433接口 将DU与EOC相连,这样每次A/D转换结束后,数据都被更新EOC信号还可作为中断申请信号,在转换结束后申请中断中断响应后即可读入数据,根据输出选通脉冲的时序,先用查询方法判断是否为DS1有效若是DS1有效,则按Q0,Q2,Q3来决定是否超量程、信号的极性及千位为1还是0然后等待DS2周期,读入百位数的BCD码在DS
3、DS4周期内分别读入十位和个位的BCD码读入数据的程序流程图如图2-10所示图2-10读入数据的程序流程图
2.3微处理器AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机单片机的可擦除只读存储器可以反复擦除100次该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案外形及引脚排列如图2-11所示图2-11AT89C51的引脚排列图主要特性·与MCS-51兼容·4K字节可编程闪烁存储器·寿命1000写/擦循环·数据保留时间10年·全静态工作0Hz-24MHz·三级程序存储器锁定·128×8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路管脚说明VCC供电电压GND接地P0口P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流当P1口的管脚第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高P1口P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故在FLASH编程和校验时,P1口作为第八位地址接收P2口P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入并因此作为输入时,P2口的管脚被外部拉低,将输出电流这是由于内部上拉的缘故P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容P2口在FLASH编程和校验时接收高八位地址信号和控制信号P3口P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流当P3口写入“1”后,它们被内部上拉为高电平,并用作输入作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故P3口也可作为AT89C51的一些特殊功能口,如下表所示口管脚备选功能P
3.0RXD(串行输入口)P
3.1TXD(串行输出口)P
3.2/INT0(外部中断0)P
3.3/INT1(外部中断1)P
3.4T0(记时器0外部输入)P
3.5T1(记时器1外部输入)P
3.6/WR(外部数据存储器写选通)P
3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号RST复位输入当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间ALE/PROG当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节在FLASH编程期间,此引脚用于输入编程脉冲在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6因此它可用作对外部输出的脉冲或用于定时目的然而要注意的是每当用作外部数据存储器时,将跳过一个ALE脉冲如想禁止ALE的输出可在SFR8EH地址上置0此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用另外,该引脚被略微拉高如果微处理器在外部执行状态ALE禁止,置位无效/PSEN外部程序存储器的选通信号在由外部程序存储器取指期间,每个机器周期两次/PSEN有效但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现/EA/VPP当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)XTAL1反向振荡放大器的输入及内部时钟工作电路的输入XTAL2来自反向振荡器的输出振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出该反向放大器可以配置为片内振荡器石晶振荡和陶瓷振荡均可采用如采用外部时钟源驱动器件,XTAL2应不接有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度
2.4流速控制电路设计
2.
4.1数字电位器数字电位器也称为数控电位器,是一种用数字信号控制其阻值改变的器件集成电路字电位器与机械式电位器相比,具有可程控改变阻值、耐震动、噪声小、寿命长、抗环境污染等重要优点,因而,已在自动检测与控制、智能仪器仪表、消费类电子产品等许多重要领域得到成功应用但是,数字电位器额定阻值误差大、温度系数大、通频带较窄、滑动端允许电流小一般1~3mA等,这在很大程度上限制了它的应用数字电位器取消了活动件,是一个半导体集成电路其优点为调节精度高;没有噪声,有极长的工作寿命;无机械磨损;数据可读写;具有配置寄存器及数据寄存器;多电平量存储功能,特别适用于音频系统;易于软件控制;体积小,易于装配它适用于家族影院系统,音频还绕控制,音响功放和有线电视设备等
①设计原理X9241内部包括一个I2C接口和四个数字电位器每个数字电位器由电阻阵列及与之对应的滑动端计数寄存器WCR、四个8位数据寄存器R0~R3等部分构成其引脚配置如(附录图2)所示A电阻阵列每个电阻阵列由63个串联连接的分立的电阻段组成每个电阻阵列的物理终端等效于机械电位器的固定端(VH和VL输入端)每个阵列的VH和VL以及每个电阻段之间的接点(即抽头)通过FET开关连接滑动输出端VW;而滑动端VW在电阻阵列中的位置由WCR控制如果将四个电阻阵列中的两个、三个或四个串联起来可构成
127、190或253个抽头的数字电位器X9241电位器电阻阵列的阻值种类根据后缀的不同而不同当分别为Y、W、U时,则电阻阵列分别为四个2kΩ、四个10kΩ、四个50kΩ的数字电位器;而当为M时,其内部四个数字电位器阻值分别为2kΩ、10kΩ、10kΩ、50kΩB滑动端计数寄存器WCR滑动端计数寄存器WCR实际上是一个6位带有译码输出的计数器,用来实现选择六十四选一的FET开关的位置,即控制滑动端在电阻阵列中的位置WCR是一种易失性存贮器,其内容可通过指令改写,上电时装入数据寄存器R0的内容(注意此值可能与断电时的值不同)C数据寄存器数据寄存器的内容可由用户读出或写入,其内容可传输到滑动计数寄存器WCR以设置滑动端的位置每个数字电位器有四个8位非易失性数据寄存器R0~R3D串行接口X9241支持I2C串行双向总线的定向规约实际应用时X9241为从器件,由主机启动数据的传输,并为发送和接收操作提供时钟数据线SDA和时钟线SCL的信号间关系(起始条件、终止条件及应答条件)见图3-1
②器件寻址及指令结构A器件寻址 在起始后,主器件输出它所要访问的从器件地址,该地址的格式如下对于X9241来说,这个地址的高4位固定为0101,低4位由物理的器件地址A0~A3输入端状态决定这样,X9241把串行数据流与地址输入端的状态进行比较,若所有位都比较成功,则该器件在总线上作出一个应答响应B指令结构主器件在发送完起始条件及器件地址,且从器件作出应答之后,送到X9241的下一个字节包括指令及寄存器指针的信息其格式如下其中低4位中前两位(R0和R1)指出四个寄存器中的一个,后两位(P0和P1)选择四个电位器中的哪一个;高4位决定指令,X9241共有9条指令见(附录表1)9条指令中包括四条两字节指令,四条三字节指令和一条增加/减少指令 ●两字节指令这四条两字节指令用作在WCR与数据寄存器中的一个之间交换数据;这种传输可以发生在四个电位器之一与它们的一个辅助寄存器之间,或全局性地发生在所有四个电位器与它们的一个辅助寄存器之间;操作时序见图2-12(a) ●三字节指令这四条指令是在主机和X9241之间传输数据,无论是主机与一个数据寄存器或是主机直接与WCR间都可以;这些指令是读、写WCR(即读出、写入选定电位器的当前滑动端的位置)或读、写数据寄存器(即读出、写入选定的非易失性寄存器的内容);操作时序见图2-12(b) ●增加/减少指令这条指令与其它的指令不同,一旦这条指令发出且X9241已用一个应答来响应后,主机才能够以时钟来触发选定的滑动端升或降一个电阻段;这个操作的命令时序见图2-12(c)图2-12三种时序图
③电位器的内部金结构图2-13是X9241与单片微机之间的一种有代表性的连接,在实际应用系统设计中,采用I2C总线数字电位器可以收到降低成本、简化电路的效果;然而在数字电位器带来硬件设计简化的同时,却增加了软件的工作量,原因是对其访问需要一套严格而复杂的操作;假如有了接口程序模块,使用I2C总线数字电位器就很方便了为此,本文给出笔者已成功应用的I2C总线数字电位器与MCS系列单片机的接口程序模块,读者几乎不需改动就可采用;该程序模块略加修改还可用于串行E2PR0读写 图2-
13、89C51与X9241的典型连接方法在图2-8的连接中,单片机的时钟为6MHz由于只连接一片X9241数字电位器,则地址A3A2A1A0=0000,故X9241的器件地址固定为50H调用时将直接位02H用作滑动端的增减位,命令字节放30H单元,要写入的数据放32H单元;程序执行结束将读出的数据放31H单元
2.5键盘及显示电路设计以基于单片机的医疗设备控制系统中的键盘显示模块为例,该模块中HD7279A器件与单片机AT89C52只有3条线相连,如图4所示,其中3引脚插座J1是单片机AT89C52与HD7279A的连接线.占用单片机的3条I/0端口线P1.7/CLK是单片机产生的控制同步时钟,P1.6/CS是HD7279A的片选线;P1.5/DATA是命令数据输出/输入线键盘中断线KEY悬空,CS端由单片机控制是基于省电考虑,也可接地HD7279A器件控制4个LED数码管动态显示,并监测16键键盘CLK时钟频率约100kHz,由单片机编程延时决定在CLK的同步时钟作用下,控制命令、显示数据以及采用查询方式读取键盘键值代码数据等均由DATA端输入/输出采用查询方式读取键值代码可节省一条单片机的I/0端口线,但需占用较多软件资源,由于该实例中单片机的任务并不复杂,因此每间隔30ms读取一次键值代码 图4中DIG4~DIG7既是4位共阴式数码管位选控制线,又是键盘列扫描线SSA~SSGSDP共8条线是4位数码管的段选控制线,分别通过200Ω的限流电阻与HD7279A器件的SA~SG,DP相连接,其中SSD~SSG同时为键盘的行扫描线排电阻RX1是8×lOkΩ的下拉电阻,不可省去连接到HD7279A器件RC端的振荡电路中,电阻R13=1.5kΩ,电容C2=15pF都是必须的,且R13在1~2kΩ的阻值范同内变化,C2在10P~20pF范围内变化时,该电路均能稳定工作,而在此范围之外有可能导致LED意外闪烁或响应键盘不灵敏,需要注意的是R13与C2必须尽量靠近HD7279A器件的RC端放置,以防止相互干扰Cl=100μF,为滤波电容,有利于降低LED大电流工作对电源的冲击LDl~LD4选用4位独立共阴式高亮度数码管LED,HD7279A采用动态扫描方式控制LED的显示,因此应该将4位不显示位全部消隐,进一步提高亮度为了使4位LED全亮并保证足够的亮度,整个显示模块的工作电流降低到50mA,可以将8个限流电阻增大到250~270Ω需要注意的是HD7279A不具有双键锁定功能,因此在需要双键锁定功能的应用场合,可利用另外的单片机的I/O线与HD7279A器件联合判定由于HD7279A与单片机采用串行接口最少2线,对键盘的行列监控扫描线与显示控制的位选段选线共用,外围元件少,元件取值范围较宽,工作电流较小,工作稳定可靠,因此接口电路设计简单简洁,操作方便,性价比极高
2.
5.1软件设计针对图4中的键盘显示模块,给出了图2-14所示的软件编程流程图常规任务是指单片机应用系统需要执行的其他任务,一次执行时间不超过20ms;显示任务是指单片机发送给HD7279A器件的显示或控制命令,执行时间不超过5ms;键盘一次按下保持时间一般在60ms以上,而定时读取键值代码的时间间隔大约为30ms,因此只要合理安排软件执行时序,则常规任务、显示任务和键盘操作就不会产生任何冲突,而且不会漏掉任何一次按键动作���常规任务与显示管理�有按键�系统初始化�读键值代码�键值代码=0FFH�执行按键功能YNYN图2-14软件编程流程图
2.6串行通信电路设计
2.
6.1简介 在数据采集、监控管理及集散控制、尤其是多从机的集散控制等工业过程中,通常都要求集中控制室能够对现场的运行数据进行监测,以使各系统间可以实时、准确、高速地进行通信而串行通信方式是计算机之间经常使用的一种有效通信手段由于它具有高效、可靠等特点,同时又遵循统一的标准,因而得到了广泛的应用 利用通用串行通信接口进行数据通信一般采用RS-232口来进行在分布式监测系统中,为了和多处理机进行通信,往往要用到超过4个以上的串行通信口,但一般PC机只提供两个RS-232标准串行通信接口因此,在集散式计算机监控系统中往往需要使用多端口卡来扩展串行端口数本文着重研究使用多串行口进行多处理机通信的硬件原理和软件设计方法
2.
6.2 端口串行通信接口卡C168P是MOXA公司生产的八端口串行通信接口板,它扩展了8路串行通信端口,是一个可用于PC/AT总线的多端口的串行通信卡该通信接口板采用ASIC芯片代替传统的ICS芯片,其传输速度范围可达到50bps~115.2bps,同时它还支持RS-232标准电平信号它的8个端口可以分配给不同的中断向量或同一中断向量另外,MOXA公司还提供了在MicrosoftWin32API函数下开发的PComm软件库,该软件库可用于上层多进程或多线程串行通信的软件开发,适用于VB、VC、Delphi等高级语言软件开发环境由于该串行通信接口板性能优良,使用方便,所以被广泛应用于多端口串行通信中该卡的具体设置如表1所列
2.
6.3 系统结构 该通信系统采用89C51单片机作为下位机,而以工业控制PC机作为上位主机下位机和上位机之间通过RS-232串行口以半双工方式进行通信由于RS-232电平的最大通信距离只有15m,因此远远不能满足工厂实时数据采集对距离的要求为了实现远程通信,笔者自制了一块可将RS-232C电平转换成RS-485电平的八路电平转换板,并在单片机端采用了可将RS-485电平转换成TTL电平的电平转换芯片MAX1483由于该系统采用了平衡发送和差分接收电路,因而能检测低达200mV的电压,从而使最大通信距离可达到1200m,并在总线上最多可挂接256个收发器该系统的单路通信电路设计结构图如图1所示,其它七路与此类同
2.
6.4通信协议 在PC机与单片机实现编程通信之前,两者之间需要规定握手协议,以保证数据收发的正确性在本系统中,PC机与单片机应采用同样格式的通信协议其协议格式如表2所列 表2中ID
0、ID1为两个字节地址码,它们的内容相同,代表各从机地址Q为特征字符,表明是否为数据帧COM0位是主机向从机发送的命令1而COM1位则是主机向从机发送的命令2实际上,命令1与2可以相同“日”位用于存放日期字节“数据字节区”用来存放从机回送给主机的数据,该数据共11个字节;“月”位用于存放月字节;“年”用来存放年字节;“校和1”表示从0~18求和的结果;而“校和2”则表示从0~19的求和结果
2.
6.5 编程方法
①上位PC机编程 在Win9x操作系统提供的串行通信驱动程序的基础上,可利用WindowsAPI函数来实现串行口的编程但在本系统中,可用VC++6.0作为编程环境,并利用MOXA公司提供的Pcomm软件库来实现串口数据的采集它把Win32API封装在自己的软件包内,因而可简化编程步骤,并缩短编程时间PComm对串口进行编程通信通常涉及下面的四个处理过程
(1)打开一个要通信的串行端口;
(2)配置串口;
(3)通过串口收发数据;
(4)释放串口 其函数形式如下1Sio_openplrt;2sio_ioctlportB38400P_NONE|BIT_8|STOP_1;/*PortControl*/3sio_writeport“ABCDE”5;/*OutputDataFunction*/Sio_readportibuflength;/*InputDatafunction*/4sio_closeport;/*PortControldisabletheport*/
②下位89C51的串行通信编程 由于89C51串行口共有四种工作方式,而多处理机通信必须工作在方式2或方式3,方式2的波特率为fosc/64或fosc/32,而方式3的波特率则可以变化在89C51利用串行控制寄存器SCON中的SM2和RB8来实现多机通信时,首先应使下位机开串行中断并设定所有下位机的SM2位为1,而上位机则发送RB8为1的地址帧,这样,所有的89C51都会响应并进入串行中断服务程序,同时在中断服务程序中与本机地址进行比较,如果是上位机所选择的地址,此地址的下位机则置SM2为0,如果不是上位机所选择的地址,则退出中断,以使SM2继续为1然后再由上位机发送RB8为0的数据命令帧,以使SM2为0的89C51发生响应,并将上位机所需的数据发送给上位机以此来实现PC机利用多端口对多处理机的串行通信第3章肥料、水选择部分
3.1施肥系统
1.实际施肥系统原理如图3-1所示图3-1施肥系统原理图由图4-1可见,流量控制系统由清水泵、主阀、施肥阀、泄水阀等受控设备及过滤器、管道等辅助设备组成图中,肥料的浓度值已为配制好的最终肥料浓度
3.2肥料和水的调配方法通常情况下控制肥料、睡有两种方法第一种是简单地肥料、清水凭经验直接注入温室,这种方法劳动强度大,且控制效果基本上依靠配肥者的经验,误差较大另一种是采用电磁阀控制清水和肥料流量电磁阀属于双位控制阀门,只有开和关两种极限状态,通过大棚内肥料浓度传感器和湿度传感器来控制电磁阀的开关其优点是控制精度较高,成本低,容易实现,基本符合温室需要,比较理想第4章系统软件设计
4.1系统总图��系统初始化温度设定?�湿度设定?湿度采样�数字滤波�温度采样�等于温控值?�加热器停止工作�数字滤波�等于湿控值?�显示当前温湿度值�加湿器停止工作�湿控及上、下限值�温控及上、下限值�超出范围?�加热器维持原态�控制加热器状态�语音报警�超出范围?�控制加湿器状态�加湿器维持原点�语音报警YYNNNYNYYNN
4.2软件设计现代控制系统的用户界面趋向于图形化、、多媒体化实时过程中的测控据经处理后以各种形式提供给用户,形象直观笔者分析系统工艺后,根据控制要求设计了多个画面,并通过按键切换系统的总控模块程序框图如图6-2所示单片机除完成图中所示的前台显示外还要进行后台作业即实时数据采集、处理和控制任务6-2系统总控模块程序框图图6-3PC机的串行通讯程序流程图图6-4单片机的串行通讯程序流程图总结自动灌溉系统在国内还处于研发阶段,自动化程度较低智能型控制器的应用还很少本文介绍的模糊自动灌溉及施肥控制系统设计合理,结构简单,使用方便由于用开关式电磁阀代替价格较为昂贵的流量控制阀,不仅能够显著地降低了多种施加物灌溉系统的成本,而且还能够简化驱动电路及控制电路,使系统的可靠性及维护的方便性得到改善实验结果表明,本系统工作可靠,控制精度能够满足农艺要求,对于灌溉系统中的自动施肥系统设计具有参考价值致谢经历了两个月的毕业设计,在这短暂的时间里,它不仅仅使我学到了宝贵的专业知识,更重要的是它使我学到了怎样去独立思考问题,解决问题,大大提高了我自己的动手能力和操作能力,为我今后的工作奠定坚实的基础这次们设计的课题为——大棚自动喷灌系统的设计,它不仅是必须完成的课目,其真正的目的是我对整个大学四年的学习情况做一个总结,检验学生的专业知识的掌握程度可以说这绝对是一个展望自我,实现自我价值的好机会在这次毕业设计中,我特别感谢我的指导的耐心帮助和各位同学大力支持在这次编写设计报告中,由于时间的紧促和编写者的专业知识的有限,再加上我们缺少实践经验,对使得所写的毕业论文的知识覆盖面有很大的局限性,而且报告中难免有不妥之处,所以我恳请各位指导老师能够给予批评指正参考文献
[1]《我国灌溉农业的现状与发展趋势》内蒙古林学院学报2009
[2]《中国灌排水技术开发培训中心.渠道防渗工程技术,2007
[3]《单片机应用技术选编》北京航空航天大学,2006
[4]《生产与运作管理》清华大学出版社2003
[5]《信息系统开发方法———方法、策略、技术、工具与发展》清华大学出版社,2007
[6]《灌区井群自动化控制系统研究》华北水利水电学院学报,2004
[7]《单片机应用技术选编》北京航空航天大学,2001
[8]GammaEHelmRetal.DesignPatterns:ElementsofReusableObject2Orientedsoftware[M].AddisonWesleyProfessional2004
[9]MetskerSJ.DesignPatternsinC#[M].颜炯译.北京:中国电力出版社
2005.附录1大棚喷灌系统设计管脚图清单图
1、MC3487和MC3486的管脚图和功能表MC3487输入(A)使能(EN)输出YZHHHLLHLHXLZZ差分输入A-B使能输入V≥
0.2VHH-
0.2VV
0.2VH?V≤-
0.2VHLXLZMC3486图
2、X9421的管脚图其中VW
0、VW
1、VW2及VW3分别为四个电位器的滑动端;VL
0、VL
1、VL2及VL3分别为四个电位器的低端;VH
0、VH
1、VH2及VH3分别为四个电位器的高端;A
0、A
1、A2及A3为地址线(用来设置从属地址低4位);SDA及SCL分别为串行数据和串行时钟;VCC及VSS分别为电源和地表
1、X9241指令指令I3I2I1I0P1P0R1R0功能说明ReadWCR10011/01/0××读P
1、P0指定的滑动端计数寄存器内容WriteWCR10101/01/0××写新值到P
1、P0指定的滑动端计数寄存器中ReadDataRegister10111/01/01/01/0读P
1、P0和R
1、R0指定的寄存器内容WriteDataRegister11001/01/01/01/0写新值到P
1、P0和R
1、R0指定的寄存器中XFTDataRegistertoWCR11011/01/01/01/0传输由P
1、P0和R
1、R0指定的寄存器内容到与它相关的WCR中XFTWCRtoDataRegister11101/01/01/01/0传输由P
1、P0指定的WCR的内容到R
1、R0指定的寄存器中GlobalXFTDataRegistertoWCR0001××1/01/0传输由R
1、R0指定的所有四个数据寄存器的内容到与它们相应的WCR中GlobalXFTWCRtoDataRegister1000××1/01/0传输所有WCR中的内容到与它们相应的由R
1、R0指定的数据寄存器中Increment/DecrementWiper00101/01/0××使能增加/减少由P
1、P0指定的滑动端计数寄存器(WCR)的内容附录2大棚喷灌系统设计程序清单程序1RW9241:SCLBITP
1.4SDABITP
1.5INCDECBIT02H;滑动端的增减位DEVICEDATA50H;器件地址COMMANDEQU30H;命令字节RD_DATAEQU31H;读出的数据WR_DATAEQU32H;写入的数据ACALLSTART_IC;置开始MOVA#DEVICEACALLWR_BYTE;写器件地址MOVACOMMAND;根据命令及识别字散转SWAPAANLA#0FHCJNEA#09HXRW1;指令的高4位为09H表示R_WCRAJMPR_WCRXRW1:CJNEA#0AHXRW2;指令的高4位为0AH表示W_WCRAJMPW_WCRXRW2:CJNEA#0BHXRW3;指令的高4位为0BH表示R_ROM(读寄存器)AJMPR_ROMXRW3:CJNEA#0CHXRW4;指令的高4位为0CH表示W_ROM(写寄存器)AJMPW_ROMXRW4:CJNEA#0DHXRW5;指令的高4位为0DH表示将寄存器中的值传送到WCRAJMPROM_WCRXRW5:CJNEA#0EHXRW6;指令的高4位为0EH表示将WCR中的值传送到寄存器AJMPWCR_ROMXRW6:CJNEA#01HXRW7;指令的高4位为01H表示全局寄存器中值传送到WCRAJMPA_ROM_WCRXRW7:CJNEA#08HXRW8;指令的高4位为08H表示全局WCR中值传送到寄存器AJMPA_WCR_ROMXRW8:CJNEA#02HXRW9;指令的高4位为02H表示指定的WCR增/减AJMPINC_DECXRW9:ACALLSTOP_IC;命令执行完毕,STOP并返回ETIR_WCR:MOVACOMMAND;读WCR子程序ACALLWR_BYTEACALLRD_BYTEMOVRD_DATAAACALLACK_ICAJMPXRW9W_WCR:MOVACOMMAND;写WCR子程序ACALLWR_BYTEMOVAWR_DATAACALLWR_BYTEAJMPXRW9R_ROM:MOVACOMMAND;读寄存器子程序ACALLWR_BYTEACALLRD_BYTEMOVRD_DATAAACALLACK_ICAJMPXRW9W_ROM:MOVACOMMAND;写寄存器子程序ACALLWR_BYTEMOVAWR_DATAACALLWR_BYTEAJMPXRW9ROM_WCR:MOVACOMMAND;寄存器中数据送WCR子程序ACALLWR_BYTEAJMPXRW9WCR_ROM:MOVACOMMAND;WCR中数据送寄存器子程序CALLWR_BYTEAJMPXRW9A_ROM_WCR:MOVACOMMAND;全局寄存器中数据送WCR子程序ACALLWR_BYTEAJMPXRW9A_WCR_ROM:MOVACOMMAND;全局WCR中数据送寄存器子程序ACALLWR_BYTEAJMPXRW9INC_DEC:MOVR7#63MOVACOMMAND;指定的WCR增/减子程序ACALLWR_BYTEJBINCDECWCRINCCLRSDASETBSCLJMPIDCWCRINC:CLRSCLSETBSDAIDC:CLRSCLSETBSCLDJNZR7IDCAJMPXRW9START_IC:SETBSDA;开始子程序SETBSCLCLRSDACLRSCLRETWR_BYTE:MOVB#08;写字节子程序,共写8位WR_BYTE1:CLRSCLRLCA;向左移位至CYMOVSDAC;数据输出SETBSCLDJNZBWR_BYTE1CLRSCLSETBSDASETBSCLJBSDA$;检测X9241E的应答CLRSCLRETRD_BYTE:MOVB#08;读字节子程序,共读8位RD_BYTE1:SETBSCLMOVCSDARLCACLRSCLDJNZBRD_BYTE1RETSTOP_IC:CLRSDA;停止子程序SETBSCLSETBSDACLRSCLCLRSDARETACK_IC:CLRSDA;应答子程序SETBSCLCLRSCLRET程序2MOVR1,#00H;通道号初值为0CHSET MOVA,R1;送通道号MOVDPTR,#CH-ADDR;选通道锁存器MOVX@DPTR,AINCR1ACALLDELAY10US;延时10USADSTART MOVDPTR,#AD574;选AD574MOVX@DPTRA;启动A/D,按12为转换MOVDPTR,#CH-ADDR;选数据缓冲器LOOP MOVXA,@DPTR;读取STSJNBD7,LOOP;若STS=‘1’,继续等待MOVDPTR,A;若STS=‘0’,A/D结束INCDPL;使A0=‘1’MOVXA,@DPTR;读A/D结果的低4位MOV@R0A;存低4位DECDPL;使A0=‘0’INCR0MOVXA,@DPTR;读A/D结果的高8位
1.指导教师简要评语(质量、水平,能否参加答辩)指导教师签字年月日
2.评阅教师简要评语(质量、水平,能否参加答辩)评阅教师签字年月日101010Ω相对湿度/%RH801006040020100110Ω10101010时间/S相对湿度/%RH脱湿吸湿10101002040Ω1010输出电压25C时,0%RH=
0.958v75%RH=
3.268v58060相对湿度/%RH14100204023补偿量85C25C8060108相对湿度/%RH06100204024EA/VP31X119X218RESET9RD17WR16INT012INT113T014T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30TXD11RXDX9241SCLSDAA3A2A1A0+5V89C51P
1.4P
1.5药液到喷头压力泵(由继电开关控制)继电开关(常通)继电开关常闭水系统总控入口端口初始化定时器初始化屏幕初始化显示主菜单按键处理中文主界湿度显示温度显示湿度设定湿度趋势英文主界开始接收所有数据直至结束标志发取数命令置偶效验“0”置奇效验“1”送地址给MCS-51机初始化串行口设置波特率所有从机巡回完?有回答?结束YNYN开始初始化串行口,设置波特率将SM置1,等待接收地址是本地址?P
1.0置1将地址送回PC机SM置0等待接收命令传数命令?将数据按字节传给PC机结束NYNY。