八路温度采集与显示系统设计
3 八路温度采集显示系统硬件设计
3.1 AT89C51单片机的特点及引脚说明
3.1.1 AT89C51单片机的特点
AT89C51是美国ATMEL公司生产的低电压、高性能CMOS 8位单片,内
含4Kbytes的可反复擦写的只读程序存储器(EPROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域,该芯片外形结构及引脚如图3.1所示[4]。 U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161718XTAL29RST293031PSENALEEA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51 图3.1 AT89C51外形结构及引脚 AT89C51单片机主要性能参数为:
(1)与MCS-51产品指令系统完全兼容;(2)4K字节可重擦写Flash闪速存储器;(3)1000次擦写周期;(4)全静态操作:0Hz—24Hz;(5)三级加密程序存储器;(6)128×8字节内部RAM;(7)32个可编程I/O口线;(8)2个16位定时/计数器;(9)6个中断源;(10)可编程串行UART通道;(11)低功耗空闲和掉电模式[8]。
8
八路温度采集与显示系统设计
AT89C51提供4K字节Flash闪速存储器,128字节内部RAM,32个I/O
口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
3.1.2 AT89C51单片机引脚功能说明
(1)Vcc:电源电压; (2)GND:地;
(3)P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
(4)P1口:P1口是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉倒高电平,此时可做输入口。做输入口输入时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。Flash编程和程序校验期间,
P1接收低8位地址。
(5)P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路,对端口写“1”,通过内部的上拉电阻把端口拉倒高电平,此时可做输入口,做输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输入一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX@DPTR指令)时,P2口送出高8位地址数据。在访问8为地址的外部数据存储器(如执行MOVX@R1指令)时,P2口线上的内容(也即特殊功能寄存器SFR区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接受高位地址和其它控制信号。
(6)P3口:P3口是一个带有内部上拉电阻的8位双向I/O口,P3口的输出
9
八路温度采集与显示系统设计
缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”时,它们被内部上拉电阻拉高并可作为输入端。作输入端时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3.1所示。
表3.1 P3口第二功能 端口引脚 第二功能 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入口) TXD(串行输出口) 错误!未找到引用源。(外部中断0) 错误!未找到引用源。(外部中断1) T0(定时/计数器0) T1(定时/计数器1) 错误!未找到引用源。(外部数据存储器写选通) 错误!未找到引用源。(外部数据存储器读选通) P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号 (7)RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。
(8)ALE/错误!未找到引用源。:当访问外部程序存储器或数据存储器时,
ALE(地址锁存允许)输出脉冲可用于锁存地址的低八位字节。即使不访问外部存
储器,ALE仍以时钟振荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲(错误!未找到引用源。)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止
ALE操作。该位置置位后,只有一条MOVX和MOVC指令ALE才会被激活。
此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效[8]。
(9)错误!未找到引用源。:程序储存允许(错误!未找到引用源。)
输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令(或数据)时,每个机器周期两次错误!未找到引用源。有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的错误!未找到引用源。信号不出现。
(10)EA/VPP:外部访问允许。欲使CPU仅访问外部数据存储器(地址为
10
八路温度采集与显示系统设计
0000H—FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1
被编成,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件使用12V编程电压Vpp。
(10)XTAL1:振荡器反相放大器及内部时钟发生器的输入端。 (11)XTAL2:振荡器反相放大器的输出端。
3.2温度采集模块硬件设计
3.2.1 DS18B20传感器的结构
DS18B20温度传感器是美国Dallas半导体公司生产的总线式智能数字温度传
感器。DS18B20可根据实际要求通过简单的编程实现9~12位的分辨率数字值读数方式。其工作电源既可在远端引入,也可采用寄生电源方式产生。多个DS18B20可以并联到三根或者两根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。现场温度直接以单线的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量。
DS18B20引脚排列及定义如图3.2所示[3]。
DALLASDS18B2011:GND22:DQ33:VCC
图3.2 DS18B20的TO-92封装
DS18B20的三个引脚布局合理,结构简单,功能明确。DQ:数据输入输出;VCC:可选的电源电压脚;GND:接地。
DS18B20内部主要由64位ROM、高温传感器、非易失性温度报警触发器TH和TL、高速缓存4个数据部分组成。64位ROM用于存储序列号。开始8位
是产品类型编号。接着是每个器件唯一的序列号,共有6个字节48位,在出厂前已
11
八路温度采集与显示系统设计
写入片内ROM中。最后8位是前面56位的CRC校验码。非易失性温度报警触发器TH和TL,可以由用户通过软件写入报警上下限值。高速缓存由9个字节组成。
DS18B20的内部结构功能框图如图3.3所示[1]。
存储器和控制逻辑I/OVD1ROM与单线接口温度传感器高温触发器THVD2VDD高速暂存寄存器低温触发器TL配置寄存器8位CRC发生器 图3.3 DS18B20内部结构框图
主机在进入操作程序前必须逐一读入DS18B20,用读ROM命令将该
DS18B20序列号读出并登录该主机。需要对众多在线DS18B20的某一个进行操作
时首先要发出匹配ROM命令,紧接着主机提供64位序列(包括该DS18B20的
48位序列号)。
DS18B20的存储器结构如表3.2所示。存储器由一个暂存RAM和一个存储
高低位报警触发值TH和TL的非易失性电可擦除EERAM组成。当在单总线上通信时,暂存器帮助确保数据的完整性。数据先被写入暂存器,这里的数据可被读回。数据经过校验后,用一个拷贝暂存器命令把数据传到非易失性EERAM中。这一个过程确保更改存储器数据时的完整性。
表3.2 存储器结构
温度值低位字节LSB(50H) 温度值高位字节MSB(05H) 保留(FFH) 保留 保留(10H) TH用户字节1 TH用户字节2 配置寄存器 CRC 暂存器的结构为8个字节的存储器。头两个字节包含测得的温度信号。第3和
12