已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学年论文(设计) 数字温度测量电路的设计及实现(作者:JYQ) 摘要 本文提出了采用单总线数字式温度传感器DS18B20和单片机组成的数字温度测量电路的设计。介绍了温度传感器DS18B20的结构、特点和工作原理,其灵敏度高,精度高,硬件电路简单,可以直接与单片机相连。其次,设计了DS18B20和AT89C52单片机的温度测量系统硬件电路和软件编程,主要包括温度采集、温度显示及报警控制等功能。整个系统具有结构简单,测量精度高,传输距离远,抗干扰能力强,温度读取方便和造价低等一系列优点,适用于生产生活及科学研究中对温度的测量,应用前景十分广阔。关键词 温度测量;单片机;DS18B20温度传感器;LCD显示Digital Temperature Measurement Circuit Design and ImplementationAuthor: JYQAbstract:The article proposes a single-bus digital temperature sensor DS18B20 and the design of microcontroller components digital temperature measurement circuit. The article describes the structure, characteristics and and working principle of temperature sensor DS18B20, its high sensitivity, high precision, and simple hardware circuit, can be directly connected with the microcontroller. Secondly, we designed the microcontroller DS18B20, AT89C52 temperature measurement hardware circuitry and software programming, including temperature acquisition, temperature display and alarm control and other functions. The whole system has advantages such as the simple structure, high accuracy, transmission distance, anti-interference ability, low cost and easy to read temperature, it can apply for the production of life and scientific research in the measurement of temperature, and it has a wide prospects of application.Key words:Temperature measurement; microcontroller; DS18B20 temperature sensor; LCD display 0 引言温度是一个基本物理量,也是一个与人们的生活环境、生产活动密切相关的重要物理量。温度检测系统也已广泛应用于诸多领域。单片机具有体积小,价格便宜,通用性和灵活性强的特点,利用单片机设计温度测量系统,既可以满足功能要求,又经济实惠。数字温度测量传感器DS18B20是单一总线的高精度测量器件,它克服了以前模拟式传感器与微机接口时需要的AD转换器及其他复杂外围电路的缺点。本文就是运用单片机及其接口和集成单总线温度传感器DS18B20构建一个数字温度测量和显示系统,并且通过开关进行温度上下限的设置,如果温度超过设定值就会报警或进行相应的控制命令。设计的电路简单,易于实现,而且还具有一定的扩展功能,可以扩展成多点采集和更复杂的功能。1 系统方案论证方案一由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二用温度传感器DS18B20,此传感器可以很容易直接读取被测温度值,进行转换,易满足设计要求。比较以上两方案,采用方案二,电路简单,软件设计也简单。2 系统硬件设计整个系统主要由主控中心(单片机)、温度传感器DS18B20、及数码管显示等功能模块组成。可以通过调节DS18B20报警温度的上下限,既可以使上下限增加,也可以使上下限减小,这样就可以用于不同场合,系统的框图如图2.1所示。AT89C52DS18B20温度传感器温度显示报警系统图2.1 系统硬件框图2.1 温度传感器DS18B20 LSBMSB111100110DS18B20是美国Dallas半导体公司生产的数字式温度传感器,提供9位温度读数,指示温度。温度信息通过单线接口送入DS18B20或者从DS18B20送出,所以从处理器到DS18B20仅需连接一条线。读、写和完成温度变换所需的电源可以由数据本身提供,而不需要外部电源。这使得DS18B20与单片机接口变得很简单,克服了模拟式传感器与微机接口时需要的AD转换及其他复杂外围电路的缺点,而且它具有结构简单、成本低、体积小、抗干扰能力强、使用简单等优点。最重要的是DS18B20的ROM中存有其芯片的惟一标识码,即任意两个DS18B20的标识码是不同的,特别适合与微处理芯片构成多点温度测量控制系统。DS18B20是DS1820的改进型,分辨率为912位可编程控制,由其寄存器R0,R1的两位状态决定。测量范围从-55+125,在-1085范围内误差为0.5。DS18B20在内部以时钟周期个数计数来测量温度,并且提供0.5的分辨率。温度读数以16位、符号扩展的二进制补码读数形式提供。需要注意的是在DS18B20中温度以1/2LSB(最低有效位)形式表示时,产生以下9位格式:LSBMSB1111001102.1.1 DS18B20初始化时序图主机首先发出一个480-960us的低电平脉冲,然后释放总线变为高电平,并在随后的480us时间内对总线进行检测,如果有低电平出现说明总线上有器件已做出应答,若无低电平出现一直都是高电平说明总线上无器件应答。作为从器件的DS18B20在一上电后就一直在检测总线上是否有480-960us的低电平出现,如果有,在总线转为高电平后等待15-60us后将总线电平拉低60-240us做出响应存在脉冲,告诉主机该器件已做好准备,若没有检测到就一直在检测等待。图2.2 初始化时序图2.1.2 DS18B20写数据时序图写周期最少为60us,最长不超过120us,写周期一开始作为主机先把总线拉低1us表示写周期开始,随后若主机想写0,则继续拉低电平最少60us直至写周期结束,然后释放总线为高电平;若主机想写1,在一开始拉低总线电平1us后就释放总线为高电平,一直到写周期结束。而作为从机的DS18B20则在检测到总线被拉低后等待15us然后从15us到45us开始对总线采样,在采样期内总线为高电平则为1,若采样期内总线为低电平则为0。图2.3 写数据时序图2.1.3 DS18B20读数据时序图对于读数据操作时序也分为读0时序和读1时序两个过程,读时序是从主机把单总线拉低之后,在1us之后就得释放单总线为高电平,以让DS18B20把数据传输到单总线上。DS18B20在检测到总线被拉低1us后,便开始送出数据,若是要送出0就把总线拉为低电平直到读周期结束;若要送出1则释放总线为高电平。主机在一开始拉低总线1us后释放总线,然后在包括前面的拉低总线电平1us在内的15us时间内完成对总线进行采样检测,采样期内总线为低电平则确认为0,采样期内总线为高电平则确认为1,完成一个读时序过程,至少需要60us才能完成。图2.4 读数据时序图2.2 温度和报警系统系统主要采用的是1602LCD液晶显示测量的温度值,由发光二极管和蜂鸣器进行报警。如果测的温度值高于设定值1,报警系统就会报警(发光二极管点亮,蜂鸣器鸣响)。这样可以从声音和视觉上收到系统的警报。2.3 显示电路显示电路采用1602LCD液晶显示,P0口作为液晶显示器的数据端口,读写端口,使能端分别连接单片机P2.5,P2.6,P2.7口,如图2.5所示:图2.5 显示电路3 系统软件设计系统开始工作时,首先进行IO口初始化、报警值初始化,由单片机控制软件发出温度读取指令,通过数字温度传感器DS18B20采集当前温度值,转换后经过单总线传输给单片机,单片机经过处理由1602LCD显示,如果超出设置的报警值1,系统就会报警(发光二极管点亮、蜂鸣器鸣响)。系统的软件部分主要是由读写DB18B20程序、显示程序和报警系统三部分组成,主程序流程图如图3.1所示。报警值的设置初始化DS18B20读出温度值处理显示刷新比较报警值结束温度的转换开机显示“85”图3.1 主程序流程图3.1读温度程序流程读出温度子程序的主要功能是读出RAM的2字节,读出温度的低八位和高八位,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,其程序流程图如图3.2所示:初始化发跳过ROM指令开始温度转换延时2ms初始化写入跳过ROM、读取暂存器和CRC字节指令读取温度的低八位和高八位取中间八位结束图3.2 读温度程序图3.2 写时序子程序流程延时10usdat&0x01dat1de延时40us结束DQ=0DQ=1图3.3 写时序子程序流程图4 系统联调与仿真结果高于70报警电路仿真如下图:图4.1 高于70报警电路仿真图低于-10报警电路仿真如下图: 图4.2 低于20报警电路仿真图正常温度显示电路图:图4.3 无报警时仿真图5 结论与展望在深入分析了数字温度测量电路原理的基础上,完成了该系统的设计任务,该设计以单总线为基本结构,采用AT89C51单片机实现与DS18B20的总线接口,并提供具体电路设计。软件编程采用模块化、结构化思想,便于修改和维护,而且系统结构简单,成本低廉。但由于时间和精力有限,对于该电路的设计还应在应用软件方面逐步完善。DS18B20还可以在远距离多点测温控制方面进行应用开发,具有很好的发展前景。6设计体会通过这次对数字温度计的设计,让我了解了设计电路的程序,也让我了解了关于数字温度计的原理与设计理念,要设计一个完整的电路总要经过多次的失败才能成功,在设计中,也遇到了许多匪夷所思的问题,我深刻认识到,在以后的学习中,要理论联系实际,把所学的理论知识用到实际中,学习单片机更是如此,程序只有在经常的写与读的过程中才能提高。这次学年论文设计是我的又一次全新的尝试,也是一个小小的成功,更是一次很好的锻炼,让我有了全方位的提高和进步。参考文献1 于永,戴佳等.51单片机实例精讲. 电子工业出版社.2 薛庆军,张秀娟等. 单片机原理实验教程. 北京航天航空大学出版社.3 马忠梅,张凯等. 单片机C语言应用程序设计(第四版). 北京航天航空大学出版社.4 何立民. 单片机应用技术选编M. 北京:北京航空航天大学出版社,2004.5 李业德. 单片机和DS18B20组成的多点温度测控系统N.山东理工大学学报,2001,(12).附录:程序如下:#include#include#include#define uchar unsigned char #define uint unsigned intsbit DQ = P37;sbit beep= P15;sbit RS = P26;sbit RW = P25;sbit EN = P27;sbit led=P16;uint T, negativeflag;char tempH=70,tempL=10; /设置上下限温度,以便上下限温度(-10C120C)可调uchar num16;uchar code num1=0123456789;uchar code table=temperature:;void Feng_led(uint t,uint n ); /声明函数void Delayms(uint ms) uchar i;while(ms-) for(i=0;i0;i-) DQ = 0; / 给脉冲信号 dat=1; DQ = 1; / 给脉冲信号 if(DQ) dat|=0x80; delay_18B20(4); return(dat);void WriteOneChar(uchar dat) /写一个字节 uchar i=0; for (i=8; i0; i-) DQ = 0; DQ = dat&0x01; delay_18B20(5); DQ = 1; dat=1; uint ReadTemperature(void) /读取温度并转换uchar a=0;uchar b=0; uint t=0,temp,result;Init_DS18B20();WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换delay_18B20(100);Init_DS18B20();WriteOneChar(0xCC); /跳过读序号列号的操作WriteOneChar(0xBE); /读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();b=ReadOneChar();temp=b;temp=(temp8)+a;negativeflag=(b&0xf8);/检查负标志 if(negativeflag=0)num0=0x20; /“+”位不显示 result=temp*0.625; else num0=0x2d;/负号显示位 temp=temp+1; result=temp*0.625+0.5; return( result );/*LCD显示器的是否忙判定*/uchar Busy_Check() uchar LCD_Status; P0=0x00;RS = 0;RW = 1;EN = 1;Delayms(1); LCD_Status = P0;/rs=0,rw=1,db7=fb=1表示LCD忙碌无法接收数据或指令EN = 0;return LCD_Status;/*LCD显示器写指令*/void Write_LCD_Command(uchar cmd) while(Busy_Check()&0x80)=0x80);RS = 0;RW = 0;EN = 0;P0 = cmd;EN = 1;Delayms(1);EN = 0;/*LCD显示器的初始化*/void Initialize_LCD() Write_LCD_Command(0x38); /*db4=dl=1设置总线数位为8,否则为4位;db3=n=1显示两行,否则1行;db2=f=0=5*7点阵/每字符,1=5*10点阵/每字符*/ Delayms(1); Write_LCD_Command(0x01); /清屏 Delayms(1); Write_LCD_Command(0x06); /*db1=I/D=1写入新数据后光标右移,db0=s=0写 入新数据后显示屏不移动。否则整体右移一个字*/ Delayms(1);Write_LCD_Command(0x0c); /*db2=d=1显示功能开;db1=c=0无光标;db0=b=0光标闪烁*/ Delayms(1);/*LCD显示器的初始化写指令*/void Write_LCD_Data(uchar dat) while(Busy_Check()&0x80)=0x80);RS = 1; /0输入指令,1输入数据RW = 0;/0向LCD写入指令或数据,1从LCD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广西梧州市蒙山县委宣传部招聘易考易错模拟试题(共500题)试卷后附参考答案
- 广东广州市越秀区民政局属下事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 山西运城稷山县公立医疗机构专业技术人员和大学生村医招聘71人易考易错模拟试题(共500题)试卷后附参考答案
- 机械车库回收协议书
- 供水设备委托协议书
- 代理保管财产协议书
- 公司战略合伙协议书
- 公司主动离职协议书
- 公司与公租房协议书
- 公司电路转让协议书
- DL∕T 333.2-2013 火电厂凝结水精处理系统技术要求 第2部分:空冷机组
- JG-T 562-2018 预制混凝土楼梯
- 人教版(PEP)小学英语-(三四五六年级)-单词表(附注音标)
- T-CCIIA 0004-2024 精细化工产品分类
- 博途软件界面概述讲解
- TD/T 1060-2021 自然资源分等定级通则(正式版)
- 甲醇卸车过程风险安全技术培训
- 知识点5.2 乳胶漆的原材料介绍
- 胃瘘后期护理
- 食品车间现场管理培训课件
- 农民素质培训课件
评论
0/150
提交评论