毕业设计(论文)基于专用温度传感器的温度检测系统

2020-03-03 05:50:37 来源:范文大全收藏下载本文

摘 要 在现代工业领域温度检测系统是指用某种方式显示出当前的环境温度。传 统使用PTC或NTC电阻作为温度传感器的方式在使用过程中存在着很多不足之 处比如所采集温度的精度比较低、系统的可靠性差、设计难度较大、整体设计 成本较高等缺点已经无法满足现代工业生产中高精度温度控制的需求。而采用 专用温度传感器则可以在克服以上缺点很大程度上提高温度检测系统的性能。 本文阐述了一个基于专用温度传感器AD590的 高精度温度检测系统的设计

和实现过程。整个设计包括使用AD590的模拟温度采集传感器专用仪表放大 器AD620的信号处理系统由ADC0804构成的模数转换电路采用AT89C52组 成的单片机系统数码管显示系统和整机所需的供电系统。

关键字温度检测系统AD590AT89C52

Ⅰ www.daodoc.com Abstract The temperature check system in modern industry is that uses some special method to proce and display the environmental temperature.Tradition uses PTC or NTC resistance to be using proce to there be existing much defects as the temperature sensor way, supposes that what be detected the temperature has a bad accuracy, systematic reliability is bad, has much difficulties to design, and the cost of e ntire system is expensive.To use this method already unable satisfied modern industry produces the need being hit by the high-accuracy temperature under the control.Use the special temperature transducer could improve the systematic function of temperature detecting. This article elaborated the high-accuracy temperature having set forth a because of special temperature transducer AD590 checks the main body of a book systematically designing and realizing proce.Entire design is included: Use the AD590 temperature transducer to detect the analog temperature, instrumentation amplifier AD620 signal proce system, change the analog signal to digital signal circuit of ADC0804, the AT89C52 MUC system and the power system.

Key wordtemperature check systemAD590AT89C52

Ⅱ www.daodoc.com 目

录 摘 要.............................................................Ⅰ

Abstract............................................................Ⅱ 目 录.............................................................Ⅲ 1 绪论..............................................................1 1.1简介..........................................................2 1.2 温度控制系统的国内外现状......................................2 1.3 温度控制系统方案..............................................2 1.4 论文的主要任务和所做的工作....................................2 2设计方案以及论证..................................................4 2.2 温度传感部分..................................................4 2.3 A/D转换部分..................................................5 2.4数字显示部分..................................................6 3 电路设计.........................................................8 3.1 硬件电路设计.................................................8 3.1.1 温度采集电路...............................................8 3.1.2 AD转换电路.................................................8 3.1.3 单片机电路.................................................10 3.1.4 显示电路...................................................14 3.1.5 电源电路...................................................16 3.2 软件系统设计.................................................16 3.2.1 主程序设计.................................................16 3.2.2 AD转换程序.................................................17 3.2.3 温度采样...................................................18 3.2.4温度标度转换算法...........................................19 3.3 特殊元器件介绍..............................................22 4 总结.............................................................24 参考文献.........................................................25 附录.............................................................26

www.daodoc.com 1 绪论

1.1 简介 当代社会温度检测系统被广泛应用于社会生产、生活的各个领域。业、环境检测、医疗、家庭等多方面均有应用。同时单片机在电子产品中的应用 已经越来越广泛。

在很多电子产品中也将其用到温度检测和温度控制。目前温度测量系统种类 繁多功能参差不齐。有简单的应用于家庭的如空调电饭煲、太阳能热水器 电冰箱等家用电器的温度进行检测和控制。采用AT89C51单片机来对温度进行 控制不仅具有控制方便、组态简单和灵活性大等优点而且可以大幅度提高被 控温度的技术指标从而能够大大提高产品的质量和数量。单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点为自动化和各个测控领域中广

在工 泛应用的器件在日常生活中成为必不可少的器件尤其是在日常生活中发挥的 作用也越来越大。因此单片机对温度的控制问题是一个日常生活中经常会遇到 的问题。

本论文以上述问题为出发点设计实现了温度实时测量、显示、控制系统。 以AD590为采集器AT89S51为处理器空调相应电路为执行器来完成设计任务 提出的温度控制要求。设计过程流畅所设计的电路单元较为合理。该设计在硬 件方案设计单元电路设计元器件选择等方面较有特色。 1.2 温度控制系统的国内外现状 通过网上查询、翻阅图书了解到目前国内外市场以单片机为核心的温度控制

系统很多而且方案灵活且应用面比较广可用于工业上的加热炉、热处理炉、反应炉在生活当中的应用也比较广泛如热水器室温控制农业中的大棚温 度控制。以上出现的温度控制系统产品根据其系统组成、使用技术、功能特点、技术指标。选出其中具有代表性的几种如下

1.虚拟仪器温室大棚温度测控系统在农业应用方面虚拟仪器温室大棚温度

测控系统是一种比较智能经济的方案适于大力推广改系统能够对大棚内的 温度进行采集然后再进行比较通过比较对大棚内的温度是否超过温度限制进 行分析如果超过温度限制温度报警系统将进行报警来通知管理人员大棚内 的温度超过限制大棚内的温控系统出现故障从而有利于农作物的生长提高 产量。本系统最大的优点是在一台电脑上可以监测到多个大棚内的温度情况从

而进行控制。该系统LabVIEW虚拟仪器编程通过对前面板的设置来显示温室大www.daodoc.com 棚内的温度并进行报警进而对大棚内温度进行控制。该系统有单片机温度

传感器串口通信和计算机组成。计算机主要是进行编程对温度进行显示、报警和控制等温度传感器是对大棚内温度进行测量显示单片机是对温度传 感器进行编程去读温度传感器的温度值并把半温度值通过串口通信送入计算 机串口通信作用是把单片机送来的数据送到计算机里起到传输作用。 2.电烤箱温度控制系统

