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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

课题一NTC热敏电阻的温度测量和控制系统.docx

1、课题一NTC热敏电阻的温度测量和控制系统基于NTC热敏电阻的温度测量与控制系统设计内容摘要:本文叙述了用单片机作为控制器,用NTC热敏电阻制作的温度传感器实现温度变化到电压变化后通过仪用放大器放大后通过AD转换再将数据送给单片机处理后用LED显示出来实现温度测量,并可利用单片机控制蜂鸣器发声和八个发光二极管亮灭来实现报警,同时还可以通过单片机控制水泥电阻给热敏电阻加热来实现温度控制的温度测量和控制系统的设计。该系统使用单片机开发板作为控制系统,而将温度传感器和加热器制作在单独一块板子上,工作时将两块板子连接起来使用。由于单片机开发板上已经有了按键、LED数码管、蜂鸣器以及AD等,因此可以完全满

2、足控制系统的需求。单片机可以用USB供电,而另外一块板子可以用实验室的直流电源作为供电系。本文最后附带了该系统的c51程序,可以方便其他人员阅读以及在此基础上进行修改,使系统功能更加完善。实验表明该系统能够实验温度的测量、温度报警、温度查询、温度的控制等功能,完全满足该课题的基本要求和扩展要求。关键词:单片机、NTC温度传感器、水泥电阻加热器绪论随着时代的进步,温度计在日常生产生活和工农业领域发挥越来越重要的作用,简单的温度计能够满足人们日常生产生活需要,但在一些工农业生产领域不仅要求能准确测量温度并且要求能够进行温度报警和温度的控制,因此在简单的温度计往往不能满足人们的要求。利用单片机作为控

3、制系统的NTC温敏电阻温度测量和控制系统更能符合工农业生产领域的需求。该系统不能能进行温度的测量并且将温度通过LED数码管显示出来使读取更加方便,该系统还能设定温度上下限实现声光报警,并且该系统还能对温度进行控制,因此在使用和功能上都比传统的温度计优越。该系统可以用在需要对温度要求比较精密的环境中,可以利用该系统的精确温度测量、报警和温度控制功能来保证生产过程的顺利进行。方案设计理论分析根据任务要求,要求制作一个基于NTC热敏电阻的温度测量和控制系统。测量范围为0-100摄氏度。测量精度为+1摄氏度,能够记录24小时内每隔三十分钟温度值,并能够用数码管回调固定时刻的温度值,能够显示24小时内的

4、温度平均值、最大值、最小值、和最大温差,具有报警功能当温度超过设定阈值时能够报警(要求有1摄氏度的回差)。在扩展部分要求制作一个温度控制元件,能够用LED显示设定温度值和实际测量值,设定温度范围为:4060摄氏度。并要求采用适当的方法,当设定温度或者环境温度突变时,减小系统的调节时间和超调量,温度控制的静态误差=0.2摄氏度。分析任务要求,该系统要用NTC温敏电阻作为测温元件,NTC热敏电阻是一种负温度特性的热敏电阻,其阻值随温度的变化曲线如下所示:图表 1由图可知,NTC的阻值随温度的上升而下降,其阻值和温度呈非线性特性,因此必须采用一定的方法对曲线进行线性化处理。其测量原理是利用通过测量其

5、阻值,通过其温度特性曲线便可求的环境温度。但因为温度不便于测量且不便于其他电路处理。通常是将电阻的变化转化为电压的变化通过测量电压变化测得温度的变化。由于采集到的电压信号是模拟信号,不能被数字系统处理,因此必须通过AD转换器,将模拟信号转换成数字信号。一般AD转换器的基准电压要求为2.5v,而采集到的电压信号很微弱,必需经过放大后才能送给AD转换器,因此在系统中还必须有信号放大的信号调理电路。 该系统要求具有报警和控温功能,因此必须有报警装置和控温元件,报警装置可以蜂鸣器和发光二极管来实现。而控温可以制作一个加热器作为控温元件,系统要求能采用适当的方法来实现改变系统的超调量和调节时间,因此可以

6、采用脉冲宽度调制来实现。报警装置和控温装置可以通过三极管来驱动。该系统应该有一个控制器,用以控制温度的显示报警和温度控制等功能。该控制器可以采用单片机,FPGA,或者DSP来实现。系统总体方案的设计及其原理概述原理图根据以上分析可知,该系统应该包括用NTC热敏电阻制作的温度传感器,对传感器信号放大的信号调理电路,加热器,显示电路,报警电路,按键和控制器组成。由于单片机作为控制器价格便宜,控制性能好,电路方便,已能完全满足该系统的要求,因此综合考虑用单片机作为该系统的控制器。该系统通过NTC热敏电阻制作的传感器采集温度,将采集到的值送给单片机处理后通过LED显示出来,并可将处理后的值与设定的温度

