基于单片机的数字温度计设计课程设计报告_第1页
基于单片机的数字温度计设计课程设计报告_第2页
基于单片机的数字温度计设计课程设计报告_第3页
基于单片机的数字温度计设计课程设计报告_第4页
基于单片机的数字温度计设计课程设计报告_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-. z.摘要温度的检测与控制是工业生产过程中比拟典型的应用。本设计以AT89C52单片机为核心,采用DS18B20温度传感器检测温度,由温度采集、温度显示,温度报警等功能模块组成。基于题目根本要求,本系统对温度采集和温度显示系统行了重点设计。本系统大局部功能能由软件实现,吸收了硬件软件化的思想。实际操作时,各功能在开发板上也能完美实现。本系统实现了要求的根本功能,其余发挥局部也能实现。关键字:AT89C52单片机、DS18B20温度传感器、数码管显示、温度采集目录 TOC o 1-3 h z u HYPERLINK l _Toc295153825一绪论HYPERLINK l _Toc2951

2、53830二设计目的HYPERLINK l _Toc295153831三设计要求HYPERLINK l _Toc295153835四设计思路HYPERLINK l _Toc295153836五系统的硬件构成及功能HYPERLINK l _Toc2951538375.1主控制器HYPERLINK l _Toc2951538385.2显示电路HYPERLINK l _Toc2951538395.3温度传感器HYPERLINK l _Toc295153840六系统整体硬件电路HYPERLINK l _Toc295153841七系统程序设计HYPERLINK l _Toc295153842八测量及其结

3、果分析HYPERLINK l _Toc295153843九设计心得体会HYPERLINK l _Toc295153844十参考文献附录1 源程序附录2 元件清单及PCB图一绪论随着时代的开展,控制智能化,仪器小型化,功耗微量化得到广泛关注。单片机控制系统无疑在这些忙面起到了举足轻重的作用。单片机的应用系统设计业已成为新的技术热点,其中数字温度计就是一个典型的例子。人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。测量温度的关键是温度传感器,温度传感器的开展经历了三个开展阶段:传统的分立式温度传感器模拟集

4、成温度传感器智能集成温度传感器。目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的开展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的根底上从模拟式向数字式,从集成化向智能化、网络化的方向飞速开展,并朝着高精度、多功能、总线标准化、高可靠性及平安性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速开展,与传统的温度计相比,其具有读数方便,测温*围广,测温准确,输出温度采用数字显示,主要用于对测温要求比拟准确的场

5、所,或科研实验室使用。该设计控制器使用ATMEL公司的AT89C52单片机,测温传感器使用DALLAS公司DS18B20,用数码管来实现温度显示。二设计目的掌握单片机的工作原理;能够进展单片机简单系统的设计,包括电源模块、复位模块、键盘模块及相应控制模块的设计;掌握单片机的指令系统及程序的编制构造,能够对具体的设计要求编写相应的控制程序;能够根据相应的控制要求选择外围器件实现控制任务;学习proteus仿真软件三设计要求利用51单片机设计一数字温度计,要求适宜的传感器及相应的AD转换芯片,通过传感器来采集室内温度,并由LED进展显示。具体要求如下:设计单片机工作电源模块及其复位电路;设计显示模

6、块:两个LED显示当前温度值;设计传感器模块,将选择的传感器与A/D转换芯片相连,并通过单片机采集其数据;绘制控制软件流程图;编写相应的控制程序;利用proteus进展仿真。四设计思路1根据设计要求,选择AT89C52单片机为核心器件。2.温度检测器件采用DS18B20数字式温度传感器。与单片机的接口为P3.6引脚。3.键盘采用独立式按键,由三个按键组成,分别是:设置键SET,加一建+1,确认键RET。SET键上下限温度设置键:当该键按下时,进入上下限温度设置功能。通过P3.1引脚接入。+1键加一调整键:在输入上下限温度时,该键按下一次,被调整位加一。通过P3.2引脚接入。RET键确认键:当该