该方案采用美国TI公司生产的FLASH型超低功耗16位单片机MSP430F123 为核心器件通过热电偶检测系统温度用集成温度传感器AD590作为温度测量 器件利用该芯片内置的比较器完成高精度AD信号采样根据温度的变化情况 通过单片机编写闭环算法从而成功地实现了对温度的测量和自动控制功能。其 测温范围较低,大概在0-250之间具有精度高相应速度快等特点。 3.小型热水锅炉温度控制系统

该设计解决了北方冬季分散取暖采用人工定时烧水供热耗煤量大浪费人

力温度变化大的问题。设计方案硬件方面采用MCS-51系列8031单片机为核心 扩展程序存储器2732 AD590温度检测元件测量环境温度和供水温度ADC0809 进行模数转换同向驱动器740

7、光电耦合器及9103的功放完成对电机的控制。 软件方面建立了供暖系统的控制系统数学模型。本系统硬件电路简单,软件程序 易于实现。它可用于一台或多台小型取暖热水锅炉的温度控制,可使居室温度基 本恒定,节煤,节电,省人力。 1.3 温度控制系统方案 结合本设计的要求和技术指标通过对系统大致程序量的估计和系统工作速

度的估计考虑价格因素。选定AT89S51单片机作为系统的主要控制芯片8 位模数转换器AD0804采用AD509进行温度采集温度设定范围为-10℃~ 45℃ 通过温度采集系统对温度进行采集并作A/D转换再传输给单片机。以空调 机为执行器件通过单片机程序完成对室内温度的控制。 1.4 论文的主要任务和所做的工作 本论文主要是完成一种低成本、低价格、功能齐全、及温度测量、温度显示、温度控制于一体的单片机温度控制系统的理论设计。包括硬件电路和主要的软件 设计。

研究的关键问题是室温的精确测量温度采集器AD590温度控制电路设 计单片机与A/D转换电路、显示电路以及软件设计。

根据本设计所要完成的任务本论文完成了如下工作 www.daodoc.com 1介绍了研究和设计的背景和意义调查并综述了当前温度控系统市场的国内外 现状

2 提出了符合设计要求的高精度温度控制系统方案并阐述了其工作原理。 3 完成了硬件电路的设计它包括温度采集系统电路包含89S51单片机模数 转换器ADC0804等芯片的接口电路通过AD590实现的温度控制采集电路; 键盘接口和LED显示电路。

4 基本完成了软件部分设计它包括主程序流程图A/D转换子程序显示子程 序主程序清单。 2设计方案以及论证

2.1设计方案 经过查阅国内外相关资料现代工业控制的温度采集系统虽然传感器种类不 同但总体框架比较类似。通过仔细比较绘制出整体框架图如下

www.daodoc.com 2.2 温度传感部分 方案1 基于PTC或NTC电阻的设计

热敏电阻是开发早、种类多、发展较成熟的敏感元器件。热敏电阻由

半导体陶瓷材料组成 利用温度引起电阻变化。若电子和空穴的浓度分别 为n、p迁移率分别为μn、μp则半导体的电导为

σ=qnμn+pμp

因为n、p、μn、μp都是依赖温度T的函数所以电导是温度的函数 因此可由测量电导而推算出温度的高低并能做出电阻-温度特性曲线这 就是半导体热敏电阻的工作原理

热敏电阻包括正温度系数PTC和负温度系数NTC热敏电阻以 及临界温度热敏电阻CTR。

使用热敏电阻设计而成的温度检测系统利用“惠更斯”电桥提取出 温度的变化然后通过高共模抑制比的仪表放大器将信号放大把模拟信 号信号送入模数转换电路进行模拟到数字信号的转变从而将信号送入单 片机进行处理最终由数码管显示出当前的温度值。整体框图如下 但热敏电阻精度、重复性、可靠性较差不适用于检测小于1 ℃的信号而

且线性度很差不能直接用于A/D转换应该用硬件或软件对其进行线性化补偿。

方案2

采用集成温度传感器如常用的AD590和LM35。

AD590是电流型温度传感器。这种器件是以电流作为输出量指示温度其典 型的电流温度敏感度是1μA/K.它是二端器件使用非常方便作为一种高阻电 流源他不需要严格考虑传输线上的电压信号损失噪声干扰问题因此特别适合 作为远距测量或控制用。另外AD590也特别适用于多点温度测量系统而不必 考虑选择开关或CMOS多路转换开关所引起的附加电阻造成的误差。

由于采用了一种独特的电路结构并利用最新的薄膜电阻激光微调技术校 准使得AD590具有很高的精度。并且应用电路简单便于设计。

方案选择选择方案2。理由电路简单稳定可靠无需调试与A/D连接 方便。 2.3 A/D转换部分 模/数转化器是一种将连续的模拟量转化成离散的数字量的一种电路或器件www.daodoc.com 模拟信号转换为数字信号一般需要经过采样保持和量化编码两个过程。针对不同

的采样对象有不同的A/D转换器ADC可供选择其中有通用的也有专用的。 有些ADC还包含有其他功能在选择ADC器件时需要考虑多种因素除了关键参 数、分辨率和转换速度以外还应考虑其他因素如静态与动态精度、数据接口 类型、控制接口与定时、采样保持性能、基本要求、校准能力、通道数量、功耗、使用环境要求、封装形式以及与软件有关的问题。ADC按功能划分可分为直接 转换和非直接转换两大类其中非直接转换又有逐次分级转换、积分式转换等类 型。

A/D转换器在实际应用时除了要设计适当的采样/保持电路、基准电路和

多路模拟开关等电路外还应根据实际选择的具体芯片进行模拟信号极性转换等 的设计。

方案1采用分级式转换器这种转换器采用两步或多步进行分辨率的闪烁 式转换进而快速地完成“模拟-数字”信号饿转换同时可以实现较高的分辨 率。例如在利用两步分级完成n位转换的过程中首先完成m位的粗转换然后 使用精度至少为m位的数/模转换器ADC将此结果转换达到1/2的精度并且与 输入信号比较。对此信号用一个k位转换器k+m