7、值进行比较看是否超过设定范围来实现报警。在控制温度模式下,可以通过单片机控制加热器来加热,实现温度控制。系统原理图如下:系统各个模块的方案论证与设计系统温度采集电路的设计温度采集电路主要由用NTC热敏电阻制作的温度传感器来实现,而NTC测温原理主要是基于基于将NTC阻值随温度变化转换为电压变化来实现。将NTC热敏电阻值变换转换为电压的变化有以下几种方案。方案一:采用恒流源给热敏电阻供电,由于通过电阻的电流恒定,因此只要测出器两端的电压就可以测出其阻值。该方案电路设计简单,测量也方便实现,但对恒流源要求较高,且抗干扰能力较差。方案二:采用差动电桥进行测量。图表 2VCC经过稳压二极管后电压稳定值

8、为2.5V由电桥平衡条件可知,当R2/R3=R4/R5时电桥平衡,此时V1和V2点的压差为零。由于R2=R3,因此在温度为零时,可以调节R5时R5=R4,使电桥平衡,其输出为零。当温度上升时,R4阻值减小,当温度变化一百摄氏度时,热敏电阻的变化范围大概为1K.因此可以粗略的估算电桥输出电压的变化值为2.5*(4.7/24.7-3.7/23.7)=0.0854V.该电路设计复杂,因为采用差动电桥,所以电路抗干扰能力增强,能有效抑制电源波动对电路的影响。对比上面两种方案,第二种方案虽然电路复杂但能有效抑制干扰信号,因此采用第二种方案。信号调理电路的原理与设计由于从电桥出来的信号很微弱,因此需要通过

9、运算放大器放大后才能经过AD转换。方案一:采用单运放组成的运算放大器进行微弱信号的放大。其原理图如下:图表 3为了使运放对称,因此要求R10=R7,R11=R12.放大倍数A=R12/R10.该电路简单,放大倍数可以通过调节R12来调节,但该调节会使运放不对称,因此需要同时调节R12和R11来实现。方案二:采用仪用放大器来实现放大,仪用放大器的原理图如下。信号调理电路 1仪用放大器的放大倍数可以由以下公式计算得知:A=-R11/R7(1+2*R8/R6)由于R6可调,因此可以利用调节放大倍数。由于信号采集电路采集到的最大电压差为0.0854V.而AD的基准电压为2.5V,所以要求信号调理电路的

10、最大输出为2.5V。而信号采集电路的最大输出为0.0845v,所以要求信号调理电路的放大倍数约为30倍。该电路由于可以调节R6来调节放大倍数,由于调节R6不会影响电路的对称性因此调节起来方便。对比上述两种电路,第一种结构简单但调节起来不方便,而第二种调节起来方便,且易于小信号的采集,因此选用第二种方案。温度控制电路的设计脉宽调制的基本原理简介在脉宽调制有两种方案,第一种是固定低电平时间,而另外一种是固定周期。先对固定周期的脉宽调制原理做如下简介。在固定周期的脉宽调制中,设一个周期的时间为一秒,将一个周期平分成一百份。每一份为10个毫秒,在一个周期内的份数由一个变量P控制,而每一份的时间用一个定

11、时器来控制,当每次中断来时P加1,当P到一百十把P赋值成0,开始下一个周期。而在温度控制程序中,另外设定一个变量M,每次M也加一,M到一百十也赋值为零,并且每次M和P进行比较,当MP时便可以让温度元件开始工作,于是开始控温。要实现温度突变时改变超调量,可以将温度和设定的温度进行比较,当温度差值大于某个范围时,可以改变P的初值,这样就可以进行迅速加热,达到快熟调节温度。当温度和设定值接近时可以将P的值减小,从而缓慢加热。温度控制电路的原理与电路的设计该系统要求具有温度控制功能,因此可以制作一个控温元件来给热敏电阻加热来实现温度控制。方案一:以LTC1923PWM双极性电流控制器和大功率MOSFE

12、T构成的半导体热制冷器(TEC)驱动模块。该方案制作的热制冷器可制冷也可制热,但价格相对较高。方案二:该系统通过水泥电阻来给热敏电阻加热来实现温度控制,水泥电阻需要通过一个功率三极管来驱动,为了使受热均匀,系统通过两个水泥电阻来给热敏加热。其驱动电路图如下:功率三极管的基极和单片机的某个I/O口连接,当该I/O口为1时功率三极管导通,水泥电阻开始加热,当I/O为零时,三极管截止,水泥电阻停止加热。因此在程序中可以通过给I/O口送1和零来控制水泥电阻加热和停止加热,从而实现温度控制。该方案简单,元件价格便宜。对比上面两种方案,鉴于第二种方案简单,元件价格低廉因此采用第二种方案。报警电路的设计报警

