基于单片机数字温湿度控制器的设计_第1页
基于单片机数字温湿度控制器的设计_第2页
基于单片机数字温湿度控制器的设计_第3页
基于单片机数字温湿度控制器的设计_第4页
基于单片机数字温湿度控制器的设计_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕业设计(论文)引 言   适宜的温、湿度是人类及一切动植物生存生长所必需的两个最基本的环境参数,在现代生产生活中,温度和湿度的监测与控制有着十分重要的意义。传统的测试温度和湿度的方法是通过一定的测试仪器人工逐点进行检测,这种方法费时费力,效率低且误差大。本文介绍的检测装置不仅具有可以自动检测温度和湿度的功能,而且还可以通过键盘选择需要检测点对应的通道进行显示,报警调节等功能。不仅提高了传统温度和湿度的检测性能,而且还可以改变初始值对室内或者生产环境的温湿度进行控制,也可以使用于温湿度要求较高的场所,例如实验室,生产车间,仓库等使用都非常方便。 该测控系统是以单片机为核心,

2、配合温度和湿度传感器,以及相关的电路组成。可以接收所测环境的温度和湿度信号,检测人员可以通过仪器的数码显示数据,实时监控环境的温度和湿度情况。所有的测量操作都可以通过主机控制软件来实现。由温度和湿度传感器得到的测量信号,经电路转换为电信号,然后通过一定的放大通过A/D转换送到单片机进行数据处理,经软件分析处理后送显示装置,CPU根据检测到的温度和湿度结果,判断温度,湿度是否在界定的范围内,由此启动系统的报警,并进行自动调节,直到温度和湿度达到标准范围之内为止。 但由于本人水平的限制,设计中的不足还请老师与朋友加以指正。第1章 概述环境条件中的温湿度指标是许多工作场合的重要参数,不论是仓库管理、

3、图书保存还是工业测量与计量检定,都需要符合操作规定的温湿度环境条件。而温湿度也是最不易保障的指标,针对这一情况,研制可靠且实用的温湿度控制器显得非常重要。常用温湿度传感器的非线性输出及一致性较差,使温湿度的测量方法和手段相对较复杂,且给电路的调试带来很大的困难。传统的温湿度测量多采用模拟小信号传感器,不仅信号调理电路复杂,且温湿度值的标定过程也极其复杂,并需要使用昂贵的标定仪器设备。因此对于温湿度控制器的设计有着很大的现实生产意义,本文以单片机为核心,配合hih3610大信号线性电压输出湿度传感器和ds18b20 数字温度传感器研制出一种多功能智能温湿度测试仪,该仪器具有测量精度高、硬件电路简

4、单、并能很好的进行显示、并能进行实现温湿度的闭环控制(PID) ,可测试不同环境温湿度的特点。对于湿度的测试本人采用honeywell公司的线性电压输出湿度传感器hih3610研制出一种测试精度高,能测试多点温湿度,且可与上位机通信的温湿度智能测试仪。该测试仪可实现温湿度的多点自动测量,为温湿度测量自动化奠定了良好的基础。在本设计中单片机是系统的控制核心,所以单片机的性能关系到整个系统的好坏。因此单片机的选择,对所设计系统的实现以及功能的扩展有着很大的影响。单片机种类很多,在众多51系列单片机中,较为常用的是ATMEL 公司的AT89C51和AT89S52单片机,AT89C51片内4KROM是

5、Flash工艺的,使用专用的编程器自己就可以随时对单片机进行电擦除和改写,片内有128字节的RAM。而AT89S52含有在系统可编程的Flash存储器,片内有8K闪存,RAM的容量也较AT89C51大,为256字节。显然这种单片机优点更多,开发时间也大为缩短。因此,在本次设计中选用了ATMEL 公司的AT89S52单片机。在本设计中,温度信号的采集为模拟信号,而单片机接收的为数字信号,因此需要进行A/D转换,在需要进行多路A/D转换时,目前常采用多通道A/D转换器,如ADC0809、AD574等。这些转换器多为8通道,电路较为复杂。如果只需完成单个通道8位转换,且速度要求不高时,采用TLC54