方案2采用积分型A/D装换器如ICL7135等。双积分型A/D转换器转换 精度高但是转换速度不太快若用于温度测量不能及时地反应当前温度值 而且多数双击分型A/D转换器其输出端多不是而二进制码而是直接驱动数码管 的。所以若直接将其输出端接I/O接口会给软件设计带来极大的不方便。 方案3采用逐次逼近式转换器对于这种转换方式通常是用一个比较输 入信号与作为基准的n位DAC输出进行比较并进行n次1位转换。这种方法类 似于天平上用二进制砝码称量物质。采用逐次逼近寄存器输入信号仅与最高位 MSB比较确定DAC的最高位DAC满量程的一半。确定后结果0或1 被锁存同时加到DAC上以决定DAC的输出0或1/2。

逐次逼近式A/D转换器如ADC080

4、AD574等其特点是转换速度快精 度也比较高输出为二进制码直接接I/O口软件设计方便。由于ADC0804 设计时考虑到若干种模/数转换技术的优点所以该芯片非常适合于过程控制、微控制器输入通道的结合口电路、智能仪器和机床控制等应用场合并且价格低 廉降低设计成本。

方案选择选择方案3。理由用ADC0804采样速度快配合温度传感器应 用方便价格低廉降低设计成本。 www.daodoc.com 2.4 数字显示部分 通常用的LED显示器有7段或8段“米”字段之分。这种显示器有共阳极和

共阴极两种。共阴极LED显示器的发光二极管的阴极连接在一起通常此公共阴 极接地。当某个发光二极管的阳极为高电平时发光二极管点亮相应的段被显 示。同样共阳极LED显示器的工作原理也一样。 方案1采用静态显示方式。在这种方式下各位LED显示器的共阳极或 共阴极连接在一起并接地或电源正每位的段选线分别与一8位的锁存器 输出相连各个LED的显示字符一旦确定相应锁存器的输出将维持不变直到 显示另一个字符为止正因为如此静态显示器的亮度都较高。若用I/O口接口 这需要占用N*8位I/O口LED显示器的个数N。这样的话如果显示器的个数 较多那使用的I/O接口就更多因此在显示位数较多的情况下一般都不用静 态显示。

方案2采用动态显示方式。当多位LED显示时通常将所有位的段选线相应 的并联在一起由一个8位I/O口控制形成段选线的多路复用。而各位的共阳 极或共阴极分别有相应的I/O口线控制实现各位的分时选通。其中段选线占用 一个8位I/O口而位选线占用N个I/O口N为LED显示器的个数。由于各 位的段选线并联段码的输出对各位来说都是相同的因此同一时刻如果各 位选线都处于选通状态的话那LED显示器将显示相同的字符。若要各位LED 能显示出与本为相同的字符就必须采用扫描显示方式即在某一时刻只让某 一位的位选线处于选通状态而其他各位的位选线处于关闭状态同时段选线 上输出相应位要显示字符的段码。

方案选择选择方案2。理由非常节约I/O口亮度高节约CPU的使用 率。 3 电路设计

3.1 硬件系统设计 3.1.1 温度采集电路

温度采集系统主要由AD590、AD620组成如图所示 www.daodoc.com 选用温度传感器AD590AD590具有较高精度和重复性重复性优于0.1℃ 其良好的非线形可以保证优于0.1℃的测量精度利用其重复性较好的特点通

过非线形补偿可以达到0.1℃测量精度。由AD590采集到的温度信号通过AD620, 一款低功耗、高进度的仪表放大器进行线性放大在AD620的外部只需要通过 一只电阻即可将放大倍数从1-1000倍进行调整。在本电路系统中我们需要将 输出最大值和最小值调整在0-5V之间便于A/D进行转换以提高温度采集电 路的可靠性。

集成温度传感器的输出形式分为电压输出和电流输出两种。电压输出型的灵 敏度一般为10mV/K温度0℃时输出为0温度25℃时输出为2.982V。电流输 出型的灵敏度为1 μA/K。这样便于A/D转换器采集数据。 3.1.2 AD转换电路 在学习和实验过程当中对于AD转换芯片通常使用美国国家半导体公司

生产的AD0809芯片进行模拟信号到数字信号的转换。AD0809相关资料齐全 使用广泛但是对于本设计略显奢侈AD0809可以同时转换8路模拟输入但 本设计中只需要转换一路模拟输入。因此我放弃使用AD0809转而使用美国 国家半导体公司的同类产品AD0804一款与AD0809同类型的模数转换芯片。 在达到系统要求的同时降低了电路的成本减小了电路的体积简化了电路的 复杂程度。 www.daodoc.com 用单片机控制ADC时多数采用查询和中断控制两种方式。查询法是在单片

机把启动命令送到ADC之后执行别的程序同时对ADC的状态进行查询以检 查ADC变换是否已经完成如查询到变换已结束则读入转换完毕的数据。中断 控制是在启动信号送到ADC之后单片机执行别的程序。当ADC转换结束并向单 片机发出中断请求信号时单片机响应此中断请求进入中断服务程序读入转 换数据并进行必要的数据处理然后返回到原程序。这种方法单片机无需进行 转换时间管理CPU效率高所以特别适合于变换时间较长的ADC。本设计采用 查询方式进行数据收集。由于ADC0804片内无时钟故运用8051提供的地址锁 存使能信号ALE经D触发器二分频后获得时钟。因为ALE信号的频率是单片机时 钟频率的1/6如果时钟频率为6MHz,则ALE信号的频率为1MHz经二分频后为 500kHz与AD0804时钟频率的典型值吻合。由于AD0804具有三态输出锁存器 故其数据输出引角可直接与单片机的总线相连。并将A/D的ALE和START脚连在 一起以实现在锁存通道地址的同时启动ADC0804转换。启动信号由单片机的写 信号和P2.7经或非门而产生。在读取转换结果时用单片机的读信号和P2.7 经或非门加工得到的正脉冲作为OE信号去打开三态输出锁存器。根据所选用的 是查询、中断、等待延时三种方式之一的条件去执行一条输入指令读取A/D 转换结果。

