天津职业技术师范大学2012届本科生毕业设计
DS18B20时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视。
DS18B20 有4 个主要的数据部件:
a.光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位(28H)是产品类型标号,接着的48位是该DS18B20自身的序列号,最后8位是前面56位的循环冗余校验码CRC=X8+X5+X4+1。光刻ROM 的作用是使每一个DS18B20 都各不相同,这样就可以实现一根总线上挂接多个DS18B20 的目的。
b.DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩
展的二进制补码读数形式提供,以0.0625℃/LSB 形式表达,其中S 为符号位。
表3-1 DS18B20 温度值格式表
LS Byte Bit7 23 MS Byte Bit7 S Bit7 Bit7 Bit7 Bit7 Bit7 Bit7 Bit7 22 Bit7 S 21 Bit7 S 20 Bit7 S 2-1 Bit7 S 2-2 Bit7 2-3 Bit7 2-4 Bit7 26 25 24
这是 12 位转化后得到的12 位数据,存储在18B20 的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1 再乘于0.0625即可得到实际温度。
例如+125℃的数字输出为07D0H,+25.0625℃的数字输出为0191H,-25.0625℃的数字输出为FF6FH,-55℃的数字输出为FC90H。
c.DS18B20 温度传感器的存储器:DS18B20 温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL 和结构寄存器。
d.配置寄存器
该字节各位的意义如表3-2所示:
10
天津职业技术师范大学2012届本科生毕业设计
表 3-2 配置寄存器结构
TM
低五位一直都是1 ,TM 是测试模式位,用于设置DS18B20 在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1 和R0 用来设置分辨率,如下表所示:(DS18B20 出厂时被设置为12 位)
分辨率设置如表3-3所示:
表3-3 温度值分辨率设置表
R1 R0 1 1 1 1 1 R1 0 0 1 1
R0 0 1 0 1 分辨率 9位 10位 11位 12位 温度最大转换时间 93.75ms 187.5ms 375ms 750ms 由表3-3可见,DS18B20温度转换时间比较长,而且设定的分辨率越高,所需要的温度转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。
3.4 AT89S51 3.4.1 AT89S51功能介绍
AT89S51美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含4K Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及AT89C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。单片机AT89S51强大的功能可为许多嵌入式控制应用系统提供高性价比的解决方案。
3.4.2 AT89S51单片机的内部结构
单片机的内部结构图3-4可知,AT89S51单片机主要由以下几部分组成:中
11
天津职业技术师范大学2012届本科生毕业设计
央处理器(CPU)、振荡电路、内部总线、程序存储器和数据存储器、定时器/计数器、I/O口、串行口、中断系统。
P0~P3TINT定时器 / 计数器中断系统并行I/O接口C P U 存储器 图3-4 单片机内部结构
并行I/O接口TXDRXD
3.4.3 AT89S51芯片的引脚及特点
AT89S51提供以下标准功能: (1)40个引脚
(2)4K Bytes Flash片内程序存储器
(3)128 Bytes的随机存取数据存储器(RAM) (4)32个外部双向输入/输出(I/O)口 (5)5个中断优先级2层中断嵌套中断 (6) 2个数据指针
(7)2个16位可编程定时/计数器 (8)2个全双工串行通信口 (9)看门狗(WDT)电路 (10)片内振荡器及时钟电路
12
天津职业技术师范大学2012届本科生毕业设计
图3-5 AT89S51引脚图
此外,AT89S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲模式下,CPU暂停工作,而RAM、定时/计数器、串行通信口、外中断系统可继续工作。掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
管脚说明:
(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位地址。部分端口还有第二功能,如表3-2所示:
13
天津职业技术师范大学2012届本科生毕业设计
表3-2 P1口部分引脚第二功能 端口引脚 P1.5 P1.6 P1.7 第二功能 MOSI(用于ISP编程) MISO(用于ISP编程) SCK (用于ISP编程)
(5) P2口:P2口是一个带有内部上拉电阻的8位双向I/O口, P2口的输出缓冲级可驱动4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。在访问8位地址的外部数据寄存器时,P2口线上的内容,在整个访问期间不改变。在Flash编程或校验时,P2亦接收高位地址和其它控制信号。
(6)P3口:P3口是一个带有内部上拉电阻的双向8位I/O口, P3口的输出缓冲级可驱动4个TTL逻辑门电路。对P3口写“1”时,它们被内部的上拉电阻拉高并可作为输入端口。作输入口使用时,被外部信号拉低的P3口将用上拉电阻输出电流(IIL)。P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能,如表3-3所示:P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。
表3-3 P3口引脚第二功能
端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD (串行输入口) TXD (串行输出口) INT0 (外中断0) INT1 (外中断1) T0 (定时/计数器0) T1 (定时/计数器1) WR (外部数据存储器写选通) RD (外部数据存储器读选通)
14