课程设计电子温度计.docx

上传人:peixunshi0 文档编号:550508 上传时间:2025-07-30 格式:DOCX 页数:16 大小:300.41KB
下载 相关 举报
课程设计电子温度计.docx_第1页
第1页 / 共16页
课程设计电子温度计.docx_第2页
第2页 / 共16页
课程设计电子温度计.docx_第3页
第3页 / 共16页
课程设计电子温度计.docx_第4页
第4页 / 共16页
课程设计电子温度计.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

1、目录1、基于单片机的温度数据采集系统设计方案31.1课程设计的要求3L2课程设计目的31.3系统设计总体方案32、系统硬件介绍42.1硬件组成42.2AT89C51单片计算机的组成原理42.2.1组成框图及内部总体结构42.2.2单片机各口及其负载能力、接口要求52.3DS18B20数字温度传感器介绍82. 3.1功能介绍83. 3.2DS18B20温度传感器的存储器104. 3.3DS18B20的内部逻辑图125. 3.4DS18B20读写时序126. 3.5存储器操作命令143、硬件电路设计156.1 主控制器157. 2显示电路164、软件设计167.1 主程序模块168. 2温度检测流

2、程175、程序的编写与调试188.1 程序的编写189. 2调试程序206、仿真调试207、课程设计体会228、参考文献23附L源程序代码23摘要现代测温应用中,温度计向数字化方向开展。传统的机遇物理方法的温度计功能单一,而数字温度计以其便携,检测精度高,功能多等优点应用的越来越广泛。随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否认的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向开展。本课程设计研究四位数字温度计的设计与实现

3、并采用Protues软件和Keil软件来对其进行仿真,通过电阻值的变化使相应电压发生改变,输出电压经A/D转换后,其值由AT89C51处理,最后将其显示在4个七段数码显示器上。随着技术的开展,一些环境比拟恶劣的场合中也能觅得数字温度计的踪迹。在本文中,主要从功能组合,硬件组合,软件算法等几个方面探讨温度计的设计。数字温度计在现代测温应用方面具有诸多优势,值得进一步学习和研究。关键词:单片机AT89C51、模数转换、数码显示1、基于单片机的温度数据采集系统设计方案1.1 课程设计的要求1)根本范围-50C110C2)精度误差小于0.53)LED数码直读显示4)扩展功能5)可以任意设定温度的上下

4、限报警功能1.2 课程设计目的1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。12)掌握按键消抖的方法,LED的动态显示,DS18B20的使用和编程原理。13)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4)掌握Keil及ProteUS仿真软件的使用方法。1. 3系统设计总体方案根据任务书要求,初步思路如下:温度计电路设计总体设计方框图如下列图所示,本设计是测温电路,使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来。

5、温度是非电量模拟信号,数字显示温度就必须将这一非电量信号转换成电量电压或电流),然后将模拟电信号经A/D转换器转换成数字信号,最后经译码显示器显示温度值。控制器采用单片机AT89C51,采集到的温度模拟信号05V用一个滑动变阻器分压实现,模拟信号数字化是通过ADC0808实现的,其主要功能和要求的实现是通过可编程芯片AT89C51单片机到达的,用4位LED数码管显示温度。2、系统硬件介绍2.1硬件组成本系统所用的硬件有:见表2。表2系统硬件清单器件名称数量AT89C52单片机1个USB接口1个USB供电的电缆线1个0.56寸红色,546IaS共阴四位数码管1个DS18B201个电容假设干电阻假

6、设干导线假设干2. 2AT89C51单片计算机的组成原理2. 2.1组成框图及内部总体结构图2-1AT89C51单片机功能结构框图图2-1为AT89C51单片机功能结构框图AT89C51芯片内部集成了CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些不见连接在一起。AT89C51单片机内部包含以下一些功能部件:(1) 一个8位CPU;(2) 一个片内振荡器和时钟电路;(3) 4KBR0M(80C51有4KB掩膜ROM,87C51有4KBEPROM,80C31片内有无ROM);(4) 128B内RAM;(5) 可寻址64KB的外ROM和外RAM控制电路;(6)两个16