ADC0804是一个8位逐次逼近的A/D转换器。AD0804的转换时间为100μs。 在CPU启动A/D命令后便执行一个固定的延时程序延时时间应略大于A/D 的转换时间延时程序一结束便执行数据读入指令读取转换结果。本设计选 用Motorola公司的基准源TL431产生参考电压2.50V即一位数字量对应10mV 即1℃。所以用起来很方便。具体电路如下

www.daodoc.com 3.1.3 单片机电路 单片微型计算机简称单片机。它在一块芯片上集成了各种功能部件中央处

理器CPU、随机存取存储器RAM、只读存储器ROM、定时器/计数器和各 种输入/输出I/O接口如并行I/O口、串行I/O口和A/D转换器等。它们 之间相互连结构成一个完整的微型计算机。

单片机的发展经历了四个阶段第一阶段19711974年主要是美国INTEL 公司从早先的第一台MCS-4微型计算机到后来功能较强的8位微处理器

Intel8008和FAIRCHILD公司的F8微处理器。这些微处理器虽说还不是单片机 但从此拉开了研制单片机的序幕。第二阶段19741978初级单片机阶段 以INTEL公司的MCS-48为代表。这个系列的单片机内集成有8位CPU并行I/O 口8位定时器/计数器寻址范围不大于4K且无串行口。第三阶段1978 1983高性能单片机阶段。在这一阶段的单片机普遍带有串行口多级中断处 理系统和16位定时器/计数器。片内ROMRAM容量加大且寻址范围可达64K 字节有的片内还带有A/D转换器接口。这类单片机有INTEL公司的MCS-51 MOTOROLA公司的6801和ZILOG公司的Z8等。其中MCS-51系列产品由于其优 良的性能价格比特别适合我国的国情MCS-51系列单片机有可能稳定相当一

段时期。现在国内的MCS-51热正在升温随着我国经济建设步伐的加大MCS-51 系列单片机必将在各个领域大显身手。第四阶段1983现在8位单片机巩 固发展及16位单片机推出阶段。此阶段主要特征是一方面发展16位单片机及专

用单片机另一方面不断完善高档8位单片机改善其结构以满足不同用户的www.daodoc.com 需要。

MCS-51系列属高档单片机近年来INTEL公司在提高该系列产品性能方面 做了不少工作相继推出了不少新产品8052/8752/80

32、低功耗的CHMOS工艺 芯片80C51/87C51/80C

31、具有高级语言编程的芯片8052AH-BASIC、高性能的 C252系列等。在本次设计中我们采用了MCS -51系列中的89C51来完成产品的CPU 的功能。

89C51是一种带4K字节闪烁可编程可擦除只读存储器FPEROM—Falsh Programmable and Erasable Read Only Memory的低电压高性能CMOS8位微 处理器俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器 的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL 高密度非易失存储器制造技术制造与工业标准的MCS-51指令集和输出管脚相 兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中ATMEL的89C51 是一种高效微控制器89C2051是它的一种精简版本。89C单片机为很多嵌入式 控制系统提供了一种灵活性高且价廉的方案。

89C51的主要特性有与MCS-51 兼容4K字节可编程闪烁存储器寿命

1000写/擦循环数据保留时间10年全静态工作0Hz-24Hz三级程序存储 器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个

中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路。 下面按其引脚功能分为四部分叙述这40条引脚的功能 1 主电源引脚VCC和GND VCC40脚接+5V电压。GND20脚接地。

2 外接晶体引脚XTAL1和XTAL2 www.daodoc.com XTAL1 和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器 ,就构成了内部

振荡方式。由于单片机内部有一个高增益反相放大器当外接晶振后就构成了 自激振荡器并产生振荡时钟脉冲。

3 控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP RST/VPD当振荡器运行时在此引脚上出现两个机器周期的高电平将使单 片机复位。在此引脚与VSS引脚之间连接一个约10KΩ的下拉电阻与VCC引 脚之间连接一个约10μF的电容可以保证可靠地复位。VCC掉电期间此引脚 可接上备用电源以保持内部RAM的数据不丢失。当VCC主电源下掉到低于 规定的电平而VPD在其规定的电压范围5土0.5V内VPD就向内部RAM 提供备用电源。ALE/PROG当访问外部存储器时ALE允许地址锁存的 输出用于锁存地址的低位字节。即使不访问外部存储器ALE端仍然以不变的 频率周期性地出现正脉冲信号此频率为振荡器频率的1/6。因此它可用作对 外输出的时钟或用于定时目的。然而要注意的是每当访问外部数据存储器时 将跳过一个ALE脉冲。ALE端可以驱动吸收或输出电流8个LS型的TTL 输入电路。对于EPROM型的单片机如8751在EPROM编程期间此引脚 用于输入编程脉冲PROG。PSEN此脚的输出是外部程序存储器的读选通 信号。在从外部程序存储器取令或常数期间每个机器周期两次PSEN有效。

但在此期间每当访问外部数据存储器时这两次有效的PSEN信号将不出现。PSEN同样可以驱动吸收或输出8个LS型的TTL输入。EA/VPP当EA端

保持高电平时访问内部程序存储器但在PC程序计数器值超过0FFFH对 8051/8751/80C51或1FFFH对3052时将自动转向执行外部程序存储器内 的程序。当EA保持低电平时则只访问外部程序存储器不管是否有内部程序 存储器。对于常用的8031来说无内部程序存储器所以EA脚必须常接地 这样才能只选择外部程序存储器。对于EPROM型的单片机如8751在EPROM 编程期间此引脚也用于施加21伏的编程电源VPP。 4 输入/输出I/0引脚P0、P

1、P

2、P3共32根 P0口39脚--32脚是双向8位三态I/O口在外接存储器时与地址总 线的低8位及数据总线复用能以吸收电流的方式驱动8个LS TTL负载。P1 口l脚--8脚是8位准双向I/O口。由于这种接口输出没有高阻状态输入 也不能锁存故不是真正的双向I/O口。能驱动吸收或输出电流4个LS TTL 负载。对80

52、8032 P1.0引脚的第二功能为T2定时/计数器的外部输入P1.1 引脚的第二功能为T2EX捕捉、重装触发即T2的外部控制端。对EPROM编

