资源描述
毕 业 论 文 设 计 自动浇花系统的设计摘要本设计主要的内容是土壤湿度检测电路的设计与制作。该电路的工作原理是由STC89C52单片机和ADC0832组成系统的核心部分,湿度传感器将采集到的数据直接传送到ADC0832的IN端作为输入的模拟信号。选用湿度传感器和AD转换,电路内部包含有湿度采集、AD转换、单片机译码显示等功能。单片机需要采集数据时,发出指令启动A/D转换器工作,ADC0832根据送来的地址信号选通IN1通道,然后对输入的模拟信号进行转换,转换结束时,EOC输出高电平,通知单片机可以读取转换结果,单片机通过调用中断程序,读取转换后的数据。最后,单片机把采集到的湿度数据经过软件程序处理后送到LCD1602进行显示。自动浇水系统设计为智能和手动两个部分:智能浇水部分是通过单片机程序设计浇水的上下限值与感应电路送入单片机的土壤湿度值相比较,当低于下限值时,单片机输出一个信号控制浇水,高于上限值时再由单片机输出一个信号控制停止浇水;手动部分是由通过关闭单片机电源,由外围电路供电进行浇灌、关键词STC89C52干湿度的采集与显示 LEDDesign of potted flowerss automatic watering system(Grade 08,Class 3,Major electronics and information engineering ,School of physics and Abstract the design of potted plant automatic watering system includes soil temperature and humidity acquisition and display, and the counter setting and display and alarm two parts water. Soil temperature and humidity acquisition and display part, and comprises a soil temperature and humidity acquisition and display, automatic watering system. Soil temperature and humidity acquisition and display in ADC0832is connected with two potentiometers as an induction circuit, the collected soil temperature and humidity value is send to the STC89C52 single chip, then by its transmission to the LCD screen display. Automatic watering system design for intelligent and manual two parts: intelligent watering section through the MCU programming watering the upper limit and the lower limit and the induction circuit into the microcontroller s soil humidity value are compared, when less than the lower limit value, the MCU output a signal to control the watering, high in the upper limit value by the microcontroller output a signal control stop watering; manual part is composed of single-chip digital tube into the month and day from real time, through the software programmed timing watering time.Key words :STC89C52 temperature and humidity acquisition in the display counter LED引言1 选题的目的和意义随着社会的进步,人们的生活质量越来越高。在家里养养盆花可以陶冶情操,丰富生活。同时盆花可以通过光合作用吸收二氧化碳,净化室内空气,在有花木的地方空气中阴离子聚集较多,所以空气也特别清新,而且许多花木还可以吸收空气中的有害气体,因此,养盆花如今被许多人喜爱。盆花浇水量是否能做到适时适量,是养花成败的关键。但是,在生活中人们总是会有无暇顾及的时候,比如工作太忙,或者出差、旅游等。花草生长问题80%以上是由花儿浇灌问题引起的;好不容易种植几个月的花草,因为浇水不及时,长势不好,用来美化环境的花草几乎成了“鸡肋”;不种植吧,家里没有绿色衬托,感觉没有生机;保留吧,花草长得不够旺盛,还影响家庭装饰效果。虽然市场上有卖盆花自动浇水器,但价格十分昂贵,并且大多只能设定一个定时浇水的时间,很难做到给盆花自动适时适量浇水。夜有较经济的盆花缺水报警器,可以提醒人们及时的给盆花浇水。可是这种报警器只能报警,浇水还需要人们亲自动手。当家里无人时,即使报警也无人浇水,就起不到应有的作用了。因此,我想设计一种集盆花土壤湿度检测,自动浇水以及蓄水箱自动供水于一体的盆花自动浇水系统。让人们无暇顾及时也能得到及时的浇灌。2 自动浇水器的诞生背景及国内外发展现状微喷系统是近几年利用国内外先进技术组装的新型灌溉设施,主要是利用水流通过管道系统以一定速度从特制的喷头喷出,在空气中分散成细小的水滴着落在花草植物。作物及周围的地面上,从而达到及时补充水分的目的。该系统具有用水量少、冲击力小的灌溉特性,适用于栽培密度大、植被柔软细嫩的植物。自动浇水器的诞生时随着人们生活水平的提高和生活节奏的加快而诞生的一种懒人园艺用品。它把微喷的概念应有家庭盆花浇灌中,通过相应地改进,达到合理给盆花自动浇水的目的。早在很多年前,国外就已经开始普及,国内实用的电子类自动浇水器多数从国外进口的,价格昂贵,但质量比较可靠。不过这不太适用于国内,目前国内外比较流行的是玻璃制作的自动浇水器。这种类型的浇水器多数在我国山西和浙江一带生产的,价格比较低廉,实用性没有电子类自动浇水器好。随着国内居民消费水平和生活质量的提高,居家园艺市场异常火爆,但是由于生活节奏加快,种花容易养花难,浇水问题就暴露出来,因此国内上加已经看到了这种需求潜力。目前这类小居家用品的厂家主要集中在广东,上海,浙江一带。现在市场上所出售的自动浇水器主要有电子类自动浇水器和玻璃、陶瓷类自动浇水器。1) 电子类自动浇水器电子类自动浇水器又叫时控喷淋装置,系统构成为:主机(或者)、主管(可以是花园管也可以是七分之四毫米的微喷淋管)、分水接头(3通、4通、5通、6通、分水器)、副管(五分之三毫米)喷淋管(雾化喷头、旋转喷头、折射雾化喷头等)。电子类自动浇水器根据电源的不同分为交流电自动浇水器和电池自动浇水器两种。控制器的一般性能有:电磁阀控制;智能时控电路、微电脑芯片控制;适用电源为AC220V/50Hz;最适水压0.3-0.6Mpa;待机功率(4VA,浇水时小于12VA);可控制连续作业时间试1分钟至168个小时;可每天自动完成十次以上浇水作业,可每天、隔天、隔多天自动循环进行浇水,手动自动两用;每天计时误差小于正负3秒;电器适应环境温度为-1050摄氏度;相对湿度小于90%RH。2)玻璃、陶瓷类自动浇水器玻璃。陶瓷类自动浇水器又叫自动渗水装置,它由本身材质的物理结构构成,根据器具的物理渗水原理完成自动浇灌,当自动浇水器内部存水,自身形成一定的压力,当遇到干燥的土壤,水就会自上而下的流出,当土壤湿润以后,会形成一个堵塞压力,从而导致水流速度变慢或者停止。器具工艺不同,效果也不一样,当然也因土壤的疏松情况决定器具内水流的速度。当前传感器技术与单片机技术发展迅速,其应用逐步由工业、军事等领域向其它领域渗透,已经和我们的日常生活息息相关。而且智能家居概念也越来越受到人们的推崇,因此,微电脑控制的电子类自动浇水系统有很好的发展前景。3毕业设计所采用的研究方法和手段本次毕业设计是设计一种单片机控制的自动浇水系统,实现室内盆花浇水的自动化系统。该系统可对土壤的湿度进行监控,并对作物进行适时适量的浇水。其核心是单片机和温湿度采集和显示电路以及浇水驱动电路构成的检测控制部分。主要研究土壤湿度与浇水量之间的关系、浇灌控制技术及设备系统的硬件、软件编程各个部分。检测部分,单片机选用STC89C52单片机,软件选用C51语言编程。土壤温湿度采集于显示电路可将检测到的土壤温湿度模拟量放大转换成数字量通过单片机内程序控制精确的将温度与湿度分别显示在LCD显示屏上,同时把程序发给另外一块单片机,通过单片机内的中断服务程序判断是否要给盆花浇水,若需浇水,则单片机系统发出浇水信号,开始浇水,若不需要浇水,则进行下一次循环检测。在浇水系统中也同时设计一个定时浇水部分,通过按键开关设置不同的浇水时间段,在时间段以内时,单片机驱动浇水系统,开始浇水,如不在时间段内,则不浇水。目录目录51 STC89C5211.1 STC89C52的简介11.2 STC89C52单片机的基本组成11.3 STC89C52主要特性:21.4 STC89C52的管脚说明21.5 STC89C52单片机的存储器41.6 振荡电路和时钟51.7 STC89C52的中断系统61.7.1 中断系统结构和中断控制61.7.2 中断响应过程81.8 定时器/计数器81.8.1 定时器/计数器0和1简介81.8.2 与定时器/计数器0和1相关的特殊功能寄存器92 LCD1602显示112.1 1602LCD的基本参数及引脚功能112.2 显示模块采用1602液晶显示接口电路123 ADC0832123.1 ADC0832的简介133.2 ADC0832引脚图133.3.2 ADC静态特性13ADC的静态特性是指其与时间特性无关的特性,主要包括以下几类:133.3.3 ADC动态特性143.3.4 ADC性能测试153.3.5 常用ADC芯片概述153.3.6 ADC0832模数转换原理及主要技术指标161主要特性162内部结构163外部特性(引脚功能)163.3.7 ADC0832与单片机的接口电路174 盆花自动浇水系统的设计174.1 土壤温湿度采集与显示174.1.1 硬件电路设计184.1.2具体的土壤温湿度采集于显示系统硬件电路184.1.3系统软件设计195.2定时器部分297 致谢308 参考文献319 附录32附录A 原理图321 STC89C521.1 STC89C52的简介STC89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集合输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ALMEL的STC89C52是一种高效微控制器,STC89C52单片机为很多嵌入式控制系统提供了一种灵活性高且廉价的方案。1.2 STC89C52单片机的基本组成STC89C52由一个8位的微处理器,128KB片内数据存储器RAM,21个特殊功能寄存器SFR,3KB片内程序存储器Flash ROM,64KB可寻址片内外一编址的ROM,64KB可寻址片外的RAM,4个8位并行I/O接口(P0-P3),一个全双工通用异步串行接口UART,两个16位的定时器、计数器,具有位操作功能的布尔处理机及位寻址功能的五个中断源、两个优先级的中断控制系统以及片内振荡器和时钟产生电路。其基本组成框图如图1.1所示。图1.1 STC89C52单片机的基本组成1.3 STC89C52主要特性:(1) 与MCS-51兼容(2) 4K字节可编程闪烁存储器(3) 寿命:1000写、擦循环(4) 数据保留时间:10年(5) 全静态工作:0Hz-24Hz(6) 三级程序存储器锁定(7) 128*8位内部RAM(8) 32可编程I/O线(9) 两个16位定时器、计数器(10) 5个中断源(11) 可编程串行通道(12) 低功耗的闲置和掉电模式(13) 片内振荡器和时钟电路1.4 STC89C52的管脚说明STC89C52的引脚图如图1.2所示。各引脚的具体说明如下:VCC:供电电压GND:接地 P0口 :P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写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口也可作为STC89C52的一些特殊功能口,如下所示: 各口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.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:来自反向振荡器的输出。图1.2 STC89C52的引脚图1.5 STC89C52单片机的存储器 在单片机中,存储器分为程序存储器ROM和数据存储器RAM,并且两个存储器是独立编址的。 STC89C52单片机芯片内配置有8KB(0000H-1FFFH)的Flash程序存储器和256字(00H-FFH)的数据存储器RAM,根据需要可外扩到最大64KB的程序存储器和64KB的数据存储器,因此STC89C52的存储器结构可分为4个部分:片内程序存储器、片外程序存储器、片内数据存储器和片外程序存储器。如果以最小系统使用单片机,即不扩展,则STC89C52的存储器结构就较简单:只有单片机自身提供的8Flash程序存储器和256字节数据存储器RAM。图1.3给出了STC89C52单片机的存储器分布空间。左侧框中为单片机自身提供的8KBFlash程序存储器和256字节数据存储器RAM。右侧为可扩展的64KB的程序存储器ROM和64KB的数据存储器RAM。 图1.3存储器空间分布(1) 程序存储器STC89C52单片机出厂时片内已带有8KB的Flash程序存储器,使用时,引脚/EA要按高电平(5V),这时,复位后CPU从片内ROM区0000H单元开始读取指令代码,一直运行到1FFFH单元,如果外部扩展有程序存储器ROM,则CPU会自动转移到片外ROM空间2000H-FFFH读取指令代码。(2) 数据存储器 STC89C52单片机出厂时片内已带有256字节的数据存储器RAM,如果不够用,可以在片外扩展,最多可扩展64KB RAM. 单片机自带的数据存储器RAM结构如图2-4所示,此字节单元(00H-FFH)的低128字节(00H-7FH)单元为用户使用区,高128字节(80H-FFH)单元为特殊功能寄存器SFR区。 片内数据存储器的00H-7FH单元又划分为3块:00H-1FH块是工作寄存器所用;20-2FH块是位寻址功能的单元区;30H-3FH是普通RAM区。工作寄存器又分为4组,在当前的运行程序中只有一组是被激活的,谁被激活有程序状态寄存器PEW的RS1,RS0两位决定。1.6 振荡电路和时钟 在STC89C52芯片内部,有一个振荡电路和时钟发生器,引脚XTAL1和XTAL2之间接入晶体振荡器和电容后构成内部时钟方式。也可以使用外部振荡器,由外部振荡器产生的信号直接加载到振荡器的输入端,作为CPU的时钟源,称为外部时钟方式。采用外部时钟方式时,外部振荡器的输出信号接至XTAL1,XTAL2悬空。两种方式的电路连接图1.6所示。大多数的单片机采用内部时钟方式,本次设计亦然。 在STC89C52单片机内部,引脚XTAL2和引脚XTAL1连接着一个高增益反相放大器,XTAL1引脚是反相放大器的输入端,XTAL2引脚是反相放大器的输出端。 芯片内部的时钟发生器是一个二分频触发器,振荡器的输出fosc为其输入,输出为两相时钟信号(状态时钟信号),频率为振荡器输出信号频率fosc的二分之一。状态时钟经三分频后为低字节地址锁存信号ALE,频率为振荡器输出信号频率fosc的六分之一,经六分频后为机器周期信号,频率为fosc/12。C1,C2一般取20-30pF的陶瓷电容器。图1.4 STC89C52振荡器的连接方式1.7 STC89C52的中断系统为了提高系统的工作效率,STC89C52单片机设置了中断系统,采用中断方式与外设进行数据传送。所谓“中断”,是指单片机在执行某一段程序的过程中,由于某种原因(如异常情况或特殊请求),单片机暂时中止正在执行的程序,而去执行相应的处理程序,待处理结束后,再返回到被打断的程序除,继续执行原程序的过程。1.7.1 中断系统结构和中断控制 STC89C52有六个固定的可屏蔽中断源,分别是三个片内定时器/计数器溢出中断TF0、TF1和TF2,两个外部中断/INT0(P3.2)和/INT1(P3.3),一个片内串行口中断T1或RI。6个中断源有两个中断优先级,可形成中断嵌套。它们在程序存储器中各有固定的中断入口地址,由此进入相应的中断服务程序。引起6个中断源的符号、名称及产生的条件如下:/INT0:外部中断0,由P3.2端口线引入,低电平或下降沿引起;/INT1:外部中断1,由P3.3端口线引入,低电平或下降沿引起;T0:定时器/计数器0中断,由T0记满回零引起;T1:定时器/计数器1中断,由T1记满回零引起;T1/RI:串行口I/O中断,串行口完成一帧字符发送/接收后引起中断;T2:定时器/计数器2中断,由T2记满回零引起。 在本次设计中采用了定时器/计数器0中断,它的中断控制寄存器包括定时器/计数器0、1控制寄存器TCON和中断允许控制寄存器IE。(1) 定时器控制寄存器TCONTCON是定时器/计数器和外部中断两者合用的一个可寻址的特殊功能寄存器,它的格式如下: D7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0各控制位定义如下:TF1:定时器/计数器1溢出中断请求标志位。当定时器/计数器1计数产生溢出时,由内部硬件置位TF1,向CPU响应中断并转向该中断服务程序执行时,由硬件内部自动TF1清0。TR1:定时器/计数器1启动/停止位。由软件置位/复位控制位/计数器1的启动或停止计数。TF0:定时器/计数器0溢出中断请求标志位。当定时器/计数器0计数产生溢出时,由内部硬件置位TF0,向CPU响应中断并转向该中断服务程序执行时,由硬件内部自动TF1清0.TR0:定时器/计数器0启动/停止位。由软件置位/复位控制定时器/计数器0的启动或停止计数。IE1:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT1=1时,由内部硬件置位IE1标志位(IE=1)向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部将IE1清0。 IE0:外部中断请求标志位。当CPU检测到INT0低电平或下降沿且IT0=1时,由内部硬件置位IE0标志位(IE0=1)向CPU请求中断,当CPU响应中断并转向该中断服务程序执行时,由硬件内部将TE0清0。 IT1:用软件置位/复位IT1来选择外部中断INT1是下降沿触发还是电平触发中断请求。当IT1置1时,则外部中断INT1为下降沿触发中断请求,即INT1端口由前一个机器周期的高电平跳变为下一个机器周期的低电平,则触发中断请求;当IT1复位清0,则INT1的低电平触发中断请求。 IT0:由软件置位/复位IT0来选择外部中断INT0是下降沿触发还是低电平触发中断请求,其控制原理同IT1。(1) 中断允许控制寄存器中断允许控制寄存器IE的格式如下:D7D6D5D4D3D2D1D0EAET2ESET1EX1ET0EX0各控制定义如下:EA:中断总控制位,EA=1。CPU开中断,它是CPU是否响应中断的前提,在此前提下,如果某中断源的中断允许置位1,才能响应应该中断源的中断请求。如果EA=0,无论哪个中断源有请求,CPU都不予回应。ET2:定时器/计数器T2中断控制位,ET2=1,允许T2计数溢出中断;ET=2,禁止T2中断。ES:串行口中断控制位,ES=1,允许串行口发送/接受中断;ES=0禁止串行口中断。ET1:定时器/计数器T1中断控制位,ET1=1,允许T1计数溢出中断;ET1=0,禁止T1中断。EX1:外部中断1控制位,EX1=1,允许中断;EX=0,禁止外部中断1中断。ET0:定时器/计数器T0中断控制位,ET0=1,允许T0计数溢出中断;ET0=0,禁止T0中断。EX0:外部中断0控制位,EX0=1,允许中断;EX0=0,禁止外部中断0中断。1.7.2 中断响应过程CPU中断处理从响应中断、控制程序转向对应的中断矢量地址入口处执行中断服务程序,到执行返回(RET1)指令为止。中断响应可分为以下几个步骤:(1)保护断点,即保存下一个将要执行的指令的地址,把这个地址送入堆栈。(2)寻找中断入口,根据6个不同的中断源所产生的中断,中断系统必须能够正确地识别中断源,查找6个不同的入口地址。以上工作是由单片机自动完成的,与编程者无关。在6个入口地址处存放有中断处理程序。(2) 执行中断处理程序。(4)中断返回:执行完中断指令后,从中断处返回到朱程序,继续执行。1.8 定时器/计数器STC89C52单片机内部设有两个16位可编程定时器/计数器,即定时器/计数器0和定时器/计数器1。除此之外还有一个可编程定时器/计数器2。1.8.1 定时器/计数器0和1简介定时器/计数器0和1内部有一个计数寄存器(THx和TLx),它实际上是一个累加寄存器加1计数。定时器和计数器共用这个寄存器,但定时器/计数器同一时刻只能工作在其中一种方式下,不可能既工作在定时器方式,同时又工作在计数器方式。这两个工作方式的根本区别是在于计数脉冲的来源不同。工作在定时器方式时,对振荡器12分频的脉冲计数,即每过一个机器周期(1个机器周期在时间上和12个振荡周期的时间相等),计数寄存器中的值就加1。工作在计数器方式时,计数器不是来自内部的机器周期,而是来自外部输入。对定时器/计数器0、定时器/计数器1,计数脉冲分别来自T0、T1引脚。当这些引脚上输入的信号产生高电平至低电平的负跳变时,计数器寄存器的值就加1。单片机每个机器周期都要对对外部输入进行采样,如果在第一个周期,即第三个机器周期计数寄存器的值才增加1。1.8.2 与定时器/计数器0和1相关的特殊功能寄存器(1)计数器寄存器TH0、TL0和TH1、TL1计数寄存器是16位的,再启动定时器时需要对它设定初始值。THx是计数器寄存器的高8位,THx是计数寄存器的低8位。TH0、TL0对应T/C0,TH1,TL1对应T/C1。(2) 定时器/计数器控制寄存器TCON的格式如下:TF1TR1TF0TR1IE1IT1IE0IT0TF1为T/C1的溢出标志,溢出时由硬件置1,进入中断后又由硬件自动清0。TR1为T/C1的启动和停止位,由软件控制。置1时启动T/C1;清0时停止T/C1。TF0和TR0的功能和使用方法以TF1、TR1类似,只是它们针对的是T/C0.(3)定时器/计数器方式控制寄存器TMOD定时器/计数器方式控制寄存器TMOD的格式如下所示。它的控制位都是由软件控制的,其中高4位是针对T/C1的,低4位是针对T/C0的,其功能和使用方法相似。GATEM1M0GATEM1M0现在以T/C0来说明各控制位的使用方法:GATE是一个选通位,当GATE位置1时,T/C0受到双重控制,只有/INT0为高电平且TR0位置1是T/C0才开始工作,当GATE位清0时,T/C0仅受到TR0的控制。C/T用来选择工作在定时器方式还是计数器方式。当该位置1时工作在计数器方式,清0时工作在定时器方式。M1和M0联合起来用于选择操作模式,一共有四种操作模式,如表所示。表1.1 定时器/计数器的四种模式M1M0操作模式计数器配置00模式013位计数器10模式2自动重转载的8位计数器10模式2自动重转载的8位计数器11模式3T0分为两个8位计数器,T1停止计数2 数码管显示2.1 显示模块采用数码管显示接口电路图17 数码管显示接口3 ADC08323.1 ADC0832的简介ADC0832其实就是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。3.2 ADC0832引脚图3.3.2 ADC静态特性 ADC的静态特性是指其与时间特性无关的特性,主要包括以下几类:1) 分辨率ADC的分辨率定位为二进制末位变化1所需的最小输入电压与参考电压的比值,即ADC能够分辨的最小的模拟量的变化。2) 量化误差量化电平定义为满量程电压(或满度信号值)UFSR与2的N次幂的比值,其中N位被数字化的数字信号的二进制位数。量化电平一般用Q表示。3) 全输入范围和动态范围全输入范围是指允许输入模拟信号的最大值与最小值之差;动态范围是指全输入范围与ADC最小可分辨的量值之比。4) 偏置误差和增益误差ADC的偏置误差定义为使最低位被置成“1”状态时ADC的输入电压与理论上使最低位被置成“1”状态时的输入电压之差。当偏置误差高速为零之后,输出为全1时对应的实际输入电压与理想输入电压之差。3.3.3 ADC动态特性高速ADC的动态特性是指输入为交变简谐信号时的性能技术指标,它是与ADC的操作速度有关的特性。其主要技术指标如下:1) 转换时间、采集时间转换时间是指从信号开始转换到可获得完整的信号输出所用的时间,它是高速ADC的一项重要指标。采集时间是指采样保持电路在采样模式下能够保证其在随之到来的保持模式输出在采样保持转换时,相对该时刻存在的输入电平之间的误差将会限制在一定的误差范围内所需的时间。2) 频率响应它是冲击响应的傅立叶变换,其最佳表达方式是幅频与相频曲线,从系统辨识的角度看这是在频域对ADC动态线性特性的非参数模型描述。3) 动态积分非线性误差和动态微分非线性误差动态积分非线性误差(INL)定义为在动态情况下(一般输入信号为正弦信号),ADC实际转换特性曲线之间的最大偏差。每个数码的偏差都是由那个数码的中心值来度量的。动态微分非线性误差(DNL)定义为在动态情况下(一般输入信号为正弦信号),ADC实际转换特性的码宽(1LSB)与理想代码宽度之间的最大偏差,单位为LSB。为了保证ADC不失码,通常规定在25oC时最大DNL为 1/2LSB。4) 信噪比、信噪失真比和有效位数信噪比(SNR)是信号电平的有效值与各种噪声(包括量化噪声、热噪声、白噪声等)有效值之比的分贝数。其中信号是指基波分量的有效值,噪声指奈奎斯特频率以下的全部非基波分量的有效值(除谐波分量和直流分量外)。5) 小信号带宽和全功率带宽ADC的模拟带宽是指输入扫描频率基波在ADC输出端用FFT分析得到的基波频谱下降到3dB处的带宽(不考虑谐波失真和噪声影响)。根据输入信号幅值不同,模拟带宽又可以分为小信号带宽(SSBW,一般指1/10满量程)和全功率带宽(FPBW,指满量程)。3.3.4 ADC性能测试ADC测试方法主要有两种:模拟方法和数字方法。前者是将A/D采集的数字信号经D/A转换位模拟信号再用传统的测试方法对其进行测试,优点是易于理解,缺点是许多A/D采集卡本身不带D/A,即或有,D/A的性能也将影响A/D指标的测试; 3.3.5 常用ADC芯片概述A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。3.3.6 ADC0832模数转换原理及主要技术指标ADC0832是M美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片1主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时) 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 2内部结构ADC0832是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近。3外部特性(引脚功能)ADC0832芯片有28条引脚,采用双列直插式封装。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。 4.ADC0832的工作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式 对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0832转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0832的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。3.3.7 ADC0832与单片机的接口电路ADC0832模数转换器与STC89C52单片机的接口电路如图9所示图9 ADC0832与STC89C52单片机接口电路4 盆花自动浇水系统的设计该系统包括土壤干湿度采集与显示系统和定时器的设置与显示系统两个系统。4.1 土壤温湿度采集与显示土壤温湿度采集与显示系统以单片机STC89C52为控制核心,通过软件设置达到具体动作实现。土壤的温湿度是由ADC0832和两个点位器进行模拟并送入单片机,通过单片机的I/O口把检测到的土壤温湿度值用LCD显示出来。同时,如果系统在智能浇水设置情况下,则该值与设定的浇水上下限值相比较,若低于下限值,则单片机发出一个控制信号,开始浇水。若高于上限值时,单片机再发出一个控制信号控制,停止浇水。如果系统设置在手动浇水情况下,则按照设定好的定时浇水时间进行浇水,温湿度检测电路把检测到的土壤温湿度值显示在LCD上,以达到对土壤温湿度实时监测的目的。4.1.1 硬件电路设计土壤温湿度检测与控制系统由STC89C52单片机、ADC0832、电位器、LCD显示屏、电阻等组成。对于LCD显示屏将D0-D7通过排阻RESPACK8连接到单片机的P0.0-P0.7上,E、R/W、RS与P3.7、P3.6、P3.5连接。4.1.2具体的土壤温湿度采集于显示系统硬件电路 4.1.3系统软件设计#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535#include /数码管段选定义 0 1 2 3 4 56 7 8 9uchar code smg_du=0x14,0x27,0x1c,0x45,0x27,0x81,0x84,0x57,0x24,0x05,/ AB C D E F不显示 0x06,0xa4,0x9c,0x64,0x8c,0x8e,0xff; /断码/数码管位选定义sbit smg_we1 = P20; /数码管位选定义sbit smg_we2 = P22;sbit smg_we3 = P24;sbit smg_we4 = P26;uchar dis_smg8 = 0;sbit SCL=P12;/SCL定义为P1口的第3位脚,连接ADC0832SCL脚sbit DO=P13;/DO定义为P1口的第4位脚,连接ADC0832DO脚sbit CS=P10;/CS定义为P1口的第4位脚,连接ADC0832CS脚uchar shidu; /湿度等级uchar s_high = 70,s_low = 25;/湿度报警参数sbit dianji = P35; /电机IO定义/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j= 4)i = 0;P0 = 0xff; /消隐 smg_we_switch(i); /位选P0 = dis_smgi; /段选 /delay_1ms(1);/*读数模转换数据*/请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的/ 1 0 0 通道/ 1 1 1 通道 unsigned char ad0832read(bit SGL,bit ODD)unsigned char i=0,value=0,value1=0;SCL=0;DO=1;CS=0;/开始SCL=1;/第一个上升沿SCL=0;DO=SGL;SCL=1; /第二个上升沿SCL=0;DO=ODD;SCL=1; /第三个上升沿DO=1;for(i=0;i8;i+)SCL=1;SCL=0; /开始从第四个下降沿接收数据value=1;if(DO)value+;for(i=0;i8;i+)/接收校验数据value1= 3)menu_1 = 0;if(menu_1 = 1)/设置湿度上限if(key_can = 2)s_high + ;/湿度上限值加1 if(s_high 99)s_high = 99;if(key_can = 3)s_high - ;/湿度上限值减1 if(s_high = s_high)s_low = s_high - 1;if(key_can = 3)s_low -; /湿度下限值减1 if(s_low = 1)s_low = 1;dis_smg0 = smg_dus_low % 10;
展开阅读全文