6、9是一种较好的选择,TLC549是单通道的A/D转换芯片,8位开关电容型逐次逼近模数转换器,它具有三个控制输入端,采用简单的3线串行接口可方便地与微处理器进行连接,且价格适中,是做为A/D转换的最佳选择器件之一。在本设计中,键盘接口电路较为简单,而显示部分有两种方案供选择:一种为LCD,一种为LED。LCD液晶显示的像素单元是整合在同一块液晶版当中分隔出来的小方格。通过数码控制这些极小的方格进行显像。显示非常细腻但是造价很高。而LED数码显示中每一个像素单元就是一个发光二极管,如果是单色,一般是红色发光二极管。如果是彩色,一般是三个三原色小二极管组成的一个大二极管。这些二极管组成的矩阵由数码控

7、制实时显示文字或图象,造价相对低廉,显示效果也较好。由于单片机工作现场存在着各种干扰,为保证系统的可靠工作,本设计选择了常用的看门狗芯片X5045,以实现对单片机的复位,监控等功能。软件程序的设计也考虑了抗干扰措施。在设计初期找了很多温度传感器,在智能化的温度传感器中,大多是同步串行总线技术,如I²(Philips)、SMBus(Intel)、SPI(Motorola)、Microwire/Plus(NSC)等串行总线协议,而DS18B20采用的是1-WIRE总线协议。1-WIRE是DALLAS公司的一项专有技术,它采用一根信号线实现信号的双向传输,具有接口简单、节省I/O口线、便于

8、扩展和维护等优点。为此最终确定使用美国达拉斯(DALLAS)半导体公司推出的智能温度传感器DS18B20,它是将温度传感器、A/D转换器、寄存器、极口电路集成在一块芯片中,可实现直接数字化输出和测试。系统由以上元器件组成,通过硬件电路和软件程序的设计,实现系统的基本功能。 以下就分别对系统的硬件以及软件方面做一详细介绍。第2章 硬件部分的设计对于硬件部分的设计,本着简单可靠的思想。本次设计的对象是针对一个应用系统,是对环境温度和湿度的检测,其系统构图如图2-1所示。系统中主要用到:AT89S52单片机与晶振时钟电路;看门狗复位电路;温度传感器DS18B20;A/D转换TLC549;放大器HAF

9、17358运放器;湿度检测传感器HIH-3610;键盘与LED显示等。AT89S52调节放大电路键盘及预设温度传感器输出驱动电路看门狗复位电路湿度传感器A/D转换LED显示图2-1系统结构图下面就对各个功能模块或芯片进行详细介绍。2.1 AT89S52单片机及其晶振电路2.1.1 功能特性描述AT89S52是一种低功耗、高性能CMOS八位微控制器,具有8K在系统可编程Flash存储器,使用ATMEL公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许ROM在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使其为众多

10、嵌入式控制应用系统提供灵活的解决方案。其主要特性为:与MCS-51单片机产品兼容;8K字节在系统可编程Flash存储器;1000次擦写周期;全静态操作:0Hz33Hz;三级加密程序存储器;32个可编程I/O口线;三个16位定时器/计数器;八个中断源;全双工UART串行通道;低功耗空闲和掉电模式;掉电后中断可唤醒;看门狗定时器;双数据指针;掉电标识符。AT89S52芯片的引脚图见图2-2P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST93.0/RXD103.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6

11、/WR16P3.7/RD17XTAL118XTAL219Vss20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE30EA31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039Vcc40 图2-2 AT89S52的引脚图VCC:电源Vss:地 P0口:8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P

12、0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。在Flash编程和校验时,P1口接收低8位地址字节。P2口:具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动四个TTL逻辑电平。对P2端

13、口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在方位外部程序存储器或用16位地址读取外部数据存储器时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址访问外部数据存储器时,P2口输出P2锁存器的内容。表2-1 P1口引脚的第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)在Flash

