课程设计基于单片机温度监测系统.doc_第1页
课程设计基于单片机温度监测系统.doc_第2页
课程设计基于单片机温度监测系统.doc_第3页
课程设计基于单片机温度监测系统.doc_第4页
课程设计基于单片机温度监测系统.doc_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、 目录目录一前言.1二 基本功能与参数.22。1 系统基本功能 .22.2 参数.2三系统总体设计.2四硬件设计.34。1 单片机最小系统设计.34.1。1 电源电路.34.1.2 振荡电路与复位电路.34。2 DS18B20 与单片机的接口电路 .44。3 独立式键盘电路 .44.4 报警模块 .54.5 数码管显示模块.54.6 PROTEUS 仿真图 .64.7 DS18B20 简单介绍 .6五 软件设计.75。1 主程序流程图.85。2 读出温度子程序 .85.3 温度转换命令子程序 .95。4 计算温度子程序 .105。5 按键扫描处理子程序 .11六心得及体会:.11参考文献:.1

2、2附录 元件清单.12附录 总体电路图.13附录 源程序.14基于单片机的温度检测系统设计孟祥柱 沈阳航空航天大学自动化学院摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术。本文主要设计了一个基于 AT89C51单片机的温度监测系统,详细描述了利用数字传感器 DS18B120 完成监测温度的过程,重点对系统的硬件连接,软件编程,各模块系统流程以及各部分的电路进行了分析介绍。本设计是以 AT89C51 为核心,通过温度传感器 DS18B20 将温度值转换为电量输出,可以利用小键盘设定温度的最大值和最小值,对于超过最大值或者最小值的温度数据

3、通过红黄灯进行报警,所以这个系统使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工、农业生产中的温度测量,具有广泛的应用前景。关键词:单片机 AT89C51;温度采集;温度传感器 DS18B20;报警功能一前言传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差.这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。本设计选用STC89C52型单片机作为主控制器件,DS18B20作为测温传感器,通过LED数码管实现温度显示.通过DS18B20

4、直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0100最大线性偏差小于0.01。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。二 基本功能与参数2。1 系统基本功能 a.实现温度的实时测量与显示。b.可手动设置监测温度范围的上限和下限。c.超出温度监测范围,可进行声光报警或执行预定操作。2.22.2 参数a. DS18B20 的温度测量范围为 55C+125C,在-20C+60C 范围内,精度为0。5Cb.显示温度值精确到 0。1C,监测温度精确到 1Cc精度误差小于 0。5三系统总体

5、设计本设计的温度测量报警系统以 STC89C52 单片机为核心部件,外加温度采集电路、键盘及显示电路、越限报警等电路。采用数字温度芯片DS18B20 测量温度,输出信号全数字化.由数字温度计DS18B20和STC89C52单片机构成的温度测量装置,它直接输出温度的数字信号。利用STC89S52芯片控制温度传感器DS18B20进行实时温度检测并显示,快速测量环境温度,并可以根据需要设定上下限温度。系统框图如图1所示。时钟振荡电路STC89C52复位电路电源电路LED 报警显示LED 数码管显示蜂鸣器报警键盘调整控制模块DS18B20温度传感器图 1 DS18B20 温度测温系统框图四硬件设计4.

6、1 单片机最小系统设计4.1。1 电源电路Vin1GND2+5V3LM 7805C20.1uF+C1470uF+C3470uFR1KLE DVCCGN DVCCC20.1uF+12V+5V图 2 电源电路4。1。2 振荡电路与复位电路晶振采用 12MHZ。复位电路采用上电加按钮复位。振振12MHzC130pFC230pFAT89C51XTAL1XTAL2 C122uFR21KR1200VCCRES ETV ccRSTV ssAT89C51图 3 振荡电路 图 4 复位电路4.2 DS18B20 与单片机的接口电路图 5 DS18B20 与单片机的接口电路4。3 独立式键盘电路图 6 独立式键盘

