首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

基于热敏电阻的温度检测装置

2024-08-10 来源:华佗小知识
[键入文字]

实验报告

项目名称: 基于热敏电阻的温度检测装置 专 业: 电子信息工程技术 姓 名: 学 号: 指导老师: 职 称:

第 1 页 共 24 页

[键入文字]

目 录

第1章 前言-------------------------------------------------------4

1.1 设计背景-----------------------------------------------------4 1.2 设计的主要内容及技术指标-------------------------------------5 1.3 数据采集系统简单介绍-----------------------------------------5

第2章 热敏电阻的温度检测装置的系统论证----------------------7

2.1 温度传感器的选择---------------------------------------------7 2.2 调理模块-----------------------------------------------------7 2.3温度核心模块-------------------------------------------------11 2.4 显示模块-----------------------------------------------------12

第3章 热敏电阻的温度检测装置硬件系统设计--------------------14

3.1 温度采集模块硬件设计-----------------------------------------14 3.2 AD转换模块设计-----------------------------------------------15 3.3 MCU控制器模块设计--------------------------------------------16

3.3.1 核心部件的介绍------------------------------------------16 3.3.2 复位电路的设计------------------------------------------17 3.4 显示模块电路设计----------------------------------------------18 3.5电源模块的设计-------------------------------------------------19

第4章 热敏电阻的温度检测装置软件系统设计---------------------20

4.1软件总体程序设计-----------------------------------------------20 4.2 功能模块设计---------------------------------------------------20 4.2.1 AD转换模块原理及程序------------------------------------21

4.2.2 热敏电阻阻值和温度的非线性对性模块原理及程序-------------23 4.2.3 温度显示模块程序-----------------------------------------26

第5章 热敏电阻的温度检测装置系统调----------------------------29 第6章

总结--------------------------------------------------------30

参考文献 -------------------------------------------------------------31

第 2 页 共 24 页

[键入文字]

基于热敏电阻的温度检测装置的设计

摘要:随着社会的进步和工业技术的发展,人们越来越重视温度对产品的影响,

许多产品对温度范围要求严格,目前市场上普遍存在的问题有温度信息传递不及时、精度不够的缺点,不利于工业控制者根据温度变化及时做出决定。在这样的形式下,开发一种实时性高、精度高的温度采集系统就很有必要。

本课题用一种基于单片机的数据采集系统方案,该方案根据热敏电阻随温度变化而变化的特性,采用串联分压电路。单片机采集热敏电阻的电压,通过A/D转换将模拟量电压信号转换成数字量电压信号,经过查表转换得到温度值,控制液晶屏实时显示温度值。本系统中所用到的器件是STC89C52单片机、NTC热敏电阻和LCD1602液晶显示屏。

关键词:STC89C52单片机;热敏电阻;LCD1602

第 3 页 共 24 页

[键入文字]

第1章 前言

1.1 设计背景

在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现 ,能够独立工作的温度检测和显示系统已经应用于诸多领域。要达到较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各敏感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。

单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。采用单片机对温度采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。

由于科学技术的飞速发展,特别是微电子加工技术,计算机技术及信息处理技术的发展,人们对信息资源的需求日益增长,作为提供信息的传感技术及传感器愈来愈引起人们的重视,而综合各种技术的传感器技术也进入到一个飞速的发展阶段。要及时正确地获取各种信息,解决工程、生产及科研中遇到的各种具体的检查问题,就必须合理选择和善于应用各种传感器及传感技术。如最简单的温度的测量,有热电偶、光纤温度传感器等等。但是,热敏电阻是开发早、种类多、发展较成熟的敏感元器。热敏电阻由半导体陶瓷材料组成,利用的原理是温度引起电阻变化。热敏电阻器是敏感元件的一类,按照温度系数不同分为正温度系数热敏电阻器(PTC)和负温度系数热敏电阻器(NTC)。热敏电阻器的典型特点是对温度敏感,不同的温度下表现出不同的电阻值。正温度系数热敏电阻器(PTC)在温度越高时电阻值越大,负温度系数热敏电阻器(NTC)在温度越高时电阻值越低,它们同属于半导体器件。随着半导体技术的不断发展,热敏电阻作为一种新型感温元件应用越来越广泛。他具有体积小、灵敏度高、重量轻、热惯性小、寿

