收藏 分销(赏)

基于ds189b20的温度控制设计报告-毕设论文.doc

上传人:可**** 文档编号:2137140 上传时间:2024-05-17 格式:DOC 页数:23 大小:398KB
下载 相关 举报
基于ds189b20的温度控制设计报告-毕设论文.doc_第1页
第1页 / 共23页
基于ds189b20的温度控制设计报告-毕设论文.doc_第2页
第2页 / 共23页
基于ds189b20的温度控制设计报告-毕设论文.doc_第3页
第3页 / 共23页
基于ds189b20的温度控制设计报告-毕设论文.doc_第4页
第4页 / 共23页
基于ds189b20的温度控制设计报告-毕设论文.doc_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、基于ds189b20的温度控制设计报告22摘 要本文主要介绍了一个基于AT89C51单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度检测系统,该系统结构简单,抗干扰

2、能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:AT89C51、DS18B20、温控、自动目 录第一章 概述4第二章 单片机人机接口系统的软件设计62.1 AT89C5262.2 系统组成72.4 显示按键电路设计7第三章 温度测量模块的设计83.1 DS18B20介绍83.2 DS18B20 内部结构103.3温度驱动模块11第四章 温度控制模块设计124.1光电隔离控制电路的设计124.2风扇PWM驱动134.3制冷片的控制以及程序设计13第五章 温度测量试验与分析145.1基本任务14第六章 温度控制试验与分析15总结16参 考 文 献17附录一18第一章 概述测控

3、系统综合课程设计,是一项重要的实践训练,它涉及单片机原理与应用、可编程控制器、传感器技术、测控电路和电子电力技术等课程,是多门课程的综合性设计。1.课程设计任务分解温度测控系统的设计温度控制系统的设计智能测控系统的设计风扇控制电路设计温度传感器程序设计数据处理程序设计风扇控制器程序设计数码管显示程序设计键盘操作程序设计制冷片控制电路设计制冷片控制程序设计图1.1 课程设计的任务分解2主要仪器设备元件DS18B20,单片机实训板、可编程控制器实验台、场效应管、玻璃温度计、小风扇、多功能面包板、插线、万用表,计算机,其它元器件,调试工具等。3课程设计的基本流程课程设计的流程中控制电路的焊接、软件设

4、计和加温系统组装以及箱体制作部分是课程设计的三大核心模块。电路设计与焊接部分主要是18B20的接口电路、光电隔离与场效应管驱动电路以及驱动电路的接口。软件设计主要包括键盘扫描程序、四位数码管动态显示程序、任意浮点数显示程序、输入参数合成、计时器程序、风扇控制程序、制冷片控制程序以及串口通讯程序等。加温系统组装调试以及箱体制作主要完成加温系统中制冷片、散热片、风扇的组装以及上电试运行,箱体制作主要是用硬纸箱板按照参考尺寸15厘米,做一个15X15X15的箱子就可以,同时考虑加温系统的安装以及温度传感器的布置。温度测量试验主要是在一系列标准温场下,用传感器测量的数据与标准玻璃温度计的数据对比,分析

5、测量的精度,根据仪器的引用误差定设备的级别。温度控制试验分加温和降温两部分,通过设定一个比现场温度低或者高的温度,然后系统开始工作,并按照一定的时间间隔将温度和加/降温的时间的数值统计出来。分析温度系统的工作效率。当达到设定值后,将其稳定住,并按照一定的时间间隔采集数据,分析系统的稳定性。第二章 单片机人机接口系统的软件设计2.1 AT89C52AT89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash 存储器。使用Atmel公司高密度非易失性存储器技术制造。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统,可

6、编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89C52可降至0Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可编程

7、Flash AT89C52。2.2 系统组成本系统是通过单片机控制DS18B20 来完成温度测量的全过程的,系统主要由AT89C52单片机、电源、时钟、加热、测温、显示、键盘、报警、复位等电路组成,系统组成框图如图3 所示系统组成图2.2系统的组成2.4 显示按键电路设计显示电路由三片74HC595 驱动三块LED 数码显示器组成,用于显示三位温度值,两位整数,一位小数。该显示电路是AT89C52单片机串行口工作于方式0 的典型应用。74HC595 是一个8 位的串入并出移位寄存器, 与74HC164 类似,但其性能优于74HC164,因为74HC595 内部含有一个锁存器,可用于锁存显示数据

