数字温度计 210311班 郑岚芮(终极版_第1页
数字温度计 210311班 郑岚芮(终极版_第2页
数字温度计 210311班 郑岚芮(终极版_第3页
数字温度计 210311班 郑岚芮(终极版_第4页
数字温度计 210311班 郑岚芮(终极版_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、成都航空职业技术学院毕业设计报告 班级: 项目: 数字温度计 专业: 电子信息工程技术 姓名: 郑岚芮 摘要随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术, 本文主要介绍了一个基于89S52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行了介绍,该系统可以方便的实现实现温度采集和显示,并可根据需要任意设定上下限报警温度,它使用起来相当方便,具有精度高、量程宽、灵敏度高、体积小、功耗低等优点,适合于我们日常生活和

2、工、农业生产中的温度测量,也可以当作温度处理模块嵌入其它系统中,作为其他主系统的辅助扩展。DS18B20与AT89S52结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景。 关键词:单片机;温度检测;AT89S52;DS18B20;AbstractWith the progress of the times and development, microcontroller technology has spread to our life, work, scientific research, each domain, has becom

3、e a relatively mature technology, this paper introduces a temperature measurement system based on 89S52 SCM, detailed description of the process of digital temperature sensor DS18B20 temperature measurement system development, focusing on the hardware sensors in a single connection, software program

4、ming and system flow of each module are analyzed in detail, on the part of the circuit are one one are introduced, the system can realize temperature acquisition and display and convenient, and can be arbitrarily set the alarm temperature, it is very convenient to use, has high accuracy, measuring r

5、ange wide, high sensitivity, small size, low power consumption, suitable for our daily lives and industrial, agricultural production in the temperature measurement, but also can be used as a temperature processing module embedded in other systems, as other auxiliary system. DS18B20 combined with AT8

6、9S52 to achieve the most simple temperature measuring system, this system has simple structure, strong anti-jamming capability, suitable for harsh environment on-site temperature measurement, and has wide application prospect.Keywords: single chip microcomputer; temperature detection; AT89S52; DS18B

7、20;目录一、综合设计任务-11.1 综合设计目的-11.2 综合设计要求-1二、总体设计-12.1 系统功能原理及硬件组成-12.2 系统组成框图-22.3 原理图-22.4 AT89C51单片机-32.5 DS18B20温度采集及模数转换电路-32.6 温度显示及时钟、复位电路-5三、程序设计及调试-53.1系统主程序-53.2 十进制数据转换调整子程序-63.3 十进制数据转换调整子程序流程图-73.4 LED数码显示子程序-73.5 显示子程序流程图-8四、总结-9 五、附录-10 元件清单-10程序-10实物图-18致谢-18一、综合设计任务随着单片机技术的不断发展,单片机在日用电子

8、产品中的应用越来越广泛,温度传感器DS18B20具有线性优良、性能稳定、灵敏度高、抗干扰能力强、使用方便等优点,广泛应用于冰箱、空调器、粮仓等日常生活中温度的测量和控制。传统的温度计有反应速度慢、读数麻烦、测量精度不高、误差大等缺点,本文作者利用集成温度传感器AD590设计并制作了一款基于AT89C51的4位数码管显示的数字温度计,其电路简单,软硬件结构模块化,易于实现。1.1综合设计目的 1培养同学的设计创新能力; 2锻炼小组成员的协作能力; 3提高同学们的动手能力。1.2 综合设计任务1、制做数字温度计2、综合设计要求3、基本范围01004、精度误差小于0.15、LED数码直读显示、可以任

9、意设定温度的上限报警功能二、总体设计2.1系统功能原理及硬件组成该数字温度计利用DS18B20集成温度传感器及其接口电路完成温度的测量并转换成模拟电压信号,经由模数转换器74LS241转换成单片机能够处理的数字信号,然后送到单片机AT89C51中进行处理变换,最后将温度值显示在D4、D3、D2、D1共位七段码LED显示器上。2.2 系统组成框图系统以AT89C51单片机为控制核心,加上DS18B20测温电路、ADC模数转换电路、4位温度数据显示电路以及外围电源、时钟电路等组成。系统组成框图如图2.1所示。图2.1 系统组成框图2.3 原理图图2.2 原理图2.4 AT89C51单片机Atmel

10、公司的生产的AT89C51单片机是一种低功耗/低电压、高性能的8位单片机,内部除CPU外,还包括128字节RAM,4个8位并行I/O口,5个中断优先级,2层中断嵌套中断,2个16位可编程定时计数器,片内集成4K字节可改变程序Flash存储器,具有低功耗,速度快,程序擦写方便等优点,完全满足本系统设计需要。单片机P0口作为ADC0804转换数据的输入端,P2.0接ADC0804的INTR端检测数据转换是否结束。P1.0P1.3的输出信号接到译码器7447上作为数码管的显示,P1.4P1.7则作为个数码管的位选信号控制。P3口有特殊的功能,P3.6用于控制ADC0804的启动,P3.7用于控制读取

11、ADC0804的转换结果。2.5 DS18B20温度采集及模数转换电路AD590是美国模拟器件公司生产的单片集成两端感温电流源。AD590测温范围为55150,满足人们日常生产和生活中的温度范围。AD590电源电压可在4V6V范围变化,可以承受44V正向电压和20V反向电压,因而器件反接也不会被损坏。AD590产生的电流与绝对温度成正比,它有非常好的线性输出性能,温度每增加1,其电流增加1A。AD590温度与电流的关系如下表所示:摄氏温度AD590电流经10K电压0273.2 A2.732 V10283.2 A2.832 V20293.2 A2.932 V30303.2 A3.032 V403

12、13.2 A3.132 V50323.2 A3.232 V60333.2 A3.332 V100373.2 A3.732 V表2.1为了提高精度,扩大测量范围,在A/D转换前还要将信号加以放大并进行零点迁移,因而一个高稳定性的、高精度的放大电路是必须的。当温度变化时,AD590会产生电流变化,当DS18B20的电流通过一个10k的电阻时,这个电阻上的压降为10mV,即转换成10mVK,为了使此10k电阻精确,可用一个9k的电阻与一个2k的电位器串联,然后通过调节电位器来获得精确的10k。运算放大器A1被接成电压跟随器形式,以增加信号的输入阻抗,由运放A2减去2.732做零位调整(即把绝对温度转

13、成摄氏温度),最后由运放A3反相并放大倍输送给A/D转换器。具体硬件连接图如图2.4所示。 图2.4 DS18B20温度采集及模数转换电路ADC0804模数转换器AD590测温电路输出的电压信号为模拟信号,要进行数码显示,还需将此信号转换成数字信号。为此我们通过A/D转换器ADC0804将输入的模拟值转换成数字值,经AT89C51单片机处理后输出到P1以控制温度显示电路。ADC0804是用CMOS集成工艺制成的逐次比较型摸数转换芯片,分辨率8位,转换时间100s,输入电压范围为05V,增加某些外部电路后,输入模拟电压可为5V。该芯片内有输出数据锁存器,当与计算机连接时,转换电路的输出可以直接连

14、接在CPU数据总线上,无须附加逻辑接口电路。具体硬件连接图如图2.4所示。2.6 七段码LED温度显示电路由发光二极管组成的七段码LED显示器是单片机应用产品中最常用的廉价输出设备,用于显示各种数字和字符。该数字温度计的温度显示由4位七段码LED显示器组成,单片机以并行通信方式从P1.0P1.7口输出段码和控制信号,通过7447 TTL BCD译码器译码,用4个共阳极LED动态显示温度的各个数位。具体硬件连接图如图2.5所示。 图2.5 温度显示及单片机时钟、复位电路三、程序设计及调试该数字温度计软件部分用MCS-51汇编语言编程实现,采用模块化程序设计思想,将软件划分成若干单元,主要包括主程

15、序、十进制数据转换及调整子程序、LED数码显示子程序和延时子程序等。本系统具体汇编源程序见后附。3.1 系统主程序 在主程序中,系统上电自动复位以后首先设置堆栈,然后启动ADC0804,开始转换AD590测温电路输入的电信号,待数据转换结束后读入到累加器A,然后进行十进制数据转换调整,输出给显示电路。主程序流程图如图3.1所示。 图3.1 主程序流程图3.2 十进制数据转换调整子程序由于ADC0804转换后的数据是二进制数据,而七段码LED显示器所要显示的数据是十进制数据,因此需要进行二、十进制数据转换。ADC0804输出的最大转换值为FFH(255),由于运放放大倍,因此本数字温度计的最大测

16、量温度为5.1V/51.02,即102。由255*=102,得知0.4,即先乘再除10。255*4=1020,其中高位10送高位显示缓冲区R4,低位20送低位显示缓冲区R5,将小数点设在D2位上,并将其分别显示为1(D4) 0(D3) 2(D2) . 0(D1) 。所以,十进制转换调整流程为A/D(二进制)十进制乘显示。程序流程图如图3.2所示。3.3 十进制数据转换调整子程序流程图 图3.2 十进制数据转换调整子程序流程图3.4 LED数码显示子程序十进制转换调整后的数据送到寄存器R5、R4中,然后通过P1口把数据输出给D4、D3、D2、D1四个数码显示器中,从而最终把测得的温度显示出来。显

17、示子程序流程图如图3.3所示。3.5 显示子程序流程图 图3.3显示子程序流程图四、总结系统以AT89C52单片机为控制核心,加上DS18B20测温电路、ADC模数转换电路、4位温度数据显示电路以及外围电源、时钟电路等组成本文采用AT89C51单片机做主控芯片,利用温度传感器DS18B20测量温度,并配上相应的外部接口电路,介绍了一款简易数字温度计的设计与制作过程。该温度计系统实现简单、功能稳定、使用方便,适用于人们日常生活和工、农业生产中的各种温度测量。通过这次毕业设计让我充分了解了AT89C52和DS18B20的功能特性,以及对于电子这种精细的焊接也是必要的,必须要在设计的时候对其认真对待

18、,焊接安装的时候灵活应对,报着务实严谨的态度才能完成,其中也有很多自己未知的东西也需要自己虚心去面对,去了解,才能完成到最终。 五、附录元件清单程序#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件#define uint unsigned int#define uchar unsigned charunsigned char flag,tltemp/负温度标志 和临时暂存变量sbit wei1=P22;/SMGsbit wei2=P21;sbit wei3=P20;sbit wei4=P23;sbit key1=P35; /KEYsbit ke

19、y2=P36;sbit key3=P37;sbit DQ=P24;/DS18B20sbit FMQ=P25;uchar TN; /储存温度的整数部分uchar TD; /储存温度的小数部分uchar time; /设置全局变量,专门用于严格延时uint BJwendu=20; /设置报警温度,默认为20bit keybit=0;uchar code SMG10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/共阴数码管void Delaynms(int i)/延时 int j;for(;i0;i-)for(j=0;j115;j+);void

20、 Display(uint TN,uint TD) uint t1,t2,t3;t1=TN/100;t2=(TN%100)/10;t3=TN%10;P0=SMGt1;wei1=1;Delaynms(2);wei1=0;P0=SMGt2;wei2=1;Delaynms(2);wei2=0;P0=SMGt3|0x80;wei3=1;Delaynms(2);wei3=0;P0=SMGTD;wei4=1;Delaynms(2);wei4=0;bit Init_DS18B20(void) flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag=1,表示不存在DQ = 1; /先

21、将数据线拉高for(time=0;time2;time+); /略微延时约6微秒DQ = 0; /再将数据线从高拉低,要求保持480960usfor(time=0;time200;time+); /略微延时约600微秒 /以向DS18B20发出一持续480960us的低电平复位脉冲 DQ = 1; /释放数据线(将数据线拉高) for(time=0;time10;time+);/延时约30us(释放总线后需等待1560us让DS18B20输出存在脉冲)flag=DQ; /让单片机检测是否输出了存在脉冲(DQ=0表示存在) for(time=0;time200;time+); /延时足够长时间,

22、等待存在脉冲输出完毕return (flag); /返回检测成功标志uchar ReadOneChar(void) har i=0;uchar dat; /储存读出的一个字节数据for (i=0;i8;i+) DQ =1; / 先将数据线拉高_nop_(); /等待一个机器周期 DQ = 0; /单片机从DS18B20读书据时,将数据线从高拉低即启动读时序_nop_(); 待一个机器周期 DQ = 1; /将数据线人为拉高,为单片机检测DS18B20的输出电平作准备for(time=0;time=1;if(DQ=1)dat|=0x80; /如果读到的数据是1,则将1存入datelsedat|=

23、0x00;/如果读到的数据是0,则将0存入dat /将单片机检测到的电平信号DQ存入rifor(time=0;time8;time+);/延时3us,两个读时序之间必须有大于1us的恢复期 return(dat); /返回读出的十六进制数据WriteOneChar(uchar dat) hari=0; for (i=0; i8; i+)DQ =1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DQ=0; /将数据线从高拉低时即启动写时序 DQ=dat&0x01; /利用与运算取出要写的某位二进制数据, /并将其送到数据线上等待DS18B20采样 for(time=0;time10

24、;time+) ;/延时约30us,DS18B20在拉低后的约1560us期间从数据线上采样 DQ=1; /释放数据线 for(time=0;time=1; /将dat中的各二进制位数据右移1位 for(time=0;time4;time+) ; /稍作延时,给硬件一点反应时间void ReadyReadTemp(void) uint i=0;Init_DS18B20(); /将DS18B20初始化WriteOneChar(0xCC); / 跳过读序号列号的操作WriteOneChar(0x44); / 启动温度转换 if(keybit=0)for(i=0;i30;i+) /转换一次需要延时一段时间 Display(TN,TD); /显示温度elsefor(i=0;i255) TH+; /如果低8位大于255,向高8位进1TN=TH*16+TL/16; /实际温度值=(TH*256+TL)/16,即:TH*16+TL/16 /这样得出的是温度的整数部分,小数部分被丢弃了TD=(TL%16)*10/16; /计算温度的小数部分,将余数乘以10

温馨提示

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

评论

0/150

提交评论