第 4 页 共 24 页

[键入文字]

命长以及价格便宜等优点,最重要的是作为温度传感器的热敏电阻的灵敏度非常高,这是其他测温传感器所不能比拟的。

1.2 设计的主要内容及技术指标

1.测量过程是热敏电阻随着温度的变化电阻值发生变化,然后利用精密电阻器以电压模式对热敏电阻进行线性化2.技术指标:温度测量范围为常温

灵敏度为±0.5℃

1.3 数据采集系统简单介绍

随着自动控制的发展,数据采集越来越被广泛应用传给PC 机进行存储,处理,显示或打印的过程,相应的系统称为数据采集系统,可分为以下几种:

1.基于通用微型计算机的数据采集系统

将采集来的信号通过外部的采样和A/D转换后的数字信号通过接口电路送入微机内进行处理,然后再显示处理结果或经过D/A 转换输出,主要有以下几个特点:

2.基于单片机的数据采集系统

它是由单片机及其些外围芯片构成的数据采集系统,是近年来微机技术快速发展的结果,它具有如下特点:

3.基于DSP数字信号微处理器的数据采集系统

DSP数字信号微处理器从理论上而言就是一种单片机的形式,常用的数字信号处理芯片有两种类型,一种是专用DSP芯片,一种是通用DSP芯片。基于DSP数字信号微处理器的数据采集系统的特点如下:精度高、灵活性好、可靠性好、容易集成、分时复用等,但其价格不菲。

经过一系列的对比以及比较本设计采用的是单片机形式的数据采集系统

第2章 热敏电阻的温度检测装置的系统论证

2.1 温度传感器的选择

测量温度的关键是温度传感器,因此需要灵敏度高、测温范围宽、稳定性好,同时还要考虑成本和实际情况。 方案一:

DS18B20数字式温度传感器,使用集成芯片,采用单总线技术,其能够有效的减小外界的干扰,提高测量的精度,同时,它可以直接将被测温度转化成串行数字信号供微

第 5 页 共 24 页

[键入文字]

机处理,接口简单,使数据传输和处理简单化。部分功能电路的集成,使总体硬件设计更简洁,能有效地降低成本, 搭建电路和焊接电路时更快,调试也更方便简单化 ,但是这个温度传感器适用于精密温度测量系统中。 方案二:

热敏电阻的主要特点是:①灵敏度较高,其电阻温度系数要比金属大10~100倍以上,能检测出10-6℃的温度变化;②工作温度范围宽,常温器件适用于-55℃~315℃,高温器件适用温度高于315℃(目前最高可达到2000℃),低温器件适用于-273℃~55℃;③体积小,能够测量其他温度计无法测量的空隙、腔体及生物体内血管的温度;④使用方便,电阻值可在0.1~100kΩ间任意选择;⑤易加工成复杂的形状,可大批量生产;⑥稳定性好、过载能力强. 方案三:

热电偶传感器的灵敏度,线性和温度范围是和所用的金属有关。多年来,已经有几种热电偶成为标准,在美国,NIST公布了八种热电偶,让字母代码来识别的毫伏~温度表。其中五种J、K、T、G和N是由碱金属合金制成,有不同的温度范围和用途,灵敏度一般是每摄氏度几十毫伏,其中三种R、S和B是用的金属白金制成的,但是这种热电偶价格昂贵,最常用于高温工作,不适合常温的测量,而且灵敏度很低。

对比之后,根据实际的应用需求,本设计采用方案二热敏电阻传感器。

2.2 调理模块

方案一:

如图2-1所示是由集成运算放大器和铂热电阻构成的自动温度补偿电路。该电路可分为阻抗变换和温度补偿两级,阻抗变换器A1是一个电压跟随器,它的作用是把来自传感器送来的与温度成比例变化的,温度补偿器A2是一个同相电压放大器,电路元件可根据同相电压放大器基本原则进行选取,这一级的作用是将阻抗变换级送来的电压信号进行放大,同时吸取来自铂热Rt送来的与温度成比例变化的电阻信号,这个电阻信号去改变放大器的灵敏度,使放大器的输入电压V0与温度无关。但是此电路比较复杂,元器件较多,可能导致精度不够。

