版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
机AT89C51,机;A/D转换器;按键显示11言随着中国农业现代化进程的加快结构的调整以及我国加入等因素,农业灌溉自动化技术的要求越来越高,灌溉控制器在我国有着巨大的市场。节水灌溉控制器近期在中国应朝着价格低、性能可靠、操作简便的方向发展。但从长远利益考虑,新的智能化技术、传感技术和农业科技的引入、应用和普及,将会有智能化程度更高、功能更强、性能更稳定可靠的灌溉控制器出现。经过多年的发展,国外灌溉控制器已逐步趋于成熟、系列化,但价格昂贵,国内虽引进一些,但多数是农业示范区、科研单位、高校,虽然国外生产的灌溉控制器性能优越,但没有考虑我国特殊的自然、气候、土地资源、农民经济状况等因素,因而国外引进的灌溉控制器在国内应用并不普及。国内虽然有多家研制灌溉控制器,但多数是小规模、实验和理论的探讨应用不够普及,究其原因一则是开发性能完善的灌溉控制系统需要大量的人力、物力的投入,需要多部门、多学科的融合,这在一定程度上限制了性能完善、适应性强的控制器的开发。其次是现在开发出来的灌溉控制器价格昂贵,农民尽管知道能节省人力、灌溉用水、提高产量,但由于一次性投入太大,多数农民承受不起,这也在一定程度上限制了灌溉控制器的普及。综上所述,西方发达国家在节水灌溉控制器的开发上已越来越成熟,且发展趋势是研制大型分布式控制系统和小面积单片机控制系统,并带有通信功能,能与上位机进行通信,并可由微机对其编程操作。同时随着人工智能技术的发展,模糊控制,神经网络等技术为节水灌溉控制器的研制开辟了广阔的应用前景。而国内在灌溉控制器的研制方面还没有形成规模大、应用范围广的成套灌溉控制产品。国内的一些高尔夫球场等大面积场地灌溉控制,一般引用国外现成的成套灌溉控制产品。而广大农村可根据我国国情和各地经济和技术发展的实际情况,采取简单可行的节水灌溉控制措施及相应的排灌机械和设备,大力发展可靠、实用、成本低、操作简便的节水灌溉控制器,这样做不仅具有广阔的市场,而且具有巨大的社会和经济效益。现代智能型控制器是进行灌溉系统田间管理的有效手段和工具,它可提高操作准确性,有利于灌溉过程的科学管理,降低对操作者本身素质的要求。除了能大大减少劳动量,更重要的是它能准确、定时、定量、高效地给作物自动补充水分,以提高产量、质量,节水、节能。现代灌溉控制器的研究使用在我国的农、林、及园艺为数不多,与发达国家相比,有较大的差距,还基本停留在人工操作上,即使有些地方搞了一些灌溉工程的自动化控制系统,也是根据经验法来确定每天灌溉次数和每天灌溉量,如果灌溉量与作物实际需水量相比太少,便不能有效的促进作物健康成长;而灌溉量太多,肥水流失,又会造成资源浪费,同时传统的灌溉法还需要相关的专家实时观察并经验指导生产,劳动生产率低,这也不能与现代化农业向优化、高效化方向发展要求同步。22总体方设计2.1方案日历时钟HS1101参考电压
A/D转换TLC2543
AT89C51单片机
8
FM24C2515
串行中文显示打印
RS232
MAX2
5机
接口
32
电源控制图1方案系统电路图该电路由传感HS1101通TLC2543模数转换芯片与单片机连接组成湿度检测电路单片机通过MAX232芯片RS232接口与打印机连接成打印输出系统。由日历时钟芯片FM24C256存储芯片共同AT89C51提供时钟日历信号,而经单片机AT89C51处理过的湿度信号通过串行中文图文显示模块输出到液晶显示屏,从而实现对土壤湿度的测量监控,能进行湿度范围设置与显示,能够实现节水灌溉。2.2方案种植作物的土
壤
土壤湿度传感A/D转换AT89C51单片机LED显示图2方案系统电路图
放大驱动电磁阀该系统采用AT89C51单片机来实现。用湿度检测电路中的湿敏电阻对土壤湿度进行采集,所得电流信号经处理得到可用的电压信号,输入到A/D转换器ADC0809转换成数字信号,再由单片机对此信号进行处理。系统将测得土壤的湿度值,送到LED显示电路显示,从而实现对土壤湿度的测量监控,能进行湿度范围设置和显示,同时通过模糊控制算法实现对水泵开关的智能控制该电路主要由系统电路、电源电路、湿度检测电路、按键显示电路、开关控制电路等组成。软件选用汇编语言编程。单片机可将土壤湿度传感器检测到的土壤湿度模3
拟量转换成数字量,并传输给控制系统检测是否该灌溉。该系统灵活性强,成本低,可靠性高,在实际应用中前景广阔。3件电设计和证要实现智能灌溉,系统需要有单片机、传感器A/D模块,电动机、电磁阀和喷头等设备。单片机:负责发出和接收各种运行程序指令,是整个控制系统的中枢部分。传感器:通过传感器采集土壤里的湿度信号,判断是否需要灌溉。A/D模块:将传感器采集的信号经转换后送到单片机。电动机:从水源抽水,为喷灌和滴灌系统提供一定的压力。电磁阀:控制喷头的喷灌与否。3.1单片主机系电路设计AT89C51单片机是51系列单片机的一个成员是8051单片机的简化版内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与IntelMCS-51列单片机的指令和输出管脚相兼容。由于将多功能八位和闪速存储器结合在单个芯片中,因此,AT89C51构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。
M
TXD
图3AT89C51主机统电路图3.1.1时钟电路单片机的时钟信号用来提供单片机片内各种微操作的时间基准,时钟信号通常用两种电路形式得到内部振荡和外部振荡MCS-51单片机内部有一个用于构成振荡器的高增益反相放大器,其频率范围为至12MHZ,引脚和XTAL2分别是此放大电路的输入和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,如上图所示在其外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反相放大器4与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。图中外接晶体Y1以及C1和C2构成并联谐振电路它们起稳定振荡频率快速起振的作用,其值均为30P左右,晶振频率选,电容器C1、C2主要起频率微调的作用。3.1.2复位电路为了初始化单片机内部的某些特殊功能寄存器,必须采用复位的方式,复位后可使CPU及系统各部件处于确定的初始状态,并从初始状态开始正常工作。单片机的复位是靠外电路来实现的,在正常运行情况下,只要引脚上出现两个机器周期时间以上的高电平,即可引起系统复位,但如果引脚上持续为高电平,单片机就处于循环复位状态。复位后系统将输入输出(I/O)端口寄存器置为FFH,堆栈指针SP置为07H,SBUF内置为不定值,其余的寄存器全部清0,内部RAM的状态不受复位的影响,在系统上电时的内容是不定的。复位操作有两种情况,即上电复位和按钮手动复位。本系统采用上电复位方式。图中C3和R1组成上电复位电路,其值R取为1K,C取为1pF。3.1.3据存储器扩展电AT89C51单片机内部只有字节的数据RAM统应用中可能用到更多的RAM,所以只能在片外进行扩展。扩展片一般采用静态RAM(SRAM系统选用6116即可满足课题要求,存储容量为。AT89C51单片机外接数据时P2口输出存储器地址的高位P0分时输出地址的低8位和传送指令字节或数据。P0先输出低8位地址信号,在ALE有效时将它锁存到外部地址锁存器中然后口作为数据总线使用此处地址锁存器选用74LS373,实际电路图连接如图4所示。
A0A1A2
INT1INT0X1X2
W
A9A8A7A6A5A4A3A2A1A0
图4数存储器的扩展电路图地址锁存器74LS373实质是一个是带三态缓冲输出的8D触发器片机系统中,为了扩展外部存储器,通常需要一块。其引脚如图5所示。5图574LS373引脚图1D~8D为8个输入端。1Q~8Q为8个输出端。G是数据锁存控制端;当G=1时,锁存器输出端同输入端;当G由“1”变为“0”时,数据输入锁存器中。OE为输出允许端;当,三态门打开;当OE=1时三态门关闭,输出呈高阻状态。单片机系统中常采用作为地址锁存器使用,输入端1D~8D至单片机的P0口输出端提供的低位地址G端接至单片机的地址锁存允许信号。输出允许端OE接地,表示输出三态门一直打开。RAM芯片6116扩展,6116是2KB的静态RAM(1)地址线6116低8位地址A0~A7经地址锁存器74LS373P0接口的P0.0~P0.7相连通,高3位地址A8~A10直接与P2接口的~P2.2连接,共11根地址线(2)数据线6116的数据线I/O0~I/07与P0接口P0.0~P0.7直接相连接口兼做数据线和地址线。(3)控制线74LS373的C端连接的ALE端。6116的输出使能端接的(P3.7)端外数据存储器读选通控制端,低电平有效。6116的写允许端面与的(P3.6)端接通是片外数据存储器写选通控制端,低电平有效。片外数据存取工作原理(读取和写入数据的过程当CPU向数据存储器写入(存入)数据时,先把要写入数据的单元地址经P0接口P2接口进出锁存后连到6116的地址端A0~A10然后再把欲写入的数据送至P0接口,一旦80C51写选通控制信号为低电平,便使6116的写允许端为低电平,此时则把数据写入6116指定单元中。当CPU从数据存储器中某单元读出数据时,同样先经P0、P2接口送出要读数据的单元地址一旦8051的读选通信号为低电平使得的读允许端为低电平时。则把指定地址单元中的数据经接口读入单片机内部RAM中。3.2数据集处理路ADC0809由八路模拟开关地址锁存与译码器比较器256电阻阶梯树状开关、逐次逼近式寄存器SAR、控制电路和三态输出锁存器等组成。ADC0809采用双列直插式封装,共有条引脚。如图6所示。6-5-1-2-3-4-8-76-5-1-2-3-4-8-76IN3IN4IN5IN6IN7D3(2)OECLKVCCGNDD1(2)
IN2IN1IN0ADDAADDCALED7(2)D6(2)D5(2)D4(2)D0(2)Vref(-))图6端图IN0-IN7(8条)为电,于输入被转换的模拟电压。地址输入和控制为地址锁存允许输入线高电平有效当线为高电平时,ADDA、ADDB三条地址线上地址信号得以锁存,经译码后控制八路模拟开关工作。ADDA、ADDB和ADDC为地址输入线,用于选择上哪一路模拟电压送给比较器进行A/D转换。数字量输出及控制线为“启动脉冲”输入线,该线上正脉冲由PU送来宽度应大于100nsEOC为转换结果输出线该线上高电平表示转换已结束数字量已锁“三态输出锁存器2-8为数字量输出线2-1为最高位。OE为“输出允许”线,高电平时能2-1—2-8引脚上输出转换后的数字量。电源线及其他(5条)CLOCK为时钟输入线,用于为ADC0809提供逐次比较所需640KHZ时钟脉冲序列。VCC为+5V电源输入线,为地线。VREF(+)和VREF(-)为参考电压输入线于给电阻阶梯网络提供标准电压VREF(+)和VCC相连,VREF(-)常接地。ADC0809是一种8位逐次逼近式A/D转换器部具有锁存控制的8路模拟开关外接8路模拟输入可同时对8路的输入模拟电压信号分时进行采集转换,ADC0809转换器的分辨率为8位,最大不可调误差小于正负1LSB,采用单一+5V供电,功耗为15mW,不必进行零点和满度调整。ADC0809的工作过程:首先输入3地址,并使,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。上沿将逐次逼近寄存器复位。下降沿启动A/D换,之后EOC输信号变低,指示转换正在进行。直到A/D换完成,变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。转换数据的传送A/D转换得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。本系统中ADC0809与AT89C51单片机接口如图7所示。采用等待延时方式。ADC0809的时钟频率范围要求在10-1280KHz,AT89C51片机的的频率是单片7
机时钟频率的,因此,当单片机的时钟频率采用,ADC0809输入时钟频率即为CLK=1MHz,发生启动脉冲后需延时100Us可读取A/D转换数据。如图7连接方式,的8位数据输出引脚可直接与数据总线相连,地址译码引脚A,B,C分别与74LS373的A,B,C相连通IN0-IN7中的一个通道。AT89C51P2.5为片选信号,在启动AM转换时,由单片机的写信号P2控制地址锁和换启动。由于ALE与连在一起,因此,在锁存通道地址的同时也启动转换,在读取转换结果时,用单片机的读信号RD和P2,引脚一级或非门产生的正脉冲作为OE号,用以打开三态输出锁存器。
DDDDDDDD
A0A1A2
INT1INT0IN-0VININ-1IN-2X1IN-3X2IN-4RXDIN-5IN-6ADD-CIN-7ENABLE
A0A1A2
U1A图7数采集处理电路图3.3信号理电路如图8所示,8
VD2
U1A
VT
VD3
图8信号调理电路图信号调理电路的作用是将被测湿度参数的变化转化成电压变化,经放大、滤波后能满足A/D模块的要求。本电路由湿度检测电路、湿度信号放大电路和高精度稳压电源电路组成。湿度检测电路由湿敏电RH、晶体管VT以及R17、R18等组成。湿度信号放大电路由U1A、RP1、RP2、、R20、R22、R23和VD3组成。稳压电源电路为湿度检测电路提供2.5V的稳压电源当湿度发生变化时使得湿敏传感器的阻值也不同这个电阻成为VT的基极偏流电阻流电阻的不同使基极电流也不同从而改变了VT的集电极电流也改变了发射极电流在上将射极电流转换成电压,并将该电压送至A1的同相输入端,经A1放大后输出,并由VD3控制输出电压在2V以内。LM358内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适用于电源电压范围很宽的单电源使用,也适用于双电源,工作模式在推荐的工作
Title条件下,电源电流与电源电压无关,使用范围包括传感放大器,直流增益模块音频放大器工业控制DC增益部件和其他所有可用单电源供电的使用运算放大器的场。
B
3.4数字示电路LED显示土壤湿度值,在灌水期间以倒计时的方式显示灌水剩余时间。数字显示电路由4个LED显示器和键盘控制电路组成。数码管有共阴共阳之分,本系统采用8段共阴型LED,每位数码管内部有8个发光二极管,公共端由8个发光二极管的阴极并接而成,正常显示时公共端接低电平(GND发光二极管是否点亮取决于各引脚上是否是高电平。数码管外部有10个引脚其中脚为公共端也称位选端其余8个引脚称为段选端,当要使用某一位数码管显示某一数字0-9中的一个须在这个数码管的段选端加上与数字对应的8位段选也称字形码端加上低电平即可。数码管显示有两种工作方式,即静态显示方式和动态扫描显示方式。静态显示的特点是各LED管能稳定地同时显示各自字形;动态显示是指各流一遍一遍显示各自字符们因视觉惰性而看到的是各似乎在同时显示不同字形。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描方式需要解决多位LED数码管的“段控”和“位控”问题,本电路通P1口实现:而每一位的公共端,即LED数码管的“位控则由口控制。这种连接方式由于多位9字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只要这一位在显示,其它几位则暗。本系统中,字位线的选通与否是通过三极管的导通与截止来控制的,即三极管处于“开关”状态。在单片机系统中,和键盘是两种很重要外设。键盘用于输入数据、代码和命令;LED用来显示控制过程和运算结果。
ff
ff
ff
ff
NUMDNUMA
图9数显示电路图ZLG7289是由广州周立功单片机发展有线公司自行设计的键盘显示接口芯片它具有串行接口功能同时驱动8共阴极数码(或64只独立LED)和64个键,单片即可完成LED显示、键盘接口的全部功能。ZLG7289部含有译码器,可直接接收码十六进制码,并同时具有种译码方式。此外,ZLG7289还具有多种控制指令,如消隐、闪烁、左移、右移、段寻址等ZLG7289具有片选信号可方便的实现多于8位的显示或多于64键的键盘接口。ZLG7289用来控制程序和驱动LED码管如何显示。按键电路中,有相应的下拉电阻()和位选电阻(R3、R4连接键盘与位选线DIG0~DIG7SPI接口时序:ZLG7289与单片机的接口采用线制行总线方式,、和DIO这3根信号线和是输入信号,由单片机提供DIO信号是双向的,必须接到单片机中具有双向功能的I/O口上。ZLG7289与单片机通信时串行数据从引脚送入芯片并由同步。当片选信号CS变为低电平后,引脚上的数据在CLK引脚的上升沿被写入ZLG7289的缓冲寄存器中。当ZLG7289检测到有效的按键时INT引脚从高电平变为低电平,并一直保1033持到按键结束。只有当引脚出现下降沿时,才允许读取按键值,否则将得不到有意义的数据。如果在收到“读键盘指令”时没有有效按键,则将输出FFH(11111111B)2
CSSPI总线片选输入信号,低电平有效,负责向芯片发送指令及读取键盘数据。:SPI总线同步时钟输入信号,向芯片发送数据及读取键盘数据时,此引脚上升沿表示数据有效。:SPI总线串行数据输入/输出信号,双向。当芯片接收指令时,此引脚为输入端;当读取键盘数据时,此引脚在读指令最后一个时钟的下降沿变为输出端。CR
VCCVCCC120u45678Key911111
1uFC1FC1FRTVCCRCCCLK0GDIG7CD/CSDCLKIOY1DPSASB
1K11MHZ22222222211111
OOOOSAZLG78图10ZLG7289电图3.5输出制电路该节水灌溉系统电路在不同的湿度范围内分别进行不同的操作和喷灌,利用两个输出控制电路来进行相应的操作,若土壤湿度过低,那就实行喷灌,若土壤湿度稍低,那就滴灌。相应的,由以下两个相同的电路,由继电器来控制,分别用于滴灌和喷灌。由单片机的P1.0、P1.1控制整个电路。该输出控制电路的工作原理当P1.1置1时极管9013导通光电耦合器工作,继电器不得电,K2吸附在上面,电动机启动,开始灌溉。反之,1.1置0时,三极管截止,继电器得电,K1吸附在下面,电动机停止,灌溉结束。电路如图11。9013三极管是一种型硅小功率的三极管,它是非常常见的晶体三极管,在收音机以及各种放大电路中经常看到它,应用范围很广,它是小功率三极管。9013的参数如下:集电极电流Ic:500Ma工作温度:-55℃to+150℃11224集电极-基极电压40V主要用途:放大电路VCC
MG2R14
MOTORVCC
R13
U5P1.1
OPTOISO1
RELAY-SPDTD11N4148图11输控制电路图继电器是具有隔离功能的自动开关元件,广泛应用于遥控、遥测、通讯、自动控制、机电一体化及电力电子设备中,是最重要的控制元件之一。继电器一般都有能反映一定输入变量(如电流、电压、功率、阻抗、频率、温度压力速度光等的感应机(输入部分能对被控电路实现“通”、“断”控制的执行机(输出部分继电器的输入部分和输出部分之间还有对输入量进行耦合隔离处理和对输出部分进行驱动的中间机动部分作为控制元件,概括起来,继电器有如下几种作用:扩大控制范围。放大。综合信号。自动、遥控、监测。继电器实质是一种传递信号的电器据输入的信号达到不同的控制目的,继电器一般是用来接通和断开控制电器(电动机4软件设4.1程序程在本系统的程序设计中,主控模块负责启动系统后显示屏上的初级显示,开外部中断,判断系统模式,以及执行相应的子程序,完成系统功能。在主程序模块中,需要完成对各模块接口的初始化工作,另外,在主程序模块中还需要检测模式标志单元的值,若该单元的值为,则为手动模式,若为1,则为自动模式用户选定模式后主程序负责执行相应的子程序若为手动模式,阀门打开后,则屏幕显示倒计时,时间一到,阀门就关闭。若为自动模式,则单片机定时检测P3.3口的值若该值为高电平则不启动阀门若该值为低电平则启动阀门启动阀门后单片机还要继续检测P3.3口的值若变高电平则关闭阀门。执行完一个灌溉周期后继续循环检测口的电平值。4.1.1统主程序程图主程序流程图如图当接通电源时节水灌溉系统电路开始启动初始化程序后输入设定的值,利用湿度传感器检测土壤的湿度,将采样到的湿度值送入单片机,在经单片机判12
5断其值是否达到预设值,若达到预设值,则停止灌溉,若小于预设值,则灌溉。这样将当前湿度与采样湿度循环比较来决定土壤的湿度而得到良好的灌溉。开始初始化设定值输入采样湿度值送单片机土壤湿度是否达到预设值灌溉
停止灌溉当前湿度值图12主序流程图4.1.2子程序流图(1)键盘扫描程序流程图:13开始是否有键闭合?消抖是否有键闭
合?确定按键位置按键释放否?键值处理返回图13键扫描程序流程图判断键盘上有无键按下。其方法为:快速扫描,即口输出全为0读P1.3~P1.7端口状态当全“1时说明键盘无键按下当不全“”时,说明键盘有键被按下。消除按键抖动的影响。其方法为:在判断有键被按下后,调用软件延时程序消除键盘抖动,再判断键盘状态,则确定该键被按下,否则作按键抖动处理。求键号和键值。根据按键识别方法,确定按键的行列位置,再利用计算或查表的方法求取按键的键号。根据按键位置进行键的重新编号,从而得到按键的键值。等待释放并进行键值处理为保证按键每闭合一次CPU仅作一次处理等待按键被释放后,再进行此次按键的键值分析处理。(2)数字滤波程序流程图:14开始置初始位置采样值清交换标志为00H取前一个数取后一个数前数<后数?前数送后数单元,后数送前数单元置交换标志位00H()?标志位取值结束图数字波程序流程图在单片机进行数据采集时,输入信号总难免受到这样那样的随机干扰,它们来自被测信号源、传感器、外界干扰等,从而使送入单片机的数据中存在误差,这种因随机干扰而引入的误差为随机误差,其特点是在相同条件下测量同一量时,其大小和符号做无规则变化而无法预测,但测量次数足够多时,其总体服从统计规律,大多数随机误差服从正态分布。为了克服随机干扰引起的误差,硬件上采用滤波技术;软件上可按照统计规律采用数字滤波方法来抑制有效信号中的干扰成分,消除误差。本系统采用数字滤波法。数字滤波无需硬件,它是用软件算法来实现的,只要适当改变软件滤波程序15的运行参数,就能方便的改变其滤波特性,实时性很强。4.1.3LED数码管动态示程序程图采用此显示子程序,使一个LED显示器显示,再取下一个,直到最右边每调用一次仅扫描一遍要得到稳定的显示必须不断的调用显示子程序。显示程序开始初始化显示缓冲区末地址
—R0数码管个数
—R1
位选字R6字形码送口,位选字送89C51C口显示延时指向下一个显示单元
(R0)-1
位数码管是否显示完?(左移一位,指向下一位图15LED数管态显示程序程图4.2程序各芯片地址编码为::0F000H-0F7FFH89C51I/O口:7FF8H-7FFDHADC0809:0BFF8H-0BFFFH4.2.1统主程序计ADTURN0EQU21H;IN0通道A/D转换数据存放首址ADTURN1EQU2CH;IN1通道A/D转换数据存放首址LINEADR0EQU36HIN0采集数据经滤波处理数据存放地址LINEADR1EQU37H;IN1采集数据经滤波处理数据存放地16LINEADREQU38H;平均值存放地址HUMIDEQU3BH;标度变换后的湿度值存放地址BCDADREQU3CH;BCD转换后的湿度值存放地址HUMADREQU3DH;湿度值存放地址T100USEQU256-50;延时参数C100USEQU3FHSHOWWADREQU40H;显示区数据存放首址ORG0000HSJMPSTARTORG000BHLimpT0INTORG0023HLimpSERVEORG0050HSTART:MOVSP#50HMOVHUMADR#0FFHSETB0D3HSETS0D4HMOVR0#HUMADRCLR0D3HCLR0D4HMOVTMOD#22HMOVTH1#0F3HMOVTL1#0F3HMOVSCON#50HMOVPCON#80HMOVDPTR#7FF8HMOVA#4DHMOVDPTRASETBTR1SETBEASETBESRUN:LCALLADMOVSBUFALCALLTWOSECMOVAHUMIDCJNECOMPDONE:CLRP1.1LCALLRAINLCALLTIMEORLP1#02H
;定时器0中断服务程序入口;串行I/O中断服务程序入口;设置堆栈;选中寄存器3;选中寄存器0;主程序初始化;调用A/D转换子程序;调用湿度转换子程序;将湿度值送往单片机;延时等待;检测到的湿度值大于预设湿度值时循环采样,否则灌溉;进行灌溉17LCALLTWMIN;灌溉结束等待20分钟LimpRUN;回到主程序COMP:JCDONELJMPRUNEND4.2.2样子程序根据电路图,因接入单片机,故只能采用延时等待的方法来读取A/D转换结果,ADC0809的和两个地址分别是0BFF8H,0BFF9H,通道采集到的11个数据放入以ADTURN1(片内2CH)为首地址的另一片数据区内。程序清单:AD:MOVR0,#ADTURN0MOVR6,#0BHADLOOP:MOVDPTR,#0BFF8HGOON:MOVX@DPTR,AMOVR7,#0A0HDLAY:NOPNOPNOPNOPNOPDJNZR7,DLAYMOVXA,@DPTRMOV@R0,AINCR0DJNZR6,ADLOOPSJMPADRET4.2.3据处理程(1)数字滤波程序MAOPAO:MOVR1,#ADTURNOMOVR5,#0AHCLR00HFILTER:MOV3CH,@R1INCR1MOVA,@R1CLRCSUBBA,3CHJNCNEXTMOVA,@R1MOV@R1,3CHDECR1MOV@R1,AINCR1
;启动IN0通道A/D转换;延时等待转换结束;将转换后的数据送入以ADTURN0首地址的一RAM内18SETB00HNEXT:DJNZR5,FILTERJB00H,MAOPAOMOVLINEASRO,26HRET(2)标度变换在微机化测控系统中,经转换器接口送入微机的数据,是对被测量进行测量得到的原始数据。这些原始数据送入微机后通常要先进行一定的处理,然后才能输出作为显示器的显示数据。这个变换就是数字显示的标度变换。程序如下TURN:SETB0D3HCLR0D4HCLRCMOVA,LINEADRMOVB,#20MULABCLR0D2HMOVR7,BMOVR6,AMOVR5,#00HMOVR4,#33HLOOP1:MOVA,R7JNZLOOP2MOVA,R6JNZLOOP2MOVR7,#0MOVR6,#0SJMP$2:CLRA2,AMOVR3,AMOVR1,#16ADIN:CLRCMOVA,R6RLCAMOVR6,AMOVA,R7RLCAMOVR7,AMOVA,R2RLCAMOVR2,AMOVA,R3RLCALOOP3:DJNZR1,ADIN
;选择第一组寄存器19MOVA,R3JBACC.7,LOOP4MOVA,R2RLCAMOVR2,AMOVA,R3RLCASUBBA,R5JCDONE1JINZLOOP4MOVA,R2SUBBA,R4JCDONE1LOOP4:MOVA,R6ADDA,#1MOVR6,AMOVA,R7ADDCA,#0MOVR7,ADONE1:MOVHUMID,R6CLR0D3HRET(3)BCD转换程序BCDTURN:MOVSHOWADR+3,#00HMOVB,#100MOVA,HUMIDDIVABMOVSHOWADR+2,AMOVA,#10XCHA,BDIVABMOVSHOWADR+1,AMOVSHOWADR,BRET4.2.4LED动态显示程MOVDPTR,#7FF8HMOVA,#4DHMOVX@DPTR,ASHOW:CLR0D3HSETB0D4HMOVR4,#0FFHSHOWSTART:MOVR0,SHOWADR+3MOVR1,#4SHOWLED:MOVR6,#20H
;因湿度值只能小于100,故千位数为;将百位数送SHOWADR+2显示地址;将十位数送SHOWADR+1显示地址;将个位数送SHOWADR显示地址;指向89C51控制口;设置89C51工作方式字;设A口、C口均为输出;选中寄存器2组;指向缓冲区末单元;显示4位LED20MOVR7,#00HDIR1:MOVA,#00HMOVDPTR,#7FFBHMOV@DPTR,AMOVA,@R0MOVDPTR,#TABMOVA,@A+DPTRMOVDPTR,#7FF9HMOVX@DPTR,AMOVA,R6MOVDPTR,#7FFBHMOVX@DPTR,AHERE:DJNZR7,HEREDECR0CLRCMOVA,R6RRCAMOVR6,AJNZDIR1DJNZR1,SHOWLEDDJNZR4,SHOWSTARTCLR0D4HTAB:DB0C0H,0F9H,0A4H,0B0H,DB99H,92H,82H,0F8HDB80H,90H,88H,83HDB0C6H,0A1H,86H,8EHRET4.2.5片机串行信中断务程序AT89C51是采用系列的汇编语言编程它有一个标准的串行接口有种工作方式其中方式是标准的10位异步通信方式10位数据和PC机的标准串行接口相对应,由串行接口控制器SCON(字节地址为)设置状态。本系统中AT89C51串行接口控制器SCON设置为50H,SM0、SM1分别设为“0”“1为串行工作方式1;REN为“1允许串行接口接受数据,PCON设置为80H,即SMOD“1特率要求为2400位/秒定时器T1初值为另外,还应对串行中断的相关位进行设置。程序如下:SERVE:CLREAPUSHDPLPUSHDPHPUSHACCPUSHPSWSETB0D3HSETB0D4HJBTI,STOPWAIT:JNBRL,WAIT21MOVA,SBUFMOV@R0,AINCR0MOVA,R0CJNEA,#3FH,DLEVMOVR0,#HUMADRDLEV:CLRRISTOP:CLRTIPOPPSWPOPACCPOPDPHPOPDPLSETBEARETI5硬件统的调根据电路原理图将整个电路设计出来相应的要对电路板进行调试测量。观察整个电路的工作方式是否正常。电路板制作好后,先观察电路中有无漏接、接错、虚短、虚断等现象。检查无误后方可进行下一步操作。给电路接通电源,看电路各元器件是否正常工作,有无气味,或冒烟。数码管是否正常显示。一切正常后,在进行调试、测量。系统正常后,我们可以根据实际情况方便的设置各个参数的数值,其中包括对土壤湿度上下限值土壤湿润层深度等各参数的设置壤湿度检测值实时显示目前系统检测到的土壤湿度值,该值与我们观察到的单片机系统板上LED的数字显示是一致的,当用户正确设定了上述参数值,点击确定按钮即可得出需灌水量和灌溉时间的数值,在点击发送数据按钮就可以将土壤湿度下限值和灌水时间的信息通过串行通信方式传送给单片机。另外,当系统正常工作时,如果检测到的土壤湿度值小于或等于土壤湿度下限值时,系统上位机可自动计算出需灌水量和灌水时间的数值,并启动发送数据的命令将信息传送给单片机,单片机进行灌水。22iiAAAND-I-IliriDDDDTTTTDDKI
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论