程和程序验证时它接收低8位地址。P2口21脚--28脚是8位准双向I/O 口。在访问外部存储器时它可以作为扩展电路高8位地址总线送出高8位地址。

在对EPROM编程和程序验证期间它接收高8位地址。P2可以驱动吸收或www.daodoc.com 输出电流4个LS TTL负载。P3口l0脚--17脚是8位准双向I/O口在 MCS-51中这8个引脚还用于专门功能是复用双功能口。P3能驱动吸收或 输出电流4个LS TTL负载。作为第一功能使用时就作为普通I/O口用功 能和操作方法与P1口相同。作为第二功能使用时各引脚的定义如表3.1所示。 值得强调的是P3口的每一条引脚均可独立定义为第一功能的输入输出或第二 功能。 P3口的第二功能定义 口线

引脚 第二功能 P3.0 10 RXD串行输入口 P3.1 11 TXD串行输入口 P3.2 12 INT0外部中断 0

P3.3 13 1 INT外部中断1 P3.4 14 T0 定时器0外部输入 P3.5 15 T1 定时器1外部输入

P3.6 16 WR外部数据存储器写脉冲

P3.7 17 RD外部数据存储器读脉冲

www.daodoc.com

3.1.4 显示电路

显示电路采用锁存器74HC573和数码管组合的方式进行显示温度数值。 数码管是单片机应用电路中常用的显示器件。每个数码管由8个发光二极管组 成。数码管有共阴极和共阳极两种类型。共阴极数码管内部8个二极管的阴极被 连接在一起和引脚com相接在使用是引脚应接低电平当数码管其余的某个引 脚接高电平则相应的发光二极管被点亮。共阳极数码管com端应接高电平当 数码管其余的某个引脚接低电平则相应的发光二极管被点亮。在使用过冲当中 我们需要在每个数码管的每一位段选上串联电阻限制导通电流来保证发光二极 管不被烧坏。本设计中选用共阳极数码管。 a共阴数码管原理图 b共阳数码管原理图 www.daodoc.com 1 2 3 4 5 6 7a b c d e f g8dp9GND a bf c g d e dp a bf c g d e VCC1 2 3 4 5 6 7a b c d e f g8dp dp9 c共阴数码管电路符号图 d共阳数码管电路符号图 锁存器

74HC573是一款高速低功耗TTL锁存器它能够锁存8位数据最高锁存17ns 变化的数据。本设计中使用一组I/O口用来传送数码管的段选同时使用该组 I/O口的高四位传送位选。这样一来可以大大提高I/O口的使用效率。同时 使用另外两个I/O口控制两个锁存器的锁存端是能段来控制锁存器的工作。 关于74HC573的锁存使用说明如下图

显示总体电路如下

www.daodoc.com 3.1.5 电源电路

一个优秀系统中的电源电路极为重要电源的好坏可以直接影响整机的工 作。本设计中采用线性稳压系统提供信号处理电路所需的正负15V电压和单片 机、数字电路、数码管所需的5V电压。电源系统的设计原理是通过工频变压器 将市电220V 50Hz的交流电变为双13V 50Hz的低压交流电再通过全桥整流变 为脉动的正电压经过电容滤波、7

8、79系列线性稳压芯片稳压最终输出稳 定的+15V、-15V和+5V直流电压供系统相应电路模块使用。 电源部分电路图如下所示

3.2 软件系统设计 本系统的单片机程序使用C语言编写相比汇编语言C语言具有使用灵

活、移植性强、易于上手、方便使用、可完成高级功能等特点。 3.2.1 主程序设计 程序启动后首先清理系统内存然后进行采集并通过A/D转换后传输

到单片机再由单片机控制显示设备显示现在的温度然后系统进入待机状态 等待再次检测温度。

www.daodoc.com

3.2.2 AD转换程序

89S51给出一个脉冲信号启动A/D转换后ADC0809对接受到的模拟信号进 行转换这个转换过程大约需要100μs,系统采用的是固定延时程序所以在预 先设定的延时后89S51直接从ADC0809中读取数据。

主程序开始 采集温度 查询温度 调A/D程序

调显示程序 要控制温度

键盘输入设定值 和设定值比较 启动加热/降温

温度采集和比较 与设定值相等

是 N 否 是

否 www.daodoc.com

3.2.3 温度采样

采样子程序流程图如图所示。

A/D入口 启动

A/D转换 查询EOC 读取转换数据 压缩BCD码 作未压缩处理

整理好的十位和个位 分别存入某地址单元

子程序结果 www.daodoc.com

3.2.4温度标度转换算法

A/D转换器输出的数码虽然代表参数值的大小但是并不代表有量纲的参数

值必须转换成有量纲的数值才能进行显示标度转换有线性转换和非线性转换 两种本设计使用的传感器线性好在测量的量程制内基本能与温度成线性关系。 温度标度转换程序TRAST目的是要把实际采样的二进制值转换的温度值

转换成BCD形式的温度值。对一般的线性仪表来说标度转换公式为 AX=0A+) AA0 mNN NN0 m 0X

式中0A为一次仪表的下限 Am为一次量程仪表的上限为实际测量值工程量为仪表下限所对应的数字量 Nm为仪表上限所应的数字量 NX为测量所得数字量。例如若某热处理仪表量程为200—800℃在某一时刻计算机采样得到的 二进制值U(K)=CDH则相应的温度值为 采样值起始地址送 R0 采样次数送R2 启动AD590 延时

A/D完成 所有采样结束 返回 Y N N www.daodoc.com AX=0A+) AA0 mNN NN0 m 0X=200+800-200255205=682℃

根据上述算法只要设定热电偶的量程则相应的温度转换子程序TARST

N0 很容易编写只要把这一算式变成程序将A/D转换后经数字滤波处理后的值代 入即可计算出真实的温度值。具体算法如图所示。 www.daodoc.com 保护现场 R0←Am, R1 ←0A 计算 NX-N0 R0←Nm, R1 ←N0 计算 Am-0A 计算) AA0 m/NN0m R0←NX, R1 ←N0 计算 Nm-N0 计算) AA0 mNN NN0 m 0X