13、电路的原理与电路的设计该系统的报警电路通过三极管驱动蜂鸣器发声和单片机P1口驱动八个发光二极管发光来实现报警。三极管驱动蜂鸣器和P1口驱动发光二极管电路如下:报警电路 1蜂鸣器采用NPN三极管驱动,三极管的基极和单片机的P23相连。当P23为1时三极管截止蜂鸣器不发声,而当P23为0时,三极管导通,蜂鸣器发声。八个发光二极管通过P1口驱动,当P1口全为0时,二极管发光。因此可以通过使P23为1和让P1为零来让蜂鸣器响和发光二极管发光来实现报警。控制电路的原理与设计AD0804的采样原理及与单片机的连接方法AD采样电路 1AD的片选功能和单片机的P24相连,当P24为低电平时AD选通。AD的读信

14、号RD和写信号WR和单片机的P36和P37相连。由于AD采用的是直通方式,当P37为0时启动AD,开始转换数据。当P36为1时便可以读取AD转换的数据。LED显示电路的原理及与单片机的连接方法单片机通过一个锁存器来控制八个LED的位选,通过另外一个来控制八个LED的段选从而实现八位LED的动态扫描。其与单片机的连接方法如下。LED显示电路 1两个锁存器的片选分别于单片机的P26和P27相连。与P27相连的锁存器通过P0口给八位LED送位选码简易键盘的扫描原理及与单片机的连接方法该系统采用与单片机连接的简易键盘来实现来实现系统的按键功能。简易键盘与单片机的连接方法如下:简易键盘电路 1四个简易按

15、键分别于单片机的P34,P35,P36,P37相连。当键没有按下时,与之相连的I/O口为1,而当有按键按下时,与之相连的I/O口为0,当检测到某个I/O口为低电平时,表明该按键按下。系统软件的设计测试数据的线性化处理由于温敏电阻的阻值随温度变化为非线性,因此应对数据进行线性化处理。方案一:用硬件来实现非线性的校正。简单的非线性就是以奇制奇的方法,将两只非线性的传感器接成差动的方式,他们的非线性误差以大小相等,极性相反的方向变化,这样就可以获得较理性的输出特性曲线。方案二:用软件来实现非线性校正。软件非线性校正可以采用一次软件插值法来实现,插值法原理如下。图表 4在这次试验中可以先通过试验得到A

16、D转换的值和对应的温度然后以AD值为横坐标,温度值为纵坐标。将每个AD值和对应的温度制成表格,当采集到AD值时便可以通过查表将对应的温度查询出来从而实现了线性化处理。系统流程图 主程序 AD转换程序 温度报警程序 1滤波程序 显示程序系统性能测试与分析测试测试仪器与设备测试器件:水银温度计 直流稳压电源 万用表测试方案与结果测试环境与结果:将系统分别在20摄氏度的冷水中,室温下,5060设施度得温水中,和80摄氏度的热水中进行测试,测试结果如下。 结论本文主要论述了基于NTC热敏电阻的温度测量和控制系统的设计。对整个系统的核心做了介绍。对系统的各个模块做了比较深入的研究,主要包括以下几个方面。

17、 1.对系统进行了方案的论证,进行了方案的讨论,并最终确定了系统=方案。2. 查找了系统上相关的芯片资料并仔细的阅读,并查阅了大量的相关文献资料。理解各个芯片的工作原理,完成各个模块电路的设计,完成开题报告。3.对系统的原理进行了讨论,对硬件部分各个模块进行充分的说明。4.用protel完成了系统各个模块的原理图设计和PCB制作。 5完成电路板的焊接,并排查焊接错误,检查系统电路。6. 通过软件多核心板的各个模块进行了测试。7. 对整个设计的过程,拟出简要的大纲,并完成详细的论文报告。修改论文,完成最终定稿。致谢本论文是在实验室老师的指导下完成的,实验室在参加比赛过程中给了我们极大的帮助和支持

18、,并在我们共同努力下取得了一定的成绩。至此,我们要非常感谢老师对我的帮助。本次课题的完成也离不开实验室老师的指导,在这些过程中老师给了我们极大的帮助,他们的认真负责的态度和孜孜不倦的精神使我受益匪浅,从老师身上学习到了很多专业知识,这对我们以后的工作有很大的帮助,在此,向实验室老师表示深深的敬意,感谢他对我们的指导和帮助。参考文献【1】黄贤武,郑筱霞.传感器原理与应用.电子科技大学出版社,1995年五月。【2】谭浩强.C语言程序设计.清华大学出版社,2005年七月。【3】白驹荇,雷晓平.电子科技大学出版社,2005年九月。附录系统PCB电路图图表 5实验程序#include#define ui

