基于单片机DS18B20温度控制器课程设计_第1页
基于单片机DS18B20温度控制器课程设计_第2页
基于单片机DS18B20温度控制器课程设计_第3页
基于单片机DS18B20温度控制器课程设计_第4页
基于单片机DS18B20温度控制器课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用课程设计报告题 目: 温度控制器电路 专 业: 电子信息工程 年 级: 2010级 学 号: * 学生姓名: * 联系电话: * 指导老师: * 完成日期:2013年5月3017摘 要随着时代的进步和发展,温度的测试已经影响到我们的生活、工作、科研、各个领域,已经成为了一种非常重要的事情,因此设计一个温度测试的系统势在必行。本文主要介绍了一个基于AT89C52单片机的数字温度报警器系统。详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现温度

2、的采集和报警,并可以根据需要任意上下限报警温度,它使用起来相当方便,具有量程宽、体积小、功耗低等优点,适合于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块潜入其他系统中,作为其他主系统的辅助扩展。DS18B20与AT89C52结合实现最简温度报警系统,该系统结构简单,有广泛的应用前景。关键词:单片机;温度检测;AT89C52;DS18B20;ABSTRACTWith the era of progress and development, the temperature test has affected our life, work, scientific research,

3、 each domain, has become a very important thing, be imperative system so the design of a temperature test.This paper introduces a digital temperature alarm system based on AT89C52 mcu. Detailed description of the process of digital temperature sensor DS18B20 temperature measurement system developmen

4、t, focusing on the sensor under the SCM hardware connection, software programming and system flow of each module are analyzed in detail, on the part of the circuit are one one are introduced, the system can facilitate the realization of temperature acquisition and alarm, and can according to need an

5、y alarm temperature, it is very convenient to use, has a wide range, small volume, low power consumption, suitable for our daily lives and industrial, agricultural production in the temperature measurement, can also be used as a temperature processing module into other systems, as other auxiliary sy

6、stem. DS18B20 combined with AT89C52 to achieve the most simple temperature alarm system, the system is simple in structure, has the widespread application prospect.Key word. Single chip microcomputer; temperature detection; AT89C52; DS18B20;目录摘 要IABSTRACTII1 设计要求及方案选择11.1设计要求11.2方案选择12 理论分析与设计12.1 芯

7、片介绍12.1.1 DS18B20概述12.1.2 STC89C52介绍22.2系统结构框图32.3程序原理叙述33.电路设计33.1硬件设计33.1.1报警模块43.1.2单片机最小系统电路43.1.3温度采集模块53.2软件设计53.2.1流程框图63.2.2程序设计64、系统测试155、总结16.参考文献171 设计要求及方案选择1.1设计要求1制作完成温度检测系统2温度检测精度1度3温度控制在一定范围内,超出温度设定范围是报警(声光显示)4将学号和姓名打印在铜板上1.2方案选择方案一:采用热敏电阻,热敏电阻精度、重复性、可靠性较差,对于检测1摄氏度的信号是不适用的,在温度测量系统中,也

8、常采用单片温度传感器,比如AD590,LM35等。但这些芯片输出的都是模拟信号,必须经过A/D转换后才能送给计算机,这样就使测温系统的硬件结构较复杂。要用到复杂的算法,一定程度上也增加了软件实现的难度。方案二:采用单总线数字温度传感器DS18B20测量温度,直接输出数字信号。便于单片机处理及控制,节省硬件电路。且该芯片的物理化学性很稳定,此元件线形性能好,在0100摄氏度时,最大线形偏差小于1摄氏度。DS18B20的最大特点之一采用了单总线的数据传输,由数字温度计DS18B20和微控制器STC89C52构成的温度装置,它直接输出温度的数字信号到微控制器。每只DS18B20具有一个独有的不可修改

9、的64位序列号,根据序列号可访问不同的器件。综上分析,我们选用第二种方案。2 理论分析与设计2.1 芯片介绍2.1.1 DS18B20概述DS18B20是Dallas公司继DS1820后推出的一种改进型智能数字温度传感器,与传统的热敏电阻相比,只需一根线就能直接读出被测温度值,并可根据实际需求来编程实现912位数字值的读数方式。DS18B20封装形式及引脚功能图2-1-1 DS18B20封装形式和引脚功能如图2-1-1所示,DS18B20的外形如一只三极管,引脚名称及作用如下:GND:接地端。DQ:数据输入/输出脚,与TTL电平兼容。VDD:可接电源,也可接地。因为每只DS18B20都可以设置

10、成两种供电方式,即数据总线供电方式和外部供电方式。采用数据总线供电方式时VDD接地,可以节省一根传输线,但完成数据测量的时间较长;采用外部供电方式则VDD接+5V,多用一根导线,但测量速度较快2.1.2 STC89C52介绍STC89C52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash 存储器。使用宏晶科技公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方

11、案。由于此单片机应用在仓库温湿度检测上,所以本设计选用了低功耗、高性能、低价格。小管脚(40脚)的STC89C52单片机。如图2-1-2所示:图2-1-2 STC89C52单片机2.2系统结构框图系统主要包括数据采集模块,单片机控制模块,显示模块和温度设置模块,驱动电路五个部分。系统框图如图2-2-1 所示。单片机显示电路报警电路温度传感器图2-2-1系统结构款图2.3程序原理叙述其中温度采集模块负责利用DS18B20传感器实时采集温度数据,并将采集到的温度数据传输到单片机控制模块,单片机控制模块将检测到的数据进行处理后送到LCD显示模块进行显示,同时将数据与系统默认的温度上限32°