7、电路4.4 报警模块图 7 报警电路4.5 数码管显示模块显示电路采用 4 位共阴极 LED 数码管,P0 口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动.P2 口的低四位作为数码管的位选端.采用动态扫描的方式显示。图 8 数码管显示电路 4.6 proteus 仿真图图9 proteus仿真图4。7 DS18B20 简单介绍DS18B20DS18B20 的性能特点如下的性能特点如下独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温DS1

8、8B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内适应电压范围更宽,电压范围:3.05。5V,在寄生电源方式下可由数据线供电温范围55125,在10+85时精度为0.5零待机功耗可编程的分辨率为912位,对应的可分辨温度分别为0。5、0.25、0。125和0。0625,可实现高精度测温在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快用户可定义报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件测量结果直接输出数字温度信号,以一线总线”串行传送给CPU,同时可传送CRC校验码

9、,具有极强的抗干扰纠错能力负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列、各种封装形式如图11所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。图 10 外部封装形式五 软件设计系统程序主要包括主程序、读取温度子程序、温度转换命令子程序、计算温度子程序、按键扫描处理子程序、显示数据子程序等。5。1 主程序流程图

10、主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次.这样可以在一秒之内测量一次被测温度,其程序流程见图11所示。图 11 主程序流程图5。2 读出温度子程序读出温度子程序的主要功能是读出 RAM 中的 9 字节,在读出时需进行 CRC 校验,校验有错时不进行温度数据的改写.其程序流程图如图 12 所示。5.3 温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用 12 位分辨率时转换时间约为 750ms,在本程序设计中采用 1s 显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图 13 所示。初始化读取温度SE

11、T 键是否按下读出温度值温度计算处理显示数据刷新发温度转换开始命令NY调用显示子程序设置报警温度发 DS18B20 复位命令发跳过 ROM 命令发温度转换开始命令 结束图 12 读温度流程图 图 13 温度转换流程图5.4 计算温度子程序计算温度子程序将 RAM 中读取值进行 BCD 码的转换运算,并进行温度值正负的判定,其程序流程图如图 14 所示。Y发 DS18B20 复位命令发跳过 ROM 命令发读取温度命令读取操作,CRC 校验9 字节完?CRC 校验正?确?移入温度暂存器结束NNY图 14计算温度流程图 5.5 按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为 1 时,

12、显示设置温度,否则显示当前温度。如下图 15 示。图 15 按键扫描处理子程序 开始温度零下?温度值取补码置“1”标志计算小数位温度 BCD 值 计算整数位温度 BCD 值 结束置“0”标志NYSET 键按下ADD 键按下DEC 键按下显示切换标志位是否为“0”调用显示子程序报警温度加 1报警温度减 1YNYNYN六心得及体会: 此次实习我用单片机做一个完整的系统,在完成的过程中走了很多弯路,比如由于对硬件方面的东西尚不熟,查阅资料以及准备材料时都没有考虑到实践的可行性,在这里要特别感谢实验室的老师给予了我们耐心的指导,并给我们提出了建设性的意见。在本次设计的过程中,我发现很多的问题,虽然以前

13、还做过这样的设计但这次设计真的让我长进了很多,虽然以前写过几次程序,但我觉的写好一个程序并不简单.正是通过这些弯路我们才真正学到了不少东西。在做系统的同时,和同学们之间的相互探讨也使我获益匪浅。我们必须学会独立思考,用自己的能力去完成一件作品。有好多的东西,只有我们去试着做了,才能真正的掌握.参考文献:1张鑫。 单片机原理与应用 电子工业出版社 2010.12马忠梅,张凯,等. 单片机的 C 语言应用程序设计(第四版) 北京航空航天大学出版社 3包建华,张兴奎等。单片机原理实验与实训教程 东南大学出版社 2008.94 刘文涛。单片机语言 C51 典型应用设计. 北京:人民邮电出版社,1998

