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

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

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

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

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

    摘 要本课题设计了一种基于单片机控制的数字式多功能温度计.该温度计以51单片机为主控器,通过温度传感器DS18B20来检测温度,并通过四位共阴极LED数码管来进行数据的显示,可以方便的实现温度采集和显示.同时可以根据需要设置上下限报警温度,当温度不在设置范围内时可以报警.同时还具有时钟显示的功能,当需要进行时间显示的时候可以进行快速切换显示.具有使用方便,精度高、量程宽、灵敏度高、体积小、功耗低等优点.适用于我们日常生活和工、农业生产中的温度测量,也可以当做温度处理模块嵌入其它系统中作为其他主系统的辅助扩展.DS18B20与AT89C51结合实现最简温度检测系统,该系统结构简单,抗干扰能力强,适合于恶劣环境下进行现场温度测量,有广泛的应用前景.关键词:单片机;温度检测;AT89C51;DS18B20AbstractABSTRACTThis project is a digital multi-function thermometer based on MCU. This system can easily achieve temperature acquisition and display, This thermometer uses at89c51 as microcontroller-based controller, detect temperature through the temperature sensor DS18B20, and realize the temperature display by four common cathode LED and it can set upper and lower limits of temperature according to feed the need, when the temperature is not set range it will ring. It also has the function of the clock display. It can switch the display fast when it is need. It is easy to use, with high precision, wide range, high sensitivity, small size and low power consumption. It is suitable for our daily lives and industrial and agricultural production in the temperature measurement, temperature processing module can also be embedded as other systems, the main system as the other auxiliary expansion. DS18B20 combined with the realization of the simplest AT89C51 temperature detection system, the system is simple, anti-interference ability, suitable for harsh environments spot temperature measurement, a wide range of applications.Keywords: MCU; Temperature Measurement; AT89C51; DS18B20目录目 录第1章 绪论11.1 课题意义及发展前景11.2 设计内容及性能指标1第2章 系统方案论证3第3章 系统器件选择53.1 主控芯片介绍53.2 温度传感器的选择73.2.1 DS18B20 简单介绍和性能特点:73.2.3 DS18B20内部结构和测温原理83.2.5 DS18B20 使用中的注意事项和控制方法93.3 显示元件的选择10第4章 硬件设计134.1 复位电路134.2 时钟电路134.3 显示电路144.4 测温电路144.5 控制电路154.6 报警电路154.7 整机电路及工作原理16第5章 软件设计175.1 主程序模块175.2 温度相关模块185.3 时间相关模块245.4中断相关程序255.5其他相关程序26第6章 总结与体会27参考文献29致 谢30附录A:源程序3139基于单片机的多功能数字温度计设计第1章 绪论1.1 课题意义及发展前景随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平.在信息采集、信息传输和信息处理中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义.测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器.计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU).社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,基于单片机的数字温度计设计与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用.温度的检测与控制是工业生产过程中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的测试与控制得到更快的开发.本设计为基于DS18B20和AT89C51单片机的温度测量及控制系统的硬件结构以及C语言程序设计,系统设计和布线简单,结构紧凑,体积小,重量轻,抗干扰能力强,性价比高,扩展方便,在大型仓库,工厂,智能化建筑等领域的多点温度检测中有广阔的应用前景.1.2 设计内容及性能指标本设计主要是介绍了单片机控制下的温度检测系统,详细介绍了其硬件和软件设计,并对其各功能模块做了详细介绍,其主要功能和指标如下:1、利用温度传感器(DS18B20)测量某一点环境温度2、测量范围为-55993、用数码管进行实际温度值显示和时间显示4、能够根据需要方便设定上下限报警温度第2章 系统方案论证本次设计采用如图所示系统原理结构框图图2-1 系统原理结构框图通过数字温度芯片对外界温度进行读取,并通过单片机进行转换,再由数码管进行直观的数字显示.同时设定温度比较程序,由单片机进行测量温度与设定温度的比较,若不在设定温度范围内,则令蜂鸣器报警.单片机选用AT89C51作为温度测试系统设计的核心器件.它是具有高性能的8位单片机,属于标准的MCS51的CMOS产品.不仅结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,而且继承和扩展了MCS48单片机的体系结构和指令系统.1数字温度芯片采用DS18B20测量温度,输出信号全数字化.便于单片机处理及控制,省去传统的测温方法的很多外围电路.且该芯片的物理化学性很稳定,它能用做工业测温元件,此元件线形较好.在0100摄氏度时,最大线形偏差小于1摄氏度.采用51单片机控制,软件编程的自由度大,可通过编程实现各种各样的算术算法和逻辑控制,而且体积小,硬件实现简单,安装方便.既可以单独对多DS18B20控制工作,还可以与PC机通信上传数据.利用AT89C51芯片控制温度传感器DS18B20进行实时温度检测并显示,能够实现快速测量环境温度,并可以根据需要设定上下限报警温度.利用按键来进行调时和温度查询.可以看出此方案测温装置电路简单、精确度较高、实现方便、软件设计也比较简单.第3章 系统器件选择3.1 主控芯片介绍主控芯片选择单片机AT89C51,该单片机具有低电压供电和体积小等特点,很适合便携手持式产品的设计使用系统可用二节电池供电.2AT89C51是一个低电压,高性能CMOS 8位单片机,片内含4k bytes的可反复擦写的Flash只读程序存储器和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的AT89C51提供了高性价比的解决方案.AT89C51是一个低功耗高性能单片机,40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,2个16位可编程定时计数器,2个全双工串行通信口,AT89C51可以按照常规方法进行编程,也可以在线编程.其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本.3T89C51主要功能特性:与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 4 各引脚功能简单介绍如下:VCC:供电电压.GND:接地.P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流.当P0口的管脚第一次写1时,被定义为高阻输入.P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位.在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高.P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流.P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故.在FLASH编程和校验时,P1口作为第八位地址接收.P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入.并因此作为输入时,P2口的管脚被外部拉低,将输出电流.这是由于内部上拉的缘故.P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位.在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容.P2口在FLASH编程和校验时接收高八位地址信号和控制信号.P3口:P3口是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流.当P3口写入“1”后,它们被内部上拉为高电平,并用作输入.作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故.P3口也可作为AT89C51的一些特殊功能口,如下所示:P3口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号.RST:复位输入.当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间. 5ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节.在FLASH编程期间,此引脚用于输入编程脉冲.在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6.因此它可用作对外部输出的脉冲或用于定时目的.然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲.如想禁止ALE的输出可在SFR8EH地址上置0.此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用.另外,该引脚被略微拉高.如果微处理器在外部执行状态ALE禁止,置位无效.6/PSEN:外部程序存储器的选通信号.在由外部程序存储器取指期间,每个机器周期两次/PSEN有效.但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现./EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器.注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器.在FLASH编程期间,此引脚也用于施加12V编程电源(VPP).XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入.XTAL2:来自反向振荡器的输出. 73.2 温度传感器的选择由于传统的热敏电阻等测温元件测出的一般都是电压,再转换成对应的温度,需要比较多的外部元件支持,且硬件电路复杂,制作成本相对较高.这里采用DALLAS公司的数字温度传感器DS18B20作为测温元件.3.2.1 DS18B20 简单介绍和性能特点: DALLAS 最新单线数字温度传感器DS18B20是一种新型的“一线器件”,其体积更小、更适用于多种场合、且适用电压更宽、更经济.DALLAS 半导体公司的数字化温度传感器DS18B20是世界上第一片支持“一线总线”接口的温度传感器.温度测量范围为-55+125 摄氏度,可编程为9位12位转换精度,测温分辨率可达0.0625摄氏度,分辨率设定参数以及用户设定的报警温度存储在EEPROM中,掉电后依然保存.被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可以在远端引入,也可以采用寄生电源方式产生;多个DS18B20可以并联到3 根或2 根线上,CPU只需一根端口线就能与诸多DS18B20 通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路.因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便. 8DS18B20的性能特点:独特的单线接口方式,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非常适用与多点、远距离温度检测系统.3.2.3 DS18B20内部结构和测温原理DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器.DQ 为数据输入/输出引脚.开漏单总线接口引脚.当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚.当工作于寄生电源时,此引脚必须接地.DS18B20采用3脚PR-35 封装或8脚SOIC封装,其内部结构框图如图所示图3-2 DS18B20内部结构框图闪速ROM开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48 位,最后8位是前面56 位的CRC 检验码,这也是多个DS18B20 可以采用一线进行通信的原因.温度报警触发器TH和TL,可通过软件写入户报警上下限.主机操作ROM的命令有五种,如表所列9指  令说  明读ROM(33H)读DS1820的序列号匹配ROM(55H)继读完64位序列号的一个命令,用于多个DS1820时定位跳过ROM(CCH)此命令执行后的存储器操作将针对在线的所有DS1820搜ROM(F0H)识别总线上各器件的编码,为操作各器件作好准备报警搜索(ECH)仅温度越限的器件对此命令做出响应表3-1 ROM的命令DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EPROM.前2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝,是易失的,每次上电复位时被刷新.第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率.DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值.温度低位温度高位THTL配置保留保留保留8位CRCLSB MSBDS18B20测温原理当DS18B20接收到温度转换命令后,开始启动转换.转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1,2字节.单片机可通过单线接口读到该数据,读取时低位在前,高位在后,数据格式以0.062 5 /LSB形式表示.温度值格式如下:232221202-12-22-32-4LSB MSBSSSSS262524LSB MSB这是12位转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度.图中,S表示位.对应的温度计算:当符号位S=0时,表示测得的温度植为正值,直接将二进制位转换为十进制;当S=1时,表示测得的温度植为负值,先将补码变换为原码,再计算十进制值.例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H.另外,由于DS18B20单线通信功能是分时完成的,他有严格的时隙概念,因此读写时 序很重要.系统对DS18B20的各种操作必须按协议进行.操作协议为:初始化DS18B20 (发复位脉冲)发ROM功能命令发存储器操作命令处理数据.在正常测温情况下,DS1820的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD.考虑到DS1820测量温度的整数部分以0.25、0.75为进位界限的关系,实际温度Ts可用下式计算: Ts=(Tz-0.25)+(CD-Cs)/CD 3.2.5 DS18B20 使用中的注意事项和控制方法DS18B20 虽然具有测温系统简单、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下几方面的问题:DS18B20 从测温结束到将温度值转换成数字量需要一定的转换时间,这是必须保证的,不然会出现转换错误的现象,使温度输出总是显示85.在实际使用中发现,应使电源电压保持在5V 左右,若电源电压过低,会使所测得的温度精度降低.较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS1820进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果.在使用PL/M、C等高级语言进行系统程序设计时,对DS1820操作部分最好采用汇编语言实现.在DS18B20的有关资料中均未提及单总线上所挂DS18B20 数量问题,容易使人误认为可以挂任意多个DS18B20,在实际应用中并非如此,当单总线上所挂DS18B20 超过8 个时,就需要解决微处理器的总线驱动问题,这一点在进行多点测温系统设计时要加以注意.在DS18B20测温程序设计中,向DS18B20 发出温度转换命令后,程序总要等待DS18B20的返回信号,一旦某个DS18B20 接触不好或断线,当程序读该DS18B20 时,将没有返回信号,程序进入死循环,这一点在进行DS18B20硬件连接和软件设计时也要给予一定的重视.在硬件上,DS18B20与单片机的连接有两种方法,一种是VCC接外部电源,GND接地,I/O与单片机的I/O线相连;另一种是用寄生电源供电,此时UDD、GND接地,I/O接单片机I/O.无论是内部寄生电源还是外部供电,I/O口线要接5K左右的上拉电阻.此次设计选择的是前面一种控制.CPU对DS18B20的访问流程是:先对DS18B20初始化,再进行ROM操作命令,最后才能对存储器操作,数据操作.DS18B20每一步操作都要遵循严格的工作时序和通信协议.如主机控制DS18B20完成温度转换这一过程,根据DS18B20的通讯协议,须经三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操做.3.3 显示元件的选择显示元件本设计选择四位一体的八段共阴极数码管.数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管; 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管.共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮.当某一字段的阴极为高电平时,相应字段就不亮.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管.共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮.当某一字段的阳极为低电平时,相应字段就不亮.数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出需要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类.静态显示驱动静态驱动也称直流驱动.静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动.静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×840根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性. 动态显示驱动数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮.通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动.在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低.第4章 硬件设计4.1 复位电路为确保两点间温度控制系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位.一般电路正常工作需要供电电源为5V±5%,即4.755.25V.复位是单片机的初始化操作,其目的是使CPU及各专用寄存器处于一个确定的初始状态.如:把PC的内容初始化为0000H,使单片机从0000H单元开始执行程序.除了进入系统的正常初始化之外,当单片机系统在运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要复位以使其恢复正常工作状态.RST端的外部复位电路有两种操作方式:上电自动复位和按键手动复位.按键手动复位有电平方式和脉冲方式两种,本系统设计采用上电复位,如图4-1所示.上电复位是直接将RST端通过电阻接高电平来实现单片机的复位.4.2 时钟电路单片机的时钟信号用来提供单片机内各种微操作的时间基准,时钟电路用于产生单片机工作所需要的时钟信号.时钟信号通常用两种电路形式得到:内部振荡和外部振荡.本系统设计采用内部振荡方式,如图4-2所示.MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTALl和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式.本设计中晶振取12MHz.10图4-2 时钟电路4.3 显示电路正如前面所说显示电路采用的元器件为四位一体的八段共阴极数码管.采用动态显示驱动形式,电路图如下.P0.0-P0.7为数据输入端,根据所要显示的不同数据从数组里进行调取.由于P0口本身不含有驱动能力,所以需要在P0口接上拉电阻,以保证有足够的电流来驱动数码管进行显示.P2.0-P2.3为位选择端口,分别控制四位数码管的显示与否.本设计通过选择位的不同对四位数码管进行分别显示,利用人的眼睛残留视觉以达到显示数据的目的.此电路的优点的电路简单控制方便.可以实现四位数码管的分别控制,以便于实现多方面的显示需求.图4-3 显示电路4.4 测温电路测温电路采用的元件即为DS18B20.测温电路采用外部供电方式.VCC接外部电源,GND接地,I/O与单片机的P2.6口相连, I/O口线接4.7K左右的上拉电阻.单片机的数据读取和输出都通过P2.6口与DS18B20的I/O口进行.采用单串口进行数据通信,电路设计简单.但对软件有更多的要求.图4-4 测温电路4.5 控制电路本电路摒弃了复杂的矩阵键盘电路,而仅仅采用了四个按键组成简单电路来实现需要的控制.不仅降低了硬件的成本,也使编程变的简单.电路图如下.四个按键分别连接单片机的P3.1,P3.0,P3.2和P3.3端.P32和P33为外部中断端口,通过他们来进行相应的控制操作.而P31和P30端口则分别实现了数据的减和增的操作.操作起来简单易懂,硬件开发的消耗也大为减少.图4-5 控制电路4.6 报警电路本设计采用软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电.当所测温度超过或者低于所预设的温度时,数据口相应拉高电平,报警输出.(也可采用发光二级管报警电路,如过需要报警,则只需将相应位置1,当参数判断完毕后,再看报警模型单元ALARM 的内容是否与预设一样,如不一样,则发光报警).并在电路中添加开关按键,只有当开关闭合时才会报警,否则仅仅显示温度,通过开关键控制报警,非常方便和容易操作.报警电路硬件连接见图.蜂鸣器通过NPN管连接到单片机的P17口,采用外部电源进行连接,NPN起到了电流放大的作用,以保证有足够的电流去驱动蜂鸣器进行报警.图4-6 报警电路4.7 整机电路及工作原理当接通电源以后,温度传感器正常工作,温度传感器将根据被测温度的不同来采集不同的数据,然后通过计算把数据转化成相应的字库代码,通过调用字库数组的数据进行数字的显示.通过外部中断1可以进行时间显示与温度显示的切换.当处于不同的显示状态时可以通过外部中断0来实现时间的调整和温度上下限的调整.P30口实现了数据的增加,每按一下数据增加一位,为P31口则实现的数据的递减.在程序中设定数据上下限以防止数据的溢出.11图4-7 整机电路第5章 软件设计从软件的功能不同可分为两大类:一是监控软件(主程序),它是整个控制系统的核心,专门用来协调各执行模块和操作者的关系.二是执行软件(子程序),它是用来完成各种实质性的功能如测量、计算、显示、通讯等.每一个执行软件也就是一个小的功能执行模块.这里将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义.各执行模块规划好后,就可以规划监控程序了.首先要根据系统的总体功能选择一种最合适的监控程序结构,然后根据实时性的要求,合理地安排监控软件和各执行模块之间地调度关系.5.1 主程序模块主程序主要完成硬件初始化,显示切换等功能主程序如下:图5-1 主程序流程图void main()Speak=0;/蜂鸣器关闭TMOD=0x11;/定时器0初始化IE=0x8f;TCON=0x05;TH0=0X3C;TL0=0XB0;TR0=1;Recall();/获取温度限值while(1) switch(disp) case 0:temp();break; /温度显示 case 1:time();break; /时间显示 case 2:tempset();break; /温度上下限调整 case 3:timeset();break; /时间调整 5.2 温度相关模块DS18B20初始化图5-2-1 DS18B20初始化流程图程序如下:reset()char presence=1;while(presence)while(presence)DQ=1;_nop_();_nop_();DQ=0; delay(50); / 550usDQ=1; delay(6); / 66uspresence=DQ; delay(45); presence = DQ;DQ=1; DS18B20取数据图5-2-2 DS18B20读数据流程图程序如下:uchar readbyte(void) uchar i;uchar value = 0;for (i=8;i>0;i-)DQ=1;_nop_();_nop_();value>>=1;DQ = 0; /_nop_();_nop_();_nop_();_nop_(); /4usDQ = 1;_nop_();_nop_();_nop_();_nop_(); /4us if(DQ)value|=0x80;delay(6); /66usDQ=1;return(value); DS18B20写数据图5-2-3 DS18B20读取数据流程图程序如下:void writebyte(uchar val)uchar i;for (i=8; i>0; i-) /DQ=1; _nop_();_nop_(); DQ=0; _nop_();_nop_();_nop_();_nop_();_nop_();/5usDQ = val&0x01; delay(6); /66usval=val/2; DQ = 1;delay(1); 4、温度读取与转化及报警程序程序如下:void GetTemp()uchar n=0,temp;reset(); /DS18B20复位writebyte(0xCC); / Skip ROMwritebyte(0xBE); / 发送读取命令TL=readbyte(); /读取温度低8位TH=readbyte(); /读取温度高8位reset();/复位writebyte(0xCC); / Skip ROMwritebyte(0x44); /发送转换命令if(TH&0xf8)!=0x00) TH=(TH);

    注意事项

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

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




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开