12、C进行比较,如果检测到的温度超过32°C或低于20°C,就将发光二级管点亮进行报警。3.电路设计3.1硬件设计3.1.1报警模块报警电路用一个三极管驱动一只蜂鸣器组成,驱动信号由芯片的管脚RD/P3.7控制。当显示的温度不在设定的温度范围内,即不在TL与TH之间则驱动蜂鸣器发声报警,其电路如图3-1-1所示。图3-1-1 报警电路3.1.2单片机最小系统电路在课题设计的温度控制系统设计中,控制核心是STC89C52单片机,该单片 机为51系列增强型8位单片机,它有32个I/O口,片内含4K FLASH工艺的序存储器,便于用电的方式瞬间擦除和改写,而且价格便宜,其外部晶振为1

13、2M一个指令周期为1S。使用该单片机完全可以完成设计任务,其最小系统主包括:复位电路、震荡电路以及存储器选择模式,如图3-2-1所示 图3-1-2单片机最小电路3.1.3温度采集模块在硬件完成后,为了使作品能够实现预定的功能和效果,因此需要对环境温度进行采集. 在本设计中采用外部供电方式实现DS18B20传感器与单片机的连接如图3-1-3所示.图3-1-3温度传感器接口3.2软件设计3.2.1流程框图图3-2-1程序流程框图3.2.2程序设计#include<reg52.h>#define uchar unsigned char #define uint unsigned int

14、uchar i;sbit lcdrs=P25;sbit lcdrw=P26;sbit lcden=P27;sbit d1=P13;sbit d2=P14;uchar code t0="Nou temp is C "uchar code t1="Make by teng bo "uchar code wendu="0123456789" /利用一个温度表解决温度显示乱码sbit DQ = P36;/定义ds18B20总线IOsbit beep=P37;/蜂鸣器/液晶显示模块void delay(uint z)uint x,y;for(x

15、=100;x>1;x-)for(y=z;y>1;y-);void write_com(uchar com)lcdrs=0;P0=com;delay(5);lcden=1;delay(5);lcden=0;void write_date(uchar date)lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;void init_lcd()lcden=0;lcdrw=0;write_com(0x38);write_com(0x01);write_com(0x0c);write_com(0x06);write_com(0x80);for(

16、i=0;i<16;i+)write_date(t0i);delay(0);write_com(0x80+0x40);for(i=0;i<16;i+)write_date(t1i);delay(0);/温度采集模块void tmpDelay(int num)/延时函数while(num-) ;/*/void Init_DS18B20()/初始化ds1820unsigned char x=0;DQ = 1; /DQ复位tmpDelay(8); /稍做延时DQ = 0; /单片机将DQ拉低tmpDelay(80); /精确延时 大于 480usDQ = 1; /拉高总线tmpDelay(

17、14);x=DQ; /稍做延时后 如果x=0则初始化成功 x=1则初始化失败tmpDelay(20); unsigned char ReadOneChar()/读一个字节unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i-)DQ = 0; / 给脉冲信号dat>>=1;DQ = 1; / 给脉冲信号if(DQ)dat|=0x80;tmpDelay(4);return(dat);void WriteOneChar(unsigned char dat)/写一个字节unsigned char i=0;for (i=8; i&

18、gt;0; i-)DQ = 0;DQ = dat&0x01;tmpDelay(5);DQ = 1;dat>>=1; unsigned int Readtemp()/读取温度unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE);

19、 /读取温度寄存器a=ReadOneChar(); /连续读两个字节数据 /读低8位 b=ReadOneChar(); /读高8位t=b;t<<=8;t=t|a; /两字节合成一个整型变量。tt=t*0.0625;t=t-5;return(t);void display()unsigned int num,num1; /定义的时候用uchar宏定义就会出错unsigned int shi,ge,xiaoshu; /这里的num,shi,ge,xiaoshu 必须用unsigned int无符号整数来表示,用unshigned char 字符型则显示错误num=Readtemp();

20、num1=num/10;if(num1>32) d1=0;d2=0;beep=0;delay(500);if(num1<20) d1=0;d2=0;beep=0;delay(500);else d1=1;d2=1;beep=1; shi=num/100; ge=num/10%10; xiaoshu=num%10;write_com(0x80+11);write_date(wendushi);write_com(0x80+12);write_date(wenduge);write_com(0x80+13);write_date(0x2e);write_com(0x80+14);wri

21、te_date(wenduxiaoshu);void main() init_lcd();while(1) display(); delay(10); 4、系统测试当温度传感器DS18B20接受到外界环境温度的变化时,如:将火苗靠近传感器或用电吹风对传感器加热等,这时传感器对这个信号进行采样处理,将这个数字信号输入到主模块单片机STC89C52中进行处理。由单片机的IO口将各个信号送入相应的单元电路,P3.7口接收数字信号,P2.5,P2.6,P2.7输出信号到位驱动,P1.0,P3.0,P3.1输出信号到段驱动,查看是否处于饱和区或截止区和输入一个高温临界点,最后在从单片机的P2.5脚接入高温报警电路控制部分,用于发光二极管和继电器的控制。检查焊接是否规范,线路是否接错,确保基本的错误没有后,接通电源,检查前级和后级,看看数码管是否正常显示,最后再加热传感器,使其达到设定的高温临界点,如果实现了报警,证明设计成功了,如果没有还需一级一级的仔细检查。在焊接的过程中,为保证焊点牢固、接触良好与美观,不存在虚焊、假焊,在焊接前要用刀、断锯条或砂纸刮去或打光引脚引线上的油污、氧化膜或漆,直至露出光亮干净的表面,之后涂上松香溶液,其上搪一层锡。焊接时应掌握好温度及时间,焊接时间一般在35秒。若焊接时间过短,焊锡未与焊件充分浸熔易产生虚焊、假焊;时间过长,则

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论