8、,这就使得74HC595 在同步移位时,LED 数码显示器上不会出现乱码。电路中,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单片

9、机共有四个并行I/O 口:P0P3 口。其中P0口有三种用途:用作8 位数据总线DB;与P2 口共同构成16 位地址总线AB,P0 口为低8 位AB;用作一般I/O 口。由P0 口的内部结构可知,其输出驱动级为开漏电路,因而当P0 口用作一般I/O 口时,需外接上拉电阻。按键功能如下:K1:加热控制键。按下K1,CPU 执行指令“CLR P1.1”,将P1.1 口的电平拉低,经74LS04 反相后变高,使发光管D1 点亮,继电器J 动作,J1 闭合,加热器开始加热。K2:禁止加热键。按下K2,CPU 执行指令“SETB P1.1”,将P1.1 口的电平拉高,经74LS04 反相后变低,发光管D

10、1 熄灭,继电器动作,J1 断开,加热器停止加热。K3: 恒温控制键。按下K3,CPU 将当前温度值读入并储存、比较,当温度高于储存值时,执行K2 键功能;当温度低于储存值时,执行K1 键功能。第三章 温度测量模块的设计3.1 DS18B20介绍DALLAS最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济。DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器。温度测量范围为-55+125 摄氏度,可编程为9位12 位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用

11、户设定的报警温度存储在EEPROM中,掉电后依然保存。被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。其最大的特点是单总线数据传输方式,DS18B20 的数据I/O 均由同一条线来完成。DS18B20 的电源供电方式有2 种: 外部供电方式和寄生电源方式。工作于寄生电源方式时, VDD 和GND 均接地

12、, 他在需要远程温度探测和空间受限的场合特别有用, 原理是当1 W ire 总线的信号线DQ 为高电平时, 窃取信号能量给DS18B20 供电, 同时一部分能量给内部电容充电, 当DQ为低电平时释放能量为DS18B20 供电。但寄生电源方式需要强上拉电路, 软件控制变得复杂(特别是在完成温度转换和拷贝数据到E2PROM 时) , 同时芯片的性能也有所降低。因此, 在条件允许的场合, 尽量采用外供电方式。无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电。在这里采用前者方式供电。如图3.1所示:图3.1 DS18B20与单片机接口原理图3.2 DS18B20 内部结构图3.2 DS1

13、8B20 的内部结构DS18B20 内部整体结构DS18B20 内部由64 位光刻ROM、温度传感器、暂存器、EEPROM 等组成,其整体结构如图1 所示。DS18B20 暂存器结构DS18B20 内部有一个9 字节的数据暂存器, 用于温度数据的存放、EEPROM 中的内容拷贝、循环冗余检验码的存放以及内部计算中间结果的暂存等,DS18B20 暂存器结构如图2 所示。3.3温度驱动模块加热测温电路由加热器、继电器、DS18B20 等组成。系统上电复位时,P1 口为高电平,继电器J 不动作,J1 断开,加热器不工作。根据DS18B20 的工作原理, 当总线上只有一个DS18B20 时,不需要对D

14、S18B20 的ID 进行识别,单片机不必提供DS18B20 的64 位ROM 编码,而只要使用一条“跳过ROM”命令,然后就可直接对DS18B20 的存储器进行操作。在这种情况下,单片机启动DS18B20 开始进行温度转换、读取温度数据的流程如图3.3图3.3温度转换、读取数据流程第四章 温度控制模块设计4.1光电隔离控制电路的设计光电耦合器亦称光电隔离器,简称光耦。光电耦合器以光为媒介传输电信号。它对输入、输出电信号有良好的隔离作用。光耦合器一般由三部分组成:光的发射、光的接收及信号放大。输入的电信号驱动发光二极管(LED),使之发出一定波长的光,被光探测器接收而产生光电流,再经过进一步放