R2—0A AX=0A+) AA0 mNN NN0 m 0X

DATA←AX 返 回 www.daodoc.com 3.3 特殊元器件介绍 温度传感器AD590 简介

AD590温度传感器是一种已经IC化的温度传感器它会将温度转换为电流 其规格如下

1、温度每增加1℃它会增加1μA输出电流

2、可测量范围为-55℃至150℃ 3、供电电压范围为+4V至+30V AD590的输出电流值说明见表。

其输出电流是以绝对温度零度-273℃为基准温度每增加1℃它会增

加1μA输出电流因此在室温25℃时其输出电流Iout=273+25=298μA。 AD590温度与电流的关系 温度与电流的关系 摄氏温度 AD590电流 经10KΩ电压 0℃ 273.2 uA 2.732V 10℃ 283.2 uA 2.832 V 20℃ 293.2 uA 2.932 V 30℃ 303.2 uA 3.032 V 40℃ 313.2 uA 3.132 V 50℃ 323.2 uA 3.232 V 60℃ 333.2 uA 3.332 V 100℃ 373.2 uA 3.732 V 主要特性如下

1 流过器件的电流mA等于器件所处环境的热力学温度开尔文度 数

2AD590的测温范围为-55℃+150℃。

3AD590的电源电压范围为4V30V。电源电压可在4V6V范围变化 电流变化1mA相当于温度变化1℃。AD590可以承受44V正向电压和20V反向 电压因而器件反接也不会被损坏。 4输出电阻为710MΩ。

5精度高。AD590共有I、J、K、L、M五档其中M档精度最高在-55℃ +150℃范围内非线性误差为±0.3℃。 www.daodoc.com AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均

温度的具体电路广泛应用于不同的温度控制场合。由于AD590精度高、价格低、不需辅助电源、线性好常用于测温和热电偶的冷端补 AD590实际应用电路举例 分析

1AD590的输出电流I=273+TμAT为摄氏温度因此测量的电压 V为273+TμA×10K=2.73+T/100V。为了将电压测量出来又务须使输出 电流I不分流出来我们使用电压跟随器其输出电压V2等于输入电压V。 2由于一般电源供应教多器件之后电源是带杂波的因此我们使用齐 纳二极管作为稳压组件再利用可变电阻分压其输出电压V1需调整至2.73V 3接下来我们使用差动放大器其输出Vo为100K/10K×V2-V1=T/10 如果现在为摄氏28℃输出电压为2.8V输出电压接AD转换器那么AD转换 输出的数字量就和摄氏温度成线形比例关系。

AD590测量热力学温度、摄氏温度、两点温度差、多点最低温度、多点平均

温度的具体电路广泛应用于不同的温度控制场合。由于AD590精度高、价格低、

不需辅助电源、线性好常用于测温和热电偶的冷端补偿。 4 总结 AT89C51单片机体积小重量轻抗干扰能力强对环境要求不高价格

低廉可靠性高灵活性好本文的温度控制系统只是单片机广泛应用于各行www.daodoc.com 各业中的一例。

设计实现了温度实时测量、显示。本设计温度控制电路具有较高的抗干扰性 实时性方案具有较高的测量精度温度控制实时性更高。在设计过程中首先 在老师的指导下熟悉了系统的工艺进行对象的分析按照要求确定方案。然后 进行硬件和软件的设计。通过设计使我掌握了微型机控制系统I/O接口的使用方 法模拟量输入/输出通道的设计常用显示程序的设计方法数据处理及线性 标度技术基本算法的设计思想。

在做毕业设计之前我对单片机的基本知识了解甚少而C语言虽是接触过 可是没有具体的设计和编辑过所以花了大量的时间去做准备工作。在老师的指 导和帮助下克服了一系列困难终于完成了本设计基于本人能力有限该设计 还有许多不足之处有待改进。

www.daodoc.com 参考文献 [1]钱聪.电子线路分析与设计[M].西安:陕西人民出版社,2000.[2]谈文心,钱聪,宋云娴.模拟集成电路原理与应用[M].西安:西安交通大学出版 社,1994.[3]孙肖子

,邓建国,陈南钱聪.电子设计指南[M].西安:高等教育出版社,2006.[4]HAN Zhi-jun Liu Xin-min.DIGITAL TEMPERATURE SENSOR DS18B20 AND ITS APPLICATION [J].Nanjing: Journal of Nanjing Institute of Technology(Natural Science Edition).2003 [5]SHEN Li-li,CHEN Zhong-rong.Design of Multi-Channel Test System of Measuring Temperature for Grain Storage Based on CPLD and DS18B20[J].Nanjing: Nanjing University of Information Science & Technology.2008 [6]You Guanjun Hu Yihua Liu Shenlong Zhao Tianxiang.THE CIRCUITRY OF AD590 IC TEMPERATURE SENSOR AND THE APPLICATION IN TEMPERATURE MEASUREMENT AND CONTROL[J].COLLEGE PHYSICAL EXPERIMENT,2000.[7]张国勋.缩短ICL7135A/D采样程序时间的一种方法[J].电子技术应用 1993第一期.[8]高峰.单片微型计算机与接口技术[M].北京:科学出版社2003 [9]刘伟,赵骏逸,黄勇.一种基于C8051单片机的SOC型数据采录的设计与实现 [A].天津:天津市计算机协会单片机分会编 2003 [10]何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2000 [11]李元.数字电路与逻辑设计[M].南京:南京大学出版社,1997 [12]苏丽萍.电子技术基础[M].西安:西安电子科技大学,2006 [13]徐江海.单片机实用教程[M]:机械工业出版社,2003 [14]谢文和.传感器技术及其应用[M]:高等教育出版社,2004 [15]孟立凡,蓝金辉.传感器原理与应用[M].电子工业出版社,2000 [16]江晓安.模拟电子技术 第二版[M].西安:西安电子科技大学出版社,2004