图2-1为自动温度补偿电路

第 6 页 共 24 页

[键入文字]

方案二:

温度补偿还可以采用简单的查表法从电压值中查出相应的温度值。预先将一系列温度与电压对应值存贮到STC89C52微控制器程序存储器中的一个表内,当给定任意一个在测量范围中的电压值时,即可通过查表得出所对应的温度值。

本设计所采用的NTC热敏电阻所对应温度补偿表如表2-1;如图2-2所示的是电阻温度曲线图,温度随阻值的增加而减小;无论什么补偿都有误差,电阻与温度的误差如图2-3所示。

R25=10KΩ 精度:±5% B25/50=3950K 精度:±1% 温度(℃) -3.00 -2.00 -1.00 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 电阻(KΩ) 35.58 38.48 41.51 33.80 36.52 39.35 32.12 34.67 37.32 30.54 32.92 35.40 29.04 31.27 33.59 27.62 29.72 31.89 26.28 28.25 30.28 25.02 26.86 28.76 23.82 25.55 27.33 22.69 24.31 25.98 21.61 23.14 24.70 20.60 22.03 23.50 19.64 20.98 22.36 18.73 19.99 21.28 17.86 19.04 20.86 17.04 18.15 19.29 16.27 17.31 18.38 15.53 16.51 17.51 温度(℃) 21.00 22.00 23.00 24.00 25.00 26.00 27.00 28.00 29.00 30.00 31.00 32.00 33.00 34.00 35.00 36.00 37.00 38.00 电阻(KΩ) 11.32 11.95 12.60 10.83 11.43 12.03 10.36 10.93 11.49 9.92 10.45 10.98 9.50 10.00 10.50 9.08 9.57 10.06 8.69 9.16 9.64 8.31 8.77 9.23 7.95 8.40 8.85 7.61 8.05 8.49 7.29 7.71 8.14 6.98 7.39 7.81 6.69 7.09 7.49 6.41 6.80 7.19 6.14 6.52 6.90 5.89 6.25 6.63 5.64 6.00 6.37 5.41 5.76 6.12 第 7 页 共 24 页

[键入文字]

15.00 16.00 17.00 18.00 19.00 20.00 14.83 15.75 16.69 14.17 15.03 15.91 13.54 14.35 15.18 12.94 13.71 14.48 12.37 13.09 13.82 11.83 12.51 13.19 39.00 40.00 41.00 42.00 43.00 44.00 5.19 5.53 5.88 4.98 5.31 5.65 4.78 5.10 5.43 4.59 4.90 5.22 4.41 4.71 5.02 4.23 4.53 4.83 表2-1 温度补偿表

所以本设计的温度补偿选用方案二,将再软件中体现。

2.3温度核心模块

方案一:

S08AW60拥有62KB片上在线可编程FLASH存储器和2KB片上RAM,具有模块保护与安全选项功能,支持2.7~5.5V电源。片内总线时钟最高可达20MHz,可选择宽范围的时钟频率。其内部集成了高性能模/数转换器(ADC)和串行通信模块,具有很宽的工作温度范围(-40℃~+125℃),可适应各类恶劣环境。该芯片还可以通过BDM在计算机与微控制器进行在线编程及后台调试,避免频繁的插拔单片机,编译软件调试功能强大。 方案二:

第 8 页 共 24 页

[键入文字]

STC89C52是一种低功耗、高性能8位微控制器,具有8K系统可编程FLASH存储器和256字节ROM,可实现0Hz~33Hz的全静态操作,支持4.0V~5.5V电源。使用Atmel公司高密度非易失性存储器技术制造,与MCS-51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。其内部没有A/D转换模块,需要外部扩展模数转换芯片。

对比之后,根据实际的应用需求,本设计选用方案二STC89C52,因为具有ISP功能,可直接通过串口下载用户程序,方便调试程序,内部8 KB的FLASH E2PROM使用户编制的程序及需要显示的字母、数字、汉字和图形都可以存储在里面,免去了扩展外部存储器的麻烦,因此以STC89C52单片机为核心的控制系统电路更简单,十分适用于液晶显示,在智能仪器、仪表和低功耗电子产品中被广泛选用。

2.4 显示模块

方案一:

LED数码管显示器可分为两种显示方式:静态显示和动态显示。

