李新建 亓振军
【摘要】本文设计的是监测机房一套无线多温度数据采集系统,主要用于对环境温度的采集与监控,系统采用基于无线网络的设计思想和温度采集技术。
【关键词】AT89C52;温度采集
1.单片机主控制电路设计——AT89C52控制器电路设计
1.1 主控制器单片机AT89C52单片机控制器电路
图1为主控制器单片机AT89C52单片机控制器电路。AT89C52单片机片内的Flash可允许在线重新编程,也可用通用非易失性存储编程器编程;片内数据存储器内含128字节的RAM;有40个引脚,32个外部双向输入/输出(I/O)端口;具有两个16位可编程定时器;中断系统是具有6个中断源、5个中断矢量、2级中断优先级的中断结构;震荡器频率0到33MHZ,因此我们在此选用12MHZ的晶振是比较合理的;具有片内看门狗定时器;具有断电标志POF等等。
图1 AT89C52单片机控制器电路
1.2 AT89C52引脚说明
P0口:8位、开漏级、双向I/O口。P0口可作为通用I/O口,但须外接上拉电阻;作为输出口,每各引脚可吸收8各TTL的灌电流,作为输入时,首先应将引脚置1。P0也可用做访问外部程序存储器和数据存储器时的低8位地址/数据总线的复用线。在该模式下,P0口含有内部上拉电阻。在FLASH编程时,P0口接收代码字节数据;在编程效验时,P0口输出代码字节数据(需要外接上拉电阻)。
P1口:8位、双向I/0口,内部含有上拉电阻,P1口可作普通I/O口。输出缓冲器可驱动四个TTL负载,用作输入时,先将引脚置1,由片内上拉电阻将其拉到高电平。P1口的引脚可由外部负载拉到低电平,通过上拉电阻提供电流。在FLASH并行编程和校验时,P1口可输入低字节地址。在串行编程和校验时,P1.5/MOSI,P1.6/MISO和P1.7/SCK分别是串行数据输入、输出和移位脉冲引脚。
P2口:具有内部上拉电阻的8位双向I/O口。P2口用做输出口时,可驱动4各TTL负载,用做输入口时,先将引脚置1,由内部上拉电阻将其拉到高电平。若负载为低电平,则通过内部上拉电阻向外部输出电流。CPU访问外部16位地址的存储器时,P2口提供高8位地址,当CPU用8位地址尋址外部存储时,P2口为特殊功能寄存器的内容。在FLASH并行编程和校验时,P2口可输入高字节地址和某些控制信号。
P3口:具有内部上拉电阻的8位双向口。P3口用做输出口时,输出缓冲器可吸收4各TTL的灌电流,用做输入口时,首先将引脚置1,由内部上拉电阻拉到高电平。若外部的负载是低电平,则通过内部上拉电阻向输出电流。在与FLASH并行编程和校验时,P3口可输入某些控制信号。P3口除了通用I/O口功能外,还有第二功能,如表1所示。
表1 P3口的第二功能
引脚 符号 说明
P3.0 RXD 串行口输入
P3.1 TXD 串行口输出
P3.2 /INT0 外部中断0
P3.3 /INT1 外部中断1
P3.4 T0 T0定时器的外部的计数输入
P3.5 T1 T1定时器的外部的计数输入
P3.6 /WR 外部数据存储器的写选通
P3.7 /RD 外部数据存储器的读选通
RST:复位端。当振荡器工作时,此引脚上出现两个机器周期的高电平将系统复位。
ALE/:当访问外部存储器时,ALE(允许地址锁存)是一个用于锁存地址的低8位字节的书粗脉冲。在Flash 编程期间,此引脚也可用于输入编程脉冲()。在正常操作情况下,ALE以振荡器频率的1/6的固定速率发出脉冲,它是用作对外输出的时钟,需要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。如果希望禁止ALE操作,可通过将特殊功能寄存器中位地址为8EH那位置的“0”来实现。该位置“1”后。ALE仅在MOVC指令期间激活,否则ALE引脚将被略微拉高。若微控制器在外部执行方式,ALE禁止位无效。
:外部程序存储器读选取通信号。当AT89C52在读取外部程序时,每个机器周期将其激活两次。在此期间内,每当访问外部数据存储器时,将跳过两个信号。
/Vpp:访问外部程序存储器允许端。为了能够从外部程序存储器的0000H至FFFFH单元中取指令,必须接地,然而要注意的是,若对加密位1进行编程,则在复位时,的状态在内部被锁存,执行内部程序应接VCC。
XTAL1:振荡器反向放大器输入端和内部时钟发生器的输入端。
XTAL2:振荡器反相放大器输出端。
图2 DS18B20方框图
图3 DS18B20电路原理图
2.温度采集模块DS18B20电路设计
温度芯片DS18B20具有3引脚TO-92小体积封装形式。测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出。测量温度范围为 -55℃~+125℃,在-10℃~+85℃范围内,精度为±0.5℃。其工作电源既可在远端引入,也可采用寄生电源方式产生。CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。由于每一个DS18B20都有唯一系列号,因此多个DS18B20可以存在同一条单总线上。这允许多个不同地方放置温度灵敏器件。DS18B20的内部结构如图2所示,电路原理图如图3所示。
DS18B20有4个主要的数据部件:
a.64位激光ROM,64位激光ROM从高位到低位依次为8位CRC、48位序列号和8位家族代码(28H)组成。
b.温度灵敏元件。
c.非易失性温度报警触发器TH和TL,可通过软件写入用户报警上下限值。
d.配置寄存器,配置寄存器为高速暂存存储器中的第五个字节,其中R0、R1为温度计分辨率设置位,其对应四种分辨率如表2所列,出厂时R0=1,R1=1(即12位分辨率),用户可根据需要改写配置寄存器以获得合适的分辨率。
表2 分辨率关系表
R0 R1 分辨率/bit 最大转换时间/us
0 0 9 93.75
0 1 10 187.5
1 0 11 375
1 1 12 750
高速暂存存储器由9个字节组成,其分配如表3所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。对应的温度计算:当符号位S=0时,直接将二进制位转换为十进制;当S=1时,先将补码变为原码,再计算十进制值。
表3 DS18B20存储器
温度LSB 温度MSB TH TL 保留 保留 计数寄存器 计数寄存器 8位CRC
本设计采用的是单节点温度测试,对硬件结构简单的单线数字温度传感器DS18B20进行操作,需要用较为复杂的程序完成。编写程序时必须严格按芯片数据手册提供的有关操作顺序进行,读、写时间片程序要严格按要求编写。尤其在使用DS18B20的高测温分辨力时,对时序及电气特性參数要求更高。
参考文献
[1]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2005.
[2]张毅刚,彭喜元,姜守达,乔立言.新编MCS-51单片机应用设计[M].哈尔滨:哈尔滨工业大学出版社,2006.
[3]樊明龙,任丽静.单片机原理与应用[M].北京:化学工业出版社,2005.
[4]余永权.单片机原理及应用[M].北京:电子工业出版社,1998.
[5]余小平,奚大顺.电子系统设计——基础篇[M].北京:北京航空航天大学出版社,2010.
[6]黄正谨.综合电子设计与实践[M].南京:东南大学出版社,2002.
作者简介:
李新建(1961—),男,山东东营人,工程师,现供职于山东省东营市广播电视监测中心,从事广播电视监测技术方面的工作。
亓振军(1979—),男,山东济南人,工程师,山东省广播电视监测中心科长。