欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于单片机的数字温度计设计—毕业设计论文.doc

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

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

    基于单片机的数字温度计设计—毕业设计论文.doc

    课程设计(论文)说明书 题 目: 基于单片机的数字温度计设计 院 (系): 专 业: 学生姓名: 学 号: 指导教师 职 称: 2013年 12月 7日摘 要随着时代的进步和发展,单片机技术已经普及到我们的生活、工作、科研、各个领域,已经成为一种比较成熟的技术。本文介绍一种基于AT89S52单片机的一种温度测量,该电路采用DS18B20作为温度监测元件,测量范围-30-150。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89S52单片机功能和应用。该系统可以方便的实现温度采集和显示,并可根据需要设定上下限温度,它使用起来具有精确度高、测量广、灵敏度高、体积小、功耗低等优点。该电路设计新颖、功能强大、结构简单,有广泛的应用前景。关键词:温度测量; DS18B20 ; AT89S52Abstract Along with the progress and development of the ages,single slice the machine technigue has already make widely availablc the life is to us,work,research,each reach,have alrealy become the technique of a kind of comparison maturity.The introduction of a cost-based AT89S52MCU a temperatur measurement circuits, the circuits used DS18B20 high-precision temperatur sensor , measuring scope -30+150。The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the founctions and applications of AT89S52 .System can easily to collect and display the temperature,it can also arbitrary set alarm temperature according to the accrual need.It is used convenience ,it has high precision ,wide range,high sensitivity,small size,and low power disspition,This circuit design innovative, powerful, can be expansionary strong,turu into as a complementary expansion.Key Words : Temperatur measurement ; DS18B20 ; AT89S52目 录引言.11 温度计的总体设计.21.1 总体论述.21.2 设计思路.22 硬件说明.22.1 AT89S52简介.22.1.1AT89S52简介.22.1.2管脚说明.32.2 测量输入模块.42.2.1传感器选择.4 2.2.2 DS18B20的介绍.4 2.2.2.1 DS18B20芯片简介.42.2.2.2 DS18B20的性能点.52.2.2.3 DS18B20内部结构.52.2.2.4 DS18B20 的测温.62.3 显示模块.72.3.1 1602外观及尺寸.72.3.2 管脚功能.82.3.3 操作控制.82.3.4 指令说明.82.4 应用电路设计.103 软件和功能说明.113.1 软件设计.113.2 DS18B20的软件设计.12心得体会.13谢辞.14参考文献.15附录 程序及其功能简介.16引言随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器使用单片机AT89C51,测温传感器使用DS18B20,用4位共阳极LCD串口传送数据,实现温度显示,能准确达到以上要求。1 温度计的总体设计1.1 总体论述此次所讨论的数字温度计可以在不同的环境中,所要求的最高温度和最低温度是不同的,因此最高温度和最低温度应能够根据环境不同而设置成不同的数值。还有些场合要求每隔一定得时间段进行读取一次数值,当相隔的时间比较长而所需要读取的数据又比较多时,认为的读取就比较麻烦,因此应具备自动读取和存储若干组温度值的功能。另外,在野外工作时能够选择其工作模式以降低功耗。1.2 设计思路由论述可知,所设计的这种温度计的功能是传统的物理温度计无法完成的。在分析之后决定采用以单片机AT89C51为核心的系统进行设计。主要有以下几个模块:测量输入模块,显示模块。有这几个模块组成的系统框图如图一所示:单片机温度传感器 显示电路晶振电路复位电路图1 温度计总体框图2 硬件说明2.1 AT89S52简介2.1.1 AT89S52简介AT89S52是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S52是一种高效微控制器,AT89C2051是它的一种精简版本。2.1.2 管脚说明如图1 为AT89S52引脚图,各引脚功能说明如下:VCC: 电源 GND: 地AT89S52引脚图 P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。 P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX) P2口:P2口是一个具有内部上拉电阻的8位双向I/O 口,P2 输出缓冲器能驱动4个TTL逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。 P3口:P3口是一个具有内部上拉电阻的8位双向I/O 口,对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如表1-1所示。表1 AT89S52引脚号第二功能P3.0 RXD(串行输入)P3.1 TXD(串行输出)P3.2 INT0(外部中断0)P3.3 INT0(外部中断0)P3.4 T0(定时器0外部输入)P3.5 T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7 RD(外部数据存储器读选通) RST:复位输入,晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出69个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。这一位置“1”,ALE 仅在执行MOVX 或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。2.2测量输入模块2.2.1 传感器选择设计单片机数字温度计需要考虑以下3个方面·温度传感器芯片的选择;·单片机和温度传感器的接口电;·控制温度传感器实现温度信息采集以及数据传输的软件。单片机的接口信号是数字信号。要想用单片机获取温度这类非电信号的信息,必须使用温度传感器,将温度信息转换为电流或电压输出。如果转换后的电流或电压输出是模拟信号,还必须进行A/D转换,以满足单片机接口的需要。传统的温度检测大多以热敏电阻作为温度传感器。但是,热敏电阻的可靠性较差、测量温度准确率低,而且还必须经专门的接口电路转换成数字信号后才能由单片机进行处理。20世纪90年代中期出现了智能温度传感器(亦称数字温度传感器)。智能温度传感器的内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路,其特点是能直接输出数字化的温度数据及相关的温度控制量,适配各种微控制器(MCU)。其中DS18B20就是一种应用相当广泛的单总线数字温度传感器,它结构简单、不需外接元件,采用一根I/O数据线既可供电又可传输数据、并可设置温度报警界限等特点,广泛用于工业、民用等领域的温度测量中。2.2.2 DS18B20的介绍2.2.2.1 DS18B20芯片简介DS18B20是美国DALLAS半导体器件公司推出的单总线数字化智能集成温度传感器。单总线(1-Wire)是DALLAS公司的一项专有技术,它采用单根信号线,既传输时钟又传输数据,而且数据传输是双向的,具有节省I/O口线资源、结构简单、成本低廉、便于总线扩展和维护等诸多优点。与其它温度传感器相比,DS18B20具有以下特性:独特的单线接口方式,在与微处理器连接时仅需要一条接口线即可实现微处理器与DS18B20的双向通信。DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的信号线上,实现多点测温。DS18B20在使用中不需要任何外围元件。测温范围-55+125,固有测温分辨率0·625。测量结果以912位数字量方式串行传送。2.2.2.2 DS18B20的性能特点1)独特的单线接口仅需要一个端口引脚进行通信;2)多个DS18B20可以并联在惟一的三线上,实现多点组网功能;4)可通过数据线供电,电压范围为3.05.5V;6)温度以9或12位数字;7)用户可定义报警设置;8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;2.2.2.3 DS18B20内部结构DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。64位光刻ROM是出厂前被光刻好的,它可以看作是该DS18B20的地址序列号。 DS18B20的管脚排列如图2所示。图2 DS18B20引脚分布图引脚功能如下:NC:空引脚,悬空不使用;VDD:可选电源脚,电源电压范围35.5V。工作于寄生电源时,此引脚应接地;DQ:数据输入/输出脚,漏极开路,常态下高电平。DSl8820的核心功能部件是它的数字温度传感器,其分辨率可配置为9、10、11和12位,出厂默认设置为12位分辨率,对应的温度值分辨率分别为0.5、0.25、0.125和0.0625。温度信息的低位、高位字节内容中,还包括了符号位S(是正温度还是负温度)和二进制小数部分,具体形式为:低位字节:MSB232221202-12-2LSB2-32-4高位字节:MSBSSSSS26LSB2524这是12位分辨率的情况,如果配置为低的分辨率,则其中无意义位为0。DS18B20的内部结构框图如图1-1所示。I/OC64位ROM单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd图2 DS18B20内部机构2.2.2.4 DS18B20 的测温原理DS18B20 的温度传感器是通过温度对振荡器的频率影响来测量温度,如图4 所示。DS18B20 内部有两个不同温度系数的振荡器。低温系数振荡器输出的时钟脉冲信号通过由高温系数振荡器产生的门开通周期而被计数,通过该计数值来测量温度。计数器被预置为与- 55对应的一个基数值,如果计数器在高温系数振荡器输出的门周期结束前计数到零,表示测量的温度高于- 55,被预置在- 55的温度寄存器的值就增加一个增量,同时为了补偿和修正温度振荡器的非线性,计数器被斜率累加器所决定的值进行预置,时钟再次使计数器计数直至零,如果开门通时间仍未结束,那么重复此过程,直到高温度系数振荡器的门周期结束为止。这时温度寄存器中的值就是被测的温度值。这个值以16位二进制补码的形式存放在便笺式存储器中。温度值由主机通过发读存储器命令读出,经过取补和十进制转换,得到实测的温度值。 低温度系数振荡器 高温度系数振荡器停止+1预置计数器温度寄存器=0计数器=0斜率累加器预置比较器图3 DS18B20测温原理2.3 显示模块显示部分采用液晶显示器1602,能够同时显示16x02即32个字符。(16列2行)其相关介绍见下文。2.3.1 1602外观及尺寸1602的外形尺寸如图5所示:图5 1602的外形尺寸2.3.2 管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。第6脚:E(或EN)端为使能(enable)端。第714脚:D0D7为8位双向数据端。第1516脚:空脚或背灯电源。15脚背光正极,16脚背光负极2.3.3 操作控制操作控制表如表3所示:表3 1602操作控制表操作控制表操作读状态写指令读数据写数据输入RS=0RW=1E=1RS=0RW=0D07=指令码,E=H脉冲RS=1RW=1E=1RS=1RW=0D07=数据,E=H脉冲2.3.4 指令说明(1) 初始化设置显示模式设置指令码功能00111000设置16*2显示,5*7点阵,8位数据接口显示开/关及光标设置指令码功能00001DCBD=1开显示; D=0关显示C=1显示光标;C=0不显示光标B=1光标闪烁;B=0光标不闪烁000001NSN=1当读或写一个字符后地址指针加一,且光标加一N=0当读或写一个字符后地址指减一,且光标减一S=1当写一个字符,整屏显示左移(N=1)(2)初始化过程(复位过程)延时12ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)延时5ms写指令38H(不检测忙信号)(以后每次写指令、读/写数据操作之前均需检测忙信号)写指令38H:显示模式设置写指令08H:显示关闭写指令01H:显示清屏写指令06H:显示光标移动设置写指令0CH:显示开及光标设置2.4应用电路设计其应用电路设计如下图所示:图6 应用电路设计其PCB图如下图所示图7 PCB设计3 软件和功能说明3.1 软件设计在软件设计的过程中,将软件设计为自动读取具有全自动为人化得运行程序,这样不仅可以节约人力,还可以是实现傻瓜化的操作。其程序流程图如图8所示:开始否自动读取?执行其他方式是相关参数设置关显示温度检测存入缓冲区延时结束程序图8 自动读取方式流程3.2 DS18B20的软件设计单片机实现温度转换读取温度数值程序的流程如图9所示:开始初始化DS18B20否应答脉冲发起skip rom的命令发起Convert T的命令延时1s等待温度转换完成初始化DS18B20否应答脉冲是发起read scratchpad命令读取第一二字节即为温度数据是图9 单片机实现温度转换读取温度数值程序流程心得体会 在自己最初选题目的时候因为看着数字温度计这个题目即好玩又实用,所以自己就选定它。但是在自己发现在自己做的过程中各种问题是接踵而来。首先是对单片机不了解,需要查很多资料;其次是对很多软件的运用还不是很熟练,导致在画原理图以及PCB时有很多问题;再次是对电路板的制作操作还不够熟练,板子做得比较粗糙;最后也是最难的,因为自己对单片机的编程不是很了解,导致板子做出来了之后需要不断的对程序进行编写与调试。 在自己通过上网,到图书馆,请教实验室的同学来解决这些问题,然后自己就发现,其实有些个问题很简单,知识自己平时想的少动手少,才让自己最开始的时候感觉到做一个最简单的单片机最小系统都感觉非常困难。通过这次课程设计让我感触颇深的就是自己平时动手太少,导致自己的动手能力很差。当然在这次宝贵的课程设计中,经验才是我最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力。总之,这次课程设计我倾注了大量的时间和心血,非常感谢在这次课程设计中给予我帮助的老师和同学,让我不仅品味到了结果的喜悦,更明白了过程的弥足珍贵。谢 辞本次课程设计在郑老师的悉心指导和严格要求下已经完成,从课题选择到具体操作写作过程,都离不开郑老师的关心指导,在这里要向老师表示深深的谢意,同时,在论文写作的过程中,我参考了有关书籍和网络资源,在这里一并向有关作者表示谢意。参考文献1、黄智伟凌阳单片机课程设计指导M北京:北京航空航天大学出版社,20072、黄智伟印制电路板(PCB)设计技术与实践M北京:电子工业出版社,20093、求实科技单片机典型模块设计实例导航M北京:人民邮电出版社,20044、沙占友智能温度传感器的发展趋势J电子技术应用,2002(5):6-7.5、张毅刚.单片机及应用.高等教育出版社。6、孙育才.单片微型计算机及其应用.东南大学出版社.20047、沈德金 陈粤初.单片机接口电路与应用程序实例.北京航天航空大学出版社.1990.8、于永学,葛建1-Wire总线数字温度传感器DS18B20及应用J电子产品世界,2003(24):80-82.9、张萍基于数字温度计DS18B20的温度测量仪的开发J自动化仪表, 2007,28(6):64-66.10、omas C.Bartee.Computer Architecture and Logic DesignJ.McGraw-Mill Inc,1991.9附 录 程序及其功能简介/DS18B20温度检测及其液晶显示#include<reg51.h> /包含单片机寄存器的头文件#include<intrins.h> /包含_nop_()函数定义的头文件unsigned char code digit10="0123456789" /定义字符数组显示数字unsigned char code Str="wen du" /说明显示的是温度unsigned char code Error="Error!Check!" /说明没有检测到DS18B20unsigned char code Temp="Temp:" /说明显示的是温度unsigned char code Cent="C" /温度单位/*以下是对液晶模块的操作程序*/sbit RS=P30; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P31; /读写选择位,将RW位定义为P2.1引脚sbit E=P32; /使能信号位,将E位定义为P2.2引脚sbit BF=P27; /忙碌标志位,将BF位定义为P0.7引脚/*函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒*/void delay1ms() unsigned char i,j; for(i=0;i<4;i+) for(j=0;j<33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delaynms(unsigned char n) unsigned char i;for(i=0;i<n;i+) delay1ms(); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/bit BusyTest(void) bit result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF; /将忙碌标志电平赋给result E=0; /将E恢复低电平 return result; /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void WriteInstruction (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置"0" _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 P2=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:指定字符显示的实际地址入口参数:x*/ void WriteAddress(unsigned char x) WriteInstruction(x|0x80); /显示位置的确定方法规定为"80H+地址码x" /*

    注意事项

    本文(基于单片机的数字温度计设计—毕业设计论文.doc)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开