LED数码管静态显示,多片七段译码器驱动显示,这不仅增加了成本,还需要占用单片机多个I/O口,也给电路的焊接带来一定的困难,因此不选用这种方案作为显示模块,所以排除此方案。 方案二:

LED数码管显示器动态显示方式下,将所有位的段选线并联在起,由位选线控制哪位接收字段码。采用动态扫描显示,也就是在显示过中,轮流向各位送出字形码和相应的字位选择,同一时刻只有一位显示,其他各位熄灭。但是此显示方案稳定性较差,并且还需要焊接外围电路,所以不采用此方案。 方案三:

LCD液晶显示,由单片机驱动.它主要用来显示大量数据、文字、图形,能够显示的位数多,显示得清晰多样、美观,同时液晶显示器的编写程序简单,价格便宜,故采用此种方案。

LCD类型繁多,价格不等。根据本设计需要显示的信息量小的特点,选用价格便宜的LCD1602液晶屏。其特点如下:

液晶显示屏是以16列×2行=32个5×10或5×7点阵块组成的显示字符群,每个点阵为一个字符,字符间距和行距都为一个点的宽度;具有字符发生器ROM,可以显示

第 9 页 共 24 页

[键入文字] 192种字符;具有64字节的自定义字符RAM,可自定义8个5×7或4个5×10点阵字符;具有80字节的RAM;结构紧凑、轻巧、装配容易;单+5V电源供电,低功耗,长寿命,高可靠性。 第3章 热敏电阻的温度检测装置硬件系统设计 温度采集系统的硬件部分是由温度采集模块、MCU控制器模块、温度显示模块组成。具体框图如图3-1所示: 图3-1 系统硬件框图 温 度 采 集 模拟量输入 M C U 输出 L C D 显 示 热敏电阻的阻值会随着温度的变化而改变,这种变化不是线性的,但是每一种热敏电阻传感器都有一个阻值和温度对应的表格,可以通过查表得到温度值,当然也可以通过非线性公式计算出温度值。具体工作原理: 单片机通过AD芯片对电阻两端的电压进行采样,电阻变化时其两端的电压会变化,这种变化是线性的。 3.1 温度采集模块硬件设计 该模块是根据热敏电阻阻值随温度变化而变化的特性,利用串联分压的特点,将热敏电阻所分的电压送到ADC0832的模拟量输入端。具体电路原理如图3-2所示: PTB0R3VCC20kR4RES4 图3-2为温度采集模块电路原理图 第 10 页 共 24 页 TiSiB[键入文字]

该电路中R4为热敏电阻,其电压传输到ADC0832的模拟量输入端,即CH0,芯片的2脚。

3.2 AD转换模块的设计

本设计采用的AD转换芯片是ADC0832: 该芯片为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5V之间。芯片转换时间仅为32μS,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。

正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI 并联在一根数据线上使用。本课题AD芯片的CS端与P1.0口连接;CLK端与P1.1口连接;D0与D1并联并与P1.2口相连。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK 输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第1 个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第2、3个脉冲下沉之前DI端应输入2 位数据用于选择通道功能:当此2 位数据为“1”、“0”时,只对CH0 进行单通道转换。当2位数据为“1”、“1”时,只对CH1进行单通道转换。当2 位数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当2 位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第3 个脉冲的下沉之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下沉开始由DO端输出转换数据最高位DATA7,随后每一个脉冲下沉DO端输出下一位数据。直到第11个脉冲时发出最低位数据DATA0,一个字节的数据输出完成。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出DATA0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平禁用芯片,直接将转换后的数据进行处理就可以了。

第 11 页 共 24 页

[键入文字]

作为单通道模拟信号输入时ADC0832的输入电压是0~5V且8位分辨率时的电压精度为19.53mV。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

3.3 MCU控制器模块设计

STC89C52的外部工作电路如图3-3所示

VCC是STC89C52的电源引脚,GND为STC89C52的接地引脚,工作电压范围是4.0V~5.5V,在该电路中提供的是5V电压。利用芯片内部振荡电路,在XTAL1和XTAL2的引脚上外接定时元件,内部振荡器便能产生自激振荡,用示波器便可以观察到XATL2输出的正弦波,定时元件可以采用石英晶体和电容组成的并联振荡电路,晶体可以在1.2~12MHz之间选择,电容可以在20~60pF之间选择,通常选为30pF左右,电容C8~C9的大小对振荡频率有微小影响,可起频率微调作用。在芯片的9脚,即RST/Vpd接按键及电阻构成复位信号。

