学术论文网
基于DS18B20的智能测温系统的设计
发布日期:2024-10-12 10:15:46

  2. 数据存储器

  AT89C52有256字节RAM。高128字节与特殊功能寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是分开的。当一条指令访问高于7FH的地址时,寻址方式决定CPU访问高字节RAM还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(SFR)。

  定时器

  (1)定时器0和定时器1

  在AT89C52中,定时器0和定时器1都是16位加法计数结构,分别由TH0(地址8CH)和TL0(地址8AH)及TH1(地址8DH)和TL1(地址8BH)两个8位计数器组成。这4个计数器均属于专用寄存器之列。每个定时器/计数器都有定时和计数两种功能。

  (2)计数功能

  所谓进行计数。外部事件的发生以输入脉冲表示,因此计数功能的实质就是对外脉冲进行计数。MCS-51系列的芯片有T0(P3.4)和T1(P3.5)两个信号引脚,分别就是这两个计数器的计数输入端。外部输入的脉冲在负跳变时有效,进行计数器加1。计数方式下,单片机在每个机器周期的S5P2拍节对外部计数脉冲进行采样。如果前一个机器周期采样为高电平,后一个机器周期采样为低电平,即为一个有效计数脉冲。在下一个机器周期的S3P1进行计数。可见采样计数脉冲是在2个机器周期进行的。鉴于此,计数脉冲的频率不能高于振荡脉冲的频率不能高于振荡脉冲频率的1/24。

  (3) 定时功能

  定时器也是通过计数器的计数来实现的,不过此时的计数脉冲来自单片机的内部,即每个机器周期产生一个计数脉冲。也就是每个机器周期计数加1。由于一个机器周期等于12个振荡脉冲周期,因此计数频率为振荡频率的1/12。如果单片机采用12MHz晶体,则计数频率为1MHz。即每微秒计数器加1。这样不但可以根据计数值计算出定时时间,也可以反过来按定时时间的要求计算出计数器的预置值。

  (4) 定时器2

  定时器2是一个16位定时器/计数器,它既可以作定时器,又可以做事件计数器。其工作方式由特殊寄存器T2CON中的C/T2位选择(如表2所示)。定时器2有三种工作模式:捕捉方式、自动重载(向上或向下计数)和波特率发生器。如表3.3所示,工作模式由T2CON中的相关为选择。定时器2有2个8位寄存器:TH2和TL2。在定时工作方式中,每个机器周期,TL2寄存器都会加1。由于一个机器周期由12个晶振周期构成,因此,计数频率就是晶振频率的1/12。

  表 3.3 定时器2工作模式

RCLK+TCLK

CP/RL2

TR2

MODE

0

0

1

16位自动重载

0

1

1

16位捕捉

1

×

1

波特率发生器

×

×

0

不用

  在计数工作方式下,寄存器在相关外部输入角T2发生1至0的下降沿时增加1。在这种方式下,每个机器周期的S5P2期间采样外部输入。一个周期采样到高电平,而下一个周期采样到低电平,计数器加1。在检测到跳变的这个周期的S3P1期间,新的计数值出现在寄存器中。因为识别1—0的跳变需要2个机器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了确保给定的电平在采样前采样到一次,电平应该至少在一个完整的机器周期内保持不变。

  表3.4 T2MOD-定时器2控制寄存器

  T2MOD地址:0C9H 复位值:×××××00B

-

-

-

-

-

-

T2OE

DCEN

7

6

5

4

3

2

1

0

符号

功能

无定义,预留扩展

T2OE

定时器2输出允许位

DCEN

置1后,定时器2可配置向上或向下计数

                 

  3.3.6 中断

  AT89C52有6个中断源:两个外部中断(INT0和INT1),三个定时中断定时器0、1、2和一个串行中断。每个中断源都可以通过置位或清除特殊寄存器IE中的相关中断允许控制位分别使得中断源有效或无效。IE还包括一个中断总控制位EA,它能禁止所有中断。

  如表3.5所示,IE.6位是不可用的。对于AT89S52,IE.5位也是不能用的。用户软件不应给这些位写1。它们为AT89系列新产品预留。

  定时器2可以被寄存器T2CON中的TF2和EXF2的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上,中断服务程序必须判定是否是TF2或EXF2激活中断。标志位也必须由软件清0。

  定时器0和定时器1标志位TF0和TF1在计数溢出的那个周期的S5P2被置位。它们的值一直到下一个周期被电路捕捉下来。然而,定时器2的标志位TF2在计数溢出的那个周期被置位,在同一个周期被电路捕捉下来。

  表 3.5 中断允许控制位