15、大后输出。这就完成了电光电的转换,从而起到输入、输出、隔离的作用。由于光耦合器输入输出间互相隔离,电信号传输具有单向性等特点,因而具有良好的电绝缘能力和抗干扰能力。对于开关电路,往往要求控制电路和开关电路之间要有很好的电隔离,这对于一般的电子开关来说是很难做到的,但采用光电耦合器就很容易实现了。图4.1中所示电路就是用光电耦合器组成的开关电路。在图4.1中,在光电耦合器输入端加电信号使发光源发光,光的强度取决于激励电流的大小,此光照射到封装在一起的受光器上后,因光电效应而产生了光电流,由受光器输出端引出,这样就实现了电一光一电的转换。图4.1光电隔离控制电路的设计4.2风扇PWM驱动如图4.2

16、所示是风扇PWM的电路。由单片机控制光电耦合器开关来控制场效应管的导通。导通后给风扇很大的电流以驱动风扇转动图4.2 风扇电路4.3制冷片的控制以及程序设计制冷(制热)工作原理半导体温差致冷是建立在法国物理学家Peltien帕尔帖效应(即温差效应)基础上的具体应用。当电流流经两种不同性质的导体形成接点时,其接点会产生放热和吸热现象,即其两端形成温差而实现制冷和制热。如图 图4.3 制冷片的工作原理依据上述原理,利用半导体材料制成的致冷器称为半导体致冷器,其工作原理图如图1所示。为了便于叙述起见,以一对N/P型半导体材料构成的电偶对介绍工作原理,所谓电偶对就是掼NP结的数量。图1中的N/P型半导

17、体元件通过铜导流片连接起来,当由N通过铜导流片到P通以正向直流电时,在电场作用下,N型半导体中的电子和P型半导体中的空穴背向导流(朝接头)运动,即在导流片接头处N型和P型分别产生电子、空穴。电子、空穴产生的能量来自晶格振动的热能,于是在导流片上产生吸热现象,而在N/P型的另一端产生放热现象,从而产生温差。当放热的高温侧的热量能有效地放热时,吸热的低温侧不断地吸热,使其起到致冷的作用。第五章 温度测量试验与分析5.1基本任务1 温度测量精度:1;2 温度控制精度:3;3 制冷片输出功率可调;4 测量温度值LED显示;5 控制温度值可通过键盘设定;1. 温度测量实验DS18B20测量值28.128

18、.729.429.930.330.831.532.133玻璃温度计值28.328.529.630.130.431.631.732.333.42数据处理与误差分析(最大的引用误差)DS18B20 的测量范围为 -55 + 125 ;在 -10+ 85范围内,精度为0.5C ,测量的精度是很高的。通过数字转换用数码管显示出来的温度和实际温度相差不大。而玻璃温度计本身测量的误差就大,人在读温度的时候由于光线的折射,读取的温度就更不准确,所以DS18B20和玻璃温度计的测量值有很大的差别。相比较而言DS18B20的温度测量值更准确。第六章 温度控制试验与分析*基本任务 1升温 温度测量数值表序号123

19、456789系统测量值28.127.327.527.82828.228.428.628.9时间50s54s49s59s 58s56s56s55s56s 2.降温 温度测量数值表序号123456789系统测量值3231.931.831.731.631.531.431.331.2时间106s110s113s114s116s118s120s121s122s3 恒温表3 温度控制性能数据表控制温度值: 32 时间:分钟时间102030405060708090系统测量值31.831.932.132.132.332.131.93232.2总结通过这几天的的单片机课程设计,我终于完成了数字温度计的设计。在本

20、次设计的过程中,我发现很多的问题,虽然学过单片机的设计,但是真的并不太懂实际的设计。通过这次设计真的让我长进了很多,单片机课程设计重点就在于软件算法的设计,需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论有些东西是很难理解的,更谈不上掌握。从这次的课程设计中,我真真正正地意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。参 考 文 献1 李朝青. 单片机原理及接口技术. 北京航