该电路为STC89C52控制器电路,其中,P0.5、P0.6、P0.7口分别与LCD1602的RS、R/W、E引脚连接;P2.0~P2.7口与LCD1602的DB0~DB7引脚连接;P1.2是模拟量输入端,用于输入热敏电阻传感器的电压。

3.3.1 核心部件的介绍

STC89C52是整个课题的核心部件,P0口是开漏双向可以写为1使其状态为悬浮用作高阻输入。P0口也可以在外部程序存储器时作地址的低字节,在访问外部数据存储器时作数据总线,此时通过内部强上拉输出1。在本课题中P0口外接10K排阻使输出为1来接LCD1602的RS、RW、E端。P1口可作为准双向I/O接口使用。对于MCS—52子系列单片机,P1.0和P1.1还有第2功能:P1.0口用作定时器/计数器2的计数脉冲输入端T2;P1.1用作定时器/计数器2的外部控制端T2EX。对于EPROM编程和进行程序校验时,P1口接收输入的低8位地址。在本课题中P1.2来接收AD转换模块送过来的数字量;P1.0与AD芯片的复位端相连;P1.1与AD芯片的CLK端相连。P2口2口是带内部上拉的双向I/O,口向P2口写入1时,P2口被内部上拉为高电平,可用作输入口当作为输入脚时,被外部拉低的P2 口会因为内部上拉而输出电流(见DC 电气特性)。在访问外部程序存

第 12 页 共 24 页

[键入文字]

储器和外部数据时分别作为地址高位字节和16 位地址(MOVX @DPTR),此时通过内部强上拉传送1。当使用8位寻址方式(MOV@Ri)访问外部数据存储器时,P2口发送P2特殊功能寄存器的内容。本课题的P2口作为输出口使用,把信号输送给LCD1602。P3口是带内部上拉的双向I/O口,向P3口写入1时,P3口被内部上拉为高电平,可用作输入口,当作为输入脚时,被外部拉低的P3 口会因为内部上拉而输出电流(见DC 电气特性)。它为双功能口,可以作为一般的准双向I/O接口,也可以将每1位用于第2功能,而且P3口的每一条引脚均可独立定义为第1功能的输入输出或第2功能。本课题没有用到P3口。

综上所述,STC89C52系列单片机纳为以下两点:

1) 单片机功能多,引脚数少,因而许多引脚具有第2功能;

2) 单片机对外呈3总线形式,由P0、P2口组成16位地址总线;由P0口分时复用作为数据总线。

3.3.2 复位电路的设计

STC89C52的复位方式可以是上电复位,也可以是手动复位。此外,RESET/V还是一复用脚,V掉电期间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。

1.上电复位:上电自动复位电路是一种简单的复位电路,只要在RST复位引脚接一

个电容到VCC,接一个电阻到地就可以了。上电复位是指在给系统上电时,复位电路通过电容加到RST复位引脚一个短暂的高电平信号,这个复位信号随着VCC对电容的充电过程而回落,所以RST引脚复位的高电平维持时间取决于电容的充电时间。为了保证系统安全可靠的复位,RST引脚的高电平信号必须维持足够长的时间。上电自动复位是通过外部复位电路的电容充电来实现的。只要VCC的上升时间不超过1ms,就可以实现自动上电复位。

2.手动复位:开关复位,只要按下开关按钮,倒相器即输出高电平,复位有效。手动复位和快捷,方便,所以此次设计采用手动复位方式。

3.4 显示模块电路设计

该模块是利用LCD1602(液晶显示):LCD1602的显示容量很大,为16×2个字符;1602LCD芯片的工作电压为4.5-5.5V,芯片工作电流在5V工作电压的情况下芯片工作

第 13 页 共 24 页

[键入文字]

电流为2毫安,模块的最佳工作电压为5V,显示字符的尺寸为2.95×4.35(W×H)mm。

