ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:102.29KB ,
资源ID:7169771      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7169771.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(课程设计温度检测系统修改版.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

课程设计温度检测系统修改版.docx

1、课程设计温度检测系统修改版注:此文为课程设计论文,仅供朋友们参考使用,请勿照搬,请勿用于参考之外的其他用途,谢谢合作。下载完成后请给好评,多关注下本人的其他文档,共同进步!绪论本次设计任务我选择的是基于单片机的温度计测量环境温度。随着科技的进步,现代测温应用中,温度计逐步向数字化方向发展。传统的机遇物理方法的温度计功能单一,而数字温度计以其便携,检测精度高,功能多等优点应用的越来越广泛。随着技术的发展,一些环境比较恶劣的场合中也能觅得数字温度计的踪迹。目前基于单片机的温度传感器设计的数字温度计已经很成熟,各种精度很高的温度计不断推出。数字温度计要求检测的精度必须高于控制的精确度,否则无从实现控

2、制的精度要求。所以精度已经成为数字温度计的一项重要的性能参数。因此追求高精度是数字温度计的一个目标。不仅如此,检测还涉及国计民生各个部门,可以说在所以科学技术领域无时不在进行检测。科学技术的发展和检测技术的发展是密切相关的。现代化的检测手段能达到的精度、灵敏度及测量范围等,在很大程度上决定了科学技术的发展水平。同时,科学技术的发展达到的水平越高,又为检测技术、传感器技术提供了新的前提手段。目前市场上出现了很多传感器,很多精度高的传感器已经出现,而且精度越来越高。数字温度计未来将会更精确、更人性化,为我们做出更多贡献。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的

3、方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数字单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用。在本次设计中,主要从功能组合,硬件模块,程序算法等几个方面探讨基于单片机的数字温度计的设计。一、设计要求 本次设计主要介绍了单片机控制下的环境温度检测系统,详细介绍了其硬件和软件设计,并对其各个功能模块做了详细介绍,其主要功能和指标如下: (1)利用

4、温度传感器测量某一点的环境温度;(2)测量范围为-55+125,测量精度为0.5;(3)能够电子显示实际测得的温度值;(4)当温度不在上下限范围内时会报警,并能根据需要设定报警上下限。二、设计方案确定温度是一种最基本的环境参数,人民的生活与环境的温度息息相关,在工业生产过程中要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要意义。测量温度的关键是温度传感器,本次设计中,我考虑了两种设计方案。(1)方案一采用热电偶温差电路测温,温度检测部分使用低温热偶,热电偶由两个焊接在一起不同金属导线组成,热电偶产生的热电势由两种金属的接触电势和单一导体的温差电势组成。通过将

5、参考节点保持在已知温度并测量该电压,便可推断出检测节点的温度。数据采集部分使用带有A/D通道的单片机,将随温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,将被测温度显示出来。热电偶电路的优点是测温范围广,且体积下。但是存在输出电压小、容易受到来自导线环路的噪声影响以及漂移较高的缺点,并且需要设计A/D转换电路,因此可靠性较差、测量温度准确率低。(2)方案二采用数字温度传感器,将温度直接转化成数字信号经单片机输出。数字温度传感器的内部都包含温度传感器、A/D转换器、信号处理器、存储器(或寄存器)和接口电路,其特点是能直接输出数字化的温度数据及相关的温度

6、控制量,自动适配各种微控制器(MCU)。采用数字温度传感器以实现温度数字化,既能以数字形式直接输出被测温度值,具有测量误差小,分辨力高,抗干扰能力强,能够远程传输数据,带串行总线接口等优点。因此,本次设计我选择的是方案二基于单片机的数字温度传感器。基于单片机的数字温度计的设计的基本原理是单片机、数字温度传感器与显示器等电子元器件的互联,即对温度进行实时测量,使用数字温度传感器把温度信号直接转换成数字信号输入单片机,经单片机处理后,将实时温度显示在显示器上。主要有以下几个模块:传感器模块,单片机模块,显示模块,电源模块,报警电路,复位电路和晶振电路。这几个模块组成的系统框图如图1所示:图1 数字

7、温度传感器的组成模块三、具体模块分析3.1 传感器模块本此设计选用的传感器模块是DS18B20芯片。DS18B20是美国Dallas公司最新推出的一种单总线系统的数字温度传感器。与传统的热敏电阻温度传感器不同,它能够直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式,可以分别在93.75ms和750ms内将温度值转化9位和12位的数字量。因而使用DS18B20可使系统结构更简单,可靠性更高。芯片的耗电量很小,从总线上“偷”一点电存储在片内的电容中就可正常工作,一般不用另加电源。最可贵的是这些芯片在检测点已把被测信号数字化了,因此在单总线上传送的是数字信号,这使得系统

8、的抗干扰性好、可靠性高、传输距离远。该芯片有如下特点:(1)单线接口,只有一根信号线与CPU 连接单总线器件,具有线路简单,体积小的特点;(2)不需要备份电源,可通过信号线供电,电源电压范围从3.35V;(3)传送串行数据,不需要外部元件;(4)温度测量范围从-55+125,-10+85时测量精度为0.5;(5)通过编程可实现912 位的数字值读数方式(出厂时被设置为12 位);(6)零功耗等待;(7)现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性,适合于恶劣环境的现场温度测量,如环境控制、设备或过程控制、测温类消费电子产品等。3.1.1 DS18B20的内部结构DS18B

9、20内部结构主要由四部分组成:64位激光ROM,温度敏感元件,非易失性温度报警触发器TH和TL,高速暂存器。64位激光ROM是出厂前被光刻好的,它其中保存着该DS18B20的产品信息和产品系列编码,可以看作是该DS18B20的地址序列号。单总线上所有DS18B20器件可以通过检索器件的ROM中的内容进行识别。DS18B20的管脚排列如图2所示。图2 DS18B20管脚排列引脚功能如下:VDD:可选电源脚,电源电压范围35.5V。工作于寄生电源时,此引脚应接地;DQ:数据输入/输出脚,漏极开路,常态下高电平。3.1.2 DS18B20测温原理DS18B20内含两个温度系数不同的温敏振荡器,其中温

10、敏振荡器1相当于测温元件,温敏振荡器2相当于标尺,通过不断比较两个温敏振荡器的振荡周期,得到两个温敏振荡器在测量温度下的振荡频率比值,根据频率比值和温度的对应曲线,得到相应的温度值。其原理图如图3所示:图3 DS18B20测温原理具体测温过程如下:首先由预置器2将温度寄存器预置为对应于温度下限(-55)的值。然后,由预置器1对计数器1也预置一个对应于温度下限(-55)的计数值,计数器1接收温度振荡器1的输出信号并进行减法运算。计数器2接收温敏振荡器2的输出信号得到实际温度值并送给温度寄存器作为比较标尺。如果计数器1首先递减到0,那么将向温度寄存器输出一个信号,温度寄存器的值将增加一位,对应温度

11、值增加一个分辨率的值(如分辨率为0.5时,对应温度值增加0.5),说明实测温度高于-55。随后,斜率累加器根据两个温敏振荡器的温度特性曲线计算出下一个温度位置处计数器1的预置计数值,对计数器1再次进行预置。计数器1和计数器2再次开始计数。如果计数器2先于计数器1到达0,完成一次测温。温度寄存器中的值为测量所得的当前温度值。通过这个过程不仅完成了测温,而且将完成了温度值的数字化,省去了A/D转换器。DSl8B20中的数字温度传感器的分辨率可配置为9、10、11和12位,出厂默认设置为12位分辨率,对应的温度值分辨率分别为0.5、0.25、0.125和0.0625。温度信息的低位、高位字节内容中,

12、还包括了符号位S(是正温度还是负温度)和二进制小数部分,具体形式为:低位字节:MSB232221202-12-2LSB2-32-4高位字节:MSBSSSSS26LSB2524这是12位分辨率的情况,如果配置为低的分辨率,则其中无意义位为0。实测温度和数字输出的对应关系如表1所示。温度/数字输出(二进制)数字输出(十六进制)+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00010191H+10.1250000 0000 1010 001000A2H+0.50000 0000 0000 1

13、0000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FF6FH-551111 1100 1001 0000FC90H表1实测温度和数字输出的对应关系在DSl8B20完成温度变换之后,温度值与储存在TH和TL内的告警触发值进行比较。由于是8位寄存器,所以912位在比较时忽略。TH或TL的最高位直接对应于16位温度寄存器的符号位。如果温度测量的结果高于TH或低于TL,那么器件内告警标志将置位,每次温度测量都会更新此

14、标志。只要告警标志置位,DSl8B20就将响应告警搜索命令,这也就允许单线上多个DSl8B20同时进行温度测量,即使某处温度越限,也可以识别出正在告警的器件。本次设计中采用的是外部供电方式,其接线方式如图4所示:图4 DS18B20的接线方式3.2 单片机模块本次设计使用的单片机是AT89S51。AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通

15、用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器、串行口、外中断系统可继续工作,掉电模式冻结振荡器而保

16、存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。AT89S51的引脚如图5所示。图5 AT89S51单片机引脚图管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下

17、拉为低电平时,将输出电流,这是由于内部上拉的缘故。在编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入,此时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻

18、的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流。 P3各端口的功能如表2所示:P3口引脚功能P3.0RXD(串行输入端口)P3.1TXD(串行输出端口)P3.2INT0(外中断0)P3.3INT1(外中断1)P3.4TO(定时器0外部输入)P3.5T1(定时器1外部输入)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)表2 AT89S51的P3口功能RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址

