基于ds189b20的温度控制设计报告Word文档下载推荐.docx

上传人:b****1 文档编号:2956374 上传时间:2023-05-01 格式:DOCX 页数:30 大小:221.78KB
下载 相关 举报
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第1页
第1页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第2页
第2页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第3页
第3页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第4页
第4页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第5页
第5页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第6页
第6页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第7页
第7页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第8页
第8页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第9页
第9页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第10页
第10页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第11页
第11页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第12页
第12页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第13页
第13页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第14页
第14页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第15页
第15页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第16页
第16页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第17页
第17页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第18页
第18页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第19页
第19页 / 共30页
基于ds189b20的温度控制设计报告Word文档下载推荐.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于ds189b20的温度控制设计报告Word文档下载推荐.docx

《基于ds189b20的温度控制设计报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于ds189b20的温度控制设计报告Word文档下载推荐.docx(30页珍藏版)》请在冰点文库上搜索。

基于ds189b20的温度控制设计报告Word文档下载推荐.docx

电路中,74HC595的SER端与AT89C51的RXD端相连,用以接收来自AT89C51的串行输入信号;

74HC595的SRCLK端与AT89C51的TXD端相连,用以接收来自AT89C51的同步移位时钟脉冲信号;

而74HC595的锁存信号RCLK则由AT89C51的P2.0控制;

74HC595的第9位输出Q8用于多片74HC595的级联。

本系统中由于按键个数较少,为简化系统设计而采用独立式按键。

三个按键分别连接到AT89C52的P0.0,P0.1,P0.2。

AT89C52单片机共有四个并行I/O口:

P0~P3口。

其中P0口有三种用途:

⑴用作8位数据总线DB;

⑵与P2口共同构成16位地址总线AB,P0口为低8位AB;

⑶用作一般I/O口。

由P0口的内部结构可知,其输出驱动级为开漏电路,因而当P0口用作一般I/O口时,需外接上拉电阻。

按键功能如下:

⑴K1:

加热控制键。

按下K1,CPU执行指令“CLRP1.1”,将P1.1口的电平拉低,经74LS04反相后变高,使发光管D1点亮,继电器J动作,J1闭合,加热器开始加热。

⑵K2:

禁止加热键。

按下K2,CPU执行指令“SETBP1.1”,将P1.1口的电平拉高,经74LS04反相后变低,发光管D1熄灭,继电器动作,J1断开,加热器停止加热。

⑶K3:

恒温控制键。

按下K3,CPU将当前温度值读入并储存、比较,当温度高于储存值时,执行K2键功能;

当温度低于储存值时,执行K1键功能。

第三章温度测量模块的设计

3.1DS18B20介绍

DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。

DALLAS半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。

温度测量范围为-55~+125摄氏度,可编程为9位~12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存。

被测温度用符号扩展的16位数字量方式串行输出;

其工作电源既可以在远端引入,也可以采用寄生电源方式产生;

多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

其最大的特点是单总线数据传输方式,DS18B20的数据I/O均由同一条线来完成。

DS18B20的电源供电方式有2种:

外部供电方式和寄生电源方式。

工作于寄生电源方式时,VDD和GND均接地,他在需要远程温度探测和空间受限的场合特别有用,原理是当1Wire总线的信号线DQ为高电平时,窃取信号能量给DS18B20供电,同时一部分能量给内部电容充电,当DQ为低电平时释放能量为DS18B20供电。

但寄生电源方式需要强上拉电路,软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM时),同时芯片的性能也有所降低。

因此,在条件允许的场合,尽量采用外供电方式。

无论是内部寄生电源还是外部供电,I/O口线要接5KΩ左右的上拉电。

在这里采用前者方式供电。

如图3.1所示:

图3.1DS18B20与单片机接口原理图

3.2DS18B20内部结构

图3.2DS18B20的内部结构

DS18B20内部整体结构DS18B20内部由64位光刻ROM、温度传感器、暂存器、EEPROM等组成,其整体结构如图1所示。

DS18B20暂存器结构DS18B20内部有一个9字节的数据暂存器,用于温度数据的存放、EEPROM中的内容拷贝、循环冗余检验码的存放以及内部计算中间结果的暂存等,DS18B20暂存器结构如图2所示。

3.3温度驱动模块

加热测温电路由加热器、继电器、DS18B20等组成。

