毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc

上传人:laozhun 文档编号:3978869 上传时间:2023-03-30 格式:DOC 页数:54 大小:1.01MB
返回 下载 相关 举报
毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc_第1页
第1页 / 共54页
毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc_第2页
第2页 / 共54页
毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc_第3页
第3页 / 共54页
毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc_第4页
第4页 / 共54页
毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于AT89S52单片机的数字温度计设计与仿真.doc(54页珍藏版)》请在三一办公上搜索。

1、扬州工业职业技术学院2010 2011学年第 一 学期毕业设计课题名称: 数字温度计设计与仿真 设计时间: 2010年9月-2010年12月 系 部: 电子信息工程系 班 级: 0801应用电子 姓 名: 指导教师: 总目录第一部分 任务书 第二部分 开题报告 第三部分 毕业设计正文 第 一 部 分任务书扬州工业职业技术学院毕业设计任务书系 部电子信息工程系指导老师王斌职称副教授学生姓名张玲班级0801应用电子学号0805160110设计题目数字温度计设计与仿真设计内容目标和要求设计内容目标:本设计将介绍一种基于单片机控制的数字温度计,可以进行报警,并把测量到的数据进行显示和控制。 设计要求:

2、1、提出选题的初步设想和研究目的2、基本范围-55-1283、精度误差小于0.54、LED数码直读显示5、 画出完整电路图,写出设计总结报告。教研室审核系部审核第 二 部 分开题报告扬州工业职业技术学院 电子信息工程 系11届毕业设计(论文)开题报告书(表1)学生姓名张玲专业应用电子技术班级0801应用电子学号0805160110题 目数字温度计设计与仿真指导教师王斌职称副教授学 位硕士题目类别 工程设计 基础研究 应用研究 其它【课题的内容与要求】自从单片机诞生以来,它就步入我们人类的生活,如洗衣机、电冰箱、电子玩具收录机等。家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。

3、本设计将介绍一种基于单片机控制的数字温度计,可以进行报警,并把测量到的数据进行显示和控制。【前言】 自从单片机诞生以来,它就步入我们人类的生活,如洗衣机、电冰箱、电子玩具收录机等。家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机使我们的生活更加方便、舒适、丰富多彩。单片机也成为计算机发展和应用的一个重要方面。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件法实现了,这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。【方案的比较与评价】 方案一由于本设计

4、是测温电路,可以使用热敏电阻之类的器件利用其感温效应,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。方案二 进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。根据单片机课程设计的要求与学习目的,温度传感器DS18B20,可以很容易直接读取被测温度值,进行转换,因此,选择方案二来实现数字温度计的控制。【预期的效果及指标】通过两种方案的对比得到最佳方案,运用单

5、片机和温度传感器对某处进行温度检测并进行无线控制,在数码管上显示,最终进行温度的设定与控制。【进度安排】2010 年 09 月 21日 - 2010 年 09 月 30日 选题、调研、收集资料2010 年 10 月 08日 - 2010 年 10 月 15日 论证、开题2010 年 10 月 16日 - 2010 年 12 月 15日 设计(写作初稿)2010 年 12月 16 日 - 2010 年 01 月 10日 修改、定稿、打印【参考文献】【1】 黄仁欣.单片机原理及应用技术.清华大学出版社,2005【2】 朱勇.单片机原理与应用技术.清华大学出版社,2006【3】 李全利.单片机原理及

6、应用技术.高等教育出版社,2004【4】 李广弟.单片机基础.北京航空航天大学出版社,2001【5】 胡文金.单片机应用技术实训教程.重庆大学出版社,2004【6】 刘文涛.单片机应用开发实例.清华大学出版社,2005【7】 王治刚.单片机应用技术与实训.清华大学出版社,2004【8】 姜志海.单片机原理与应用.电子工业出版社,2005【指导教师意见】(有针对性地说明选题意义及工作安排是否恰当等)数字温度计应用在实际中很广泛,因此选题很有意义,并且工作进度安排合理,能保障按时完成毕业设计。同意提交开题论证 修改后提交 不同意提交(请说明理由)指导教师签章: 年 月 日 【系部意见】同意指导教师

