2024年6月14日发(作者:苑晓燕)
百度文库 - 让每个人平等地提升自我!
6.4实施—制作过程
6.4.1硬件设计
温度测量采用最新的单线数字温度传感器DS18B20,DS18B20是美国DALLAS半导体公司最新推出
的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通
过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字
量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率
来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而,使用DS18B20可
使系统结构更趋简单,可靠性更高。
降温控制系统采用低压直流电风扇。当温度高于设定最高限温度时,启动风扇降温,当温度降到指定
最高限温度以下后,风扇自动停止运转。
温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。当环境温度低于设定的最低
限温度值时,也采用综合实训板上的蜂鸣器进行报警。用0#、1#键作为温度最高限、最低限的设定功能键;
2#、3#键作为温度值设定的增加和减小功能键。
0#键:作为最高限温度的设定功能键。按一次进入最高限温度设定状态,选择最高限温度值后,再按
一次确认设定完成。
1#键:作为最低限温度的设定功能键。按一次进入最低限温度设定状态,选择最低限温度值后,再按
一次确认设定完成。
2#键:+1功能键,每按一次将温度值加1,范围为1~99℃。
3#键:-1功能键,每按一次将温度值减1,范围为99~1℃。
DS18B20
+5V+5V
A
2
PB0PB7
1
3
4.7 k
BELL
74ALS02
U18051U28155
+5V
13921
12
P10P00AD0PA0
23822
13
P11P01AD1PA1
33723
14
P12P02AD2PA2
43624
15
P13P03AD3PA3
D253525
16
P14P04AD4PA4
4004
63426
17
P15P05AD5PA5
73327
18
P16P06AD6PA6
83228
19
P17P07AD7PA7
+5V
132129
INT1P20PB0
8550
122230
8
INT0P21CEPB1
9
2331
P22RDPB2
LED1LED2
10
152432
T1P23WRPB3
142533
+5V7
T0P24IO/MPB4
20p
2634
11
P25ALEPB5
312735
P26PB6
EA/VP
+5V
2836
P27PB7
20p
1
6
0
19
X1TMROUT
PC0
37
12M
18
X2PC0
38
3
2
PC1
PC1
3
91039
RESETRXDTMRINPC2
111
5
4
TXDPC3
PC2
17302
PC4
ALE/P
RD
16295
4
RESETPC5
PSEN
WR
PA0
PA1
+5V
G
N
D
123
V
c
c
D
Q
+
A
-
6.4.2软件设计
图2.2.1温控系统硬件接线原理图
(1)温控系统采用模块化程序结构,可以分成以下程序模块:
①系统初始化程序:首先完成变量的设定、中断入口的设定、堆栈、输入输出口及外部部件的初始化
工作。
②主程序MAIN:完成键盘扫描、温度值采集及转换、温度值的显示。当温度值高于设定最高限时,
驱动风扇工作;当温度值低于设定最低限时,驱动蜂鸣器报警。
③键盘扫描程序KEYSCAN:完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、
最低温度的设定。
④温度采集程序GET_TEMPER:完成DS18B20的初始化并发出温度转换命令,经过指定时间后读取
转换的温度值。
根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都
要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20
进行预定的操作。复位要求CPU将数据线下拉500μs,然后释放。DS18B20收到信号后等待16~60μs
1
h
p
g
f
e
d
c
b
a
百度文库 - 让每个人平等地提升自我!
左右,后发出60~240μs的存在低脉冲,CPU收到此信号表示复位成功。
⑤温度转换程序TEMPER_COV:根据精度要求对采集到的温度值进行处理并转换成便于显示的BCD
码值。
⑥显示子程序DISPLAY:显示实时温度及设定温度值。
⑦DS18B20初始化子程序INIT_1820:DS18B20在工作之前必须按照指定的要求完成初始化工作,否
则无法正常工作。
⑧DS18B20读写子程序WRITE_1820、READ_1820、READ_1820T完成对18B20的读写功能,其中,
READ_1820从DS18B20中读出一个字节的数据,READ_1820T从DS18B20中读出两个字节的温度数据。
⑨延时程序DELAY、DELAY1满足18B20要求的延时间隔及程序中的延时功能。
DS18B20
初始化
(2)软件流程框图分别如图2.2.2、2.2.3、2.2.4、2.2.5和2.2.6所示。
开始
CLR DQ向DS18B20
发出reset脉冲
程序初始化
N
等待480 s以上?
Y
有键输入吗?
Y
N
SETB DQ等待
执行相应键
的功能
15~60 s
采集温度值
DQ是否变低?
N
将采集到的值转
化为压缩BCD码
Y
置FLAG标志
并延时200 s
清除FLAG标志
显示温度值
初始化结束
图2.2.2主程序流程图 图2.2.3DS18B20初始化程序流程图
开始
DS18B20初始化
开始
写入CCH,SKIP ROM
DS18B20初始化
写入BEH,发转换命令
写入CCH,SKIP ROM
SETB DQ
写入44H,发转换命令
延时1s以上
CLR DQ,准备发送
CLR DQ准备发送
延时15 s
延时1s 以上
写入1位数据
SETB DQ 释放总线
延时15~45 s
读取1位数据
SETB DQ完成1位写入
延时15~45 s
2
N
8位写完了吗?
Y
完成
N
8位读完了吗?
Y
完成
2024年6月14日发(作者:苑晓燕)
百度文库 - 让每个人平等地提升自我!
6.4实施—制作过程
6.4.1硬件设计
温度测量采用最新的单线数字温度传感器DS18B20,DS18B20是美国DALLAS半导体公司最新推出
的一种改进型智能温度传感器。与传统的热敏电阻相比,它能够直接读出被测温度并且可根据实际要求通
过简单的编程实现9~12位的数字值读数方式。可以分别在93.75ms和750ms内完成9位和12位的数字
量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率
来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而,使用DS18B20可
使系统结构更趋简单,可靠性更高。
降温控制系统采用低压直流电风扇。当温度高于设定最高限温度时,启动风扇降温,当温度降到指定
最高限温度以下后,风扇自动停止运转。
温控系统的温度显示和温度的设定直接采用综合实训板上的显示和键盘。当环境温度低于设定的最低
限温度值时,也采用综合实训板上的蜂鸣器进行报警。用0#、1#键作为温度最高限、最低限的设定功能键;
2#、3#键作为温度值设定的增加和减小功能键。
0#键:作为最高限温度的设定功能键。按一次进入最高限温度设定状态,选择最高限温度值后,再按
一次确认设定完成。
1#键:作为最低限温度的设定功能键。按一次进入最低限温度设定状态,选择最低限温度值后,再按
一次确认设定完成。
2#键:+1功能键,每按一次将温度值加1,范围为1~99℃。
3#键:-1功能键,每按一次将温度值减1,范围为99~1℃。
DS18B20
+5V+5V
A
2
PB0PB7
1
3
4.7 k
BELL
74ALS02
U18051U28155
+5V
13921
12
P10P00AD0PA0
23822
13
P11P01AD1PA1
33723
14
P12P02AD2PA2
43624
15
P13P03AD3PA3
D253525
16
P14P04AD4PA4
4004
63426
17
P15P05AD5PA5
73327
18
P16P06AD6PA6
83228
19
P17P07AD7PA7
+5V
132129
INT1P20PB0
8550
122230
8
INT0P21CEPB1
9
2331
P22RDPB2
LED1LED2
10
152432
T1P23WRPB3
142533
+5V7
T0P24IO/MPB4
20p
2634
11
P25ALEPB5
312735
P26PB6
EA/VP
+5V
2836
P27PB7
20p
1
6
0
19
X1TMROUT
PC0
37
12M
18
X2PC0
38
3
2
PC1
PC1
3
91039
RESETRXDTMRINPC2
111
5
4
TXDPC3
PC2
17302
PC4
ALE/P
RD
16295
4
RESETPC5
PSEN
WR
PA0
PA1
+5V
G
N
D
123
V
c
c
D
Q
+
A
-
6.4.2软件设计
图2.2.1温控系统硬件接线原理图
(1)温控系统采用模块化程序结构,可以分成以下程序模块:
①系统初始化程序:首先完成变量的设定、中断入口的设定、堆栈、输入输出口及外部部件的初始化
工作。
②主程序MAIN:完成键盘扫描、温度值采集及转换、温度值的显示。当温度值高于设定最高限时,
驱动风扇工作;当温度值低于设定最低限时,驱动蜂鸣器报警。
③键盘扫描程序KEYSCAN:完成键盘的扫描并根据确定的键值执行相应的功能,主要完成最高温度、
最低温度的设定。
④温度采集程序GET_TEMPER:完成DS18B20的初始化并发出温度转换命令,经过指定时间后读取
转换的温度值。
根据DS18B20的通信协议,主机控制DS18B20完成温度转换必须经过3个步骤:每一次读写之前都
要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20
进行预定的操作。复位要求CPU将数据线下拉500μs,然后释放。DS18B20收到信号后等待16~60μs
1
h
p
g
f
e
d
c
b
a
百度文库 - 让每个人平等地提升自我!
左右,后发出60~240μs的存在低脉冲,CPU收到此信号表示复位成功。
⑤温度转换程序TEMPER_COV:根据精度要求对采集到的温度值进行处理并转换成便于显示的BCD
码值。
⑥显示子程序DISPLAY:显示实时温度及设定温度值。
⑦DS18B20初始化子程序INIT_1820:DS18B20在工作之前必须按照指定的要求完成初始化工作,否
则无法正常工作。
⑧DS18B20读写子程序WRITE_1820、READ_1820、READ_1820T完成对18B20的读写功能,其中,
READ_1820从DS18B20中读出一个字节的数据,READ_1820T从DS18B20中读出两个字节的温度数据。
⑨延时程序DELAY、DELAY1满足18B20要求的延时间隔及程序中的延时功能。
DS18B20
初始化
(2)软件流程框图分别如图2.2.2、2.2.3、2.2.4、2.2.5和2.2.6所示。
开始
CLR DQ向DS18B20
发出reset脉冲
程序初始化
N
等待480 s以上?
Y
有键输入吗?
Y
N
SETB DQ等待
执行相应键
的功能
15~60 s
采集温度值
DQ是否变低?
N
将采集到的值转
化为压缩BCD码
Y
置FLAG标志
并延时200 s
清除FLAG标志
显示温度值
初始化结束
图2.2.2主程序流程图 图2.2.3DS18B20初始化程序流程图
开始
DS18B20初始化
开始
写入CCH,SKIP ROM
DS18B20初始化
写入BEH,发转换命令
写入CCH,SKIP ROM
SETB DQ
写入44H,发转换命令
延时1s以上
CLR DQ,准备发送
CLR DQ准备发送
延时15 s
延时1s 以上
写入1位数据
SETB DQ 释放总线
延时15~45 s
读取1位数据
SETB DQ完成1位写入
延时15~45 s
2
N
8位写完了吗?
Y
完成
N
8位读完了吗?
Y
完成