21、空航天大学出版社,20052 马忠梅等. 单片机的C语言应用程序设计(第4版),20073 江世明. 基于Proteus的单片机应用技术. 电子工业出版社,20094 彭伟. 单片机C语言程序设计实训100例. 电子工业出版社,20095 唐颖.单片机原理与应用及C51程序设计.北京大学出版社,2008附录一温控系统的程序/安装目录下的EXE文件打开后可在电脑上显示当前温度值#include #define uchar unsigned char#define uint unsigned intsbit DS=P22; /define interfacesbit dula=P26;sbit w

22、ela=P27;sbit li=P31;sbit wai=P30;sbit hot=P32; sbit up=P35;sbit down=P36;unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;unsigned char code table1=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef; uint temp; / variable of temperature uint a

23、a=25,bb=0,cc=0,dd=0;void delay(uint count) /delay uint i; while(count) i=200; while(i0) i-; count-; void dsreset(void) /send reset and initialization command uint i; DS=0; i=103; while(i0)i-; DS=1; i=4; while(i0)i-;bit tmpreadbit(void) /read a bit uint i; bit dat; DS=0;i+; /i+ for delay DS=1;i+;i+;

24、dat=DS; i=8;while(i0)i-; return (dat);uchar tmpread(void) /read a byte date uchar i,j,dat; dat=0; for(i=1;i=8;i+) j=tmpreadbit(); dat=(j1); /读出的数据最低位在最前面,这样刚好一个字节在DAT里 return(dat);void tmpwritebyte(uchar dat) /write a byte to ds18b20 uint i; uchar j; bit testb; for(j=1;j1; if(testb) /write 1 DS=0; i

25、+;i+; DS=1; i=8;while(i0)i-; else DS=0; /write 0 i=8;while(i0)i-; DS=1; i+;i+; void tmpchange(void) /DS18B20 begin change dsreset(); delay(1); tmpwritebyte(0xcc); / address all drivers on bus tmpwritebyte(0x44); / initiates a single temperature conversionuint tmp() /get the temperature float tt; uch

26、ar a,b; dsreset(); delay(1); tmpwritebyte(0xcc); tmpwritebyte(0xbe); a=tmpread(); b=tmpread(); temp=b; temp0;a-) for(b=60;b0;b-); void display(uint temp)/显示程序 uchar A1,A2,A2t,A3,ser; ser=temp/10; SBUF=ser; A1=temp/100; A2t=temp%100; A2=A2t/10; A3=A2t%10; dula=0; P0=tableA1;/显示百位 dula=1; dula=0; wela

27、=0; P0=0x7e; wela=1; wela=0; delay(1); dula=0; P0=table1A2;/显示十位 dula=1; dula=0; wela=0; P0=0x7d; wela=1; wela=0; delay(1); P0=tableA3;/显示个位 dula=1; dula=0; P0=0x7b; wela=1; wela=0; delay(1);void xianshi(uint temp1) uint A5,A6; A5=temp1/10; A6=temp1%10; P0=tableA5; dula=1; dula=0; P0=0xef; wela=1; w

28、ela=0; delay(1); P0=tableA6; dula=1; dula=0; P0=0xdf; wela=1; wela=0; delay(1);void keyscan()if(up=0)delay(10);if(up=0)aa+;if(aa=50)aa=0;if(down=0)delay(10);if(down=0)if(aa=0)aa=50;aa-;void main() uchar a; while(1) keyscan(); tmpchange(); bb=tmp(); bb=bb/10; cc=aa-1; dd=aa+1; if(bbdd) for(a=10;a0;a-) xianshi(aa);display(tmp();P1=0x0f;li=0;wai=1;hot=1; if(bb0;a-) xianshi(aa);display(tmp();P1=0xf0;li=0;wai=0;hot=0; if(bb=cc&bb0;a-) xianshi(aa);display(tmp();P1=0x00;li=1;wai=1;hot=1;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服