7、意见 不同意指导教师意见(请说明理由) 其它(请说明)系(部)主任签章: 年 月 日第 三 部 分毕业设计正文数字温度计设计与仿真张玲0801应用电子摘要 本设计是基于AT89S52单片机的温度测量报警系统。通过对单片机技术基础及温度传感器DS18B20使用方法的学习,本组利用Protel99SE设计电路,并用PROTUES进行仿真后,实现以下功能:实时显示测得温度值,通过设定温度上下限,当测得温度高于上限或者低于下限时,系统报警提示。测得温度值精确到0.1。关键词:AT89S52 单片机 温度测量 温度计 数字 DS18B20Design and simultion of digital t

8、hermometerZhang LingApplied Electronics 0801Abstract:The design is based on temperature measurement microcontrollerAT89S52 alarm system. SCM technology base and through the temperature sensor DS18B20 use of learning, the team used Protel99SE circuit design and simulation with PROTUES, the welding ci

9、rcuit, the following functions: real-time display the measured temperature value, by setting the temperature of upper and lower limits, When the measured temperature is higher than the upper limit or below the lower limit, the system alarm. Measured temperature is accurate to 0.1 . Keywords:AT89S52

10、Microcontroller Digital Thermometer Temperature Measurement DS18B20目录第一章 引言1第二章 设计方案及硬件电路设计22.1 设计总方案22.2 方框图32.3 AT89S52端口的介绍32.3.1 单片机AT89S5242.3.2 时钟电路设计52.3.3 复位电路62.3.4 显示电路设计72.3.5 按键设计82.3.6 测温方法设计102.3.7 报警及提示电路16第三章 软件设计173.1 软件流程图173.2 中断0处理子程序流程图173.3 中断1处理子程序流程图183.4 定义端口183.5 段码显示19第四章

11、软件仿真324.1 正常情况下324.2温度高于上限温度324.3 温度低于下限温度334.4 显示报警上限温度334.5 显示报警下限温度344.6 设置上限温度354.7 设置下限温度354.8 测量的最低温度值364.9 测量的最高温度值36第五章 硬件系统的调试385.1 硬件系统的调试385.2 软件系统的调试39小结40致谢41参考文献42第一章 引言自从单片机诞生以来,它就步入我们人类的生活,如电冰箱、电子玩具收录机等。家用电器配上单片机后,提高了智能化程度,增加了功能,倍受人们喜爱。单片机使我们的生活更加方便、舒适、丰富多彩。单片机也成为计算机发展和应用的一个重要方面。单片机应

12、用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件法实现了,这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。 随着人们生活水平的提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中全自动洗衣机就是一个典型的例子。但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。温度计是测量仪器的总称,根据所用测温物质的不同和测量范围不同,有煤油温度计、酒精温度计、水银温度计、气体温

13、度计、电阻温度计、湿差电偶温度计、辐射温度计和光侧温度计等。每一种温度计都有它的特点和用途 。数计温度计采用进口高精度、低温漂、超低功耗集成电路和宽温型液晶显示器,内置高能电池连续工作5,无需敷设供电电缆,是一种精度高、稳定性好、适用性极强的新型温度显示仪。数字温度仪是传统现场指针双金属温度计的理想替代产品、数字温度计广泛用于各类工矿企业、大专院校、科研院所。第二章 设计方案及硬件电路设计2.1 设计总方案本设计是基于单片机的一种温度采集处理系统,并可以实现报警功能。大致分为以下几个模块:单片机最小应用系统,显示模块,温度测量模块,报警及提示模块,上下限设置模块。通过这些模块的连接,并通过一定

14、语言,我们可以基本实现我们的设计要求。如下是本设计的原理图。图2-1 数字温度计原理图2.2 方框图通过分析可知,系统由多个模块连接而成,系统方框图如图2-1所示。 报警提示电路上下限设置时钟电路复位电路温度测量温度显示单片机电 源图2-2 系统设计方框图2.3 AT89S52端口的介绍P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流,这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示:管脚备选功能 P3.0 RXD(串行输入口)

15、 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脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉

16、冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存

17、储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度2.3.1 单片机AT89S52AT89S52是一种低功耗、高性能

18、CMOS、8位微控制器,具有 8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能: 8k字节Flash,256字节RAM, 32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口, 片内晶振及时钟电路。另外,AT89S52 可降至0

19、Hz 静态逻 辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结, 单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程Flash。52系列单片机是51系列单片机的增强型,与AT89C51相比AT89S52定时器多一个T2,RAM多128B,ROM多4K,中断多2个,多一个看门狗,在掉电、数据指针等方面还有一些改进。S52的最高外接晶振可以达到33MHz,C51大概只有24MHz。更重要的是AT89S52支持在线编程,可以方便的给其下载程序,在调试过程中方

