鱼缸智能控制系统的研究与设计 下载本文

控制应用场合。

AT89S52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本

其引脚图如图2.1所示。

图2.1 AT89S52 引脚图

其主要功能特性 ·兼容MCS51指令系统

·8k可反复擦写(>1000次)Flash ROM ·32个双向I/O口 ·256x8bit内部RAM

·3个16位可编程定时/计数器中断·时钟频率0-24MHz ·2个串行中断 ·可编程UART串行通道 ·2个外部中断源 ·共6个中断源 ·2个读写中断口线 ·3级加密位

·低功耗空闲和掉电模式 ·软件设置睡眠和唤醒功能

由于AT89S52单片机内部片内资源丰富,有8K字节的闪烁存贮器,而本系统下位机程序主要用单片机C语言编写,编译后生成的代码较为简短,效率较高,8K字节的程序空间足够使用,且多余的程序存贮空间可作为将来扩展系统所用,故选此机型可以不必在外部再扩展程序存贮器,这样可以简化系统电路,减少系统成本。

7

(2)AT89S2051芯片介绍

AT89S2051是一个低电压,高性能CMOS 8位单片机,片内含2k bytes的可反复擦写的只读Flash程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大AT89C2051单片机可为您提供许多高性价比的应用场合。

其引脚图如图2.2所示:

图2.2 AT89S51 引脚图

AT89S51是一个功能强大的单片机,但它只有20个引脚,15个双向输入/输出(I/O)端口,其中P1是一个完整的8位双向I/O口,两个外中断口,两个16位可编程定时计数器,两个全双向串行通信口,一个模拟比较放大器。

同时AT89S51的时钟频率可以为零,即具备可用软件设置的睡眠省电功能,系 统的唤醒方式有RAM、定时/计数器、串行口和外中断口,系统唤醒后即进入继续工作 状态。省电模式中,片内RAM将被冻结,时钟停止振荡,所有功能停止工作,直至系统被硬件复位方可继续运行。

主要功能特性: ·兼容MCS51指令系统

·2k可反复擦写(>1000次)Flash ROM ·15个双向I/O口 ·6个中断源

·两个16位可编程定时/计数器 ·2.7-6V的宽工作电压范围 ·时钟频率0-24MHz ·128x8bit内部RAM ·两个外部中断源

8

·两个串行中断 ·可直接驱动LED ·两级加密位 ·低功耗睡眠功能 ·内置一个模拟比较放大器 ·可编程UARL通道 ·软件设置睡眠和唤醒功能 2.5.2温度传感器的选取

DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下: ? 独特的单线接口仅需一个端口引脚进行通讯 ? 简单的多点分布应用 ? 无需外部器件 ? 可通过数据线供电 ? 零待机功耗

? 测温范围-55~+125℃,以 0.5℃递增。华氏器件-67~+257F,以0.9F 递增 ? 温度以9 位数字量读出

? 温度数字量转换时间 200ms(典型值) ? 用户可定义的非易失性温度报警设置

? 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 ? 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 DS18B20采用3脚PR-35封装或8脚SOIC封装,其引脚排列如图2.3: 图2.3 DS18B20引脚排列图

9

[7]

64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。

DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图3所示。头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图3所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。

DS1820 通过一种片上温度测量技术来测量温度。图2.4示出了温度测量电路的方框图。 图2.4温度测量电路

温度/数据关系如表2.2:

表2.2温度/数据关系 温度℃ +125 +25 +1/2 0 -125

数据输出(二进制) 00000000 11111010 00000000 00110010 00000000 00000001 00000000 00000000 11111111 11111111 数据输出(十六进制) 00FA 0032 0001 0000 FFFF 10

-25 -1/2 11111111 11001110 11111111 10010010 FFCE FF92 DS1820 是这样测温的:用一个高温度系数的振荡器确定一个门周期,内部计数器在这个门周期内对一个低温度系数的振荡器的脉冲进行计数来得到温度值。计数器被预置到对应于-55℃的一个值。如果计数器在门周期结束前到达0,则温度寄存器(同样被预置到-55℃)的值增加,表明所测温度大于-55℃。

同时,计数器被复位到一个值,这个值由斜坡式累加器电路确定,斜坡式累加器电路用来补偿感温振荡器的抛物线特性。然后计数器又开始计数直到 0,如果门周期仍未结束,将重复这一过程。

斜坡式累加器用来补偿感温振荡器的非线性,以期在测温时获得比较高的分辨力。这是通过改变计数器对温度每增加一度所需计数的值来实现的。因此,要想获得所需的分辨力,必须同时知道在给定温度下计数器的值和每一度的计数值。

DS1820 内部对此计算的结果可提供 0.5℃的分辨力。温度以 16bit 带符号位扩展的二进制补码形式读出,表 1 给出了温度值和输出数据的关系。数据通过单线接口以串行方式传输。DS1820 测温范围-55℃~+125℃,以 0.5℃递增。如用于华氏温度,必须要用一个转换因子查找表。

温度计算:

DS1820 用 9 位存贮温值度 最高位为符号位,图2.5为DS1820的温度存储方式负温度S=1正温度 S=0如00AAH为+85 ,0032H为 25,FF92H为 55

图2.5 DS1820温度存储方式

DS18B20温度传感器与单片机的接口电路如图2.6 图2.6 DS18B20与单片机接口电路

11