课程设计报告基于--单片机温度监测系统.doc
《课程设计报告基于--单片机温度监测系统.doc》由会员分享,可在线阅读,更多相关《课程设计报告基于--单片机温度监测系统.doc(23页珍藏版)》请在咨信网上搜索。
- . 目录 一.前言1 二.根本功能与参数2 2.1系统根本功能2 2.2 参数2 三.系统总体设计2 四.硬件设计3 4.1 单片机最小系统设计3 4.1.1 电源电路3 4.1.2 振荡电路与复位电路3 4.2 DS18B20与单片机的接口电路4 4.3独立式键盘电路4 4.4报警模块5 4.5 数码管显示模块5 4.6 PROTEUS仿真图6 4.7 DS18B20简单介绍6 五.软件设计7 5.1 主程序流程图8 5.2读出温度子程序8 5.3温度转换命令子程序9 5.4计算温度子程序10 5.5按键扫描处理子程序11 六.心得及体会:11 参考文献:12 附录Ⅰ元件清单12 附录Ⅱ总体电路图13 附录Ⅲ源程序14 基于单片机的温度检测系统设计 孟祥柱 航空航天大学自动化学院 摘要:随着时代的进步和开展,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比拟成熟的技术。本文主要设计了一个基于AT89C51单片机的温度监测系统,详细描述了利用数字传感器DS18B120完成监测温度的过程,重点对系统的硬件连接,软件编程,各模块系统流程以及各局部的电路进展了分析介绍。本设计是以AT89C51为核心,通过温度传感器DS18B20将温度值转换为电量输出,可以利用小键盘设定温度的最大值和最小值,对于超过最大值或者最小值的温度数据通过红黄灯进展报警,所以这个系统使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工、农业生产中的温度测量,具有广泛的应用前景。 关键词:单片机AT89C51;温度采集;温度传感器DS18B20;报警功能 一.前言 传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的本钱低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。这里设计的数字温度计具有读数方便,测温围广,测温准确,数字显示,适用围宽等特点。本设计选用STC89C52型单片机作为主控制器件,DS18B20作为测温传感器,通过LED数码管实现温度显示。通过DS18B20直接读取被测温度值,进展数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。 二. 根本功能与参数 2.1系统根本功能 a.实现温度的实时测量与显示。 b.可手动设置监测温度围的上限和下限。 c.超出温度监测围,可进展声光报警或执行预定操作。 2.2 参数 a. DS18B20 的温度测量围为-55°C~+125°C,在-20°C~+60°C 围,精度为±0.5°C b.显示温度值准确到0.1°C,监测温度准确到1°C c.精度误差小于0.5℃ 三.系统总体设计 本设计的温度测量报警系统以STC89C52 单片机为核心部件,外加温度采集电路、键盘及显示电路、越限报警等电路。采用数字温度芯片DS18B20 测量温度,输出信号全数字化。由数字温度计DS18B20和STC89C52单片机构成的温度测量装置,它直接输出温度的数字信号。利用STC89S52芯片控制温度传感器DS18B20进展实时温度检测并显示,快速测量环境温度,并可以根据需要设定上下限温度。系统框图如图1所示。 时钟振荡电路 STC89C52 复位电路 电源电路 LED报警显示 LED数码管显示 蜂鸣器报警 键盘调整控制模块 DS18B20 温度传感器 图1 DS18B20温度测温系统框图 四.硬件设计 4.1 单片机最小系统设计 4.1.1 电源电路 图2 电源电路 4.1.2 振荡电路与复位电路 晶振采用12MHZ。复位电路采用上电加按钮复位。 图3 振荡电路图4 复位电路 4.2 DS18B20与单片机的接口电路 图5 DS18B20与单片机的接口电路 4.3独立式键盘电路 图6 独立式键盘电路 4.4报警模块 图7 报警电路 4.5 数码管显示模块 显示电路采用4位共阴极LED数码管,P0口由上拉电阻提高驱动能力,作为段码输出并作为数码管的驱动。P2口的低四位作为数码管的位选端。采用动态扫描的方式显示。 图8 数码管显示电路 4.6 proteus仿真图 图9 proteus仿真图 4.7 DS18B20简单介绍 DS18B20 的性能特点如下 ●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 ●DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温 ●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路 ●适应电压围更宽,电压围:3.0~5.5V,在寄生电源方式下可由数据线供电 ●温围-55℃~+125℃,在-10~+85℃时精度为±0.5℃ ●零待机功耗 ●可编程的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温 ●在9位分辨率时最多在93.75ms把温度转换为数字,12位分辨率时最多在750ms把温度值转换为数字,速度更快 ●用户可定义报警设置 ●报警搜索命令识别并标志超过程序限定温度〔温度报警条件〕的器件 ●测量结果直接输出数字温度信号,以"一线总线"串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 ●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作 DS18B20部构造主要由四局部组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置存放器。DS18B20的管脚排列、各种封装形式如图11所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 图10外部封装形式 五. 软件设计 系统程序主要包括主程序、读取温度子程序、温度转换命令子程序、计算温度子程序、按键扫描处理子程序、显示数据子程序等。 5.1 主程序流程图 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度测量每1s进展一次。这样可以在一秒之测量一次被测温度,其程序流程见图11所示。 初始化 读取温度 SET键是否按下 读出温度值温度计算处理显示数据刷新 发温度转换开场命令 N Y 调用显示子程序 设置报警温度 图11 主程序流程图 5.2读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进展CRC校验,校验有错时不进展温度数据的改写。其程序流程图如图12所示。 5.3温度转换命令子程序 温度转换命令子程序主要是发温度转换开场命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图13所示。 Y 发DS18B20复位命令 发跳过ROM命令 发读取温度命令 读取操作,CRC校验 9字节完? CRC校验正?确? 移入温度暂存器 完毕 N N Y 发DS18B20复位命令 发跳过ROM命令 发温度转换开场命令 完毕 图12 读温度流程图 图13 温度转换流程图 5.4计算温度子程序 计算温度子程序将RAM中读取值进展BCD码的转换运算,并进展温度值正负的判定,其程序流程图如图14所示。 开场 温度零下? 温度值取补码置“1〞标志 计算小数位温度BCD值 计算整数位温度BCD值 完毕 置“0〞标志 N Y 图14 计算温度流程图 5.5按键扫描处理子程序 按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否那么显示当前温度。 如下列图15示。 SET键按下 ADD键按下 DEC键按下 显示切换标志位是否为“0〞 调用显示子程序 报警温度加1 报警温度减1 Y N Y N Y N 图15 按键扫描处理子程序 六.心得及体会: 此次实习我用单片机做一个完整的系统,在完成的过程中走了很多弯路,比方由于对硬件方面的东西尚不熟,查阅资料以及准备材料时都没有考虑到实践的可行性,在这里要特别感实验室的教师给予了我们耐心的指导,并给我们提出了建立性的意见。在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,,虽然以前写过几次程序,但我觉的写好一个程序并不简单。正是通过这些弯路我们才真正学到了不少东西。在做系统的同时,和同学们之间的相互探讨也使我获益匪浅。我们必须学会独立思考,用自己的能力去完成一件作品。有好多的东西,只有我们去试着做了,才能真正的掌握。 参考文献: [1]鑫. 单片机原理与应用 电子工业 2021.1 [2]马忠梅,凯,等. 单片机的C语言应用程序设计(第四版) 航空航天大学 [3]包建华,兴奎等.单片机原理实验与实训教程 东南大学 2021.9 [4] 文涛.单片机语言C51典型应用设计. :人民邮电,1998 [5] 勇,宇.μVision2单片机应用程序开发指南. :科学,1998 [6] 蔡朝洋.单片机控制实习与专题制作. :航天航空大学出社,2000 [7] 复华. 单片机及其应用系统. :清华大学,1992 [8] 为. 单片机典型系统设计实例精讲及其应用系统. :电子工业,2006 [9] 斌,董慧颖. 可重组机器人研究和开展现状. 工业学院学报,2000,19〔4〕:23-27 [10] 道德.单片机接口技术〔C51版〕.:水利水电,1995 附录Ⅰ 元件清单 元件名称 型号 数量 单片机 AT89C51 1 电平转换芯片 74HC573 2 数码管 7SEG-MPX4-CA 1 按键 BUTTON 4 电阻 RES 2 附录Ⅱ总体电路图 附录Ⅲ 源程序 源程序如下 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit ds = P2^0 ; sbit dula = P2^6 ; sbit wela = P2^7 ; sbit beep = P2^1 ; sbit SET1 = P2^2; //定义上限显示调整键 sbit DEC = P2^3; //定义增加减少键 sbit ADD = P2^4; //定义增加减少键 sbit SET2= P2^5; //定义下限显示调整键 int temp ; float f_temp ; int warn_l1 = 50 ; int warn_l2 = 0 ; int warn_h1 = 300 ; int warn_h2 = 1000 ; /************************xian shi *********************/ uchar code table[] = { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f, 0xbf,0x86,0xdb,0xcf, 0xe6,0xed,0xfd,0x87, 0xff,0xef, 0x40 }; void delay(int z) { int a,b ; for(a = 0;a < z ;a++) for(b = 0;b < 120; b++); } void display(uchar num , uchar dat) { uchar i; dula = 0; wela = 0; wela = 1; i = 0x00; i = i | (~(((0x01)<<(num)))); P0 = i; wela = 0; dula = 1; P0 = table[dat]; dula = 0; P0 = 0xff; dula = 0; delay(3); } void dis_temp(int t) { uchar i; i = t/100; display(1,i); i = t%100/10; display(2,i+10); i = t%100%10; display(3,i); delay(5); } /******************************ds18b20 **********************/ void ds_reset() { uint i; ds = 0; i = 103; while(i>0) i--; ds = 1; i = 4; while(i>0) i--; } uchar temp_readbit(void) { uint i; bit dat; ds = 0; i++; ds = 1; i++;i++;i++; dat = ds; i = 8;while(i>0)i--; return(dat); } uchar temp_read(void) { uchar i,j,dat; dat = 0; for(i = 0;i < 8;i++) { j = temp_readbit(); dat = (j << 7)|(dat >> 1); } return(dat); } void temp_write(uchar dat) { uint i; uchar j; bit testb; for(j = 1;j<=8;j++) { testb = dat & 0x01; dat = dat >> 1; if(testb) { ds = 0; i++;i++;i++; ds = 1; i =8;while(i>0)i--; } else { ds = 0; i = 8;while(i>0)i--; ds = 1; i++;i++; } } } void temp_change(void) { ds_reset(); delay(1); temp_write(0xcc); temp_write(0x44); } uint get_temp() { uchar a,b; EA = 0; ds_reset(); delay(1); temp_write(0xcc); temp_write(0xbe); 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_(void) { TMOD = 0X01; PCON = 0X00; SCON = 0X50; TH0 = (65536-10000)/256; TL0 = (65536-10000)%256; EA = 1; ET0 = 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 = 0xff; i = s; while(i--) { dis_temp(get_temp()); } } void deal(int t) { uchar i; if((t > warn_l2)&&(t <= warn_l1)) { warn(10,0x01); } else if(t <= warn_l2) { warn(1,0x02); } else if((t <= warn_h2)&&(t >= warn_h1)) { warn(10,0x04); } else if(t >= warn_h2) { warn(1,0x08); } else { i = 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==0&&SET1==0) { if(ADD==0&&SET1==0) { while(ADD==0) bjxs( warn_h1); warn_h1 = warn_h1+10; if(warn_h1>1000) warn_h1 = 1000; bjxs( warn_h1); } } else if(DEC==0&&SET1==0) { if(DEC==0&&SET1==0) { while(DEC==0) bjxs( warn_h1); warn_h1 = warn_h1-10; if(warn_l1>warn_h1) warn_h1=warn_l1; bjxs( warn_h1); } } } } } if(SET2 == 0) { delay(100); if(SET2 == 0) { while(SET2 == 0) { bjxs( warn_l1); if(ADD==0&&SET2==0) { if(ADD==0&&SET2==0) { while(ADD==0) bjxs( warn_l1); warn_l1 = warn_l1+10; if(warn_l1>warn_h1) warn_l1 = warn_h1; bjxs( warn_l1); } } else if(DEC==0&&SET2==0) { if(DEC==0&&SET2==0) { while(DEC==0) bjxs( warn_l1); warn_l1 = warn_l1-10; if(warn_l1<0) warn_l1=0; bjxs( warn_l1); } } } } } } void scan() { int i; temp_change(); deal(temp); for(i = 0;i < 10;i++) { dis_temp(get_temp()); } EA = 1; } void timer0(void)interrupt 1 { key(); TH0 = (65536-10000)/256; TL0 = (65536-10000)%256; } void main() { dula = 0; wela = 0; init_(); while(1) { scan(); } } . word.zl.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告 基于 单片机 温度 监测 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文