20、便的多,并且成本不高。现在市面上,C51差不多淘汰了,两者价格也相近。故此次课程设计选择AT89S52单片机(如图2-3)。图2-3 AT89S52 单片机外形2.3.2 时钟电路设计AT89S52内部有一个用于构成振荡器的高增益反相放大器,此放大器的输入和输出端分别是引脚XTAL1和XTAL2,XTAL1和XTAL2上接时钟源即可构成时钟电路。本设计采用内部时钟产生方式。在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,与内部反相器构成稳定的自激振荡器。参数选取:C1、C2对频率有微调作用,这里都选用30pF。晶振频率为12MHz。电路如图2-4 图2-4 时钟电路2.3.3 复位电路复位使

21、CPU和系统中其他部件都处于一个确定的初时状态,并从这个状态开始工作。本设计采用上电按钮电平的硬件复位电路,如图2-5所示。参数选取:与地相联电阻R2阻值为10K欧姆、电容C3选用10uF。图2-5 复位电路2.3.4 显示电路设计根据设计任务,首先选择显示为LED。一般LED显示有两种方式:静态显示和动态扫描显示。动态扫描显示工作原理:从一个口送段代码,一个口送位选信号。段码虽同时到达几个LED,但一次仅一个LED被选中。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。静态显示工作原理:每个LED需要一个8位并行口,高电平。保持每个显器位上的字型码不变,

22、即加在对应的段选线上段码电平不变。当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。为了减少硬件电路的复杂性,同时充分发挥单片机的强大功能,本设计采用共阴极LED动态显示。共阴极的LED显示器,所有发光二级管的阴极连在一起接地,当某个发光二极管阳极加入高电平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,实际上就是送一个用不同电平组合代表的数据字(显示码)来控制LED的显示,此数据称为字符的段码或称为字形码。共阴极时,字符与它所对应的字形码关系如表1-1:表1-1 共阴极数码管段码字符012345678

23、9段码3FH06H5BH4FH66H6DH7DH07H7FH6FH用上表建立一个数组,不同字符(数字)对应不同的字形码,送到P0口就可以显示对应的数据。根据经验可知,单片机的输出口可以不加任何驱动直接点亮LED,故本着布线简单,节省器件的理念,电路尽可能的简单。如图2-6P0.0P0.7以次接显示管的字形码输入端A、B、C、D、E、F、G、DP。值得注意的是P0口要接上拉电阻,本设计加的是470。如图2-7P2.0P2.3以次接显示数码管的位选输入端。图2-6 显示电路图2-7上拉电2.3.5 按键设计按键分为两类。一类是编码键盘,即键盘上闭合键的识别由专用硬件来实现;另一类是非编码键盘,即键

24、盘上键入及闭合键的识别由软件来完成。其中非编码键盘可分为独立连接键盘,矩阵连接键盘。键盘的作用是(1)键扫描功能。即检测是否有键按下。(2)键识别功能。确定被按下键所在的行列位置。(3)产生相应键的代码(键值)。(4)消除按键弹跳以及能够识别多键及串键(复合按键)。各种键盘的优缺点:(1)独立连接键盘: 每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。特点:占I/O口线多,判键速度快,多用于设置控制键、功能键。适用于键数少的场合。(2)矩阵连接键盘: 键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)

25、线的状态信息。逐线扫描,得出键码。特点:键多时占用I/O口线少,但判键速度慢,多用于设置数字键。适用于键数多的场合。本设计功能简单,两个按键加上两个中断就可以基本完成温度上下限设置功能,故采取独立按键。P3口低四位接键盘输入端。如图2-8 图2-8按键电路由于机械按键会产生抖动脉冲所以必须去机械抖动。去机械抖动的方法是:判别到键盘上有键闭合后,经一段时间延时后再次判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合期,否则认为是键的抖动。各按键功能如表2-2表2-2 按键功能设置按键名功 能S1查看最高限度,并为设置它做好准备S2查看最低限度,并为设置它做好准备S3每按一下,所需设

26、置温度加一S4每按一下,所需设置温度减一2.3.6 测温方法设计一般的测温元件有热电偶和热电阻两类,输出的一般都是电压信号,需要通过传感器压温关系式转换成对应的温度,外部硬件较多,电路复杂,制作成本高。我们选用一种智能传感器DS18B20作为检测元件,测温范围-55128,分辨率可达0.0625,采用3线制与单片机相连,减少了外围器件,具有简单和易用的特点。TO92封装的DS18B20的引脚排列见图2-9,其引脚功能描述见表3-3。表3-3 引脚功能序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD

