数字测温仪的设计毕业论文.doc

上传人:文库蛋蛋多 文档编号:4070570 上传时间:2023-04-03 格式:DOC 页数:22 大小:1.84MB
返回 下载 相关 举报
数字测温仪的设计毕业论文.doc_第1页
第1页 / 共22页
数字测温仪的设计毕业论文.doc_第2页
第2页 / 共22页
数字测温仪的设计毕业论文.doc_第3页
第3页 / 共22页
数字测温仪的设计毕业论文.doc_第4页
第4页 / 共22页
数字测温仪的设计毕业论文.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《数字测温仪的设计毕业论文.doc》由会员分享,可在线阅读,更多相关《数字测温仪的设计毕业论文.doc(22页珍藏版)》请在三一办公上搜索。

1、单片机课程设计报告 数字测温仪的设计专 业: 自动化 学 号: 201420307106 姓 名: 李绍君 组 员: 刘运衡 指导老师: 韩 冰 成绩评定: 摘要在我们人类日常生活及工业生产过程中,经常要用到温度的检测及控制,温度是生产过程和科学实验中普遍而且重要的物理参数之一,所以生活中处处都离不开温度。本文采用美国DALLAS半导体公司继DS18B20之后推出的一种改进型智能温度传感器DS18B20作为检测元件,温度范围为-55125,最高分辨率可达0.0625。本文介绍一种基于AT89C52单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0+100,使用

2、LCD模块显示,能设置温度报警上下限。正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C52单片机功能和应用。该电路结构简单,功能实用,基本达到设计目标。关键词:AT89C52 DS18B20 温度校验目录摘要I目录II1 概述11.1 课程设计目的11.2课程设计要求分析11.3课程设计难点12系统总体方案22.1数字温度计设计方案论证22.2总体设计框图23 硬件电路设计43.1主控制器43.2 最小系统53.3 温度采集电路53.4 显示电路64 系统软件的设计74.1 初始化程序74.2读温度子程序84.3读、写时序子程序95 仿真105.1 P

3、roteus软件仿真105.2实物115.3硬件实物115.4调试11总结13附 录 程序代码141 概述1.1 课程设计目的随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控制,智能化控制方向发展。本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于对测温比较准确的场所,或科研实验室使用,可广泛用于食品库、冷库、粮库、温室大棚等需要控制

4、温度的地方。目前,该产品已在温控系统中得到广泛的应用。1.2课程设计要求分析采用方案一(温度传感器LM35,3位半A/D转换器)或者方案二(52单片机,温度传感器DS18B20),数码管或者液晶显示,设计一个日常温度数字计。1.3课程设计难点此设计的重点在于编程,程序要实现温度的采集、转换、显示和上下限温度报警,其外围电路所用器件较少,相对简单,实现容易。2系统总体方案2.1数字温度计设计方案论证2.1.1方案一采用温度传感器LM35,3位半A/D转换器,数码管或者液晶显示,设计一个日常温度数字计。本方案主要利用硬件电路连接,通过更改电路器件参数,显示出3位半温度,并没有利用软件编程。本方案设

5、计简单,但电路复杂,这种设计需要用到A/D转换电路,增大了电路的复杂性,而且要做到高精度也比较困难。并且基本电路中所需要的器件和芯片成本不便宜。2.1.2方案二采用AT89C52单片机,温度传感器DS18B20,数码管或者液晶显示,设计一个日常温度数字计。本方案主要利用硬件电路连接,通过软件编程,显示出3位半温度。本方案设计比较难,要同时考虑硬件的连接和软件编程,但电路简单,另外DS18B20具有3引脚的小体积封装,测温范围为-55+125摄氏度,测温分辨率可达0.0625摄氏度,其测量范围与精度都能符合设计要求。并且基本电路中所需要的器件和芯片成本便宜。以上两种方案相比较,第二种方案的电路、

6、软件设计更简单,成本便宜,此方案设计的系统在功耗、测量精度、范围等方面都能很好地达到要求,故本设计采用方案二。2.2总体设计框图温度计电路设计总体设计方框图如图1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,用4位共阴LED数码管以串口传送数据实现温度显示。 图2.1 系统总体设计方案框图3 硬件电路设计3.1主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,适合便携手持式产品的设计使用。AT89S52单片机芯片具有以下特性:1)指令集合芯片引脚与Intel公司的8052兼容;2)4KB片内在系统可编程FLASH程序

7、存储器;3)时钟频率为033MHZ;4)128字节片内随机读写存储器(RAM);5)6个中断源,2级优先级;6)2个16位定时/记数器;7)全双工串行通信接口;8)监视定时器;9)两个数据指针;3.2 最小系统图3.1 单片机最小系统3.3 温度采集电路图3.2 DS18B20数字温度传感器模块1、简单灵活的可视化操作界面;2、实时性强、良好的并行处理性能;3、丰富、生动的多媒体画面;4、开放式结构,广泛数据获取和强大的数据处理功能。3.4 显示电路其中a b c d e f g dp管脚分别接单片机的P007管脚,由其输入断码,位选端口1234分别接单片机的P203,由其选择要显示的数码管。

8、4 系统软件的设计4.1 初始化程序是开始是否存在?否发送负脉冲延时返回存在脉冲结束unsigned char ow_reset(void) /定义初始化函数unsigned char presence; /定义返回值变量DQ=0; /发送一复位脉冲(最短为480us的低电平信号)tdelay(29);/延时DQ=1; /释放总线并进入接收状态tdelay(3);/延时presence=DQ;/接收存在脉冲tdelay(25);/延时return(presence);/返回存在脉冲4.2读温度子程序开始DS18B20初始化跳过读序列号启动温度转换延时跳过读序列号数据转换处理DS18B20初始化