7、键按下时,指向下一个要调整的位。通过P3.3引脚接入。4.声音报警蜂鸣器通过P1.7引脚接入。硬件电路设计总体框图为图4.1:3位LED显示器LED显示器驱动电路单片机按键输入电路时钟电路复位电路温度检测蜂鸣器电路图4.1五、系统的硬件构成及功能1.主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。很适合便携手持式产品的设计使用。 AT89S52在仿真软件中的图像为图5.1图5.1 2.显示电

8、路显示电路采用四位共阳LED数码管,从P3口R*D,T*D串口输出段码。 LED数码管在仿真软件中如图5.2图5.2 3.温度传感器 DS18B20是美国DALLAS半导体公司最新推出的一种改良型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需一个端口引脚进展通讯简单的多点分布应用无需外部器件可通过数据线供电零待机功耗测温*围-55+125,以0.5递增。华氏器件-67+2570F,以0.90F 递增温度以9 位数字量读出温度数字量转换时间200ms典型值用户可定义的非

9、易失性温度报警设置报警搜索命令识别并标志超过程序限定温度温度报警条件的器件。DS18B20内部构造主要由四局部组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置存放器。DS18B20的管脚排列、各种封装形式如图所示,DQ 为数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源;GND为地信号;VDD为可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。其电路图如图所示.。图5.3.1 外部封装形式在仿真软件中如图所示图DS18B20的测温原理如图所示,图中低温度系数晶振的振荡频率受温度的影响很小用于产生固定频率的脉冲信号送给减法计数器1

10、,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,图中还隐含着计数门,当计数门翻开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进展计数,进而完成温度测量.计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55 所对应的基数分别置入减法计数器1和温度存放器中,减法计数器1和温度存放器被预置在-55 所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进展减法计数,当减法计数器1的预置值减到0时温度存放器的值将加1,减法计数器 1的预置将重新被装入,减法计数器1重新开场对低温度系数晶振产生的脉冲信号进展计数,如此循环直到减法计数器

11、2计数到0时,停顿温度存放器值的累加,此时温度存放器中的数值即为所测温图中的斜率累加器用于补偿和修正测温过程中的非线性其输出用,于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度存放器值到达被测温度值,这就是DS18B20的测温原理。另外,由于DS18B20单线通信功能是分时完成的,有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进展。操作协议为:初始化DS18B20发复位脉冲发ROM功能命令发存储器操作命令处理数据。图5.3.3 在正常测温情况下,DS1820的测温分辨力为0.5,可采用下述方法获得高分辨率的温度测量结果:首先用DS1820提供

12、的读暂存器指令BEH读出以0.5为分辨率的温度测量结果,然后切去测量结果中的最低有效位LSB,得到所测实际温度的整数局部Tz,然后再用BEH指令取计数器1的计数剩余值Cs和每度计数值CD。考虑到DS1820测量温度的整数局部以0.25、0.75为进位界限的关系,实际温度Ts可用下式计算:表1.局部温度值对应的二进制温度数据。温度/二进制表示十六进制表示+1250000 0111 1101 000007D0H+850000 0101 0101 00000550H+25.06250000 0001 1001 00000191H+10.1250000 0000 1010 000100A2H+0.50

13、000 0000 0000 00100008H00000 0000 0000 10000000H-0.51111 1111 1111 0000FFF8H-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111FE6FH-551111 1100 1001 0000FC90H六系统整体硬件电路根据设计要求与设计思路,硬件电路设计框图如图6.1所示,在仿真软件Proteus上完成。其中LED数码管以动态扫描法实现温度显示,由四个PNP型晶体管Q2,Q3,Q4,Q5和八个电阻组成,基极与单片机的P1.0,P1.1,P1.2连接。DS18B20

14、的数据I/O端与单片机P3.6引脚连接。外部晶振为12MHz。蜂鸣器通过Q1放大后与引脚P1.7相连。图中有三个独立式按键可以分别调整温度计的上下限报警设置,图中蜂鸣器可以在被测温度不在上下限*围内时,发出报警鸣叫声音,同时LED数码管将没有被测温度值显示,这时可以调整报警上下限,从而测出被测的温度值。图中的按健复位电路是上电复位加手动复位,使用比拟方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。图6.1系统总体硬件电路七系统程序设计数字式温度计的应用程序主要包括主程序,温度检测程序,温度转换程序, LED显示程序等。系统的主程序主要用来初始化一些系统参数,对DS