27、引脚。当工作于寄生电源时,此引脚必须接地。图2-9 DS18B20 电路连接图2-10 DS18B20的引脚图DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为3.05.5V;零待机功耗;温度以9或12位数字;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温

28、度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图2-11所示C64 位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器Vdd I/O图2-11 DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还

29、包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器,结构如图所示。头2个字节包含测得的温度信息,第3和第4字节和的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值。该字节各位的定义如图2-12所示。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。温度 LSB温度 MSBTH用户字节1TL用户字节2配置寄存

30、器保留保留保留CRC图2-12 DS18B20字节定义由表4-4可见,DS18B20温度转换的时间比较长,而且分辨率越高,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以0.0625LSB形式表示。当符号位S0时,表示

31、测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位S1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。表5-5是一部分温度值对应的二进制温度数据。表4-4 DS18B20温度转换时间表R1R0分辨率/位温度最大转向时间/ms00993.750110187.510113751112750DS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若TTH或TTL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。

32、主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数

33、值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。表5-5一部分温度对应值表温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001

34、 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(

35、发复位脉冲)发ROM功能命令发存储器操作命令处理数据。5、DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图4 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。图2-13 DS18B20与单片机的

36、接口电路2.3.7 报警及提示电路报警电路选用一个直流的扬声器,额定电压为5V左右,阴极接到P3.5,通过软件控制其工作与断开,电路如图2-14。相应的,设计报警提示电路,提示相关报警信号。电路如图2-15图2-14报警电路图2-15 提示电路第三章 软件设计软件设计是本设计的一个重要部分,根据硬件将软件设计分为以下几个部分:温度测量、键盘处理程序设计、显示处理程序设计、延时程序、主程序、报警及指示控制程序。由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时

37、序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。3.1 软件流程图根据软件设计的要求,我们做出软件流程图(如图3-1),以方便我们写程序。3.2 中断0处理子程序流程图开 始开中断系统初始化写命

38、令键按下处理按键显 示结 束图3-1 软件流程图中断申请保护现场判断signLow=low+1High=high+1恢复现场中断返回10图3-2 中断0处理流程图3.3 中断1处理子程序流程图中断申请保护现场判断signLow=low-1High=high-1恢复现场中断返回10图3-3 中断1处理流程图3.4 定义端口为了在书写程序时,更明了的再现端口的意义,我们直接用一些可以看出来什么意思的名字定义端口,这样就可以增加程序的可读性。例如:#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /温度输入口sbit D

39、IN=P07; /LED小数点控制sbit alarm=P35;/报警口sbit high_set=P30;/高温度限查看设置sbit low_set=P31;/低温度限查看设置sbit low_led=P14;/过低温度报警灯sbit high_led=P12;/过高温度报警灯sbit alarm_led=P10; /温度过限报警灯3.5 段码显示/显示部分通过查表得到其段码,送P0口显示相应的数据vision() char k; for(k=0;k4;k+) /4位LED扫描控制 discan=scan_conk; /位选 Disdata=tableDis_playk; /数据显示 if

40、(k=1)DIN=1; /小数点显示 delay(100);源程序#include #include #define Disdata P0 /段码输出口#define discan P2 /扫描口#define uchar unsigned char#define uint unsigned intsbit DQ=P37; /温度输入口sbit DIN=P07; /LED小数点控制sbit alarm=P35;sbit high_set=P30;sbit low_set=P31;sbit low_led=P14;sbit high_led=P12;sbit alarm_led=P10;uint

41、 h;uint temp;char r;char high=30,low=20;uchar sign;uchar q=0;uchar tt=0;uchar code ditab16=0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/小数部分对应十进制 0 1 2 3 4 5 6 7 8 9 A B C D E FUchar code table12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67,0x00,0x40;/共阴LED段码表 0 1 2 3 4 5 6 7 8 9 不亮 - uchar code scan_con4=0xfe,0xfd,0xfb,0xf7; /列扫描控制字uchar data temp_data2=0x00,0x00; /读出温度暂放uchar data Dis_play5=0x00,0x00,0x00,0x00,0x00; /显示数据,共4个数据和一个运算暂用/延时函数 void delay(uint t) for (;t0;t-);/显示扫描函数 vision() char k; for(k=0;k4;k+) /4位LED扫描控制

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号