7、位定时/计数器;(7) 21个特许功能存放器;(8) 4个8位并行I/O口,共32条可编程I/O端线;(9) 一个可编程全双工串行口;(10) 5个中断源,可设置成2个优先级。2.2.2单片机各口及其负载能力、接口要求80C51共有4个8位并行I/O端口,共32个引脚(I)PO口8位双向1/0口。在不并行扩展外存储器(包括并行扩展1/0口)时,PO口可用作双向1/0口。在并行扩展外存储器(包括并行扩展1/0口)时,PO口可用于分时传送低8位地址(地址总线)和8位数据信号(数据总线)。位结构如图2-4所示。PO口能驱动8个LSTTL门。图2-2Po口位结构(2) Pl口8位准双向1/0口(“准双

8、向”是指该口内部有固定的上拉电阻)。位结构如图2-5所示。第二输出功能VCC第二输入功能图2-5P3位结构上述4个I/O口,各有各的用途。在不并行扩展外存储器(包括并行扩展I/O口)时,4个I/O口都可作为双向I/O口用。在并行扩展外存储器(包括并行扩展I/O口)时,PO专用于分时传送低8位地址信号和8位数据信号,P2专用于传送高8位地址信号。P3口根据需要常用于第二功能,真正可提供应用户使用的I/O是Pl口和一局部未用作第二功能的P3口端线。2.3DS18B20数字温度传感器介绍2.3.1功能介绍DALLAS最新单线数字温度传感器DS18B20的“一线器件”体积更小、适用电压更宽、更经济Da

9、llas半导体公司的数字化温度传感器DS1820是世界上第一片支持“一线总线”接口的温度传感器。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。DS18B20、DS1822“一线总线”字化温度传感器同DS1820一样,DS18B20也支持“一线总线”接口,测量温度范围为-55oC+125C,-10+85C范围内,精度为0.5CDS1822的精“一线总线”的数字方式传输,大大提的现场温度测量,如:境控制、设备或前一代产品不同,新的产品支持3V5.5V而且新一代产品更廉价,体积更小。以程序设定912位的分辨率,精度为土适用范围。分辨率设定,及用户设定的DAL

10、LAS18B20123(BOflTOMVIEWTO-92(DSI8B20)度较差为土2oCo现场温度直接以高了系统的抗干扰性。适合于恶劣环境过程控制、测温类消费电子产品等。与的电压范围,使系统设计更灵活、方便。DS18B20、DS1822的特性DS18B20可0.5oCo可选更小的方式,更宽的电压报警温度存储在EEPRoM中,掉电依然保存。DS18B20的性能是新一代产品中最好的!性能价格比也非常出色!DS1822DS18B20软件兼容,是DS18B20的简化版本。省略了存储用户定义报警温度、分辨率参数的EEPROM,精度降低为2。C,适用于对性能要求不高,本钱控制严格的应用,是经济型产品。继

11、一线总线”的早期产品后,DS1820开辟了温度传感器技术的新概念。DS18B20和DS1822使电压、特性及封装有更多的选择,让我们可以构建适合自己的经济的测温系统。DS18B20的内部结构DS18B20内部结构主要由四局部组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置存放器。DS18B20的管脚排列如下:DQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端在寄生电源接线方式时接地)。光刻ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码。64位光刻ROM的排列是:开始8位28H)是产品类型标号,接着的48位是该D

12、S18B20自身的序列号,最后8位是前面56位的循环冗余校验码fCRC=X8+X5+X4+lL光刻RoM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625CLSB形式表达,其中S为符号位,见表3-1。表3-1DS18B20内部温度表示形式bit7bit6btl5hit4hit3billbit1bat.LSByteTII22II2l2u2*T22“II-Ibat15bitHbit13bit12bitUNt10bit9IMSBytc

13、sIsIsIssI2*2II4Il这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55C的数字输出为FC90H。见表3-2表3-2DS18B20转化温度形式实际温度值数字输出二进制)数字输出十六进制)+125oC0000Olll1101000007D0H+8