15、18B20的配置数据进展一系列的设定。温度检测程序是对DS18B20的状态不断地查询,读出RAM中的9字节,在读出时需进展CRC校验,校验有错时不进展温度数据的改写,读取当前的温度值后,进展温度转化程序,对温度符号处理和温度值的BCD码处理,进展温度值正负的判定,将其段码送至显示缓冲区,以备定时扫描效劳程序处理。LED显示程序主要对显示缓冲器中的显示数据进展刷新操作,当最高显示位为0时,将符号显示位移入下一位。总程序程序代码见附录一开场显示缓冲区初始化复位DS18B20发跳过ROM命令发温度转换命令延时复位DS18B20发跳过ROM命令发读存储器命令读温度数据温度符号判定将温度转换为BCD码更

16、新显示缓冲区八测量及其结果分析1.Proteus仿真结果软件方面,在Proteus编译下进展,源程序编译及仿真调试。在软件中选定传感器后可对其进展环境温度设置,如图,将环境温度设为34.9。图然后点击软件执行键,按操作步骤实施后,观察LED数码管示数,此时示数如图。图可见本次软件测试结果良好。2硬件测试结果在硬件测试方面,检查电路板及焊接的质量情况,在检查无误后通电检查LED显示器。其中 DS18B20实物图为在室温下,LED显示器示数如图,为26.4摄氏度图用手盖住温度传感器后,LED显示器示数如图,为29.7摄氏度。比拟可知,硬件调试结果也到达了要求。九设计心得体会本次课设对我来说是一次难

17、得的经历,首先是第一次接触了仿真软件Proteus,在使用时经历了很屡次失败,因为这款软件与以前使用的各种软件有很多不同,使用时不停出错,接线时由于元件放置不合理而接的杂乱无章;输入源程序时还较为顺利,显示结果比拟满意。其次是程序设计,我们在参考别人成功先例的根底上根据自己设计的需要编制程序,其中历经不少曲折,最后我的收获是,编程一定要细心,针对每一个细节,稍有疏忽,程序就不能正常工作。最后是单片机实践操作,由于我自己已买了一块开发板,所以硬件调试比拟顺利,效果也不错,就是DS18B20温度传感器灵敏度不太高,示数变化不大。另外,我前期花了一些时间专门学习这块芯片,了解了DS18B20的工作原

18、理的时序图。在这次的实践与学习中,尽管期间困难重重,但我还是从中学习了不少新的知识与技能和解决困难的方法,也终于体验到了经历困难到最终获得成功的那种无以言表的喜悦之情,总之,本次课设是我收获最多的一次,也希望自己在以后的各项研究活动中能坚持这种精神。十参考文献李朝青单片机原理及接口技术。航空航天大学,2005年李群芳肖看单片机原理、接口及应用。清华大学,2005年陈汝全电子技术常用器件应用手册。机械工业,2004年将辉平,基于proteus的单片机系统设计与仿真实例,2007年*俊谟单片机中级教程原理与应用。航空航天大学,2000年附录一源程序#include #include DS18B20

19、.h #define uint unsigned int#define uchar unsigned char /宏定义#define SET P3_1 /定义调整键#define DEC P3_2 /定义减少键#define ADD P3_3 /定义增加键#define BEEP P3_7 /定义蜂鸣器bit shanshuo_st; /闪烁间隔标志bit beep_st; /蜂鸣器间隔标志sbit DIAN = P27; /小数点uchar *=0; /计数器signed char m; /温度值全局变量uchar n; /温度值全局变量uchar set_st=0; /状态标志signe

20、d char shang*ian=38; /上限报警温度,默认值为38signed char *ia*ian=15; /下限报警温度,默认值为5uchar code LEDData=0*c0,0*f9,0*a4,0*b0,0*99,0*92,0*82,0*f8,0*80,0*90;/*延时子程序*/void Delay(uint num) while( -num );/*初始化定时器0*/void InitTimer(void) TMOD=0*1; TH0=0*4c; TL0=0*00; /50ms晶振12M/*定时器0中断效劳程序*/void timer0(void) interrupt 1

