集成电路课程设计
课 题:基于 AT89C51 单片机的多点温度测量系统设计
姓
名:
班 级:
学 号:
指导老师:
日 期:
目 录
一、绪论
二、总体方案设计
三、硬件系统设计
1 主控制器
2 显示模块
3 温度采集模块
(1)DS18B20 的内部结构
(2) 高速暂存存储器
(3) DS18B20 的测温功能及原理
(4)DS18B20 温度传感器与单片机的连接
(5)单片机最小系统总体电路图
四、系统软件设计
五、系统仿真
六、设计总结
七、参考文献
八、附源程序代码
一、绪论
在现代工业控制中和智能化仪表中,对于温度的控制,恒温等有较高的要求,如对食品
的管理,冰箱的恒温控制,而且现在越来越多的地方用到多点温度测量,比如冰箱的保鲜层
和冷冻层是不同的温度这就需要多点的测量和显示可以让用户直观的看到温度值,并根据需
要调节冰箱的温。它还在其他领域有着广泛的应用,如:消防电气的非破坏性温度检测,电
力、电讯设备之过热故障预知检测,空调系统的温度检测。。。。。。温度检测系统应用十分广
阔。
本设计采用 DALLAS 最新单线数字温度传感器 DS18B20 简介新的"一线器件"体积更小、
适用电压更宽、更经济 DALLAS 半导体公司的数字化温度传感器 DS18B20 是世界上第一片支
持"一线总线",测量温度范围为-55°C~+125°C,在-10~+85°C 范围内,精度为±0.5°二、
设计过程及工艺要求
1、基本功能
(1)检测两点温度
(2)两秒间隔循环显示温度
2、主要技术参数
测温范围:-30℃到+99℃
测量精度: 0.0625℃
显示精度: 0.1℃
显示方法:LCD 循环显示
3、系统设计
系统使用 AT89C51 单片机对两个 DS18B20 进行数据采集,并通过 1602LCD 液晶显示器
显示所采集的温度。
DS18B20 以单总线协议工作,51 单片机首先分别发送复位脉冲,使信号上所有的
DS18B20 芯片都被复位,程序先跳过 ROM,启动 DS18B20 进行温度变换,再读取存储器
的第一位和第二位读取温度,通过 I/O 口传到 1602LCD 显示。
DS18B
20
1 2 3
图(1)DS18B20 引脚图
引脚定义如图(1):
(1) GND 为电源地;
(2) DQ 为数字信号输入/输出端;
(3) Vcc 为外接供电电源输入端(在寄生电源接线方式时接地)。
4、设计原理框图
DS18B20(1)
DS18B20(2)
最 小
AT89
C51 系
统
1620LCD
图(2)原理框图
三、硬件设计
1、主控制器(单片机)
基于设计的要求要使用 AT89C51 单片机作为本系统设计的核心器件。
由于 AT89C51 单片机是一种带 4K 字节闪烁可编程可擦除只读存储器的低电
压,高性能 cMOS8 位微处理器。该器件采用 ATMEL 高密度非易失存储器制造技
术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位
CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,
为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,所以本系统采用
AT89C51 单片机作为系统的主控制器。其特点如下:
① 4K 字节可编程闪速程序存储器:1000 次循环写/擦
② 全静态工作:OHz-24MHz
③ 三级程序存储器锁定
④ 128 X 8 位内部数据存储器,32 条可编程 I/0 线
⑤ 两个十六位定时器/计数器,六个中断源
⑥ 可编程串行通道,低功耗闲置和掉电模式
2. 显示模块
本设计要求用 LCD 显示器来显示测出的温度。LCD 系列中 LM016L 型号的为
2 行 16 列液晶,可显示 2 行 16 列英文字符,有 8 位数据总线 D0-D7,RS,R/W,
EN 三个控制端口(共 14 线),工作电压为 5V。没背光,和常用的 1602B 功能和
引脚一样(除了调背光的二个线脚)。可以完全实现本设计的显示功能。
3.温度采集模块
本设计用的是 DS18B20 温度传感器,它是美国 DALLAS 半导体公司最新推
出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接
读出被测温度,并且可根据实际要求通过简单的编程实现 9~12 位的数字值读数
方式。
DS18B20 内部结构
(1) DS18B20 的内部结构如下图所示。
图(3) DS18B20 内部结构图
DS18B20 有 4 个主要的数据部件:
① 64 位激光 ROM。64 位激光 ROM 从高位到低位依次为 8 位 CRC、48 位序列号和 8 位家族代
码(28H)组成。
② 温度灵敏元件。
③ 非易失性温度报警触发器 TH 和 TL。可通过软件写入用户报警上下限值。
④ 配置寄存器。配置寄存器为高速暂存存储器中的第五个字节。DS18B20 在 0 工作时按此
寄存器中的分辨率将温度转换成相应精度的数值,其各位定义如图(4)所示。
TM
R1
R0
1
1
1
1
1
MSB
DS18B20 配置寄存器结构图
LSB
图(4)
其中,TM:测试模式标志位,出厂时被写入 0,不能改变;R0、R1:温度计分辨率设置
位,其对应四种分辨率如下表所列,出厂时 R0、R1 置为缺省值:R0=1,R1=1(即 12 位分辨
率),用户可根据需要改写配置寄存器以获得合适的分辨率。
配置寄存器与分辨率关系表 :
R0
R1
温度计分辨率/bit
最大转换时间/us
0
0
1
1
0
1
0
1
9
10
11
12
93.75
187.5
375
750
(2) 高速暂存存储器
图(5)
高速暂存存储器由 9 个字节组成,其分配如下图所示。当温度转换命令发布后,经转
换所得的温度值以二字节补码形式存放在高速暂存存储器的第 0 和第 1 个字节。单片机可通
过单线接口读到该数据,读取时低位在前,高位在后,数据格式如图所示。对应的温度计算:
当符号位 S=0 时,直接将二进制位转换为十进制;当 S=1 时,先将补码变为原码,再计算十
进制值。
温度低位 温度高位
TH
TL
配置
保留
保留 保留
8 位 CRC
LSB
DS18B20 存储器映像图
MSB
图(6)
(3) DS18B20 的测温功能及原理
温度值格式图 DS18B20 温度数据表:
23
MSB
S
22
21
20
2-1
2-2
2-3
S
S
S
S
26
25
2-4
LSB
24
典型对应的温度值表:
图(7)
二进制表示
十六进制表示
07D0H
0191H
00A2H
0008H
0000H
FFF8H
FF5EH
FE6FH
FC90H
温度/℃
+125
+25.0625
+10.125
+0.5
0
-0.5
-10.125
-25.0625
00000111 11010000
00000001 10010001
00000000 10100010
00000000 00001000
00000000 00000000
11111111 11111000
11111111 01011110
11111110 01101111
-55
11111100 10010000
图(8)典型对应的温度值表
(4)DS18B20 温度传感器与单片机的连接
D
N
G
+5V
C1
C2
22pF
22pF
X1
12MHz
C3
20uF
1k
R1
D
N
G
19
18
9
29
30
31
1
2
3
4
5
6
7
8
U1
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AT89C51
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
图(9)单片机最小系统
LCD 显示屏电路:
LCD1
LM016L
S
S
V
D
D
V
E
E
V
1
2
3
S
R
W
R
E
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
4
5
6
7
8
9
0
1
1
1
2
1
3
1
4
1
+5V
V
5
+
1
2
3
4
5
6
7
8
9
RP1
10K
(5)具体总体电路图如下:
图(10)LCD 显示屏电路
LCD1
LM016L
S
S
V
D
D
V
E
E
V
1
2
3
D
N
G
+5V
C1
C2
22pF
22pF
X1
12MHz
C3
20uF
1k
R1
D
N
G
19
18
9
29
30
31
1
2
3
4
5
6
7
8
U1
XTAL1
XTAL2
RST
PSEN
ALE
EA
P1.0
P1.1
P1.2
P1.3
P1.4
P1.5
P1.6
P1.7
AT89C51
P0.0/AD0
P0.1/AD1
P0.2/AD2
P0.3/AD3
P0.4/AD4
P0.5/AD5
P0.6/AD6
P0.7/AD7
P2.0/A8
P2.1/A9
P2.2/A10
P2.3/A11
P2.4/A12
P2.5/A13
P2.6/A14
P2.7/A15
P3.0/RXD
P3.1/TXD
P3.2/INT0
P3.3/INT1
P3.4/T0
P3.5/T1
P3.6/WR
P3.7/RD
39
38
37
36
35
34
33
32
21
22
23
24
25
26
27
28
10
11
12
13
14
15
16
17
3
2
1
SECOND
VCC
DQ
GND
17.2
DS18B20
图(11)总体硬件图
S
R
W
R
E
0
D
1
D
2
D
3
D
4
D
5
D
6
D
7
D
4
5
6
7
8
9
0
1
1
1
2
1
3
1
4
1
+5V
V
5
+
1
2
3
4
5
6
7
8
9
RP1
10K
3
2
1
FIRST
VCC
DQ
GND
DS18B20
30.8
四、软件设计
1、主程序方案
主程序调用了 4 个子程序和一个欢迎开机画面的程序,4 个子程序分别是液晶初始化、
DS18B201 的初始化、DS18B202 的初始化、和液晶显示数据的程序。
(1) 液晶初始化程序:8 位数据端口,2 行显示,5*7 点阵、开启显示, 无光标、清屏、AC
递增, 画面不动。
(2) 分别对两个 DS18B20 温度传感器初始化程序:初始化,读写一个字节,
(3) 液晶显示的子程序:确定液晶字符的输入位置,将字符输出到液晶显示
(4) 液晶显示温度程序:先读 DS18B20 当前温度,将温度转化成液晶字符显示。
将各个功能程序以子程序的形式写好,当写主程序的时候,只需要调用子程序调用指令
使得程序结构清晰,无论是修改还是维护都比较方便。将功能程序段写成子程序的形式,除
了方便调用之外,还有一个好处那就是以后写程序的时候如果要用到,就可以直接调用这个
单元功能模块。
2、流程图
主程序流程图:
开始