符号

位地址

功能

EA

IE.7

中断允许控制位,EA=0,中断总禁止;EA=1,各中断由各自的控制位设定

-

IE.6

预留

ET2

IE.5

定时器2中断允许控制位

ES

IE.4

串行口中断允许控制位

ET1

IE.3

定时器1中断允许控制位

EX1

IE.2

外部中断1允许控制位

ET0

IE.1

定时器0中断允许控制位

EX0

IE.0

外部中断0允许控制位

  3.3.7 晶振特性

  AT89C52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟远驱动器件的话,XTAL2可以不接,而从XTAL1接入。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。 石英晶振 C1,C2=30PF+-10PF

  陶瓷谐振器 C1,C2=40PF+-10PF

  3.6 模数转换电路

  模拟量要输入到单片机中进行处理,首先要经过模拟量到数字量的转换,单片机才能接收、处理。在煤气自动检测报警系统中必须要选择转换速度快,精度高的A/D转换器。在设计中要考虑传感器部分的激励电源的稳定对整个系统精度的影响等因素,因此选用逐次逼近式ADC0809转换器,它比双积分A/D的转换器的转换速度快。

  1 ADC0809转换器

  ADC0809是采样频率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

  (1)主要特性

  ①8路8位A/D转换器,即分辨率8位。

  ②具有转换起停控制端。

  ③转换时间为100μs

  ④单个+5V电源供电

  ⑤模拟输入电压范围0~+5V,不需零点和满刻度校准。

  ⑥工作温度范围为-40~+85摄氏度

  ⑦低功耗,约15mW。

  (2)内部结构

  ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图3-10所示,它由8路模拟开关、地址锁存与译码器、比较器构成。

  (3)外部特性(引脚功能)

  ADC0809芯片有28条引脚,采用双列直插式封装。下面说明各引脚功能。

  IN0~IN7:8路模拟量输入端。

  Q0~Q7:8位数字量输出端。

  ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路

  ALE:地址锁存允许信号,输入,高电平有效。

  START:A/D转换启动信号,输入,高电平有效。

  EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

  OE:数据输出允许信号输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

  CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。

  REF(+)、REF(-):基准电压。

  Vcc:电源,单一+5V。

  GND:地。

  (4) ADC0809应用说明

  初始化时,使ST和OE信号全为低电平。

  ①送要转换的哪一通道的地址到A,B,C端口上。

  ②在ST端给出一个至少有100ns宽的正脉冲信号。

  ③是否转换完毕,我们根据EOC信号来判断。

  ④当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。

  (5) 单片机与ADC0809接口方案设计

  单片机选用ATMEL公司的AT89C52,AT89C52数据总线是由P0口提供的,P0口本身能以多种方式提供数据总线和地址总线。当ALE输出信号为高电平时,P0将输出的数据锁入总线驱动器中作为地址的低8位。AT89C52的地址总线比较简单(只有3个:RD、WR、PSEN),其中RD是用来读取外部数据内存的控制线,WR是用来写数据到外部数据内存的控制线,PSEN是用来存取外部程序内存的读取控制线。由于P0口是数据和地址分时复用口,故要进行地址锁存,本设计使用74LS373作为锁存器。单片机主要完成对A/D转换电路的控制、对转换后的数字量的处理以及对显示模块的控制,并且为ADC0809提供工作时钟。ADC0809的时钟信号CLK由单片机的地址锁存允许信号ALE提供,若单片机晶振频率为6MHz,则ALE信号经分频输出为500KHz,满足CLK信号低于640KHz的要求。用单片机的P2.7引脚作为片选信号,与WR进行或非操作得到一个正脉冲加到ADC0809的ALE和START引脚上,由于ALE和START连接在一起,因此ADC0809在锁存信道地址的同时也启动转换。74L373的输出端 D0~D7 可直接与总线相连。当三态允许控制端OE为低电平时,D0~D7 为正常逻辑状态,可用来驱动负载或总线。当OE为高电平时,D0~D7 呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当锁存允许端LE为高电平时,Q随数据D而变。当LE为低电平时,D端口被锁存在已建立的数据电平。

  ADC0809的EOC信号经反相后接到89C51的INT引脚,用于产生转换完成的中断请求信号。A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。因此本设计采用中断方式,所用器件为74LS04,EOC经非门接单片机的中断请求端,将转换结束信号作为中断请求信号向单片机提出中断申请,在中断服务后读入转换结果,单片机接收转换数据。 由于设计时把ADC0809的地址选择端A、B、C都接到锁存器的,即ABC=000。在选择通道设计时,将IN1~IN7输入通道全部悬空,因此使用8选1模拟进行信号的选择,ADC0809的信号选择功能就不使用了,这样选通通道始终是IN0。

  3.9通风机的选择

  通风机一般选用轴流通风机,在蔬菜温室大棚内按定向排定方式安装接力通风,可使用大棚内的空气流动更加充分,更加均匀,通风效果良好。该产品具有低噪音、风量大且柔和,低电耗,效率高,重量轻,安装使用方便等特点,是较好的通风设备。实际应用中可根据蔬菜大棚的面积和温度变化对时间的要求选用合适风量和功率的通风机。

  4.2.1上位机软件的功能

  系统控制的关键在温室气候控制,为使操作人员能够直观地观察看到各项气候数据,人机接口全部采用友好的图形界面,是操作更简单直观。

  系统软件主要是由实时检测模块、系统参数设定模块、智能决策模块、数据处理模块、数据库管理模块、帮助文件模块等6大模块组成。

  3.9.1各模块功能

  (1)实时检测模块,该模块负责实时将室外传感器传送进来的个气象因子的模拟量转化为操作人员可识别的量,为了防止一些跳变数据对观测的影响,我们先对所采集的数据进行滤波,然后再将其显示到主界面的气象因子显示框中,极大地保证了数据的可靠性。

  (2)系统参数设定模块:对于温度参数,除需要进行监测外,还需要根据作物生长的需要,对作物生长的各项参数的范围进行设定,包括季节控制策略的选择,各气象因子的上/下限等,并将这些设定写入数据库,然后通过通讯总线将这些设定参数从计算机传送到单片机地数据寄存器中,单片机根据这些参数对温室内,外窗、湿帘、风机等设备进行开关调节,列如到温度超过设定温度的上限时,就需要打开风机、窗户等设备使室内外的空气流通达到降温的效果。

  (3)数据库管理模块:该模块负责设定参数以及各气象因子的记录、查询和维护。

  第四章.软件系统设计

  分布式温度控制系统设计过程中遵循了简化硬件电路、以软件代替硬件的设计原则,力求最大限度地减小温度控制系统的体积和重量,降低分布式温度控制系统的成本。分布式温度控制系统的全部功能都是在硬件的支持下,有软件来实现的。软件设计采用模块结构。根据分布式温度控制系统的设定功能,将软件划分为若干个功能相对独立的模块,主要有报警模块、时间、温度显示模块、温度上下限设置模块、时间调整模块。模块化设计的优点是,每一个模块都相对独立,故能独立地惊醒设计和修改,从而是复杂的工作得以简化。模块之间的相互独立也有助于设计任务简单化,这样可提高工作效率。软件各个模块的设置完成之后,还需要将它们按一定的方法连接起来,才能构成完整的软件流程,以实现数据采集、传输、处理和输出等各种功能。软件模块的连接,一般是通过调用各种功能模块,或采用中断的方法实时地执行相应的服务模块来实现,并且按功能层次继续调用下一级模块。模块之间的联系是由数据接口来完成的。

  4.1系统主程序

  系统主程序控制单片机系统按预定的操作方式运行,它是单片机系统程序的框架。系统上电后,对系统进行初始化。初始化程序主要完成对单片机内专用寄存器、单片机工作方式及各端口的工作状态的设定。系统初始化之后,开始进行工作。流程主要为自动检测和自动处理两个部分,接通电源后,系统进行初始化,温度进行检测,当温度超过标准温度后,单片机将关闭电磁阀,并开启声光报警系统做出提示。主程序流程图如图4-1所示。

变量赋初值

 3/3     1 2 3
Copyright © 2008-2020 学术论文网 版权所有 粤ICP备16093775号