www.daodoc.com 附录 单片机应用程序 #include #define uchar unsigned char #define uint unsigned int sbit wela=P3^0; sbit dula=P3^1; sbit wr=P3^6; sbit rd=P3^7; sbit cs=P3^5; uchar num; uint a1,b1,c1; uchar table1[]= {0xff,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x86}; uchar table2[]= {0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x86}; uchar table3[]= {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x86}; void delay(uint z); uchar ad(); void display(uint,uint,uint); void main() { while(1) { switch(ad()) { case 0x00: a1=0,b1=0,b1=0; break; case 0x01: a1=0,b1=0,c1=3; break; case 0x02: www.daodoc.com a1=0,b1=0,c1=7; break; case 0x03: a1=0,b1=1,c1=1; break; case 0x04: a1=0,b1=1,c1=5; break; case 0x05: a1=0,b1=1,c1=9; break; case 0x06: a1=0,b1=2,c1=3; break; case 0x07: a1=0,b1=2,c1=7; break; case 0x08: a1=0,b1=3,c1=1; break; case 0x09: a1=0,b1=3,c1=5; break; case 0x0a: a1=0,b1=3,c1=9; break; case 0x0b: a1=0,b1=4,c1=2; break; case 0x0c: a1=0,b1=4,c1=6; break; case 0x0d: a1=0,b1=5,c1=0; break; case 0x0e: a1=0,b1=5,c1=4; break; case 0x0f: a1=0,b1=5,c1=8; break; case 0x10: a1=0,b1=6,c1=2; break; case 0x11: a1=0,b1=6,c1=6; break; case 0x12: a1=0,b1=7,c1=0; break; www.daodoc.com case 0x13: a1=0,b1=7,c1=4; break; case 0x14: a1=0,b1=7,c1=8; break; case 0x15: a1=0,b1=8,c1=2; break; case 0x16: a1=0,b1=8,c1=5; break; case 0x17: a1=0,b1=8,c1=9; break; case 0x18: a1=0,b1=9,c1=3; break; case 0x19: a1=0,b1=9,c1=7; break; case 0x1a: a1=1,b1=0,c1=1; break; case 0x1b: a1=1,b1=0,c1=5; break; case 0x1c: a1=1,b1=0,c1=9; break; case 0x1d: a1=1,b1=1,c1=3; break; case 0x1e: a1=1,b1=1,c1=7; break; case 0x1f: a1=1,b1=2,c1=1; break; case 0x20: a1=1,b1=2,c1=5; break; case 0x21: a1=1,b1=2,c1=8; break; case 0x22: a1=1,b1=3,c1=2; break; case 0x23: www.daodoc.com a1=1,b1=3,c1=6; break; case 0x24: a1=1,b1=4,c1=0; break; case 0x25: a1=1,b1=4,c1=4; break; case 0x26: a1=1,b1=4,c1=8; break; case 0x27: a1=1,b1=5,c1=2; break; case 0x28: a1=1,b1=5,c1=6; break; case 0x29: a1=1,b1=6,c1=0; break; case 0x2a: a1=1,b1=6,c1=4; break; case 0x2b: a1=1,b1=6,c1=8; break; case 0x2c: a1=1,b1=7,c1=2; break; case 0x2d: a1=1,b1=7,c1=5; break; case 0x2e: a1=1,b1=7,c1=9; break; case 0x2f: a1=1,b1=8,c1=3; break; case 0x30: a1=1,b1=8,c1=7; break; case 0x31: a1=1,b1=9,c1=1; break; case 0x32: a1=1,b1=9,c1=5; break; case 0x33: a1=1,b1=9,c1=9; break; www.daodoc.com case 0x34: a1=2,b1=0,c1=3; break; case 0x35: a1=2,b1=0,c1=7; break; case 0x36: a1=2,b1=1,c1=1; break; case 0x37: a1=2,b1=1,c1=4; break; case 0x38: a1=2,b1=1,c1=8; break; case 0x39: a1=2,b1=2,c1=2; break; case 0x3a: a1=2,b1=2,c1=6; break; case 0x3b: a1=2,b1=3,c1=0; break; case 0x3c: a1=2,b1=3,c1=4; break; case 0x3d: a1=2,b1=3,c1=8; break; case 0x3e: a1=2,b1=4,c1=2; break; case 0x3f: a1=2,b1=4,c1=6; break; case 0x40: a1=2,b1=5,c1=0; break; case 0x41: a1=2,b1=5,c1=3; break; case 0x42: a1=2,b1=5,c1=7; break; case 0x43: a1=2,b1=6,c1=1; break; case 0x44: www.daodoc.com a1=2,b1=6,c1=5; break; case 0x45: a1=2,b1=6,c1=9; break; case 0x46: a1=2,b1=7,c1=3; break; case 0x47: a1=2,b1=7,c1=7; break; case 0x48: a1=2,b1=8,c1=1; break; case 0x49: a1=2,b1=8,c1=5; break; case 0x4a: a1=2,b1=8,c1=9; break; case 0x4b: a1=2,b1=9,c1=3; break; case 0x4c: a1=2,b1=9,c1=6; break; case 0x4d: a1=3,b1=0,c1=0; break; case 0x4e: a1=3,b1=0,c1=4; break; case 0x4f: a1=3,b1=0,c1=8; break; case 0x50: a1=3,b1=1,c1=2; break; case 0x51: a1=3,b1=1,c1=6; break; case 0x52: a1=3,b1=2,c1=0; break; case 0x53: a1=3,b1=2,c1=4; break; case 0x54: a1=3,b1=2,c1=8; break; www.daodoc.com case 0x55: a1=3,b1=3,c1=2; break; case 0x56: a1=3,b1=3,c1=5; break; case 0x57: a1=3,b1=3,c1=9; break; case 0x58: a1=3,b1=4,c1=3; break; case 0x59: a1=3,b1=4,c1=7; break; case 0x5a: a1=3,b1=5,c1=1; break; case 0x5b: a1=3,b1=5,c1=5; break; case 0x5c: a1=3,b1=5,c1=9; break; case 0x5d: a1=3,b1=6,c1=3; break; case 0x5e: a1=3,b1=6,c1=7; break; case 0x5f: a1=3,b1=7,c1=1; break; case 0x60: a1=3,b1=7,c1=5; break; case 0x61: a1=3,b1=7,c1=8; break; case 0x62: a1=3,b1=8,c1=2; break; case 0x63: a1=3,b1=8,c1=6; break; case 0x64: a1=3,b1=9,c1=0; break; case 0x65: www.daodoc.com a1=3,b1=9,c1=4; break; case 0x66: a1=3,b1=9,c1=8; break; case 0x67: a1=4,b1=0,c1=2; break; case 0x68: a1=4,b1=0,c1=6; break; case 0x69: a1=4,b1=1,c1=0; break; case 0x6a: a1=4,b1=1,c1=4; break; case 0x6b: a1=4,b1=1,c1=8; break; case 0x6c: a1=4,b1=2,c1=1; break; case 0x6d: a1=4,b1=2,c1=5; break; case 0x6e: a1=4,b1=2,c1=9; break; case 0x6f: a1=4,b1=3,c1=3; break; case 0x70: a1=4,b1=3,c1=7; break; case 0x71: a1=4,b1=4,c1=1; break; case 0x72: a1=4,b1=4,c1=5; break; case 0x73: a1=4,b1=4,c1=9; break; case 0x74: a1=4,b1=5,c1=3; break; case 0x75: a1=4,b1=5,c1=7; break; www.daodoc.com case 0x76: a1=4,b1=6,c1=0; break; case 0x77: a1=4,b1=6,c1=4; break; case 0x78: a1=4,b1=6,c1=8; break; case 0x79: a1=4,b1=7,c1=2; break; case 0x7a: a1=4,b1=7,c1=6; break; case 0x7b: a1=4,b1=8,c1=0; break; case 0x7c: a1=4,b1=8,c1=4; break; case 0x7d: a1=4,b1=8,c1=8; break; case 0x7e: a1=4,b1=9,c1=2; break; case 0x7f: a1=4,b1=9,c1=6; break; case 0x80: a1=5,b1=0,c1=0; break; case 0x81: a1=5,b1=0,c1=3; break; case 0x82: a1=5,b1=0,c1=7; break; case 0x83: a1=5,b1=1,c1=1; break; case 0x84: a1=5,b1=1,c1=5; break; case 0x85: a1=5,b1=1,c1=9; break; case 0x86: www.daodoc.com a1=5,b1=2,c1=3; break; case 0x87: a1=5,b1=2,c1=7; break; case 0x88: a1=5,b1=3,c1=1; break; case 0x89: a1=5,b1=3,c1=5; break; case 0x8a: a1=5,b1=3,c1=9; break; case 0x8b: a1=5,b1=4,c1=3; break; case 0x8c: a1=5,b1=4,c1=6; break; case 0x8d: a1=5,b1=5,c1=0; break; case 0x8e: a1=5,b1=5,c1=4; break; case 0x8f: a1=5,b1=5,c1=8; break; case 0x90: a1=5,b1=6,c1=2; break; case 0x91: a1=5,b1=6,c1=6; break; case 0x92: a1=5,b1=7,c1=0; break; case 0x93: a1=5,b1=7,c1=4; break; case 0x94: a1=5,b1=7,c1=8; break; case 0x95: a1=5,b1=8,c1=2; break; case 0x96: a1=5,b1=8,c1=5; break; www.daodoc.com case 0x97: a1=5,b1=8,c1=9; break; case 0x98: a1=5,b1=9,c1=3; break; case 0x99: a1=5,b1=9,c1=7; break; case 0x9a: a1=6,b1=0,c1=1; break; case 0x9b: a1=6,b1=0,c1=5; break; case 0x9c: a1=6,b1=0,c1=9; break; case 0x9d: a1=6,b1=1,c1=3; break; case 0x9e: a1=6,b1=1,c1=7; break; case 0x9f: a1=6,b1=2,c1=1; break; case 0xa0: a1=6,b1=2,c1=5; break; case 0xa1: a1=6,b1=2,c1=8; break; case 0xa2: a1=6,b1=3,c1=2; break; case 0xa3: a1=6,b1=3,c1=6; break; case 0xa4: a1=6,b1=4,c1=0; break; case 0xa5: a1=6,b1=4,c1=4; break; case 0xa6: a1=6,b1=4,c1=8; break; case 0xa7: www.daodoc.com a1=6,b1=5,c1=2; break; //65.2 default: a1=7,b1=10,c1=10;break; } display(a1,b1,c1); } }