14、编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动四个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在Flash编程和校验时,P3口也接收一些控制信号。表2-2 P3口引脚的第二功能引脚号第二功能P3.0RXD(串行输入)P3.1TXD(串行输出)P3.2 (外部中断0)P3.3(外部中断1)P3.4T0(定时器0外部输入)P3.5T1(

15、定时器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST:复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在Flash编程时,此引脚()也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时, ALE脉冲将会跳过。

16、如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,必须接地。为执行内部程序指令,应该接VCC。在Flash编程期间,也接收12伏VPP电压。XT

17、AL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.1.2 AT89S52晶振连接电路AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图2-4。在本设计系统中采用的是外部振荡电路连接法,如图2-3所示。C2C1XTAL2XTAL1GNDXTAL2XTAL1GNDNC外部振荡信号图2-3 内部振荡电路连接图 图2-4 外振振荡电路连接图(石英晶振 C1,C2=30PF±

18、10PF 陶瓷谐振器 C1,C2=40PF±10PF) 2.2 看门狗复位电路 为了使本系统更加可靠安全的工作,系统中增加了看门狗复位电路。采用的主要芯片是X5045。它集断电数据保存功能、看门狗功能、上电掉电复位功能、电源电压监控功能与一身,这种组合大大简化了硬件的设计,降低了系统成本和功耗。当系统故障时,在选定的超时时间之后,X5045的看门狗将以RESET信号作为响应,利用X5045低电压检测电路,可以保护系统使之免受低电压的影响;当VCC降到最小VCC转换点以下时,系统复位一直到VCC返回规定值且稳定为止。X5045的存储器与CPU可通过串行通信方式通信接口,共有4096个位

19、,可以按512×8个字节来放置数据。X5045的引脚图如图2-5所示。它只有8个引脚: 图2-5 X5045的引脚图表2-3 引脚功能描述引脚名称 功能描述1/WDI芯片选择输入:当是高电平时,芯片末选中,并将SO置为高阻态。器件处于标准的功耗模式,除非一个向非易失单元写的周期开始。在是高电平时,将拉低将使器件处于选择状态,器件将工作于功耗状态。在上电后任何操作之前,必须要有一个高变低的过程。看门狗输入:在看门狗定时器超时并产生复位之前,一个加在WDI引脚上的由高到低的电平变化将复位看门狗定时器。2SO串行输出:SO是一个推/拉串行数据输出引脚,在读数据时,数据在SCK脉冲的下降沿由

20、这个引脚送出。3写保护:当引脚是低电平时,向X5045中写的操作被禁止,但是其它的功能正常。当引脚是高电平时,所有操作正常,包括写操作。如果在是低的时候,变为低电平,则会中断向X5045中写的操作,但是,如果此时内部的非易失性写周期己经初始化了,变为低电平不起作用。4VSS地。5SI串行输入:SI是串行数据输入端,指令码、地址、数据都通过这个引脚进行输入。在SCK的上升沿进行数据的输入,并且高位(MSB)在前。6SCK串行时钟:串行时钟的上升沿通过SI引脚进行数据的输入,下降沿通过SO引脚进行数据的输出。7RESET复位输出:RESET下是一个开漏型输出引脚。只要Vcc下降到最小允许Vcc值,

21、这个引脚就会输出高电平,一直到Vcc上升超过最小允许值之后200ms 。同时它也受看门狗定时器控制,只要看门狗处于激活状态,并且WDI引脚上电平保持为高或者为低超过了定时的时间,就会产生复位信号。引脚上的一个下降沿将会复位看门狗定时器。由于这是一个开漏型的输出引脚,所以使用时必须接上拉电阻。8VCC正电源。X5045的状态寄存器描述了器件的当前状态,各位意义如下所示。表2-4 X5045状态寄存器各位定义7654321000WD1WD0BL1BL0WELWIP其中,WD1、WD0是看门狗定时时间设置位;BL1、BL0是存储单元写保护区设置位;WEL是只读标志,1表明写使能开关打开;WIP也是只

22、读标志,1代表芯片内部正处于写周期。电复位时,各位都被清零。X5045芯片功能包括以下4种:(1)上电复位控制。在对X5045通电时,RESET引脚输出有效的复位信号,并保持至少200ms,使CPU有效复位。(2)电源电压监控。当检测到电源电压低于内部门槛电压VTRIP时,RESET输出复位信号,直至电源电压高于VTRIP并保持至少200ms,复位信号才被撤消。VTRIP的出厂值根据芯片型号不同共有5个级别的电压范围。对于需要电源电压精确监控的应用,用户可以搭建编程电路,对芯片内VTRIP电压进行微调。(3)看门狗定时器。芯片内部状态寄存器的WD1、WD0是看门狗定时设置位,通过状态寄存器写指

23、令WRSR修改这两个标志位,就能在三种定时间隔中进行选择或关闭定时器。对看门狗的复位由输入电平的下降沿完成。下表是WD1、WD0组合的含义。表2-5 WD1、WD0组合定义WD1WD0看门狗定时值001.4s01600ms10200ms11禁止看门狗工作(4)串行E2PROM。芯片内含512字节存储单元,10万次可擦写,数据保持时间100年,并设计了3种保护方式防止误写。包括:写保护引脚,当引脚被拉低时,内部存储单元状态寄存器都禁止写入;存储区域写保护模式,通过对状态寄存器的BL1、BL0位的设置,可以选择对不同的存储区域进行写保护;在进行任何写操作前都必须打开写使能开关,而且在上电初始化写操

24、作完成时,写使能开关自动关闭。显然,在几方面的保护之下,产生误写的可能性极小,下表是BL1、BL0组合的含义。表2-6 BL1、BL0组合定义BL1BL0写保护的单元地址00没有保护01180H1FFH10100H1FFH11000H1FFH(1)WREN和WRDI是写使能开关的开/关指令。它们都是单字节指令。(2)RDSR和WRSR是状态寄存器的读/写指令。在从SI输入指令后,RDSR的执行结果,即状态寄存器内容须从SO读出;而WRSR需要紧接着输入修改数据。(3)READ和WRITE是存储单元的读/写指令。输入指令后(指令的位三用于选择存储器的上半区和下半区),接着输入低八位地址,最后就可

25、以连续读出或写入数据。其中,读指针和写指针的工作方式完全不同,读指针的全部8位用来计数,0FFH溢出后变成00H;写指针只用最低两位计数,XXXXXX11B溢出后变成XXXXXX00B,所以连续写的实际结果是在4个单元中反复写入。另外,由于E2PROM的写入时间长,所以在连续两条写指令之间应读取WIP状态,只有内部写周期结束时才可输入下一条写指令。芯片内部共有6条指令,如下表所列。表2-7 X5045内部指令命令名称命令格式内  容WREN0000 0110打开写使能开关WRDI0000 0100关闭写使能开关RDSR0000 0101读状态寄存器WRSR0000 0001写状态寄存

26、器READ0000 A8011读存储单元WRITE0000 A8010写存储单元对X5045的操作是通过4根口线、SCK、SI和SO进行同步串行通信来完成的。X5045与AT89S52单片机的连接电路图见图2-14。SCK是外部输入的同步时钟信号,在对芯片进行写入指令或数据时,时钟前沿将SI引脚信号输入;在读取数据时,时钟后沿将数据位输出到SO引脚上。数据的输入、输出都是高位在先。图2-6 X5045与AT89S52单片机连接电路图综上所述,并基于图2-6电路产生复位信号的条件,只要满足以下任意一个条件,就将使系统产生复位,迫使程序从起点执行。(1)该芯片在其上电后自产生复位信号,这样就实现单

27、片机的上电自动复位;(2)当电源VCC低于规定值时,(如VCC=5V,则规定值为4.252.5V),将产生复位信号。这样就实现系统电源的掉电复位;(3)当程序在编程选择的时间里没有访问X5045时,即没有一个喂狗语句,则看门狗(WDT)将起作用,RST将产生复位信号,迫使单片机复位。2.3 温度信号采集模块2.3.1 DS18B20芯片简介DS18B20是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。本设计中温度传感器之所以选择单线数字器件DS18B20,是在经过多方面比较和考虑后决定的,主

28、要有以下几方面的原因:(1)系统的特性:测温范围为-55+125 ,测温精度为士0.5;温度转换精度912位可变,能够直接将温度转换值以16位二进制数码的方式串行输出;12位精度转换的最大时间为750ms;可以通过数据线供电,具有超低功耗工作方式。(2)系统成本:由于计算机技术和微电子技术的发展,新型大规模集成电路功能越来越强大,体积越来越小,而价格也越来越低。一支DS18B20的体积与普通三极管相差无几,价格只有十元人民币左右。(3)系统复杂度:由于DS18B20是单总线器件,微处理器与其接口时仅需占用1个I/O端口且一条总线上可以挂接几十个DS18B20,测温时无需任何外部元件,因此,与模

29、拟传感器相比,可以大大减少接线的数量,降低系统的复杂度,减少工程的施工量。使测温系统的线路结构设计和硬件开销大为简化。(4)系统的调试和维护:由于引线的减少,使得系统接口大为简化,给系统的调试带来方便。同时因为DS18B20是全数字元器件,故障率很低,抗干扰性强,因此,减少了系统的日常维护工作。DS18B20采用3脚封装如图2-7所DS18B20 VDDDQGND 图2-7 DS18B20引脚图引脚说明:1.GND 接地2.DQ 数字输入/输出3.VDD 可选的电源2.3.2 DS18B20的温度测量DS18B20的核心功能是其数字温度传感器,其温度与数字量的关系如表2-8所示。温度传感器的测

30、量结果被用户定义为9, 10,11或12位,其各自的准确度为0.5、0.25、0.125、0. 0625。DS18B20测得温度数据在温度寄存器中被存为带标志位的16位数,标志位S表示温度是正是负,为正则S=0,为负则S=1, 如果DS18B20设定为12位结果,温度寄存器中所有位将包含有数据;对于11位结果,0位未定义;10位结果,0位和1位未定义;9位结果位2、位1和位0未定义。表2-9是DS18B20内部存储器,表2-10是DS18B20温度存储格式与配置寄存器控制字的格式。由表2-8可知,检测温度由两个字节组成,字节1的高5位S代表符号位,字节0的低4位是小数部分,中间7位是整数部分。

31、字节4是配置寄存器控制字的格式,当主机发出温度转换命令(44H)时,启动温度转换过程,转换时间最长750 ms。主机通过读寄存器命令(BEH),将温度值读出。通过写寄存器功能命令,改变分辨率的设置。表2-8 温度和数字量的关系温 度 数字输出(二进制) 数字输出(十六进制)+1250C0000 0111 1101 0000B07D0H+850C0000 0101 0101 0000B0550H+25.06250C0000 0001 1001 0001B0191H+10.1250C0000 0000 1010 0010B00A2H+0.50C0000 0000 0000 1000B0008H00

32、C0000 0000 0000 0000B0000H-0.50C1111 1111 1111 1000BFFF8H-10.1250C1111 1111 0101 1110BFF5EH-25.06250C1111 1110 0110 1111BFE6FH-550C1111 1100 1001 0000BFC90H表2-9 DS18B20内部存储器字 节ROMRAM0产品代号(28H)温度低8位148位器件序列号温度高8位248位器件序列号TH348位器件序列号TL448位器件序列号配置寄存器548位器件序列号保留648位器件序列号保留7CRC保留8CRCE2PROMTHTL配置寄存器表2-10

33、温度存储格式与配置寄存器控制字格式Bite7Bite6Bite5Bite4Bite3Bite2Bite1Bite0字节0232221202-12-22-32-4字节1SSSSS2-62-52-4字节40R1R0111112.3.3 温度报警信号 DS18B20完成温度转换后,就把测得的温度值与TH,TL作比较。若T>TH或T<TL,则将该器件内的报警标志置位,并对主机发出的告警搜索命令作出响应。因此,多只DS18B20同时测量温度并进行报警搜索,一旦某测温点越限,主机利用报警搜索命令,即可识别正在报警的器件,并读出其序列号。2.3.4 温度传感器的登记每一个DS18B20在接入系统

34、工作前,必须先进行登记注册。在每台分机上都有一个登记注册端口,DS18B20在接入系统前,先接到登记注册端口,确认后,CPU将DS18B20的物理位址(8个BYTE)读出, 然后存入到E2PROM中刚才设定的逻辑地址上,DS18B20在E2PROM中逻辑地址定义见表2-11。表2-11 存储器中逻辑地址定义A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A000P1P2P3L1L2L3D1D2D3D4XXXX表中各位表示的意义如下:A15A14 存储操作标志(为固定值00)A13A12A11 口地址A10A9A8 线地址A7A6A5A4 点地址A3A2A1A0 存储区域

35、2.3.5 DS18B20的通信协议数字式温度传感器和模拟传感器最大的区别,是将温度信号直接转化成数字信号,然后通过串行通信的方式输出。因此掌握DS18B20的通信协议是使用该器件的关键。所有的DS18B20器件要求采用严格的通信协议,以保证数据的完整性。该协议定义了几种信号类型:复位脉冲、应答脉冲时隙;写“0”写“1”时隙;读“0”读“1” 时隙。与DS18B20的通信,是通过操作时隙完成单总线上的数据传输。发送所有的命令和数据时,都是字节的低位在前,高位在后。(1)复位和应答脉冲时隙每个通信周期起始于微控制器发出的复位脉冲,其后跟DS18B20发出的应答脉冲。在写时隙期间,主机向DS18B

36、20器件写入数据,而在读时隙期间,主机读入来自18B20的数据。在每一个时隙,总线只能传输一位数据。(2)写时隙当主机将单总线DQ从逻辑高(空闲状态)拉为逻辑低时,即启动一个写时隙。所有的写时隙必须在60120us完成,且在每个循环之间至少需要1us的恢复时间。写0和写1时隙如图2-4所示。在写0时隙期间,微控制器在整个时隙中将总线拉低,而写1时隙期间,微控制器将总线拉低,然后在时隙起始后15us之后释放总线。图2-8 写“0”和写“1”时隙写“0”时隙 1 usTrec 1 us 写“1”时隙60120 us VPGND DS18B20采样 DS18B20采样 15 us 45 us 15

37、us 45 us ( 3 ) 读时隙DS18B20器件仅在主机发出读时隙时才向主机传输数据,所以在主机发出读数据命令后,必须马上产生读时隙,以便DS18B20能够传输数据。所有读时隙至少需要60us,且在两次独立的读时隙之间,至少需要1us的恢复时间。每个读时隙都有主机发起,至少拉低总线1us。读时隙如图2-5所示,在主机发起读时隙之后,DS18B20器件才开始在总线上发送“0”或“1”,若DS18B20发送“1”,则保持总线为高电平。若发送“0”,则拉低总线当发送“0”时,DS18B20在该时隙结束后,释放总线,由上拉电阻将总线拉回至空闲高电平状态。DS18B20发出的数据,在起始时限之后保

38、持有效时间15us。因而主机在读时隙期间,必须释放总线,并且在时隙起始后的15us之内采样总线状态。读“0”时隙 1 usTrec 读“1”时隙图2-9读0和1时隙 VP 主机采样 1 us 主机采样1 us 15 us 45 us 15 us2.3.6 DS18B20与单片机的接口电路DS18B20只有三根外引线:单线数据传输总线端口DQ ,外供电源线VDD ,共用地线GND。DS18B20有两种供电方式:一种为数据线供电方式,此时VDD接地,它是通过内部电容在空闲时从数据线获取能量,来完成温度转换,相应的完成温度转换的时间较长。这种情况下,用单片机的一个I/O口来完成对DS18B20总线的

39、上拉。另一种是外部供电方式(VDD接+5V),相应的完成温度测量的时间较短。在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接,其接口电路如图2-10所示。图2-10 温度传感器DS18B20与单片机的连接2.4 湿度的信号采集模块湿度的检测方法,一般采用湿敏元件检测,分为湿敏电阻和湿敏电容两种情况。基于本次设计,我就采用了HIH-3610相对湿度传感器它是一种热固聚脂电容式传感器。采集到的湿度信号再配以进行适当的放大,经过A/D转换送至单片机。实现湿度的显示与控制。电路连接图如图2-11所示。其湿度传感器我就一个湿敏电阻代替一下。 图2-11 湿度检测模块与单片机的连接图 2.

40、4.1 HIH-3610相对湿度传感器Honeywell相对湿度传感器是热固聚脂电容式具有信号处理功能的传感器,线形放大输出、工厂标定,独特的多曾结构能非常好地抵环境的侵蚀,诸如湿气、尘埃、赃物、油、及一些化学品。 传感器结构包括一和热固聚合物保护层的平板电容,可抵抗脏污、灰尘、油物及其他侵入。其实物图如图2-12所示 图2-12 HIH3610湿度传感器实物图特点: 低成本,大批量OEM设计 0.05和0.1两种引脚间距可选 精度2,激光修正互换性止 低功耗设计:200谬安驱动电流 快速反应:15秒 稳定性好、低漂移、抗化学腐蚀性能 HIH-3610湿度传感器是为大批量OEM设计、具有仪表级

41、测量性能、低成本SIP封装。线形放大的电压输出可使器件直接与控制器或其他器件一致性好,减少和消除OEM生产标定费用,并且厂家可提供单个传感器标定数据。HIH-3610湿度传感器的输出电压与相对湿度值有一定的比例关系,图2-13所示给出了几种温度下的线形关系。 图2-13 输出电压与相对湿度曲线由图可知:在0时相对湿度与电压的关系电压=0.0357*相对湿度+0.8在25时相对湿度与电压的关系 电压=0.0310*相对湿度+0.8在85时相对湿度与电压的关系、 电压=0.070*相对湿度+0.82.4.2 HA17358F运算放大器 运算放大器在电路中发挥重要的作用,其应用已经延伸到汽车电子、通

42、信、消费等各个领域,并将在支持未来技术方面扮演重要角色。传感器+运算放大器+A/D+处理器是运算放大器的典型应用电路,在这种应用中,一个典型的问题是传感器提供的电流非常低,在这种情况下,必须完成信号放大,使之适用于单片机的数据采集系统。而放大器的种类很多,不同传感器放大器的选择有着不同的选择标准,基于本次设计可以配备统一的电源等个方面考虑,HA1358F放大器是个很好的选择,而且可以双重操作,广泛用于控制设备中。HA17358其引脚图如2-14所示。 图2-14 HA17358引脚图HA17358F其引脚功能如下: 引脚 主要功能 1 运放A输出 2 运放A反相输入 3 运放A同相输入 4 地

43、 5 运放B同相输入 6 运放B反相输入 7 运放B输出 8 电源Vcc2.4.3 A/D转换电路本电路设计A/D转换部分主要核心部分就是我精选的高性价比的A/D转换芯片TLC549 ,以下进行详细介绍1A/D转换芯片介绍TLC549是德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过I/O CLOCK、DATA 三条口线进行串行接口。具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17s,TLC548允许的最高转换速率为45 500次/s,TLC549为40 000次/s。总失调误差最大为±0.5LSB,典型功耗值为6mW。采用差分参考电压高阻输入,抗

44、干扰,可按比例量程校准转换范围,VREF-接地,VREF+VREF-1V,可用于较小信号的采样。TLC549引脚图如下图所示:DATA OUTI/O CLOCK45GNDDREFANALOG IN236781REF+VCC图2-15 TLC549引脚图TLC549的极限参数如下:电源电压:6.5V;输入电压范围:0.3VVCC0.3V;输出电压范围:0.3VVCC0.3V;峰值输入电流(任一输入端):±10mA;总峰值输入电流(所有输入端):±30mA;工作温度: 070TLC549I:4085TLC549M:551252TLC549工作原理TLC549有片内系统时钟,该时

45、钟与I/O CLOCK是独立工作的,无须特殊的速度或相位匹配。当CS为高时,数据输出(DATA OUT)端处于高阻状态,此时I/O CLOCK不起作用。这种CS控制作用允许在同时使用多片TLC549时,共用I/O CLOCK,以减少多路(片)A/D并用时的I/O控制端口。一组通常的控制时序为:(1) 将置低。内部电路在测得下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATA OUT端上。(2) 前四个I/O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/O CL

46、OCK下降沿开始采样模拟输入。(3) 接下来的3个I/O CLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个换位。(4) 最后,片上采样保持电路在第8个I/O CLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。第8个I/O CLOCK后,必须为高,或I/O CLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果为低时I/O CLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;若为高时出现一次有效低电平,则将使引脚重新初始化

47、,从而脱离原转换过程。 在36个内部系统时钟周期结束之前,实施步骤(1)(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。若要在特定的时刻采样模拟信号,应使第8个I/O CLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/O CLOCK时钟下降沿开始采样,却在第8个I/O CLOCK的下降沿开始保存。图2-16所示为TLC549工作的时序图。图2-16 TLC549工作时序图3TLC549与单片机的连接本设计采用TLC549与单片机AT89S52相连实现电信号的转换与采集,TLC549具有转换误差小,与单片机接口简单

48、的特点,连接图如下图2-17 图2-17 TLC549与单片机AT89S52的连接图2.5 键盘与显示电路2.5.1 LED显示电路设计在单片机系统中,发光二极管(LED)常常作为重要的显示手段,它既可以显示系统的状态,又可以显示数字和字符。由于LED显示器的驱动电路简单,易于实现且价格低廉,因此是工业仪表和实验室仪器常用的一种输出显示设备。LED显示器是LED显示器的一种,它是将多个发光二极管集中在一块,构成阿拉伯数字笔画的形状。这些发光二极管共用一个或两个公共极,为数字信息的显示提供了方便。LED显示器的驱动方法分静态和动态两种。所谓动态是指LED显示器上的信息是通过不断地刷新(即周期性的

49、驱动)维持的。动态驱动的优点是连线比静态方式大为减少,它是数码显示器常用的一种方式。静态驱动编程简单,但占用I/O口较多。本设计采用74LS164驱动4位LED显示的动态扫描驱动方式。1、芯片介绍74LS164是8位串入并出移位寄存器,其芯片引脚如图2-18所示。图2-18 74LS164引脚图引脚功能如下:A与B串行数据输入,每个输入可以作为另一个输入的高电平有效输入,在使用时,两个输入端必须相连,而不同输入端必须接高电平。CLK时钟信号,高电平有效。MR/清零复位端,低电平有效。Q0Q7数据输出端。74LS164的真值表为表2-12示:表2-12 74LS164的真值表输入输出MR/CLK

50、ABQAQBQCQDQEQFQGQHLXXXLLLLLLLLHLXXQA0QB0QC0QD0QE0QF0QG0QH0HHHHQAnQBnQCnQDnQEnQFnQGnHLXLQAnQBnQCnQDnQEnQFnQFnHXLLQAnQBnQCnQDnQEnQFnQFn在使用时将A、B并接作为数据的串行输入端DIO,CLK作为时钟端。串行输入时,先将数据在A、B端准备好,在CLK端产生一上升沿,则一位数据移至最低位Q0;再将下一位数据准备好后,在CLK端产生下一上升沿,则下一位数据移至次低位Q1,其余位顺次从低位到高位移动。这种时序符合串行器件特性,即把74LS164当成一典型串行外设,用具有串行

51、外设接口的单片机很简单地传入数据,也可以用普通I/O口模拟其时序将数据移入。74LS164为一般TTL器件,其并行输出端(Q0Q7)带拉电流负载能力很弱(约400uA ),在带电流负载时,每位可允许最大电流8mA,所以在电路连接时,用其并出端连LED的“段”,而“位”则需要驱动控制。2、74LS164与AT89S52连接74LS164与AT89S52 2-19所示,图中由于P0口的驱动能力有限,在此我们采用二极管来增加其驱动能力。LED动态显示的原理:首先以串行方式向LED显示器数据端口发送第一个8位数据,这时发送位码数据到P0口,此时由于P0.4位低电平而其他口都为高电平,因此LED1数码管显示该数码。这样我们可以发送第二个数据,同样我们应使其对应的位码为低电平且保证其它位为高电平。以此类推对各显示器进行扫描,显示器分时轮流工作。显然每次只有一个显示器显示,但由于人的视觉暂留现象我们仍会感觉所有的显示器都在同时显示。它

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论