14、5 尹勇,李宇。Vision2 单片机应用程序开发指南. 北京:科学出版社,19986 蔡朝洋.单片机控制实习与专题制作. 北京:北京航天航空大学出社,20007 刘复华。 单片机及其应用系统。 北京:清华大学出版社,19928 彭为. 单片机典型系统设计实例精讲及其应用系统。 北京:电子工业出版社,20069 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,19(4):23-2710 张道德。单片机接口技术(C51 版)。北京:水利水电出版社,1995附录 元件清单元件名称型号数量单片机AT89C511电平转换芯片74HC5732数码管7SEG-MPX4-CA1按键

15、BUTTON4电阻RES2附录 总体电路图附录 源程序源程序如下includedefine uint unsigned intdefine uchar unsigned charsbit ds = P20 ;sbit dula = P26 ;sbit wela = P27 ;sbit beep = P21 ;sbit SET1 = P22; /定义上限显示调整键sbit DEC = P23; /定义增加减少键sbit ADD = P24; /定义增加减少键sbit SET2= P25; /定义下限显示调整键int temp ;float f_temp ;int warn_l1 = 50 ;in

16、t warn_l2 = 0 ;int warn_h1 = 300 ;int warn_h2 = 1000 ;/*xian shi */uchar code table = 0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 xbf,0 x86,0 xdb,0 xcf,0 xe6,0 xed,0 xfd,0 x87,0 xff,0 xef,0 x40;void delay(int z)int a,b ;for(a = 0;a z ;a+)for(b = 0;b 120; b+);void display(uchar num

17、, uchar dat)uchar i;dula = 0;wela = 0; wela = 1;i = 0 x00;i = i | (((0 x01)0)i;ds = 1;i = 4;while(i0)i-;uchar temp_readbit(void)uint i;bit dat;ds = 0;i+;ds = 1;i+;i+;i+;dat = ds;i = 8;while(i0)i-;return(dat);uchar temp_read(void)uchar i,j,dat;dat = 0;for(i = 0;i 8;i+)j = temp_readbit();dat = (j 1);r

18、eturn(dat);void temp_write(uchar dat)uint i;uchar j;bit testb;for(j = 1;j 1;if(testb)ds = 0;i+;i+;i+;ds = 1;i =8;while(i0)i;elseds = 0;i = 8;while(i0)i-;ds = 1;i+;i+;void temp_change(void)ds_reset() ;delay(1);temp_write(0 xcc);temp_write(0 x44);uint get_temp()uchar a,b;EA = 0;ds_reset();delay(1);tem

19、p_write(0 xcc);temp_write(0 xbe);a = temp_read();b = temp_read() ;temp = b;temp =8;temp = temp | a;f_temp = temp * 0。0625;temp = f_temp*10+0。5;f_temp =f_temp + 0.05;return temp; /*定时器初始化 */void init_com(void)TMOD = 0X01;PCON = 0X00;SCON = 0X50;TH0 = (6553610000)/256;TL0 = (65536-10000)%256;EA = 1;ET

20、0 = 1;TR0 = 1;/*报警*/void warn(uint s,uchar led)uchar i; i = s;beep = 0;P1 = (led);while(i)dis_temp(get_temp();beep = 1;P1 = 0 xff;i = s;while(i-)dis_temp(get_temp());void deal(int t)uchar i;if((t warn_l2)(t = warn_l1))warn(10,0 x01);else if(t = warn_h1)warn(10,0 x04);else if(t = warn_h2)warn(1,0 x08

21、) ;elsei = 40;while(i)dis_temp(get_temp());/*报 警 监 测 显 示*/void bjxs(int a) int x,y,z;x=a/100; /计算得到 shi 位数字display(5,x) ; y=a/10 x*10; /计算得到 ge 位数字display(6,y+10);z=a-x*100-y*10; /计算得到 xiao 数display(7,z);/*键盘 扫描*/void key() if(SET1 = 0) delay(100);if(SET1 = 0)while(SET1 = 0)bjxs( warn_h1); if(ADD=0SET1=0) if(ADD=0&SET1=0) while(ADD=0)bjxs( warn_h1);warn_h1 = warn_h1+10; if(warn_h11000)warn_h1 = 1000;bjxs( wa

温馨提示

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

评论

0/150

提交评论