uchar ad() { cs=1; wr=1; cs=0; wr=0; delay(1); wr=1; cs=1; rd=1; delay(3); cs=0; rd=0; num=P1; delay(1); rd=1; cs=1; delay(50); return num; } void display(uint a,uint b,uint c) { P2=0x00; wela=1; P2=0x80; wela=0; www.daodoc.com P2=0xff; dula=1; P2=table1[a]; dula=0; delay(10); //第一位 P2=0x00; wela=1; P2=0x40; wela=0; P2=0xff; dula=1; P2=table2[b]; dula=0; delay(10); //第二位 P2=0x00; wela=1; P2=0x20; wela=0; P2=0xff; dula=1; P2=table3[c]; dula=0; delay(10); //第三位 P2=0x00; wela=1; P2=0x10; wela=0; P2=0xff; dula=1; P2=0xc6; dula=0; delay(10); //第四位 P2=0x00; www.daodoc.com wela=1; P2=0x00; wela=1; delay(10); } void delay(uint z) { uint t1,y; for(t1=z;t1>0;t1--) for(y=10;y>0;y--); } www.daodoc.com

汽车检测与维修毕业设计(论文)温度传感器检测与维修精品

半导体温度传感器

温度传感器课程设计

粮库温度检测报警系统毕业设计工作总结

基于18B20温度传感器论文

单片机温度传感器论文_图文.

温度传感器工作原理

光纤温度传感器 毕业论文

温度传感器试验论文程序清单

CMOS集成温度传感器设计

《毕业设计(论文)基于专用温度传感器的温度检测系统.doc》
毕业设计(论文)基于专用温度传感器的温度检测系统
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档
下载全文