单片机课程设计(论文)-基于DS18B20的温度采集系统设计.doc
《单片机课程设计(论文)-基于DS18B20的温度采集系统设计.doc》由会员分享,可在线阅读,更多相关《单片机课程设计(论文)-基于DS18B20的温度采集系统设计.doc(21页珍藏版)》请在三一文库上搜索。
1、( 基于DS18B20的温度采集系统设计)课程设计说明书系(部): 信息工程系 班 级: 自动化082班 学生姓名: 学号指导教师: 时间:2010年12月13日 到 2010 年 12 月24日课 程 设 计 任 务 书题 目 基于DS18B20的温度采集系统设计 系 (部) 信息工程系 专 业 自动化 班 级 082班 学生姓名 学 号 080819611 12 月 13 日至 12 月 24 日 共 2 周指导教师(签字) 系 主 任(签字) 年 月 日一、设计内容及要求利用DS18B20实现温度采集,并用数码管显示。能实现温度上下限的设置,并能够超限报警(用proteus实现)二、设计
2、原始资料单片机原理及应用教程 范立南 2006年 1月单片机原理及应用教程 刘瑞新 2003年07月三、设计完成后提交的文件和图表1计算说明书部分1)方案论证报告打印版或手写版2)程序流程图3)具体程序 2图纸部分:具体电路原理图打印版四、进程安排教学内容 学时 地点资料查阅与学习讨论 1天 单片机实验室分散设计 5天 单片机实验室编写报告 3天 单片机实验室成果验收 1天 单片机实验室 五、主要参考资料电子设计自动化技术基础马建国、孟宪元编 清华大学出版 2004年4月 实用电子系统设计基础 姜威 2008年1月 单片机系统的PROTEUS设计与仿真 张靖武 2007年4月指导老师成绩答辩小
3、组成绩总成绩目录摘要1.系统方案 1.1设计任务 1.2 DS18B20芯片介绍2.仿真图设计。 1.1仿真设计总图 1.2仿真设计中出现的问题3.软件设计 3.1主程序设计3.1.1主程序流程图设计3.1.2主程序程序设计 3.2子程序设计 3.2.1子程序流程图设计 3.2.2子程序程序设计4.系统调试与分析5.设计总结附录:总程序参考文献摘要随着人们生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数字温度计就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活、提供更好的更方便的设施就需要从数单片机技术入手,一切向着数字化控
4、制,智能化控制方向发展。本文利用单片机结合传感器技术开发设计,把传感器理论与单片机实际应用有机结合,详细地讲述了利用温度传感器DS18B20测量环境温度,同时51单片机在现代电子产品中广泛应用以及其技术已经非常成熟,DS18B20可以直接读出被测温度值,而且采用一线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点 关键词: 单片机控制、温度检测、温度传感器、低成本、易使用 Abstract 1.系统方案 1.1 设计的任务书 利用DS18B20实现温度采集,并用数码管显示。(用proteus实现)1.2 DS18B20芯片介绍(1)DS18B20基本知识 DS18B20数字温度计
5、是DALLAS公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 (2)DS18B20产品的特点l 只要求一个端口即可实现通信.l 在DS18B20中的每个器件上都有独一无二的序列号。 l 实际应用中不需要外部任何元器件即可实现测温。 l 测量温度范围在55。C到125。C之间。 l 数字温度计的分辨率用户可以从9位到12位选择。 l 内部有温度上、下限告警设置。 (3)DS18B20的引脚介绍 TO92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1。(底视图)图1 表1DS
6、18B20详细引脚功能描述 序号名称引脚功能描述1GND地信号2DQ数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。3VDD可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。(4) DS18B20的使用方法 由于DS18B20采用的是1Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。 由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各
7、位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 DS18B20的复位时序 DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 DS18B
8、20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。 对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 2仿真图设计 2.1仿真图总图2.2仿真图设计中的问题及解决方案(1)在DS1820测温程序设计中,向DS1820发出温度转换命令后,程序总要等待DS1820的返回信号,一旦某个DS1820接触不好或断线,当程序读该DS1820时,将没有返回信号,程序进入死循环。(2)开始在p.
9、0-p2.3都接了三极管,基极接的p2.0-p2.3,发射极接的电源,集电极接的数码管的片选口。可是都导不通。不管是把p2.0-p2.3置1还是清0.后来直接把三极管删了。(3)后来在p.0-p2.3都接了非门,可是还导不通。不管是把p2.0-p2.3置1还是清0.后来直接把非门删了。(4)直接用导线连接p2.0-p2.3和数码管的片选口,还是不对。结果忘了改晶振频率。3. 软件设计 3.1主程序设计3.1.1主程序流程图设计3.1.2主程序程序设计 ORG 0000HSJMP STARTORG 0050HSTART: ;设置初值 MOV SP,#70H MOV LED_0,#00H MOV
10、LED_1,#00H CLR SOUND MOV H_TEM,#60 ;高温报警温度设置 MOV L_TEM,#40 ;低温报警温度设置MAIN: LCALL GET_TEMPER ;读出传感器感应温度 MOV A,TEMPER_L MOV C,40H ;将28H中的最低位移入C RRC A MOV C,41H RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A ;循环右移实现把用两个字节存放的温度存到29H中来WAIT: SETB ALARM_L ;关黄灯 SETB ALARM_H ;关红灯 CLR SOUND ;关报警 MOV WEND
11、U,29H ;读取转换结果 MOV A,#99 ;由于选用了两位数码管,设置读数上限为99度 MOV R7,WENDU SUBB A,R7 JC OUT ;判断是否高于99,如高于99输出恒定符号 CLR C MOV A,H_TEM DEC A MOV R0,WENDU SUBB A,R0 ;判断是否高于高温上限 JC HALM MOV R1,L_TEM MOV A,WENDU ;判断是否低于高温报警温度(或下限温度) SUBB A,r1 JC LALM NOP LCALL DISP LJMP MAINLALM: ;低温报警 JNB CLOSE,CL ;关闭报警声 CLR ALARM_L ;亮
12、黄灯 SETB SOUND ;开报警声 LCALL DISP ;显示报警温度 LJMP MAINHALM: ;高温报警 JNB CLOSE,CL ;关闭报警声 MOV R2,#235 ;置计数值 SETB SOUND ;开报警声 DV: LCALL DELAY1mS ;延时1毫秒 DJNZ R2,DV CPL ALARM_H ;标志位取反 LCALL DISP ;显示报警温度 SJMP CL CL: LJMP MAINOUT: ;超过99度上限显示 LCALL GET_TEMPER_2 MOV A,TEMPER_L MOV C,40H ;将28H中的最低位移入C RRC A MOV C,41H
13、 RRC A MOV C,42H RRC A MOV C,43H RRC A MOV TEMPER_L,A LCALL DISP_2 ;调用超限显示 LJMP WAIT3.2子程序设计3.2.1子程序流程图设计(1)读转换温度子程序 (2)单片机读DS18B20的子程序Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?结束CRC校验正确?移入温度暂存器NYN13(3)DS18B20感应(写)温度子程序复位延时16us以上把一个字节DATA 分成8个BIT环移给C 写入一个BIT等待100微妙重新释放总线置R2为8写入下一个BIT写完8 BIT重新释放总线返回
14、3.2.2子程序程序设计6系统调试与分析(1) 刚开始什么都不显示,原因是用作驱动的三极管没导通。后来把三极管成了非门。(2) 换成非门后,显示乱码。直接用导线连接p2.0-p2.3和数码管的片选口。(3) 换成导线后直接挨个出0,改了改延时又先挨个出0,出完0后再挨个显85.0.再改了改延时变成了先挨个出0,出完0后再挨个显85.0.再挨个显示温度。总之不能显示个静态的温度。(4) 在老师的帮助下。我改了改显示子程序,显示完小数部分后延时小一点最后确定为400多us,再把p口重置。结果显示就是一个静态温度了。(5) 不过每次运行一开始会先出现85.0.老师说我扫描时间的问题。我改了改采集温度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 论文 基于 DS18B20 温度 采集 系统 设计
链接地址:https://www.31doc.com/p-3916486.html