19、锁存允许的输出电平用于锁存地址的地位字节。在编程时,此引脚用于输入编程脉冲。PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。EA/VPP:当EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。在编程期间,此引脚也用于施加编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.3 显示模块本次设计的显示电路采用两位共阳极LED数码管来显示测量得到的温度值,其型号为BS 12.7 R1,表示字符高度为12.7m

20、m的红色共阳极LED数码管,16/1动态扫描时,平均电流为45mA,峰值电流为5060mA。LED数码管能在低电压下工作,而且体积小、重量轻、使用寿命长,因此本次设计选用此数码管作为显示器件。一个LED数码管只能显示一位字符,如果字符位数不止一位,可以用几个数码管组成,但是控制多位的显示电路需要有字段控制和字位控制,字段控制是指控制所要显示的字符是什么,控制电路应将字符的七段码通过输出口连接到LED的ag引脚,是某些段点亮,某些段处于歇灭状态。字位控制是指控制在多位显示器中,那几位发光或哪几位不发光,字位控制则需要通过字位码作用于LED数码管的公共引脚,是某一位或某几位的数码管可以发光。数码管

21、显示电路分为动态显示和静态显示。静态显示方式是指每一个数码管的字段控制是独立的,每一个数码管都需要配置一个8位输出口来输出该字位的七段码。因此需要显示多位时需要多个输出口,通常片内并口不够用,需要在片外扩展。动态显示又称为扫描显示方式,也就是在某一时刻只能让一个字位处于选通状态,其他字位一律断开,同时在字段线上发出该位要显示的字段码,这样在某一时刻某一位数码管就会被点亮,并显示出相应的字符。下一时刻改变所显示的字位和字段码,点亮另一个数码管,显示另一个字符。然后一次扫描轮流点亮其他数码管,只要扫描速度快,利用人眼的视觉残留效应,会使人感觉几位数码管都在稳定的显示。本次设计采用数码管动态显示,电