19、nt unsigned int#define uchar unsigned char/*变量定义*/sbit heat=P22;/水泥电阻驱动使能sbit beep=P23;/蜂鸣器使能sbit dioLE=P25;/八位LED锁存器开关使能sbit dula=P26;/LED段选sbit wela=P27;/LED位选sbit adcs=P24;/AD片选sbit add=P35;/加键sbit sub=P34;/减键sbit adrd=P37;/AD读 sbit adwr=P36;/AD写uchar code LED_Segment= /0-9和摄氏度单位的段码0x3f,0x06,0x5b

20、,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x58;uchar code LED_Segment1=/0-9含小数点的段码0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef;uchar code temdata75=11,17,34,41,52,61,69,79,90,100,111,117,126,132,138,145,149,154,160,165,169,173,178,182,186,188,193,196,199,203,205,207,208,209,213,214,215,216,217,218,21

21、9,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253;/AD转换值float code temtest75=5.5,6.0,7.3,8.1,9.0,10.0,11.0,12.0,14.1,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,

22、34.0,35.0,36.0,36.3,36.9,37.5,39.1,39.4,39.8,40.1,40.6,41.0,41.4,41.7,42.5,42.8,43.0,43.2,44.8,44.9,45.0,45.3,46.1,46.8,47.3,47.8,48.9,49.5,50.3,51.0,51.7,52.3,52.9,53.5,54.1,54.8,55.6,56.0,58.3,59.0,59.8,60.6,62.4,63.8,65.1,66.3,67.6;/测试点温度值/*float code slop20=2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.

23、5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5,2.5;*/ /斜率uint idata record48;uint TH=30*10,TL=20*10;/温度上下限报警设定初值uchar LPFdata;uint temperature,max,min,average,dif;uchar flag;/*函数声明*/uchar AD();/AD转换子程序void Delay(uchar z);/延时子程序void Display(uint a);/数码管驱动显示子程序void LPF();/数据滤波void Data_temperature();/AD采样数据转换为

24、温度值void Alarm();/温度报警void Set_hitemperature();/设定最高报警温度void Set_lotemperature();/设定最低报警温度void Set_function(uchar a);/按键功能判定void Disp_record();/显示记录温度值void Set_tempreature();/温度控制设定void Driveled(uchar wei,uchar duan);/*主函数*/void main()/ uchar flag=0; TMOD=0X11; TH0=0X4C; TL0=0; TH1=0XDC; TL1=0; EA=1;

25、 ET0=1; ET1=1; TR0=1; while(1) /P1=0XFF; /dioLE=0; LPF();/将采集到的数据进行滤波 Data_temperature();/将滤波后的数据转换成温度值 Set_function(flag);/按键功能判定 /Data_temperature();/将滤波后的数据转换成温度值 Alarm();/调用报警程序当温度超过设定上下限时变报警 if(adwr=0)/按功能键切换工作状态 Delay(5); if(adwr=0) flag+; if(flag5) flag=0; while(adwr=0); if(adrd=0)/OK键 Delay(

26、5); if(adrd=0) flag=0; while(adrd=0); if(flag=5)/当进入温度控制模式时启动定时器,PWM控制加热 TR1=1; else TR1=0; /*延时函数*/void Delay(uchar z) uchar x,y; for(y=10;y0;y-) for(x=z;x0;x-); /*AD采样函数*/uchar AD() uchar value; adcs=0; /选通AD转换器片选 adwr=0; /AD写入(主要是为了启动AD转换) Delay(1); adwr=1; P1=0xff; /读取P1口之前先给其写全1 adrd=0; /AD读使能

27、value=P1; /AD数据读取赋给P1口 adrd=1; adcs=1; P1=0xff; return(value);/*数码管驱动显示函数*/void Display(uint a) dula=0; /送温度值十位 P0=0xff; wela=1; P0=0xfe;/ wela=0; P0=0; dula=1; P0=LED_Segmenta/100; dula=0; Delay(10); dula=0;/送温度值个位,含小数点 P0=0xff; wela=1; P0=0xfd;/ wela=0; P0=0; dula=1; P0=LED_Segment1a/10%10; dula=0

28、; Delay(10); dula=0;/送温度值小数点位 P0=0xff; wela=1; P0=0xfb;/ wela=0; P0=0; dula=1; P0=LED_Segmenta%10; dula=0; Delay(10); dula=0;/送摄氏度单位 P0=0xff; wela=1; P0=0xf7;/ wela=0; P0=0; dula=1; P0=LED_Segment10; dula=0; Delay(10);/*数据滤波动函数*/void LPF() uchar temp7,a; uchar i,j,k; for(i=0;i=6;i+)/数据采集存储 tempi=AD(); Delay(5); for(j=0;j=6;j+)/按小到大排序 for(k=j;k=tempk) a=tempj; tempj=tempk; tempk=a; temp0=temp6=0;/去掉最大最小值 LPFdata=(temp1+temp2+temp3+temp4+temp5)/5;/求平均值/*AD转

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

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