最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

温度控制器的设计与制作

IT圈 admin 32浏览 0评论

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,发转换命令

延时1s以上

CLR DQ,准备发送

CLR DQ准备发送

延时15 s

延时1s 以上

写入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,发转换命令

延时1s以上

CLR DQ,准备发送

CLR DQ准备发送

延时15 s

延时1s 以上

写入1位数据

SETB DQ 释放总线

延时15~45 s

读取1位数据

SETB DQ完成1位写入

延时15~45 s

2

N

8位写完了吗?

Y

完成

N

8位读完了吗?

Y

完成

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论