22、路如图6所示: 图6 显示电路图中由单片机P1口串接74HC245驱动两位共阳极数码管,上拉电阻排为10k。由P2.0和P2.1通过PNP型三极管Q1、Q2驱动其字位。三极管发射极接高电平,当P2.0或P2.1为低电平时使三极管导通选通数码管的某一位。3.4 电源模块由于控制系统的主控制部分电源需要5V的直流电源供电,因此需要把频率为50Hz、有效值为220V的交流电压转换为幅值稳定为5V的直流电压。其主要原理是把220V交流电经过变压器、整流电路、滤波电路、稳压电路转换成稳定的直流电压。电路如图7所示:图7 电源电路由于输入电压为电网电压,一般情况下所需直流电压的数值和电网电压的有效值相差较

23、大,因而变压器起到降压作用。降压后的电流还是交流电压,所以需要整流电压把交流电压转换为直流电压。由于经整流电路整流后的电压含有较大的交流分量,会影响到负载电路的正常工作,需要通过低通滤波电路滤波,是输出平滑。稳压电路的功能是使输出电流电压基本不受电网电压波动和负载电阻变化的影响,从而获得稳定性足够高的直流电压。本次设计中使用了集成稳压芯片7805解决了电源稳压问题。7805芯片的封装形式为TO-220,它有一系列固定的限制,以及过热保护和安全工作区的保护,使它基本上不会损坏。如果能够提供足够的散热片,它就能提供大于1.5A的输出电流。虽然是按照固定电压值来设计的,但是当接入适当的外部器件后,就

24、能获得各种不同的电压和电流。它的特点有:最大输出电流为1.5A;输出电压为5V;拥有热过载保护、短路保护以及输出晶体管安全工作区保护。3.5报警电路本设计采用软件处理报警,利用有源蜂鸣器进行报警输出,采用直流供电。当所测温度超过或低于所预设的温度值时,数据口相应拉高电平,报警输出。报警电路的连接如图8所示:图8 报警电路图中有三个独立式按键,分别为确定键、和。确定键为确定并退出,在开机时按确定键进入一级菜单。和为参数菜单的选择,可以分别调整温度计的上下限报警设置,在这段过程的任一时间按确定键确定并退出。图中蜂鸣器在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显

