欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2021-2022年收藏的精品资料课程设计论文基于单片机温度监测系统.doc

    • 资源ID:30707524       资源大小:451KB        全文页数:21页
    • 资源格式: DOC        下载积分:9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2021-2022年收藏的精品资料课程设计论文基于单片机温度监测系统.doc

    沈阳航空航天大学课程设计 基于单片机的温度监测系统设计 目录一前言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参考文献:12附录 元件清单12附录 总体电路图13附录 源程序14基于单片机的温度检测系统设计 沈阳航空航天大学自动化学院摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术。本文主要设计了一个基于AT89C51单片机的温度监测系统,详细描述了利用数字传感器DS18B120完成监测温度的过程,重点对系统的硬件连接,软件编程,各模块系统流程以及各部分的电路进行了分析介绍。本设计是以AT89C51为核心,通过温度传感器DS18B20将温度值转换为电量输出,可以利用小键盘设定温度的最大值和最小值,对于超过最大值或者最小值的温度数据通过红黄灯进行报警,所以这个系统使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合我们日常生活和工、农业生产中的温度测量,具有广泛的应用前景。关键词:单片机AT89C51;温度采集;温度传感器DS18B20;报警功能一前言传统的温度检测以热敏电阻为温度敏感元件。热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。本设计选用STC89C52型单片机作为主控制器件,DS18B20作为测温传感器,通过LED数码管实现温度显示。通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0100最大线性偏差小于0.01。该器件可直接向单片机传输数字信号,便于单片机处理及控制。另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。二 基本功能与参数2.1系统基本功能 a.实现温度的实时测量与显示。b.可手动设置监测温度范围的上限和下限。c.超出温度监测范围,可进行声光报警或执行预定操作。2.2 参数a. DS18B20 的温度测量范围为 -55°C+125°C,在-20°C+60°C 范围内,精度为±0.5°Cb.显示温度值精确到0.1°C,监测温度精确到1°Cc精度误差小于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.05.5V,在寄生电源方式下可由数据线供电温范围55125,在-10+85时精度为±0.5零待机功耗可编程的分辨率为912位,对应的可分辨温度分别为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键是否按下读出温度值温度计算处理显示数据刷新发温度转换开始命令NY调用显示子程序设置报警温度图11 主程序流程图5.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图12所示。5.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图13所示。Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束图12 读温度流程图 图13 温度转换流程图5.4计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图14所示。 开始温度零下?温度值取补码置“1”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“0”标志NY图14计算温度流程图 5.5按键扫描处理子程序按键采用扫描查询方式,设置标志位,当标志位为1时,显示设置温度,否则显示当前温度。如下图15示。SET键按下ADD键按下DEC键按下显示切换标志位是否为“0”调用显示子程序报警温度加1报警温度减1YNYNYN图15 按键扫描处理子程序六心得及体会: 此次实习我用单片机做一个完整的系统,在完成的过程中走了很多弯路,比如由于对硬件方面的东西尚不熟,查阅资料以及准备材料时都没有考虑到实践的可行性,在这里要特别感谢实验室的老师给予了我们耐心的指导,并给我们提出了建设性的意见。在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,虽然以前写过几次程序,但我觉的写好一个程序并不简单。正是通过这些弯路我们才真正学到了不少东西。在做系统的同时,和同学们之间的相互探讨也使我获益匪浅。我们必须学会独立思考,用自己的能力去完成一件作品。有好多的东西,只有我们去试着做了,才能真正的掌握。参考文献:1张鑫. 单片机原理与应用 电子工业出版社 2010.12马忠梅,张凯,等. 单片机的C语言应用程序设计(第四版) 北京航空航天大学出版社 3包建华,张兴奎等.单片机原理实验与实训教程 东南大学出版社 2008.94 刘文涛.单片机语言C51典型应用设计. 北京:人民邮电出版社,19985 尹勇,李宇.Vision2单片机应用程序开发指南. 北京:科学出版社,19986 蔡朝洋.单片机控制实习与专题制作. 北京:北京航天航空大学出社,20007 刘复华. 单片机及其应用系统. 北京:清华大学出版社,19928 彭为. 单片机典型系统设计实例精讲及其应用系统. 北京:电子工业出版社,20069 李斌,董慧颖. 可重组机器人研究和发展现状. 沈阳工业学院学报,2000,19(4):23-2710 张道德.单片机接口技术(C51版).北京:水利水电出版社,1995附录 元件清单元件名称型号数量单片机AT89C511电平转换芯片74HC5732数码管7SEG-MPX4-CA1按键BUTTON4电阻RES2附录 总体电路图附录 源程序源程序如下#include<reg52.h>#define uint unsigned int#define 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 ;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 = tabledat;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-;elseds = 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_com(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);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=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_com();while(1)scan();20

    注意事项

    本文(2021-2022年收藏的精品资料课程设计论文基于单片机温度监测系统.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开