1602LCD的第1脚VSS为地电源;第2脚接5V正电源;第3脚VL为液晶显示器对比调整端,接正电源时对比度弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用是可以通过一个10K的电位器调整对比度;第4脚为RS寄存器选择,高电平时选择数据寄存器,低电平时选择指令寄存器;第5脚为R/W读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据;第6脚为使能端,当使能端由高电平跳变为低电平时,液晶模块执行命令;第7~14脚的D0~D7为8位双向数据线;第15脚为背光源正极;第16脚为背光源负极。以上是整个1602LCD的功能介绍。

显示的清晰度是关键,其Vee引脚作用是对比调整,原理是该引脚输入电压不同,调整度不同,所以采用电位器分压作为它的电压输入。Vss及K引脚分别是电源地、LCD背光电源负极,直接接地。Vcc及A引脚分别是电源、LCD背光电源正极,采用+5V电源电。

该电路中,LCD1602的RS、R/W、E引脚分别与STC89C52中的P0.5、P0.6、P0.7口连接;DB0~DB7引脚分别与STC89C52的P2.0~P2.7口连接。

3.5 电源模块的设计

如图3-7为电源转换电路,经过此电路把220V的电压通过变压器变压为9V,再经过整流桥以及5V的稳压器件,把9V电压变为5V的电压,此电路中的LED是对电源转换电路是否正常工作的判定。

图3-7为电源转换电路

此电路比较繁琐,而且整流桥以及变压器的价格比较昂贵,并且如若在不能确保此电源转换电路正确连接的情况下,把电源加载到电路中,可能会烧毁芯片,严重的话会烧毁整块板子,所以为了确保电路安全,可以采用3节1.5V的电池来代替此电路。3节1.5V的电池带来的问题是有时可能电量过低,导致不能很好的显示。但总的来说还是3节1.5V的电池更节约方便。

第 14 页 共 24 页

[键入文字]

第4章 热敏电阻的温度检测装置软件系统设计

4.1软件总体程序设计

软件系统初始化时把温度数据做成表格存储到ROM中,通过AD对热敏电阻两端的进行测量,然后通过运算将电压值对应于电阻值,通过查表把电阻值对应于温度值,再通过运算把温度数据送到LCD显示,其中程序初始化主要是对AD和LCD进行初始化。它的框图如图4-1:

开始 程序初始化 AD采样 查温度转换表 数据处理 调用显示程序 结束

图4-1为软件总体流程图

4.2 功能模块设计

第 15 页 共 24 页

[键入文字]

4.2.1 A/D转换模块原理及程序

传感器获得的信号由于是模拟信号,而CPU处理的是数字信号,故要经过模数转换,本设计采用芯片ADC0832实现的AD转换。

图4-2 ADC0832的工作时序图

由以上时序图可知单片机对ADC0832的控制,所以进行以下编程。 C语言编写的STC89C52微控制器中A/D转换模块的节选程序代码如下:

uchar i; uint dat=0; uchar ndat=0;

if(channel==0)channel=2; if(channel==1)channel=3; ADDI=1; _nop_(); _nop_();

ADCS=0;//拉低CS端 _nop_(); _nop_();

ADCLK=1;//拉高CLK端 _nop_(); _nop_();

ADCLK=0;//拉低CLK端,形成下降沿1 _nop_(); _nop_();

ADCLK=1;//拉高CLK端 ADDI=channel&0x1; _nop_(); _nop_();

第 16 页 共 24 页

[键入文字]

ADCLK=0;//拉低CLK端,形成下降沿2 _nop_(); _nop_();

ADCLK=1;//拉高CLK端 ADDI=(channel>>1)&0x1; _nop_(); _nop_();

ADCLK=0;//拉低CLK端,形成下降沿3 ADDI=1;//控制命令结束 _nop_(); _nop_(); dat=0;

for(i=0;i<8;i++) {

dat|=ADDO;//收数据

ADCLK=1; _nop_(); _nop_();

ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); dat<<=1;

if(i==7)dat|=ADDO; }