21、 TH0=0*4c; TL0=0*00; *+;/*外部中断0效劳程序*/void int0(void) interrupt 0 E*0=0; /关外部中断0 if(DEC=0&set_st=1) shang*ian-; if(shang*ian*ia*ian)shang*ian=*ia*ian; else if(DEC=0&set_st=2) *ia*ian-; if(*ia*ian99)shang*ian=99; else if(ADD=0&set_st=2) *ia*ian+; if(*ia*ianshang*ian)*ia*ian=shang*ian; /*读取温度*/void che

22、ck_wendu(void) uint a,b,c; c=ReadTemperature()-5; /获取温度值并减去DS18B20的温漂误差 a=c/100; /计算得到十位数字 b=c/10-a*10; /计算得到个位数字 m=c/10; /计算得到整数位 n=c-a*100-b*10; /计算得到小数位 if(m99)m=99;n=9; /设置温度显示上限/*显示开机初始化等待画面*/Disp_init() P2=0*bf; P1=0*fe; Delay(200); P2=0*bf; P1=0*fd; Delay(200); P2=0*bf; P1=0*fb; Delay(200); P

23、2=0*bf; P1=0*f7; /第四 Delay(200); P1=0*ff; /关闭显示/*显示温度子程序*/Disp_Temperature() /显示温度 P2=0*c6; /显示C P1=0*f7; / Delay(300); P2=LEDDatan; /显示个位 P1=0*fb; / Delay(300); P2=LEDDatam%10; /显示小数点 DIAN=0; P1=0*fd; Delay(300); P2=LEDDatam/10; /显示百位 P1=0*fe; Delay(300); P1=0*ff; /关闭显示/*显示报警温度子程序*/Disp_alarm(uchar

24、 baojing) P2=0*c6; /显示C P1=0*f7; Delay(200); P2=LEDDatabaojing%10; /显示十位 P1=0*fb; Delay(200); P2=LEDDatabaojing/10; /显示百位 P1=0*fd; Delay(200); if(set_st=1)P2=0*89; else if(set_st=2)P2=0*c7; /上限H、下限L标示 P1=0*fe; Delay(200); P1=0*ff;/*报警子程序*/void Alarm() if(*=10)beep_st=beep_st;*=0; if(m=shang*ian&beep

25、_st=1)|(m*ia*ian&beep_st=1)BEEP=0; else BEEP=1;/*主函数*/void main(void) uint z; InitTimer(); /初始化定时器 EA=1; /全局中断开关 TR0=1; ET0=1; /开启定时器0 IT0=1; IT1=1; check_wendu(); check_wendu(); for(z=0;z2)set_st=0; if(set_st=0) E*0=0; /关闭外部中断0 E*1=0; /关闭外部中断1 check_wendu(); Disp_Temperature(); Alarm(); /报警检测 else

26、if(set_st=1) BEEP=1; /关闭蜂鸣器 E*0=1; /开启外部中断0 E*1=1; /开启外部中断1 if(*=10)shanshuo_st=shanshuo_st;*=0; if(shanshuo_st) Disp_alarm(shang*ian); else if(set_st=2) BEEP=1; /关闭蜂鸣器 E*0=1; /开启外部中断0 E*1=1; /开启外部中断1 if(*=10)shanshuo_st=shanshuo_st;*=0; if(shanshuo_st) Disp_alarm(*ia*ian); /*END*/DS18B20.h:#include #define DQ P3_6 /定义DS18B20总线I/O/*延时子程序*/void Delay_DS18B20(int num) while(num-) ;/*初始化DS18B20*/void Init_DS18B20(void) unsigned char *=0; DQ = 1; /DQ复位 Delay_DS18B20(8); /稍做延时 DQ = 0; /单片机将DQ拉低 Delay_DS18B20(80); /准确延时,大于480us DQ = 1; /拉高总线 Delay_DS18B20(14); * = DQ; /稍做延时后,如果*=0则初始化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论