25、示,这时可以调整报警上下限,从而测出被测的温度值。3.6 复位电路在单片机的RST引脚引入高电平并保持2哥机器周期时,单片机内部就执行复位操作。实际应用在,复位操作有两种形式:一种是上电复位,另一种是上电与按键均有效的复位。上电复位要求接通电源后,单片机自动实现复位。上电瞬间RST引脚获得高电平,随着电容的充电,RST引脚的高电平逐渐下降。只要RST引脚保持两个机器周期的高电平,单片机就可以进行复位操作。本次设计采用的是上电与按键均有效的复位方式,使用起来比较方便,在程序跑飞时,可以手动复位,这样就不用再重启单片机电源,就可以实现复位。其电路连接如图9所示。电路参数为电容10F,电阻8.2K。

26、图9 复位电路3.7 晶振电路单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。本次设计采用内部时钟方式,在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2脚外接石英晶体(简称晶振),就构成了自己振荡器并在单片机内部产生时钟脉冲信号。其电路连接如图10所示:图10 晶振电路四、程序设计用汇编语言完成对设计的软件编程时,程序开始首先对数字温度传感器DS18B20进行复位,检测是否正常工作;接着读取温度数据,主机发出CCH指令与在线的DS18B20联系,接着向DS18B20发出温度A/D转换44H指令,再发出温度寄存器的温度值BEH指令,应反复调用复位,写入读取数

27、据子程序,之后再经过数据转换,由数码管显示出来,不断循环。4.1 流程图从数字温度传感器DS18B20开始工作到温度显示的大致流程图如图11所示:图11 单片机实现温度转换到显示温度的流程4.2 程序分析对DS18B20进行复位,写入和读取温度数据(在数字温度传感器DS18B20内部完成,并实现对温度信息的采集)读取温度流程如下:复位发出CCH命令(跳过ROM)发出44H命令延时1s复位发出CCH命令(跳过ROM)发出BEH命令(读内部RAM中9字节内容)连接从总线上读出2个字节的数据(温度数据的低8位和高8位)结束。部程序代码:(1)DS18B20的复位子程序部分:RESET_1820:SE

28、TB DQNOPNOPCLR DQ ;主机发出复位低脉冲MOV R1,#3DLY:MOV R0,#107DJNZ R0,$DJNZ R1,DLY ;拉高数据线SETB DQNOPNOPNOP ;等待DS18B20的回应MOV R0,#25HT2:JNB DQ,T3DJNZ R0,T2JMP T4 ;标志位flag=1,表示DS18B20存在JMP T5 ;标志位flag=1,表示DS18B20不存在T5:MOV R0,#117T4:RETDS18B20每次读取数据之前都要对DS18B20进行复位,复位要求主机发出复位低脉冲(大于48s);然后释放,DS18B20收到信号后等待1660s,然后发

29、出60240s的低脉冲,主机收到此信号表示复位成功。(2)DS18B20的写入子程序部分:WRITE_1820:MOV R2,#8 ;一位共8位数据CLR C ;C=0WR1:CLR DQ ;总线低位,开始写入MOV R3,#7DJNZ R3,$ ;保持16s以上RRC A ;把字节DATA分成8个位,循环给CMOV DQ,C ;写入一个位MOV R3,#23DJNE R3,$ ;等待SETB DQ ;重新释放总线NOPDJNZ R2,WR1 ;写入下一个位SETB DQRET当主机把数据从逻辑高电平拉到逻辑低电平时,写时间隙开始。有两种写时间隙,写1时间隙和写0时间隙。所有写时间隙必须最少保

30、持60s,包括两个写周期至少1s的恢复时间。I/O线电平变低后,DS18B20在一个15s到60s的窗口内对I/O线采样。如果线上是高电平,就是写1,如果是低电平,就是写0。主机要生成一个写时间隙,必须把数据线拉到低电平然后释放,在写时间隙开始后的15s内允许数据线拉到高电平。主机要生成一个写0时间隙,必须把数据线拉到低电平并保存60s。每个读时序都由主机发起,至少拉低总线1s,在主机发起读时序之后,单总线器件才开始在总线上发送0或1.所有读时序至少需要60s。(3)DS18B20的读取子程序READ_1820:MOV R4,#2 ;读取两个字节的数字MOV R1,#29H ;低位存入29H,

31、高位存入28HRE0:MOV R2,#8 ;数据一共有8位RE1:CLR CSETB DQNOPNOPCLR DQ ;读前总线保持为低NOPNOPNOPSETB DQ ;开始读总线释放MOV R3,#9RE2:DJNZ R3,RE2 ;延时18sMOV C,DQ ;从总线读到一个位MOV R3,#23RE3:DJNZ R2,RE1 ;读取下一位MOV R1,ADEC R1DJNZ R4,RE0;RET当从DS18B20读数据时,主机生成读时间隙。当主机把数据从高电平拉到低电平时,读时间隙开始,数据线必须保持至少1s;从DS18B20输出的数据在读时间隙的下降沿出现后15s内有效。因此,主机在读时间隙开始后必须把I/O脚驱动拉

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1