单片机课程设计之热敏电阻测温Word格式文档下载.docx
《单片机课程设计之热敏电阻测温Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机课程设计之热敏电阻测温Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
![单片机课程设计之热敏电阻测温Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-10/25/27d6e5dc-55fd-43e0-a2b2-c32ce4d3173a/27d6e5dc-55fd-43e0-a2b2-c32ce4d3173a1.gif)
测试数据与结果分析…………………………23
第七部分:
使用说明书……………………………………23
第八部分:
总结…………………………………………24
热敏电阻温度采集系统设计
摘要
温度在人类的生活中扮演着极其重要的角色,在冶金、钢铁、石化、水泥、玻璃、医药等行业温度的测量及为重要。
本次课程设计采用单片机了STC12C5A60S2和10KNTC热敏电阻为核心器件来设计热敏电阻测温系统。
通过NTC热敏电阻对外界温度信号进行采集,由于热敏电阻的阻值随外界温度变化而变化,再通过测量电路把阻值的变化转换为电压的变化,利用STC12C5A60S2单片机的集成AD把采集到的模拟电压信号转换为数字信号,利用单片机对数字信号进行处理后就可以得到相应的温度值,从而完成了对温度的测量。
该系统采用了STC12C5A60S2单片机、NTC热敏电阻、共阴极数码管显示、电容、排阻、晶振、电阻等元器件。
关键字:
STC12C5A60S2单片机、热敏电阻、测温系统
第一部分
设计背景
在人类的生活环境中,温度扮演着极其重要的角色。
无论你生活在哪里,从事什么工作,无时无刻不在与温度打着交道。
自18世纪工业革命以来,工业发展对是否能掌握温度有着绝对的联系。
在冶金、钢铁、石化、水泥、玻璃、医药等等行业,可以说几乎80%的工业部门都不得不考虑着温度的因素。
温度对于工业如此重要,由此推进了温度传感器的发展。
进入21世纪后,温度传感器正朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展。
在工农业生产中,温度检测及其控制占有举足轻重的地位,随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统已经应用于诸多领域。
要达到较高的测量精度需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差等问题,使温度检测复杂化。
模拟信号在长距离传输过程中,抗电磁干扰时令设计者伤脑筋的问题,对于多点温度检测的场合,各被检测点到监测装置之间引线距离往往不同,此外,各敏感元件参数的不一致,这些都是造成误差的原因,并且难以完全清除。
单片机以其功能强、体积小、可靠性高、造价低和开发周期短等优点,成为自动化和各个测控领域中必不可少且广泛应用的器件,尤其在日常生活中也发挥越来越大的作用。
采用单片机对温度采集进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控数据的技术指标,从而能够大大提高产品的质量和数量。
第二部分
系统主要功能
本系统测量的温度范围为2-42摄氏度,可以通过数码管直观地显示出当前温度值。
第三部分
电路设计与参数选择
1、设计原理
图1
如图1所示,当外界温度变化时,热敏电阻的阻值随着发生变化,热敏电阻上分得的电压发生变化,通过单片机的IO口和集成AD可以获得热敏电阻的电压值为V,通过计算得出热敏电阻的阻值变化规律R=V*R1/(5-V)。
由于热敏电阻的阻值与温度有表1的对应关系,将各对应值用数组形式写入程序,通过查表便可以得到此时外界的温度值。
温度(摄氏度)
阻值(千欧姆)
2
25.7
17
12.6
32
7.7
3
24.6
18
12.1
33
7.4
4
23.6
19
11.6
34
7.1
5
25.5
20
11.2
35
6.9
6
21.6
21
10.7
36
6.6
7
20.7
22
10.3
37
6.4
8
19.8
23
10.0
38
6.2
9
19.0
24
9.6
39
6.0
10
18.2
25
9.2
40
5.8
11
17.4
26
8.9
41
5.6
12
16.7
27
8.8
42
5.4
13
16.0
28
8.7
43
5.2
14
15.4
29
8.6
44
5.0
15
14.8
30
8.5
45
4.8
16
14.2
31
8.4
46
4.6
表1
2、硬件电路
图2
3、元器件选用及连接
元件号
元件名称
元件说明
1
电源
5V
电阻R1
10K
热敏电阻R
电容C3
10uF
电阻R2
4.7K
电容C1
30pF
电容C2
晶振X1
12MHZ
排阻RP1
10KX8
数码管
8段共阴
单片机
STC12C5A60S2
表2
系统所用的元器件及说明如表2所示。
引脚连接安排为:
P1.1引脚接热敏电阻,RST引脚接复位电路,X1、X2连接用来起振,P2.7-P2.4引脚接数码管的1、2、3、4,P0.0-P0.7引脚接数码管的abcdefgh和10K的排阻。
4、硬件选用
⒈热敏电阻的选用
热敏电阻器的热敏电阻有电阻值随温度升高而升高的正温度系数(简称PTC)热敏电阻和电阻值随温度升高而降低的负温度系数(简称NTC)热敏电阻。
NTC热敏电阻器,是一种以过渡金属氧化物为主要原材料,采用电子陶瓷工艺制成的热敏半导体陶瓷组件。
这种组件的电阻值随温度升高而降低,利用这一特性可制成测温、温度补偿和控温组件,又可以制成功率型组件,抑制电路的浪涌电流。
电阻温度特性可以近似地用下式来表示:
R=R*EXP[B*(1/T-1/T)]式中:
RT、RN分别表示NTC在温度T(K)和额定额定温度TN(K)下的电阻值,单位Ω,T、TN为温度,单位K(TN(k)=273.15+TN(℃))。
B,称作B值,NTC热敏电阻特定的材料常数(Beta)。
由于B值同样是随温度而变化的,因此NTC热敏电阻的实际特性,只能粗略地用指数关系来描述,所以这种方法只能以一定的精度来描述额定温度或电阻值附近的有限的范围。
电阻-温度关系:
NTC热敏电阻器CWF2-502F3950各温度点的电阻值,即电阻-温度关系表。
NTC热敏电阻器CWF2-502F3950的测温范围为[-55℃,125℃],其电阻值的变化范围为[250062Ω,242.64Ω]。
如表1所示,列举了2-42摄氏度的电阻-温度关系。
⒉STC12C5A60S2单片机的选用及单片机资源安排
2.1STC12C5A60S2概述
本次课程设计核心元件是单片机STC12C5A60S2,下面对STC12C5A60S2做简单的概述。
2.1.1基本构造
STC12C5A60S2单片机中包含中央处理器(CPU)、程序存储器(Flash)、数据存储区(SRAM)、定时/计数器、UART串口、串口2、I/O接口、高速A/D转换、SPI接口、PCA、看门狗及片内R/C振动器和外部晶振等模块。
STC12C5A60S2系列单片机几乎包含了数据采集和控制中所需的所有单元模块,可称得上一个片内系统。
单片机STC12C5A60S2的基本构造如图3所示:
图3
2.1.2性能特点
60KB的Flash片内程序存储器、256字节的内部随机存取数据存储器(RAM)、1024字节的外部存储器、1K字节的数据Flash存储(EEPROM)、ISP(在系统可编程)/IAP(在应用可编程)、看门狗、内部集成MAX810专用复位电路、外部掉电检测电路、时钟源:
外部精度晶体/时钟,内部R/C振荡器、4个16位定时器、3个时钟输出口、7个外部中断I/O口、PWM(2路)/PCA(可编程计数器阵列,2路)、A/D转换,10位精度ADC,共8路.
2.1.3STC12C5A60S2单片机资源利用
本次课程设计,主要应用了STC12C5A60S2单片机中中央处理器(CPU)、高速A/D转换、外部晶振等模块。
第四部分
C语言程序流程图及代码
主函数流程图:
AD中断流程图:
图
数码管显示
系统C程序代码:
Config.h代码:
#ifndef_CONFIG_H_
#define_CONFIG_H_
#include<
STC.h>
#defineFOSC12000000L
#defineADC_POWER0x80
#defineADC_FLAG0x10
#defineADC_START0x08
#defineADC_SPEEDLL0x00
#defineADC_SPEEDL0x20
#defineADC_SPEEDH0x40
#defineADC_SPEEDHH0x60
#defineADC_POSITION1//AD通道位置0-7
#defineNUX_DATAP0//数码管段选
#defineNUX_SEGP2//数码管位选
voidDelay_ms(unsignedintms);
//延时函数
voidInitADC();
//初始化AD功能
#endif
Main.c代码:
#include"
config.h"
unsignedintcodeTtable[42][2]={2,257,3,246,4,236,5,225,6,216,7,2078,1989,19010,18211,17412,16713,16014,15415,14816,14217,13618,13119,12620,12121,11622,11223,10724,10325,10026,9627,9228,8929,8630,8231,8032,7733,7434,7135,6936,6637,6438,6239,6040,5841,5642,5443,52};
//此数组保存热敏电阻的温度值(从2-43摄氏度),超出无效
unsignedcharcodeTableDATA[13]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F/*0-9*/,0x00/*无*/,0x02,0x39,}
//数码管数字0-9
unsignedcharcodeTableSEG[4]={0xEF,0xDF,0xBF,0x7F};
//数码管位置0-3
unsignedcharshow[4];
//定义温度全局
/********************************************
**函数名称:
voidDelay_ms(unsignedintms)
**功能描述:
延时函数
**输 入:
unsignedintms延时