for(i=0;i<8;i++) {

ndat>>=1;

if(ADDO==1) ndat|=0x80;

ADCLK=1;

第 17 页 共 24 页

[键入文字]

_nop_(); _nop_();

ADCLK=0;//形成一次时钟脉冲 _nop_(); _nop_(); }

ADCS=1;//拉低CS端 ADCLK=0;//拉低CLK端

ADDO=1;//拉高数据端,回到初始状态

if(dat==ndat)

{

return(ndat);

} else {

return(0x00);

}

4.2.2 热敏电阻阻值和温度的非线性对性模块原理及程序

热敏电阻的阻值温度特性曲线是一条指数曲线,非线性度较大,因此在使用时要进行线性化处理。可采用简单的查表法从电压值中查出相应的温度值。预先将一系列温度与电压对应值存贮到STC89C52微控制器程序存储器中的一个表内,当给定任意一个电压值时,即可通过查表得出所对应进行补偿过的温度值。

C语言编写的获得温度值的节选程序代码如下:

先对LCD1602进行程序初始化:LCD1602的RS脚置“1”,其意义为:选择数据寄存器;LCD1602的RW脚置“1”,其意义为:进行读操作

sbit rs=P0^5; sbit rw=P0^6; sbit e=

P0^7;

对ADC0832进行初始化:

第 18 页 共 24 页

[键入文字]

sbit ADCS=P1^0; sbit ADCLK=P1^1; sbit ADDI=P1^2; sbit ADDO=P1^2; 显示屏显示的选择项:

uchar code tab3[]=\"Low-temperature \"; uchar code tab4[]=\"Over-temperature\"; uchar code tab5[]=\" Error \"; uchar code tab6[]=\" Temp:\";

uchar code tab7[]=\" Normal \"; uchar code tab1[]=\"0123456789\";

把温度数据存储到ROM中,温度范围为79℃~-20℃: 延时50us的程序: void delay_50us(uint t) { }

延时1ms的程序: void delay(uint z) {

uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }

写指令程序:

void write_com(uchar com1) {

e=0;

第 19 页 共 24 页

uchar j,z; for(z=t;z>0;z--)

for(j=19;j>0;j--);

[键入文字]

rs=0; rw=0; P2=com1; delay_50us(10);

e=1; }

写数据程序:

void write_data(uchar dat1) { e=0; rs=1; rw=0; P2=dat1; delay_50us(10); e=1;

delay_50us(20); e=0; }

4.2.3 温度显示模块程序

delay_50us(20); e=0;

LCD1602采用+5V电压驱动,其数据接口和读写控制引脚与STC89C52单片机的I/O口直接相连。ADC0832将采集到的模拟电压值经过A/D转换后送给单片机,单片机查表得到温度值,通过I/O口传输给LCD1602显示。 C语言编写的温度值显示的节选程序代码如下: void disp() {

ad1=ad-29;

write_com(0x80); if(ad<29)

第 20 页 共 24 页

[键入文字]

{

uchar i; }

else if(ad>233) {

uchar i;

for(i=0;i<16;i++) {

write_data(tab3[i]); }

write_com(0x80+0x40); for(i=0;i<16;i++) {

write_data(tab5[i]); }

for(i=0;i<16;i++) {

write_data(tab4[i]); }

write_com(0x80+0x40); for(i=0;i<16;i++) {

write_data(tab5[i]); }

}

else if(ad>=29&&ad<=233) { uchar i;

for(i=0;i<16;i++) {

第 21 页 共 24 页

[键入文字]

write_data(tab7[i]); }

write_com(0x80+0x40); for(i=0;i<7;i++)

write_data(tab6[i]);

if(ad>197)

{

write_data('-');

write_data(tab1[(tab2[ad1])/10]); write_data(tab1[(tab2[ad1])%10]);

} else {

write_data(' ');

write_data(tab1[tab2[ad1]/10]); write_data(tab1[tab2[ad1]%10]);

}

write_data(0xdf);

//显示温度符号

}

write_data('C');

}

第5章 系统调试

5.1 硬件调试

所用到的调试工具为:万用表

当焊接好电路板后,可以进入硬件电路的调试阶段。根据硬件逻辑电路图,使用万用表的欧姆档检查每个点的链接情况,如果有漏焊、虚焊和错焊的节点的则重新焊接好。

第 22 页 共 24 页

[键入文字]

电路全部连接好后则上电调试,在上电调试过程中先给电路通上前面部分的5V信号电源。在通电过程中时刻观察电路元器件是否有异常情况,如果某些芯片有发烫等异常情况就马上断开电源。把电路重新检查,是否还有错焊或芯片某些管脚所给的电压或电流信号没有按照芯片的典型数值。把有错误的地方则重新焊接,接着继续接上电源。上述情况都正常后就可以进入硬件的联机调试。需要注意的是,在加电状态下,不能拔插任何集成电路芯片,以免损坏芯片。

在实际的调试过程中,遇到了如下一些问题:(1)CPU芯片发热。用万用表检查的结果是单片机出现了短路,去掉短路线后,单片机能正常工作。(2)在按下复位按钮以后,没有任何作用。所以可以判断是复位按钮坏了或者是连接错误,经过检查复位按钮连错了。

最后,通过硬件调试使得硬件电路的各部分正常工作,达到了调试的目的。

5.2 软件调试

软件调试主要有以下两种方法:

⒈将整个联合起来调试,对整个软件的功能进行验证;

⒉分开调试,就是将系统分成独立的小模块,然后分别对这些小模块写入程序调试。 一般采用第二种软件调试方法,可以提高调试效率,也容易解决调试中出现的,经软件的调试---修改---再调试,如此反复,排除各种故障最终基本完成了设计所要求的任务,一开始我的温度显示只能达到30℃,不能往上继续测温显示,我一直以为哪边硬件出现问题,后来才发现是软件的温度补偿表的范围就是到的30℃,只要扩大温度补偿表的温度范围就可以了。

第6章 总结

设计就是要讲究严谨,在这次毕业设计中,我学到了很多知识,也使我的能力得到了提升。

首先,硬件方面。选择硬件,要比较同类产品的稳定性、功耗、体积、价格等,另外还要符合设计的全部要求。在显示方案上,我考虑的时间相对长了一点。利用数码管显示,程序复杂,但是,自己编程比较熟悉,价格便宜。利用LCD1602显示,程序简单,但是以前自己从未使用过。经过比较,我选择LCD1602,这样可以学到新知识,提高自己的知识水平。在硬件电路的设计方面,用Protel绘制电路图时要标明元件的大小,有些封装元件要标明名称和封装。

第 23 页 共 24 页

[键入文字]

其次,软件方面。把程序分块编写能够有效地提高正确性和编程效率。在本次设计中,编程采取了“两步走”:第一步,我把温度采集部分的程序调试成功,其中包括A/D转换程序。这就要求必须对A/D转换原理了解及A/D转换寄存器熟悉。第二步,我把显示程序调试成功。这部分需要对LCD1602的时序有充分的了解和足够的认识,这也是LCD1602与LED数码管的不同之处。经过查资料和编程实验,最后使LCD1602正常显示数据。在软件编写时,还要注意添加注释,使程序更加清晰,便于理解。

总而言之,在张老师的带领和指导下,我顺利的完成了毕业设计,完成了老师交给的任务。

参考文献

[1] 王威.嵌入式微控制器S08AW原理与实践[M].北京:北京航空航天大学出版社,2009 [2] 陈杰. 传感器与检测技术[M].北京:高教出版社,2004

[3] 邵贝贝. 龚光华.单片机认识与实践[M].北京:北京航空航天大学出版社,2006 [4] 阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989 [5] 沈兰荪.数据采集与处理[M]北京:能源出版社,1987

[6] 沙占友、王彦朋、孟志永.单片机外围电路设计.电子工业出版社,2003 [7] 谢宜仁.单片机实用技术问答. 人民邮电出版社,2003

[8] 孙传友、汉泽西.测控系统原理与设计.北京航空航天大学出版社,2002

[9] 章吉良,周勇,戴旭涵等.微传感器原理、技术及应用[M].上海:上海交通大学出版社,2005

[10]李全利,仲伟峰,徐军.单片机原理及应用.北京:清华大学社,2006 [11]谭浩强.程序设计与开发技术.北京:清华大学出版社,1991

[12]Li Wei-di,Guo qiang.Application technology of LCD displays. China Publishing House of Electronics Industry,2000

[13]Su Kai,Liu qing-guo,Chen guo-ping.Principle and design of MCS-51 Single-chip microprocessor.Metallurgical Industry press,2003

第 24 页 共 24 页

因篇幅问题不能全部显示,请点此查看更多更全内容