14、500000101010100000550H+25.0625oC00000001100100010191H+10,125000000001010001000A2H+0.500000000000010000008H000000000000000000000H-0.5IlllIlllIlll1000FFF8H-10.125IlllIlll01011110FF5EH-25.0625Illl11100110IlllFE6EH-55Illl110010010000FC90H2.3.2DS18B20温度传感器的存储器DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2P

15、PRAM,后者存放高温度和低温度触发器TH、T和结构存放器。暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构存放器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节,见表3-3。表2-3DS18B20暂存存储器的8个连续字节存放器内容字节地址温度最低数字位0温度最高数字位1高温限值2低温限值3保存4保存5计数剩余值6每度计数值7CTR校验8该字节各位的意义如下:TMRlRO11111低五位一直都是1,TM是

16、测试模式位,用于设置DS18B20在工作模式还是在测试模式。在5.2调试程序编译程序,检查错误。如果没有错误,按CtrI+F5进行程序调试。6、仿真调试安装PrOtUes,翻开软件,选择元器件,如图4.1所示:DEVICESIRILMrisi三PickDevicesKeywords:Results(8):AT89C51Preview:at89c51MatchWholeWords?Category:MicroprocessorICsDeViCeLibraryDeSCriPtiOnAT89C51MCS80518051Microcontoller(4kBcode,33MHz,2x16-bitTime

17、rs,UART)AT89C51.BUSMCS8051AT89C51RB2MCS8051AT89C51RB2.BUSAT89C51RC2AT89C51RC2.BUSAT89C51RD2AT89C51RD2.BUSMCS8051MCS8051MCS8051MCS8051MCS80518051Microcontoller(4kBcode,33MHz,2x16-bitTimers,UART)8051Microcontoller(16kBcode,48MHz,WatchdogTimer,3x16-bitTimers8051Microcontoller(16kBcode,48MHz,WatchdogTim

18、er,3x16-bitTimers8051Microcontoller(32kBcode,48MHz.WatchdogTimer,3x16-bitTimers8051Microcontoller(32kBcode,48MHz,WatchdogTimer,3x16-bitTimers8051Microcontoller(64kBcode,40MHz,WatchdogTimer,3x16-bitTimers8051Microcontoller(64kBcode,40MHZzWaJchdogTimer,3x16-bitTimersVSM1三JUM一,三军工吗子篷岂wFiFF-TFFRi于盥三三三斑三

19、8PPz,z2jzzjz3I3.323PPP3P3Cs;*-;RpppIMC连接电路图,如图5.2所示:图5.2HSB温度感应仿真TSlSProfessional文件(F)S三(V)植(E)IB(T)设计(D)绘图(G)源代码(三)调试(B)座(L)模板(M)系统(Y)帮助(三)hT05ffi+,9IX三BBIltZla,aaMa0IS给单片机下载HEX可执行程序,如下列图5.3所示:国温度感应仿真TSlSProfessional文件(F)查看(V)锚(E)IM(T)(D)绘图(G)源代码(三)啊(B)(L)模返(M)系统(Y)帮助(三)MEn值国4厘需8L拄观户|)原I附为IIm内画团一*吐

20、仔/I二7SEG-MFX4-CCAT89C52CAPCRYSTALDS18B20RESRESPACK8I1III1,1-,片COMPONENTU1,ValueT89C52,Modute-.DeviceT89C52,Pinout=DIL40图5.3调试结果:经过仿真调试,根本到达设计要求。7、课程设计体会经过一个学期的学习,我们对单片机已经有了初步的认识,对于它的根本组成和结构已经有了简单的了解,这一周的课程设计让我体会到很多东西,不仅仅是有关单片机根本知识的,更多的是自己动手能力和逻辑思维能力的锻炼,同时,我更是知道了自己的缺乏,有好多东西是需要好好学习的。其实要做出来做好这个课程设计是不容易

21、的,是要付出很多心思的。一开始我根本摸不着头脑,也没有什么想法,对题目都没感觉,用汇编根本编不出大程序,后来我还是决定做相对熟悉的C语言来编写。于是,我就开始上网,去学校图书馆查询有关单片机的各种资料,每天一起来就是看书、查资料、编程、修改,写程序用了几天,还参考了好多参考书里设计实例的程序,加加减减的,还找同学指点,最后弄好了,可就是调试不出想要的结果,怎么找都找不到原因,最后还是与同学一起讨论、查找,在他们的帮助和积极引导下,才找出问题,做出很大的修改解决了问题。还有就是画图和调试,真是一个很令人头疼的事情,要照顾好多方面的,需要细心才行。在社会工程实践应用中,单片机开发系统的研制仍是一个

22、热门话题,所以我想还是有必要再好好学习以下单片机的,这对我们以后的工作应是有好处的。总之,这次课程设计让我学会了很多,也收获了很多,我想我是满意的。从中我知道了任何事情都是从不懂到懂、从不熟练到熟练的过程,有问题并不可怕,关键是要找到方法去解决问题,思考、查资料、修改并勤于动手。最后,非常感谢在设计中给予过我帮助的老师和同学。8、参考文献:1余发山.单片机原理及应用技术.徐州:中国矿业大学出版社,2003:2谭浩强.单片机课程设计.北京:清华大学出版社,19894陈明荧.8051单片机课程设计实训教材.清华大学出版社:5胡汉才.单片机原理及其接口技术.清华大学出版社:6何立民.单片机高级教程.

23、北京航空航天大学出版社7肖来胜.单片机技术实用教程.华中科技大学出版社附1:源程序代码#include11reg51.h11#defineucharunsignedchar#defineuintunsignedintsbitDQ=P3O;sbitp20=P20;sbitp21=P2l;sbitp22=P22;sbitp23=P23;codeuchartab=0XC0,0XF9,0XA4,OXBO,0X99,090X92,0X82,0XF8,0X80,0X90;codeuchartabi=0X40,0X79,0X24,0X30,0X19,。90X12,0X02,0X78,0X00,0X10;uc

24、hara,b,t,h;ucharbai,shi,ge,xiao;voiddelay(unsignedinti)(while(i-);)/初始化函数bitint_DS18B20(void)(unsignedcharx=0;DQ=I;/DQ复位delay(8);延迟片刻DQ=0;单片机将DQ拉低delay(80);/精确延时大于480usDQ=I;拉高总线delay(14);x=DQ;/延时片刻后,假设x=0,那么初始化成功,反之delay(20);returnx;/读一个字节Read(void)unsignedchari=0;unsignedchardat=O;for(i=8;i0;i-)(DQ

25、O;dat=l;DQ=I;if(DQ)dat=0x80;delay(4);)retum(dat);)写一个字节Write(unsignedchardat)(unsignedchari=0;for(i=8;i0;i)(DQ=O;DQ=dat&0x01;delay(5);DQ=1;dat=l;)delay(4);)启动转换voidint_(void)(while(int.DS18B20();Write(OxCC);Write(0x44);)voidmain(void)(uintcount=0;P2=0X00;i11L();delay(2200);for(count=0;count127)a=a;

26、b=b;a=a4;t=b4;t=ta;t+=l;shi=t10;ge=t-shi*10;for(count=0;count=10)p20=l;PO=OxBF;delay(20);p20=0;p21=l;PO=tabshi;delay(20);p21=0;p22=l;PO=tablge;delay(20);p22=0;p23=l;P0=0xc6;delay(20);p23=0;)else(p20=0;p21=l;PO=OxBF;delay(20);p21=0;p22=l;PO=tablge;delay(20);p22=0;p23=l;P0=0xc6;delay(20);p23=0;elsecount=0;a=a4;t=b4;t=ta;bai=t100;shi=(t-bai*100)10;ge=t-(bai*lOO+shi*lO);for(count=0;count123;count+)(if(bai)p20=l;PO=tabbai;delay(20);p20=0;)elsep20=0;if(shi)p21=l;PO=tabshi;delay(20);p21=0;)p21=0;p22=l;PO=tablge;delay(20);p22=0;p23=l;P0=0xc6;delay(20);p23=0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 数据结构与算法

宁ICP备18001539号-1