《数字式温度计的设计课程设计.doc》由会员分享,可在线阅读,更多相关《数字式温度计的设计课程设计.doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流数字式温度计的设计课程设计.精品文档.数字式温度计的设计摘要 随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标一,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度测量系统测温范围从-10到85,测量精度为0.5度,并且采用LED显示。该设计控制器使用单片AT89C2051,测温传感器使用DS18B20,用4位共阳极LED数码管实现温度显示,能准确达到以上要求。 关键词 数字式温度计 DS18B20 AT89C2051
2、数码管The design of the digital thermometerAbstract With peoples living standard rises ceaselessly, undoubtedly SCM control is one of the goals of the peoples to pursue, but people demand more and more of it for modern job, scientific research, life, providing more convenient facilities that needs micr
3、ocontroller tech- nology developing from several of all towards digital control system, intelligent control direction. The design of the digital temperature measuring system measuring ranges from minus 10 degrees Celsius to 85 degrees Celsius, the measurement accuracy is 0.5 degrees Celsius, and use
4、ing of LED direct reading . This design uses AT89C2051 as single-chip microcomputer controller,as temperature sensor DS18B20, and a total of 4 cathode tube to realize LED digital temperature display.So it can exactly reach the requirements. KeyWords Digital thermometer DS18B20 AT89C2051 Digital tube
5、目录引言1第1章 总体方案设计21.1 温度测量系统设计方案21.2 显示部分设计方案21.3 总体设计框图2第2章 系统硬件电路设计32.1 单片机模块32.1.1 AT89C2051功能及特性42.1.2 单片机模块功能42.2 温度采集部分硬件62.2.1 温度传感器DS18B2062.2.2 DS18B20温度传感器与单片机的接口电路82.3 显示部分电路设计102.4 设计实物图11第3章 系统软件部分设计123.1 主程序123.2 读出温度子程序123.3 温度转换命令子程序133.4 计算温度子程序143.5 显示数据刷新子程序143.6 程序代码15总结19致 谢20参考文献
6、21附录 电路图22引言十七世纪是温度计诞生和发展的最初阶段,这个物理仪器几乎比任何其他仪器都得到更广泛的应用,现代的历史研究认为最早发明温度计的科学家是伽利略,他于1592年发明了最早的气体温度计,最早的液体温度计是荷兰科学家华伦海特制造出来。温度是科学技术中最基本的物理量之一,物理、化学、生物等学科都离不开温度。在工业生产和实验研究中,像电力、化工、石油、冶金、航空航天、机械制造、粮食存储、酒类生产等领域内,温度常常是表征对象和过程状态的最重要的参数之一。比如,发电厂锅炉的温度必须控制在一定的范围之内;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和
7、压力条件下进行分馏才能得到汽油、柴油、煤油等产品。没有合适的温度环境,许多电子设备就不能正常工作,粮仓的储粮就会变质霉烂,酒类的品质就没有保障。因此,各行各业对温度控制的要求都越来越高。可见,温度的测量和控制是非常重要的。单片机在电子产品中的应用已经越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益广泛和多样,各种适用于不同场合的智能温度控制器应运而生,因此研究温度的测量方法和装置具有重要意义。温度测量在工业、农业、国防等行业有着广泛的应用,而且随着科学技术的发展对温度测量的应用范围愈来愈广。利用单片机技术的温度测控系统以其体积小,可靠性高而被广泛采用。本设
8、计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,该设计控制器使用单片机AT89C2051,测温传感器使用DS18B20,用4位共阳极LED数码管以串口传送数据,实现温度显示,能准确达到以上要求。第1章 总体方案设计通过本次课题设计,应用单片机原理及应用等所学相关知识及查阅资料,完成数字温度计的设计,以达到理论与实践更好的结合、进一步提高综合运用所学知识和设计的能力的目的。通过本次设计的训练,可以使我们在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程
9、度的设计能力。1.1 温度测量系统设计方案在单片机电路设计中,大多都是使用传感器,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,就可以满足设计要求。1.2 显示部分设计方案 显示部分采用数码管直读显示,此方案的最大优点就是成本较低,缺点是电路相对复杂,需要驱动电路,在软件上也需要做出处理。但是此方案完全可以满足本报警系统的功能和要求,软件处理上也不是特别的复杂,驱动电路也相对简单。1.3 总体设计框图整个系统由测温电路、主控制器、驱动电路和数码管四个模块组成。段选LED数码管显示HC244AT89C2051主控制器位选三极管DS18B2018B20
10、图1-1 总体设计框图第2章 系统硬件电路设计系统整体硬件电路包括单片机控制器、温度采集部分硬件和显示部分。本设计采用AT89C2051为控制器、DS18B20为温度传感器与单片机的接口电路以及LED数码显示管。2.1 单片机模块AT89C2051主要特点是采用Flash存储器技术,降低了制造成本,其软件、硬件与DS18B20完全兼容。AT89C2051片内含有2K字节的Flash程序存储器,128字节的片内RAM。允许工作的时钟为024MHz。AT89C2051不允许构造外部总线来扩充程序/数据存储器,所以它不需要ALE、PSEN、RA、WR一类的引脚。AT89C2051共有20个引脚,体积
11、小巧易于操作。引脚图及内部结构图如下:图2-1 2051单片机引脚图及内部结构框图2.1.1 AT89C2051功能及特性1.串口P1口共8脚,准双向端口。P3.0P3.6共7脚,准双向端口,并且保留了全部的P3的第二功能,如P3.0、P3.1的串行通讯功能,P3.2、P3.3的中断输入功能,P3.4、P3.5的定时器输入功能。在引脚的驱动能力上面,89C2051具有很强的下拉能力,P1,P3口的下拉能力均可达到20mA。89C2051驱动能力的增强,使得它可以直接驱动LED数码管。为了增加对模拟量的输入功能,AT89C2051在内部构造了一个模拟信号比较器,其输入端连到P1.0和P1.1口,
12、比较结果存入P3.6对应寄存器,对于一些不大复杂的控制电路我们就可以增加少量元件来实现。2.电源AT89C2051有很宽的工作电源电压,可为2.76V,当工作在3V时,电流相当于6V工作时的1/4。工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电态仅为20nA。这样小的功耗很适合于电池供电的小型控制系统。3.存储器AT89C2051片内含有2k字节的Flash程序存储器,128字节的片内RAM。由于2051内部设计全静态工作,所以允许工作的时钟为020MHz,也就是说,允许在低速工作时,不破坏RAM内容。相比之下,一般8031对最低工作时钟限制为3.5MHz,因为其内部的RAM是动
13、态刷新的。4.内部I/O控制89C2051在内部I/O口为5路2级优待中断,2路定时器/计数器。2.1.2 单片机模块功能该模块由以下几个部分组成:1.复位电路:为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分,复位电路的第一功能是上电复位。一般微机电路正常工作需要供电电源为5V5%,即 4.755.25V。由于微机电路是时序数字电路,它需要稳定的时钟信号,因此在电源上电时,只有当VCC超过4.75V低于5.25V以及晶体振荡器 稳定工作时,复位信号才被撤除,微机电路开始正常工作。 图2-1 复位电路目前为止,单片机复位电路主要有四种类型:(1) 微分型复位电路;(2) 积分型复位
14、电路;(3) 比较器型复位电路;(4) 看门狗型复位电路。2.振荡电路:晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的高低分其中较低的频率是串联谐振,较高的频率是并联谐振。由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率范围内,晶振等效为一个电感,所以只要晶振的两端并联上合适的电容它就会组成并联谐振电路。这个并联谐振电路加到一个负反馈电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率范围很窄, 所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化,震荡电路的电路图如图2-2
15、所示.图2-2 晶振电路晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。 一般的晶振振荡电路都是在一个反相放大器(注意是放大器不是反相器)的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。2.2 温度采集部分硬件2.2.1 温度传感器DS18B20DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9
16、-12位的数字值读数方式。 DS18B20的性能特点如下:1.独特的单线接口仅需要一个端口引脚进行通信;2.多个DS18B20可以并联在惟一的三线上,实现多点组网功能;3.无须外部器件;4.可通过数据线供电,电压范围为3.05.5;5.零待机功耗;6.温度以9或12位数字;7.用户可定义报警设置;8.报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9.负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。 DS18B20采用3脚PR35封装或8脚SOIC封装,其内部结构框图如图2-3所示:I/OC64位ROM和单线接口高速缓存存储器与控制逻辑温度传感器高温触发器TH
17、低温触发器TL配置寄存器8位CRC发生器Vdd 图2-3 DS18B20内部结构64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器和,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EERAM。高速暂存RAM的结构为8字节的存储器。头2个字节包含测得的温度信息,第3和第4字节和的拷贝,是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20
18、工作时寄存器中的分辨率转换为相应精度的温度数值。低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率。另外,由于DS18B20单线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。2.2.2 DS18B20温度传感器与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为
19、信号线,3脚接电源。另一种是寄生电源供电方式,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。DS18B20与单片机的接口电路如图2-4图2-4 DS18B20与单片机的接口电路当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始
20、化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的复位时序 图2-5 DS18B20复位时序DS18B20的读时序对于DS18B20的读时序分为读0时序和读1时序两个过程。对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。图2-6 DS18B20读时序DS18B20的
21、写时序对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。图2-7 DS18B20写时序2.3 显示部分电路设计LED数码管是一种常见的显示数字量的元器件,其有两种连接方式,即共阴极连接、共阳极连接。此次数字温度计系统的显示部分采用的是共阳极7段LED数码管,其主要原因是不用上拉电阻,从而节省了电的使用。另外在焊接的过程中比较简单,出现的误差几率较
22、小。 图2-8数码管的原理图以及电路连接图74HC244内部集成8路非门,由两路使能信号控制。主要用于数码管功率驱动。图2-9 74HC244管脚图74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1C和2G作为它们的选通工作信号。当1/OE和2/OE都为低电平时,输出端Y和输入端A状态相同;当1/OE和2/OE都为高电平时,输出呈高阻态,所以在使用芯片时一定要注意。2.4 设计实物图图2-10 设计实物图第3章 系统软件部分设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。开始3.1 主程序图3-1 主程序流程图3.2 读出温度子
23、程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图3-2所示:Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY图3-2 读温度流程图3.3 温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图3-3所示: 发DS18B20复位命令发跳过ROM命令发温度转换开始命令结束图3-3 温度转换流程图3.4 计
24、算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图3-4所示:开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY图3-4 计算温度流程图3.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图3-5:数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据 结束NNYY图3-5 显示数据刷新流程图3.6 程序代码#include #include #define uchar u
25、nsigned char#define uint unsigned intuchar k;sbit DS =P37; /定义DS18B20通讯端口 sbit D1=P30;sbit D2=P31; /数码管 位选 sbit D3=P32;sbit D4=P33;uchar code LED=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;uchar code ditab16 = 0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09;/查小
26、数表 uchar data temp_data4 = 0x00,0x00,0x00,0x00;/高低位临时数据 uchar data display5 = 0x00,0x00,0x00,0x00,0x00;/数据转换 void delay_ms(uint ms) uint x,y; for(x=ms;x0;x-) for(y=110;y0;y-);void delay_us(uchar us)while(-us); ReadChar(void)/读一个字节 uchar i;uchar dat = 0;for (i=8;i0;i-)DS=1;delay_us(1);dat=1;DS = 0; d
27、elay_us(1); /4us DS = 1;delay_us(1); /4us if(DS)dat|=0x80;delay_us(30); /66us DS=1;return(dat);WriteChar(uchar dat) /写一个字节 uchar i;for (i=8; i0; i-) DS=1;delay_us(1); DS = 0;delay_us(1); DS = dat&0x01; delay_us(30); dat=dat/2; DS = 1;delay_us(3); Init_18B20(void)/初始化18B20 DS=1; delay_us(1);DS=0; del
28、ay_us(250); /单片机将DQ拉低545us DS=1; delay_us(30); delay_us(250); /延时500us DS = 1; Read_18B20()/ 读取温度 Init_18B20(); /初始化 WriteChar(0xCC); /跳过读序号列号的操作 WriteChar(0xBE); /读取温度寄存器 temp_data0 = ReadChar(); /温度低8位temp_data1 = ReadChar(); /温度高8位 Init_18B20(); /初始化 WriteChar(0xCC); /跳过读序号列号的操作 WriteChar(0x44);
29、/开始温度转换display4=temp_data0&0x0f;/低8位 display0=ditabdisplay4; /查表得小数位的值 display4=(temp_data0&0xf0)4)|(temp_data1&0x0f)0;k-)Disp(); /显示函数 总结此次课程设计是利用数字温度传感器DS18B20作为温度传感器件,采用价格低廉性能稳定的MCS-51系列的单片机作为主控芯片,用四位一体共阳极的数码管作为显示器件构成了整个系统整体。本设计的优点是价格低廉,性能稳定,如果把单片机换成贴片的封装器件利于大规模的工业商业生产。在此次课程设计过程中,巩固了在大学期间学过的知识,尤其
30、是单片机和模拟电子方面的知识,同时通过这次设计提高了单片机编程的能力,尤其是获得的软件调试经验,同时加强了我的实际编程能力,同时也让自己更加的知道了自己知识领域里的不足和缺陷。该智能温度控制器只是DS18B20在温度控制领域的一个简单实例,还有许多需要完善的地方,例如可以将测得的温度通过单片机与通讯模块相连接,以手机短消息的方式发送给用户,使用户能够随时对温度进行监控。此外,还能广泛地应用于其他一些工业生产领域,如建筑,仓储等行业。本温度控制系统可以应用于多种场合,像的温度、育婴房的温度、水温的控制。用户可灵活选择本设计的用途,有很强的实用价值。由于时间太仓促,经验不足,理论方面也相应的存在不
31、足,加上条件有限,仍存在着一些设计方面的问题,个人技能也有待提高,理论知识还要巩固加强。 致 谢在这课程设计的时间里,留下了难以忘怀的回忆。在此我要特别地向指导帮助我的邢笑雪老师表示最诚挚的谢意,还有给我提供帮助的同小组的同学。在这两周中,学到了许多书本上没有的东西,同时可以巩固以前所学到的知识。通过这次课程设计使我懂得理论与实际相结合,只有理论是远远不够的,只有动手操作,才可以解决理论学习中见不到的困难和疑惑。其中我也知道了自己的不足之处,比如说单片机汇编语言掌握不熟练,元器件的特性不够了解,焊接过程中存在虚焊等问题。在这次实验中,我体会到了合作的重要性。一个人也可能实现这一系列的过程,但是
32、要花费很多精力和时间。群策群力,分工明确,可以使我们更好、更快地完成我们的工作。在此期间,你可以更好知道自己的不足和缺陷,来得到改正。还可以知道自己的优势所在,把握好自己的优势。课程设计的关键是能学到真东西,这使我受益匪浅。在此,向给我们提供此次课程设计的校方领导和老师致谢。最后,再次向所有关心支持指导帮助过我完成本次的邢老师和同学,表示最诚挚的谢意!参考文献1 张五一,张道光.微机原理与接口技术.郑州:河南科学技术出版社,20062 李广弟.单片机基础. 北京:北京航空航天大学出版社,19943 廖常初.现场总线概述.电工技术,19994 倪晓军.单片机原理与接口技术教程.北京:清华大学出版社,20095 姚年春 向华Protel99SE基础教程. 北京:人民名邮电出版社,20096 韩颖; Proteus在单片机技术实训教学中的应用J:中国科教创新导刊,2008年31期7 周灵彬;张靖武.PROTEUS的单片机教学与应用仿真J:单片机与嵌入式系统应用,2008年01期附录 电路图