欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数字温度警报器.docx

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

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

    数字温度警报器.docx

    1、数字温度警报器 中文摘要数字温度警报器是利用传感器检测温度。采用数码管显示当前温度。当温度低于下限温度或者高于上限温度时系统发出报警声,从而起到测量和报警的功能。本系统以AT89C52单片机作为主控系统,利用DS18B20数字温度传感器作为温度传感器件。通过四位共阳极数码管作为显示器件,通过单片机控制温度显示温度。并可以设置温度上下限,当温度不在设置的温度范围内,蜂鸣器发出报警声。分析了温度传感器的工作原理。系统硬件电路以及软件部分的设计。实际测试表明。该方案切实可行并已在许多通信领域得到广泛应用。关键词: 单片机,温度警报,DS18B20,AT89C52ABSTRACTIs to use d

    2、igital temperature alarm temperature sensor detection. Using digital tube display the current temperature. When the temperature is lower than the floor temperature or higher than ceiling temperature alarm system, to measure and alarm function. This system with AT89C52 single-chip computer as the mas

    3、ter control system, using DS18B20 digital temperature sensor as temperature sensor. Through the four digital tube as a display device, a total of anode, by single-chip microcomputer control temperature display temperature. And can set the upper and lower temperature, when the temperature is beyond t

    4、he scope of the temperature of the set, alarm buzzer. Analyzed the working principle of temperature sensor. The system hardware circuit and software part of the design. The practical tests show that. The scheme is feasible and has been used widely in many fields of communications. Key words: single

    5、chip microcomputer, temperature alarm, DS18B20, AT89C52目录第一章 引言 1.1概论 1.2设计方案及研究内容 第二章 相关技术 1.1温度检测芯片DS18B20 1.2所用代码 第三章 系统硬件设计 1.1所用硬件及简介 1.2 各个部分电路与分析 最小系统 温度采集电路 LED显示报警电路 第四章 系统软件设计 1.1流程图 主程序流程图 DS18B20读温度流程图 报警程序流程图 1.2 实物图及测试结果 总结 参考文献 附录A 附录B附录C 致谢 第一章 引言1.1概论本次试验主要运用在单片机方面实行软件控制硬件及用简单的C语言程序

    6、加上在最小系统的基础上做一些简单的修改做到对温度的检测什么是单片机呢?单片机 一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/ 计数器等功能集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机、发展到现在的32位300M的高速单片机。1.2 设计方案及研究内容随着传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发。本文设计了一种基于单片机AT89C52的温度检测及报警系统。该系统将

    7、温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。本次课程设计的测量范围为0-99,测量误差为2。第二章 相关技术1.1温度检测芯片DS18B20DS18B20数字温度传感器接线方便,封装成后可应用于多种场合,如管道式,螺纹式,磁铁吸附式,不锈钢 封装式,型号多种多样,有LTM8877,LTM8874等

    8、等。主要根据应用场合的不同而改变其外观。封装后的DS18B20可用于电缆沟测温,高炉水循环测温,锅炉测温,机房测温,农业大棚测温,洁净室测温,弹药库测温等各种非极限温度场合。耐磨耐碰,体积小,使用方便,封装形式多样,适用于各种狭小空间设备数字测温和控制领域。DS18B20在出厂时以配置为12位,读取温度时共读取16位,所以把后11位的2进制转化为10进制后在乘以0.0625便为所测的温度,还需要判断正负。前5个数字为符号位,当前5位为1时,读取的温度为负数;当前5位为0时,读取的温度为正数。1.2温度所用代码void convert(void) /启动DS18B20开始温度转换 bit err

    9、; err=reset(); /复位传感器 wrbyte(0xcc); /跳过多传感器识别 wrbyte(0x44); /启动温度转换 int readt(void) /读取DS18B20暂存器中的温度值 uchar h,l; bit err; err=reset(); /复位传感器 wrbyte(0xcc); /跳过多传感器识别 wrbyte(0xbe); /读暂存器指令 l=rdbyte(); /读温度低位 h=rdbyte(); /读温度高位 return(h*256+l); main() bit zf; /正负标记,0:正数 1:负数 while(1) convert(); /启动温度

    10、转换 t=readt(); /读取温度值 zf=0; if(t4; dbuf3=t/100; /求出百位 t=t%100; dbuf2=t/10; /求出十位 dbuf1=t%10; /求出个位 if(zf=1) /如果是负数 if(dbuf2=0) /如果十位为0 dbuf3=0x13; /显示格式为 -x.x dbuf2=0x12; else /如果十位不为0 dbuf3=0x12; /显示格式为-xx.x else /否则,如果是正数 if(dbuf3=0) /如果百位、十位都是0 if(dbuf2=0) /显示格式为 x.x dbuf2=0x13; / 如果只有百位为0 dbuf3=0

    11、x13; /显示格式为 xx.x disp(); alarm(); void alarm() /报警 if(setValue_low=t | setValue_high=t) beep=beep; led=led; /在温度允许范围,不报警 else beep=1; 第三章 系统硬件设计1.1所用硬件及简介 RP1 排阻 C1、C2 电容 33P ;C3 电容 100u ;S1 按键开关;X1 晶振 12M ;Q1 三极管 PNP ; LS1 蜂鸣器;U1 51单片机;U2 温度传感器;U3 集成芯片;U4 4位7段数码管 共阳; 串口头 母头;USB头;洞洞板其中(一些元器件需要注意):4位

    12、数码管 共阳-焊接的时候顺序一定要对,千万不能跟共阴的数码管搞混合;DS18B20温度传感器注意接地和VCC接口不要接反 和最小系统电路连接时要接对引脚不能搞混;串口头 母头 RS-232端口引脚定义:(因为计算机后面的串口多为公头,所以此母头可以直接插入计算机的COM口进行连接) 引脚序号:2 3 5 信号定义:TXD RXD 地 (只要接2号、3号和5号口接可以了);PNP三极管:左边第一脚是b,中间是c,右边是e这样的话c接高电平,e接低电平,b接低电平三极管就会导通。b接高电平就会截止。还有些情况,中间是b左边是e右边是c。可用万用表测一下就好了 (得接的时候要在后面加个小电阻 不然三

    13、极管会烧坏)1.2 各个部分电路与分析最小系统本次课程设计中选用AT89C52式单片机,其最小系统主要由电复位、振荡电路组成。单片机的最小系统如图所示。单片机的复位电路原理是在单片机的复位引脚RST上电阻和电容,实现上电复位。当复位电平持续两个时钟周期以上时复位有效。复位电路由按键复位和上电复位两部分组成,上电复位是在复位引脚上连接一个电容到VCC,再连接一个电阻到GND;按键复位是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。AT89C51单片机使用12MHZ的晶振最为振荡源,由于单片机内部有振荡电路,所以外

    14、部只要连接一个晶振和两个电容即可,电容一般在15pF至50pF之间。外部晶振结合单片机内部电路产生单片机所需的时钟频率。温度采集电路温度采集电路部分,采用数字温度传感器DS18B20进行温度采集。DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3个引脚;温度侧量范围为-55+125,测量精度为0.5;被测温度用符号扩展的16位数字量方式串行输出;CPU只需用一个端口线就可以与DS18B20通信。温度采集电路如图所示LED显示报警电路LED数码管与单片机的P0口相连,单片机将采集到的温度值转化为与数码管对应的数据,通过P0口输出显示。即信号通过译码管的端口a、b、c、d、e、f、

    15、g 、dp 端来控制每段译码管的亮灭与否,同时通过端口1、2、3、4 四个端口来控制四个译码管。在本次设计中,用三极管驱动数码管。同时当采集到的温度值超过所设置的范围时,单片机会输出一信号,通过三极管放大后驱动蜂鸣器发出报警信号。LED数码管报警电路如图所示第四章 系统软件设计1.1流程图主程序流程图主程序中对单片机做了初始化的设计,包含温度的读取、数码管显示、报警三个子系统,运行时由主程序先调用DS18B20读取温度的子函数进行温度采集,再将数据送入数码管显示。同时判断所采集的数据是否超出所设置的温度范围。如果超出,调用报警子系统;未超出,程序自动返回。主程序流程图如图所示DS18B20读取

    16、温度流程图根据DS18B200的通讯协议,单片机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位操作,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作(复位要求主CPU将数据线下拉500微秒然后释放,当DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示复位成功)。DS18B20读取温度时先读取温度低字节,在读取温度高字节。程序中命令0xCC:跳过读序号列号的操作;命令0x44:启动温度转换;命令0xBE:读取温度寄存器等,前两个字节就是温度。后面的寄存器省略不读

    17、。DS18B20读取温度流程图如图所示报警程序流程图程序中首先判断所读取的温度是否超出所设定的下限,如果超出下限,报警器报警;如果没超出下限,再跟上限值比较判断是否超出上限。如果超出,则报警;若无,程序返回。报警程序流程图如图所示1.2 实物图及测试结果 经本人测试结果显示,当我用手握住传感器,温度超过30C时候,蜂鸣器会发出警报;松开传感器,在特殊处理情况下当温度降低到0C以下的时候蜂鸣器也会发出警报。测试结果是正确的。总结 程序在编译过程中,出现了一些语法错误,经过细心修改得以纠正。但是,将程序下载到单片机之后发现数码管上显示的温度十位数数值变化太大各位数基本不变由此可以判定此程序在温度输

    18、出时数值的十位和个位搞混了,经过重新编译修改解决问题,本次试验我最大的问题就是不知道如何焊接数码管,通过查找资料和指导老师的支持才攻克了这一难题。经过四周时间的设计,我的设计完成了所有设计要求,系统能够完成上、下限温度发声报警且显示功能、数字显示温度计功能、输入报警温度出错提示功能。此次温度计设计,让我学会了规范化程序的编写、程序调试的各种方法以及解决调试过程中出现的一系列的问题。更重要的是让我明白程序的优化是多么重要。要想编写出一个系统的程序,就必须十分清楚硬件电路中所用芯片的工作原理以及使用它们的一些注意事项,比如这次设计中所用的DS18B20数字温度传感器,它的时序要求十分严格,由于它是

    19、采用单总线结构的输入输出方法,它的时序中所用到的延时必然很关键,时间过长了会使整个温度计的反应时间变慢,延时时间过短会使传感器不能正常工作参考文献刘建亭,毛善坤DS18B20 工作原理及基于C 语言的接口设计河南科技大学机电工程学院DS18B20XX百科,单片机技术XX百科,最小系统XX百科何立民单片机应用技术选编北京航空航天大学出版,1996何立民主编. MCS-51单片机应用系统设计.北京:北京航天航空大学出版社,1990黄志伟主编.全国大学生电子设计竞赛电路设计.M北京:北京航空航天大学出版社,2006年.P5-P21张学昭、王东云主编.单片机原理、接口技术及应用(含C51).M西安:西

    20、安电子科技大学出版社,2009年.P33-P45张毅刚、刘杰主编.单片机原理与应用.M哈尔滨:哈尔滨工业大学出版社,2010年.P55-P60附录A:总电路图附录B:元器件清单序号 编号 名称 型号 数量1 R1 电阻 4.7K 22 R2 电阻 100K 23 R3 电阻 5K 24 RP1 排阻 5K 25 C1、C2 电容 33P 36 C3 电容 100u 27 S1 按键开关 28 X1 晶振 12M29 Q1 三极管 PNP 210 LS1 蜂鸣器 211 U1 51单片机STC89C52212 U2 温度传感器DS18B20 213 Q1 三极管 PNP型 414 U4 4位7段

    21、数码管共阳 2附录C:程序清单#define uchar unsigned char #include #include sbit DQ=P11; /DS18B20的数据线sbit beep=P12;sbit led=P10;bdata uchar dat; /用于数据收发sbit dat0=dat0; /变量dat的最低位sbit dat7=dat7; /变量dat的最高位uchar dp16=0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9;/小数部分转换uchar code segtab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x

    22、80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0x89,0x8c,0xbf,0xff;uchar dbuf4=0,0,0,0x12;/ 显示缓存uchar setValue_low=10;uchar setValue_high=30;void alarm();int t;void disp(void) /LED动态显示程序 uchar i,n,bsel; bsel=0xfe; /首先点亮最低位 for(n=0;n4;n+) P2=bsel; P0=segtabdbufn; /将显示缓存的数据转换为字段码显示 if(n=1) P0=P0&0x7F; /定点显示小数

    23、点 bsel=(bsel1)+1; /准备显示下一位 for(i=1;i0;i-) /循环写8位(先低位,后高位) DQ=0; /产生15?s的负脉冲 delay15(1); DQ=dat0; /将当前数据位送数据线 dat=dat1; /将下一位要写入的数据移到最低位 delay15(1); /延时15?s DQ=1; /数据线拉高,为写入下一位做准备 uchar rdbyte(void) /从DS18B20 读取一个字节 uchar i; dat=0; /读出数据初值为0 for(i=8;i0;i-) /循环读8位(先低位,后高位) dat=dat1; /读出数据先右移一位 DQ=0; /

    24、产生1?s的负脉冲 _nop_(); DQ=1; /数据总线拉高 delay15(1); /延时15?s dat7=DQ; /读取数据 delay15(4); /延时,为读下一位做准备 return(dat); void convert(void) /启动DS18B20开始温度转换 bit err; err=reset(); /复位传感器 wrbyte(0xcc); /跳过多传感器识别 wrbyte(0x44); /启动温度转换 int readt(void) /读取DS18B20暂存器中的温度值 uchar h,l; bit err; err=reset(); /复位传感器 wrbyte(0

    25、xcc); /跳过多传感器识别 wrbyte(0xbe); /读暂存器指令 l=rdbyte(); /读温度低位 h=rdbyte(); /读温度高位 return(h*256+l); main() bit zf; /正负标记,0:正数 1:负数 while(1) convert(); /启动温度转换 t=readt(); /读取温度值 zf=0; if(t4; dbuf3=t/100; /求出百位 t=t%100; dbuf2=t/10; /求出十位 dbuf1=t%10; /求出个位 if(zf=1) /如果是负数 if(dbuf2=0) /如果十位为0 dbuf3=0x13; /显示格式为 -x.x dbuf2=0x12; else /如果十位不为0 dbuf3=0x12; /显示格式为-xx.x else /否则,如果是正数 if(dbuf3=0) /如果百


    注意事项

    本文(数字温度警报器.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开