系统上电复位时,P1口为高电平,继电器J不动作,J1断开,加热器不工作。

根据DS18B20的工作原理,当总线上只有一个DS18B20时,不需要对DS18B20的ID进行识别,单片机不必提供DS18B20的64位ROM编码,而只要使用一条“跳过ROM”命令,然后就可直接对DS18B20的存储器进行操作。

在这种情况下,单片机启动DS18B20开始进行温度转换、读取温度数据的流程如图3.3

图3.3温度转换、读取数据流程

第四章温度控制模块设计

4.1光电隔离控制电路的设计

光电耦合器亦称光电隔离器,简称光耦。

光电耦合器以光为媒介传输电信号。

它对输入、输出电信号有良好的隔离作用。

光耦合器一般由三部分组成:

光的发射、光的接收及信号放大。

输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放大后输出。

这就完成了电—光—电的转换,从而起到输入、输出、隔离的作用。

由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。

对于开关电路,往往要求控制电路和开关电路之间要有很好的电隔离,这对于一般的电子开关来说是很难做到的,但采用光电耦合器就很容易实现了。

图4.1中所示电路就是用光电耦合器组成的开关电路。

在图4.1中,在光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流,由受光器输出端引出,这样就实现了电一光一电的转换。

图4.1光电隔离控制电路的设计

4.2风扇PWM驱动

如图4.2所示是风扇PWM的电路。

由单片机控制光电耦合器开关来控制场效应管的导通。

导通后给风扇很大的电流以驱动风扇转动

图4.2风扇电路

4.3制冷片的控制以及程序设计

制冷(制热)工作原理

半导体温差致冷是建立在法国物理学家Peltien帕尔帖效应(即温差效应)基础上的具体应用。

当电流流经两种不同性质的导体形成接点时,其接点会产生放热和吸热现象,即其两端形成温差而实现制冷和制热。

如图

图4.3制冷片的工作原理

依据上述原理,利用半导体材料制成的致冷器称为半导体致冷器,其工作原理图如图1所示。

为了便于叙述起见,以一对N/P型半导体材料构成的电偶对介绍工作原理,所谓电偶对就是掼NP结的数量。

图1中的N/P型半导体元件通过铜导流片连接起来,当由N通过铜导流片到P通以正向直流电时,在电场作用下,N型半导体中的电子和P型半导体中的空穴背向导流(朝接头)运动,即在导流片接头处N型和P型分别产生电子、空穴。

电子、空穴产生的能量来自晶格振动的热能,于是在导流片上产生吸热现象,而在N/P型的另一端产生放热现象,从而产生温差。

当放热的高温侧的热量能有效地放热时,吸热的低温侧不断地吸热,使其起到致冷的作用。

第五章温度测量试验与分析

5.1基本任务

1温度测量精度:

±

1℃;

2温度控制精度:

3℃;

3制冷片输出功率可调;

4测量温度值LED显示;

5控制温度值可通过键盘设定;

1.温度测量实验

DS18B20测量值

28.1

28.7

29.4

29.9

30.3

30.8

31.5

32.1

33

玻璃温度计值

28.3

28.5

29.6

30.1

30.4

31.6

31.7

32.3

33.4

2.数据处理与误差分析(最大的引用误差)

DS18B20的测量范围为-55℃~+125℃;

在-10~+85℃范围内,精度为±

0.5°

C,测量的精度是很高的。

通过数字转换用数码管显示出来的温度和实际温度相差不大。

而玻璃温度计本身测量的误差就大,人在读温度的时候由于光线的折射,读取的温度就更不准确,所以DS18B20和玻璃温度计的测量值有很大的差别。

相比较而言DS18B20的温度测量值更准确。

第六章温度控制试验与分析

*基本任务

1.升温

温度测量数值表

序号

1

2

3

4

5

6

7

8

9

系统测量值

27.3

27.5

27.8

28

28.2

28.4

28.6

28.9

时间

50s

54s

49s

59s

58s

56s

55s

2.降温

32

31.9

31.8

31.4

31.3

31.2

106s

110s

113s

114s

116s

118s

120s

121s

122s

3.恒温

表3温度控制性能数据表

控制温度值:

32℃时间:

分钟

10

20

30

40

50

60

70

80

90

32.2

总结

