版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘要温度的检测与控制是工业生产过程中比较典型的应用。本设计以AT89C52单片机为核心,采用DS18B20温度传感器检测温度,由温度采集、温度显示,温度报警等功能模块组成。基于题目基本要求,本系统对温度采集和温度显示系统行了重点设计。本系统大部分功能能由软件实现,吸收了硬件软件化的思想。实际操作时,各功能在开发板上也能完美实现。本系统实现了要求的基本功能,其余发挥部分也能实现。关键字:AT89C52单片机、DS18B20温度传感器、数码管显示、温度采集目录一.绪论二.设计目的三.设计要求四.设计思路五.系统的硬件构成及功能5.1 主控制器5.2 显示电路5.3 温度传感器六.系统整体硬件电路七
2、.系统程序设计八.测量及其结果分析九.设计心得体会十.参考文献附录1源程序附录2元件清单及PCB图随着时代的发展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这些忙面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子。人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段:传统的分立式温度传感器模拟集成温度传感器智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在
3、20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE珀结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)o社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,与传统的温度计相比,其具有读数方便,测温范围广,测温准确,输出温度采用数字显示,主要用于对测温要求比较准确的场所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89C52单片机,测温
4、传感器使用DALLAS公司DS18B20,用数码管来实现温度显示。二.设计目的1 .掌握单片机的工作原理;2 .能够进行单片机简单系统的设计,包括电源模块、复位模块、键盘模块及相应控制模块的设计;3 .掌握单片机的指令系统及程序的编制结构,能够对具体的设计要求编写相应的控制程序;4 .能够根据相应的控制要求选择外围器件实现控制任务;学习proteus仿真软件三.设计要求利用51单片机设计一数字温度计,要求合适的传感器及相应的AD转换芯片,通过传感器来采集室内温度,并由LED进行显示。具体要求如下:1 .设计单片机工作电源模块及其复位电路;2 .设计显示模块:两个LED显示当前温度值;3 .设计
5、传感器模块,将选择的传感器与A/D转换芯片相连,并通过单片机采集其数据;4 .绘制控制软件流程图;5 .编写相应的控制程序;利用proteus进行仿真。四.设计思路1 .根据设计要求,选才¥AT89C52单片机为核心器件。2 .温度检测器件采用DS18B20数字式温度传感器。与单片机的接口为P3.6引脚。3 .键盘采用独立式按键,由三个按键组成,分别是:设置键(SET,加一建(+1),确认键(RET»。SET键(上下限温度设置键):当该键按下时,进入上下限温度设置功能。通过P3.1引脚接入。4 1键(加一调整键):在输入上下限温度时,该键按下一次,被调整位加一。通过P3.2
6、引脚接入。RET键(确认键):当该键按下时,指向下一个要调整的位。通过P3.3引脚接入。4.声音报警蜂鸣器通过P1.7引脚接入。硬件电路设计总体框图为图4.1:温度检测蜂鸣器电路图4.1五、系统的硬件构成及功能1 .主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。很适合便携手持式产品的设计使用。AT89S52在仿真软件中的图像为图5.1JlpJ怜>XTAL1P00/AD0P0.1/AD
7、1FQ2AC2XTAL2P0MD3P0.4/AIMP0MD5P06/AD6RSTTP07/AD7F2QF而P2EA9P2.210FSENP2.3/A11ALE户24饮12FAP2,513P2J0TA14R27fA151nJT-"03nrDYn2122潟2430匚252627里LIU"rO.UJrv'L1口1ir,rkP'SIrrsTi113rI1/1ZlAn«3,Ir1ALJriqP3挪TnP1.3P3,3i1NT1F1WP3*T0P1,5P3$mP1EP36WRP17Pa7/RD124岸3士d6L1A-89C52uTFWT工图5.12 .显示电路
8、显示电路采用四位共阳LED数码管,从P3口RXD,TXD串口输出段码。LED数码管在仿真软件中如图5.2图5.23 .温度传感器DS18B20是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20的性能特点如下:?独特的单线接口仅需一个端口引脚进行通讯?简单的多点分布应用?无需外部器件?可通过数据线供电?零待机功耗?测温范围-55+125C,以0.5C递增。华氏器件-67+2570F,以0.90F递增?温度以9位数字量读出?温度数字量转换时间200ms(典
9、型值)?用户可定义的非易失性温度报警设置?报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件。DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发BOTTOMVIEWDALLASDS182OGN口匚】6LJNQU之5ZZjNVDd匚4ZJNDSieB20PTSCCPACKAGEDS18B20Z9-PINSOICf15Q.MIL)的温度报警触发器THffDTL、配置寄存器。DS18B20勺管脚排列、各种封装形式如图3.3.1所示,DQ为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD弓|脚
10、,当工作于寄生电源时,此引脚必须接地。其电路图如图5.3.1所示.。图5.3.1外部封装形式在仿真软件中如图5.3.2所示图5.3.2DS18B20的测温原理如图5.3.3所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55C所对应的基数分别置入减法计数器1和温度寄存器中,减法计数器1和温度寄
11、存器被预置在-55C所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时温度寄存器的值将加1,减法计数器1的预置将重新被装入减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温图5.3.3中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值,这就是DS18B20的测温原理另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读写时序
12、很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)一发ROM功能命令一发存储器操作命令一处理数据。图5.3.3在正常测温情况下,DS1820的测温分辨力为0.5C,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供的读暂存器指令(BEH)读出以05c为分辨率的温度测量结果,然后切去测量结果中的最低有效位(LSB),得到所测实际温度的整数部分Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数部分以0.25C、0.75C为进位界限的关系,实际温度Ts可用下式计算:Ts(Tz0.25C)
13、(CD-Cs)/CD表1.部分温度值对应的二进制温度数据温度/C一进制表小十八进制表小+125000001110000110107D0H+8500000101000001010550H+25.062500000001000010010191H+10.125000000000001101000A2H+0.500000000001000000008H00000000000000000H1000-0.5111111111111FFF8H0000-10.125111111110101FF5EH1110-25.0625111111100110FE6FH1111-55111111001001FC90H00
14、00六.系统整体硬件电路根据设计要求与设计思路,硬件电路设计框图如图6,1所示,在仿真软件Proteus上完成。其中LED数码管以动态扫描法实现温度显示,由四个PNP型晶体管Q2,Q3,Q4,Q5和八个电阻组成,基极与单片机的P1.0,P1.1,P1,2连接。DS18B20的数据I/O端与单片机P3.6弓唧连接。外部晶振为12MHz。蜂鸣器通过Q1放大后与引脚P1.7相连。图中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限范围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图中的按健复位电路是上
15、电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。R1813TTAL1RDOJO.DDXTAL2RSTPfWALE京PIM2PQ1M01P5D工而203,口中ME补哼gMElEK1.TMT国血幅P2.WR23F1125息日EMPZ.T*i15内皿沏P1.I/T2D<P1j2P1Jpi,kr?iTyP'MMRTTP3.4/TDP15PIEP3S/T1,MlfTP1.1P17/RD£.H6.1冽B、尹W潮*母晶七.系统程序设计数字式温度计的应用程序主要包括主程序,温度检测程序,温度转换程序,LED显示程序等。系统的主程序
16、主要用来初始化一些系统参数,对DS18B20的配置数据进行一系列的设定。温度检测程序是对DS18B20的状态不断地查询,读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写,读取当前的温度值后,进行温度转化程序,对温度符号处理和温度值的BCD码处理,进行温度值正负的判定,将其段码送至显示缓冲区,以备定时扫描服务程序处理。LED显示程序主要对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时,将符号显示位移入下一位。总程序程序代码见附录一开始)显示缓冲区初始化4复位DS18B20发跳过ROM命令发温度转换命令延时复位DS18B20发跳过ROM命令发读存储器命令八.测
17、量及其结果分析I.Proteus仿真结果软件方面,在Proteus编译下进行,源程序编译及仿真调试。在软件中选定传感器后可对其进行环境温度设置,如图8.1.1,将环境温度设为34.9FDH岫ttSUsg射i.reF*fDel-f-1092KL-ii|»S|h*盟HrtfcnTMrtfenTEH心rm%图8.1.1然后点击软件执行键,按操作步骤实施后,观察LED数码管示数,此时示数如图8.1.2图8.1.2可见本次软件测试结果良好。2.硬件测试结果在硬件测试方面,检查电路板及焊接的质量情况,在检查无误后通电检查LED显示器。其中DS18B20实物图为8.2.1在室温下,LED显示器示数
18、如图8.2.2,为26.4摄氏度用手盖住温度传感器后,LED显示器示数如图8.2.3,为29.7摄氏度比较可知,硬件调试结果也达到了要求。九.设计心得体会本次课设对我来说是一次难得的经历,首先是第一次接触了仿真软件Proteus,在使用时经历了很多次失败,因为这款软件与以前使用的各种软件有很多不同,使用时不停出错,接线时由于元件放置不合理而接的杂乱无章;输入源程序时还较为顺利,显示结果比较满意。其次是程序设计,我们在参考别人成功先例的基础上根据自己设计的需要编制程序,其中历经不少曲折,最后我的收获是,编程一定要细心,针对每一个细节,稍有疏忽,程序就不能正常工作。最后是单片机实践操作,由于我自己
19、已买了一块开发板,所以硬件调试比较顺利,效果也不错,就是DS18B20温度传感器灵敏度不太高,示数变化不大。另外,我前期花了一些时间专门学习这块芯片,了解了DS18B20的工作原理的时序图。在这次的实践与学习中,尽管期间困难重重,但我还是从中学习了不少新的知识与技能和解决困难的方法,也终于体验到了经历困难到最终获得成功的那种无以言表的喜悦之情,总之,本次课设是我收获最多的一次,也希望自己在以后的各项研究活动中能坚持这种精神。十.参考文献11李朝青单片机原理及接口技术。北京航空航天大学出版社,2005年2李群芳肖看单片机原理、接口及应用。清华大学出版社,2005年【3】陈汝全电子技术常用器件应用
20、手册。机械工业出版社,2004年4将辉平,基于proteus的单片机系统设计与仿真实例,2007年张俊谟单片机中级教程原理与应用。北京航空航天大学出版社,2000年附录一源程序#include<AT89X52.h>#include"DS18B20.h"#defineuintunsignedint#defineucharunsignedchar/宏定义# defineSETP3_1定义调整键# defineDECP3_2/定义减少键# defineADDP3_3/定义增加键# defineBEEPP3_7/定义蜂鸣器bitshanshuo_st;/闪烁间隔标志bi
21、tbeep_st;/蜂鸣器间隔标志sbitDIAN=P2A7;/小数点ucharx=0;/计数器signedcharm;/温度值全局变量ucharn;/温度值全局变量ucharset_st=0;/状态标志signedcharshangxian=38;上限报警温度,默认值为38signedcharxiaxian=15;下限报警温度,默认值为5ucharcodeLEDData=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/*延时子程序*/voidDelay(uintnum)while(-num);/*初始化定时器0*/voidInitTime
22、r(void)TMOD=0x1;TH0=0x4c;TL0=0x00;/50ms(晶振12M)/*定时器0中断服务程序*/voidtimer0(void)interrupt1TH0=0x4c;TL0=0x00;x+;/*夕卜部中断0月艮务程序*/voidint0(void)interrupt0EX0=0;关外部中断0if(DEC=0&&set_st=1)(shangxian-;if(shangxian<xiaxian)shangxian=xiaxian;elseif(DEC=0&&set_st=2)(xiaxian-;if(xiaxian<0)xiax
23、ian=0;/*外部中断1服务程序*/voidint1(void)interrupt2(EX1=0;关外部中断1if(ADD=0&&set_st=1)(shangxian+;if(shangxian>99)shangxian=99;)elseif(ADD=0&&set_st=2)(xiaxian+;if(xiaxian>shangxian)xiaxian=shangxian;)/*读取温度*/voidcheck_wendu(void)(uinta,b,c;c=ReadTemperature()-5;/获取温度值并减去DS18B20的温漂误差a=c/1
24、00;/计算得到十位数字b=c/10-a*10;/计算得到个位数字m=c/10;计算得到整数位n=c-a*100-b*10;/计算得到小数位if(m<0)m=0;n=0;/设置温度显示上限if(m>99)m=99;n=9;/设置温度显示上限/*显示开机初始化等待画面*/Disp_init()P2=0xbf;P1=0xfe;Delay(200);P2=0xbf;P1=0xfd;Delay(200);P2=0xbf;P1=0xfb;Delay(200);P2=0xbf;P1=0x亿第四Delay(200);P1=0xff;/关闭显示)/*显示温度子程序*/Disp_Temperatur
25、e()/显示温度(P2=0xc6;/显示CP1=0x亿/Delay(300);P2=LEDDatan;/显示个位P1=0xfb;/Delay(300);P2=LEDDatam%10;/显示小数点DIAN=0;P1=0xfd;Delay(300);P2=LEDDatam/10;/显示百位P1=0xfe;Delay(300);P1=0xff;/关闭显示/*显示报警温度子程序*/Disp_alarm(ucharbaojing)P2=0xc6;/显示CP1=0x亿Delay(200);P2=LEDDatabaojing%10;/显示十位P1=0xfb;Delay(200);P2=LEDDatabaoj
26、ing/10;/显示百位P1=0xfd;Delay(200);if(set_st=1)P2=0x89;elseif(set_st=2)P2=0xc7;上限H、下限L标示P1=0xfe;Delay(200);P1=0xff;/*报警子程序*/voidAlarm()if(x>=10)beep_st=beep_st;x=0;if(m>=shangxian&&beep_st=1)|(m<xiaxian&&beep_st=1)BEEP=0;elseBEEP=1;/*主函数*/voidmain(void)uintz;InitTimer();/初始化定时器E
27、A=1;全局中断开关TR0=1;ET0=1;开启定时器0IT0=1;IT1=1;check_wendu();check_wendu();for(z=0;z<300;z+)(Disp_init();while(1)(if(SET=0)(Delay(2000);dowhile(SET=0);set_st+;x=0;shanshuo_st=1;if(set_st>2)set_st=0;if(set_st=0)EX0=0;关闭外部中断0EX1=0;关闭外部中断1check_wendu();Disp_Temperature();Alarm();报警检测)elseif(set_st=1)(BE
28、EP=1;关闭蜂鸣器EX0=1;开启外部中断0EX1=1;开启外部中断1if(x>=10)shanshuo_st=shanshuo_st;x=0;if(shanshuo_st)Disp_alarm(shangxian);elseif(set_st=2)BEEP=1;关闭蜂鸣器EX0=1;开启外部中断0EX1=1;开启外部中断1if(x>=10)shanshuo_st=shanshuo_st;x=0;if(shanshuo_st)Disp_alarm(xiaxian);/*END*/DS18B20.h:#include<AT89X52.h>#defineDQP3_6/定义DS18B20总线I/O/*延时子程序*/voidDelay_DS18B20(intnum)while(num-);/*初始化DS18B20*/voidInit_DS18B20(void)unsignedcharx=0;DQ=1;/DQ复位Delay_DS18B20(8);/稍做延时DQ=0;/单片机将DQ拉低Delay_DS18B20(80);精确延时,大于480usDQ=1;/拉高总线Delay_DS18B2
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深度解析(2026)《FZT 62041-2020数码印花毛巾》:技术革新、品质升级与产业未来全景透视
- 深度解析(2026)《FZT 22005-2019 半精纺毛机织纱线》
- 深度解析(2026)《FZT 08008-2025纺织服装企业供应商能力评价规范》
- 深度解析(2026)《FZ 65008-1995特种工业用纺织品 检验规则》
- 《JBT 8458-2024电气设备辅件塑料制品一般要求和试验方法》专题研究报告
- 中国汽车:海外新能源车机遇和可能带来的风险(摘要)-2026.1.20
- 2026年湘潭市雨湖区社区工作者招聘笔试模拟试题及答案解析
- 第9课 循线而行-地面传感器和机器人的循线行走 教学设计 -粤教清华版初中信息技术九年级下册
- 2026年吉林省白山市社区工作者招聘考试参考题库及答案解析
- 2026年芜湖市新芜区社区工作者招聘笔试模拟试题及答案解析
- DB31/T 1339-2021医院多学科诊疗管理规范
- 建筑节能检测技术课件
- 2025年中盐安徽红四方肥业股份有限公司招聘笔试参考题库附带答案详解
- 《住院患者身体约束的护理》团体标准解读课件
- 辽宁省部分重点中学协作体2025年高考模拟考试数学试卷(含答案)
- 宫颈癌膀胱功能管理
- 2025年国家社科基金年度项目申请书
- 车间生产废料管理制度
- 2023中国铁路成都局集团有限公司招聘高校毕业生2241人(一)笔试参考题库附带答案详解
- 船舶动力配套甲醇重整制氢装置 技术规范标准正文
- 抛丸除锈施工方案
评论
0/150
提交评论