9、读取温度值高低位结束读出温度子程序的主要功能是读出RAM中的2字节,读出温度的低八位和高八位,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图示4.3读、写时序子程序读、写时序是本次设计中的重点和难点,通过我们对其时序的分析,从而写出高效的程序。当主机总线t o时刻从高拉至低电平时就产生写时间隙 从to时刻开始15us之内应将所需写的位送到总线上DSl820在t后15-60us间对总线采样若低电平写入的位若高电平写入的位是1连续写2位间的间隙应大于1us 开始初始化拉低电位延时读入单片机写入暂存数据处理结束5 仿真5.1 Proteus软件仿真5.2实物5.3硬件实物

10、在设计初步成型到完全成型过程中,需要对系统进行多次调试,在历次调试过程中出现的各种问题有如下几点:1. 策略工具箱中缺少工具现象。2. 历史图表、报表无法读出数据。3. 运行时封面不能直接出现5.4调试问题:在运行程序时发现程序的精度只到了整数位,没到小数。解决方法:小数点的处理:由字节分配表 可得LSB的低4位为小数点位,通过计算可得其对照码与相应的断码数:将读回来的二进制数与码表做对比即可得出小数的大小。00000001001000110011010001010110011123341000100110101011556611001101111011111889 总结 这个学期的单片机课已

11、经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。 关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容的一次复习和巩固,还让我们丰富了更多与该专业相关的其他知识,比如软件应用等,在摸索中学习,在摸索中成长,在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获,在真正设计之前我们做了相当丰富的准备,首先巩固一下课程理论,再一遍熟悉课程知识的构架,然后结合加以理论分析、总结,有了一个清晰的思路和一个完整的的软件流程图之后才着

12、手设计。在设计程序时,我们不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;养成注释程序的好习惯是非常必要的,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也能为资料的保存和交流提供了方便;我觉得在设计课程过程中遇到问题是很正常,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题的课程设计又出错了。 除了对此次设计的准备工作之外,我们还学到了很多平时难得的东西,首先是团队协作,在这次设计当中,难免和同学产生观点和意见的分歧,以及分工明细、时间安排等不合理,通过这次设计,我们体会到了团结合作的重要性及力量之强大,还有让我们处理

13、事情更加有条理,思路更加清晰明了了,发现、提出、分析、解决问题和实践能力的提高都将受益于我在以后的学习、工作和生活中。 此次的设计,其实也是我们所学知识的一次综合运用,让我深深的认识到了学习单片机要有一定的基础,要有电子技术方面的数字电路和模拟电路等方面的理论基础,特别是数字电路;也要有编程语言的汇编语言或C语言。要想成为单片机高手,我们首先要学好汇编语言,然后转入C语言学习,所以我们不能学到后面就忘了前面的知识,更应该将所学的知识紧紧的结合在一起,综合运用,所谓设计,就是要求创新,只有将知识综合运用起来才能真正的设计好。附 录 程序代码#includesbit DQ=P37;sbit jc=

14、P10;unsigned char codetab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,tab1=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;int bw,td;void delay(int i)while(i-);void tdelay(int useconds)int s;for(s=0;suseconds;s+);unsigned char ow_reset(void)unsigned char presence;DQ=0;tdelay(29);DQ=1;tdelay(

15、3);presence=DQ;tdelay(25);return(presence);void write_bit(char bitval)DQ=0;if(bitval=1)DQ=1;tdelay(5);DQ=1;void write_byte(char val)unsigned char i;unsigned char temp;for(i=0;ii;temp&=0x01;write_bit(temp);tdelay(5);unsigned char read_bit(void)unsigned char i;DQ=0;DQ=1;for(i=0;i3;i+);return(DQ);unsig

16、ned char read_byte(void)unsigned char i;unsigned char value=0;for(i=0;i8;i+)if(read_bit()value|=0x01i;tdelay(6);return(value);unsigned int Read_Temperature(void)unsigned char get10;unsigned char temp_lsb,temp_msb;unsigned int t;unsigned char k;ow_reset();write_byte(0xcc);write_byte(0x44);tdelay(5);o

17、w_reset();write_byte(0xcc);write_byte(0xBE);for(k=0;k2;k+)getk=read_byte();temp_msb=get1;temp_lsb=get0;t=temp_msb*256+temp_lsb;td=t&0x0f;if(td=0x00|td=0x01)bw=0;if(td=0x02|td=0x03)bw=1;if(td=0x04)bw=2; if(td=0x05|td=0x06)bw=3;if(td=0x07)bw=4; if(td=0x08|td=0x09)bw=5; if(td=0x0a|td=0x0b)bw=6;if(td=0x

18、0c)bw=7;if(td=0x0d|td=0x0e)bw=8;if(td=0x0f)bw=9;t=t&0x0ff0;if(t0xf0)t=(-1)*t;return t4; /temp_f=(int)temp_c)*9)/5+32;void main(void)unsigned char temp,sw,gw,b1w;while(1)jc=0;temp=Read_Temperature();b1w=temp/100; temp=temp%100;sw=temp/10;gw=temp%10;if(225temp=0)P2=0x01;P0=tabsw;delay(1000);P2=0x00;P2=0x02;P0=tab1gw;delay(1000);P2=0x00;P2=0x04;P0=tabbw; delay(1000); P2=0x00;

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号