通过这几天的的单片机课程设计,我终于完成了数字温度计的设计。

在本次设计的过程中,我发现很多的问题,虽然学过单片机的设计,但是真的并不太懂实际的设计。

通过这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。

从这次的课程设计中,我真真正正地意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。

参考文献

[1]李朝青.单片机原理及接口技术.北京航空航天大学出版社,2005

[2]马忠梅等.单片机的C语言应用程序设计(第4版),2007

[3]江世明.基于Proteus的单片机应用技术.电子工业出版社,2009

[4]彭伟.单片机C语言程序设计实训100例.电子工业出版社,2009

[5]唐颖.单片机原理与应用及C51程序设计..北京大学出版社,2008

附录一

温控系统的程序

//安装目录下的EXE文件打开后可在电脑上显示当前温度值

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

sbitDS=P2^2;

//defineinterface

sbitdula=P2^6;

sbitwela=P2^7;

sbitli=P3^1;

sbitwai=P3^0;

sbithot=P3^2;

sbitup=P3^5;

sbitdown=P3^6;

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

unsignedcharcodetable1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,

0x87,0xff,0xef};

uinttemp;

//variableoftemperature

uintaa=25,bb=0,cc=0,dd=0;

voiddelay(uintcount)//delay

{

uinti;

while(count)

{

i=200;

while(i>

0)

i--;

count--;

}

}

voiddsreset(void)//sendresetandinitializationcommand

DS=0;

i=103;

0)i--;

DS=1;

i=4;

bittmpreadbit(void)//readabit

bitdat;

i++;

//i++fordelay

dat=DS;

i=8;

while(i>

return(dat);

uchartmpread(void)//readabytedate

uchari,j,dat;

dat=0;

for(i=1;

i<

=8;

i++)

j=tmpreadbit();

dat=(j<

<

7)|(dat>

>

1);

//读出的数据最低位在最前面,这样刚好一个字节在DAT里

return(dat);

voidtmpwritebyte(uchardat)//writeabytetods18b20

ucharj;

bittestb;

for(j=1;

j<

j++)

testb=dat&

0x01;

dat=dat>

1;

if(testb)//write1

i++;

else

//write0

voidtmpchange(void)//DS18B20beginchange

dsreset();

delay

(1);

tmpwritebyte(0xcc);

//addressalldriversonbus

tmpwritebyte(0x44);

//initiatesasingletemperatureconversion

uinttmp()//getthetemperature

floattt;

uchara,b;

tmpwritebyte(0xbe);

a=tmpread();

b=tmpread();

temp=b;

temp<

//twobytecomposeaintvariable

temp=temp|a;

tt=temp*0.0625;

temp=tt*10+0.5;

returntemp;

voidreadrom()//readtheserial

ucharsn1,sn2;

tmpwritebyte(0x33);

sn1=tmpread();

sn2=tmpread();

voiddelay10ms()//delay

for(a=10;

a>

0;

a--)

for(b=60;

b>

b--);

voiddisplay(uinttemp)//显示程序

ucharA1,A2,A2t,A3,ser;

ser=temp/10;

SBUF=ser;

A1=temp/100;

A2t=temp%100;

A2=A2t/10;

A3=A2t%10;

dula=0;

P0=table[A1];

//显示百位

dula=1;

wela=0;

P0=0x7e;

wela=1;

P0=table1[A2];

//显示十位

P0=0x7d;

P0=table[A3];

//显示个位

P0=0x7b;

voidxianshi(uinttemp1)

uintA5,A6;

A5=temp1/10;

A6=temp1%10;

P0=table[A5];

P0=0xef;

P0=table[A6];

P0=0xdf;

voidkeyscan()

if(up==0)

delay(10);

if(up==0)

{

aa++;

if(aa==50)

{

aa=0;

}

}

if(down==0)

if(down==0)

if(aa==0)

aa=50;

aa--;

voidmain()

uchara;

while

(1)

keyscan();

tmpchange();

bb=tmp();

bb=bb/10;

cc=aa-1;

dd=aa+1;

if(bb>

dd)

for(a=10;

{

xianshi(aa);

display(tmp());

P1=0x0f;

li=0;

wai=1;

hot=1;

}

if(bb<

cc)

P1=0xf0;

wai=0;

hot=0;

=cc&

&

bb<

=dd)

display(tmp())

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2